@reddb-io/red-skills 3.12.2 → 3.12.3
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 +360 -360
- 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 +119 -118
- 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 xx=Object.create;var Wl=Object.defineProperty;var Ex=Object.getOwnPropertyDescriptor;var vx=Object.getOwnPropertyNames;var Sx=Object.getPrototypeOf,Tx=Object.prototype.hasOwnProperty;var Px=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ef=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ax=(e,t)=>{for(var r in t)Wl(e,r,{get:t[r],enumerable:!0})},Cx=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of vx(t))!Tx.call(e,o)&&o!==r&&Wl(e,o,{get:()=>t[o],enumerable:!(n=Ex(t,o))||n.enumerable});return e};var Hl=(e,t,r)=>(r=e!=null?xx(Sx(e)):{},Cx(t||!e||!e.__esModule?Wl(r,"default",{value:e,enumerable:!0}):r,e));var Xg={};Ax(Xg,{REDSKILLED_BIN_ENV:()=>Fd,REDSKILLED_BUNDLE_ASSET:()=>Er,REDSKILLED_ENTRY_UNRESOLVED:()=>ys,RedskilledDaemonEntryError:()=>ks,isRedskilledEntryPath:()=>Md,isResolvedRedskilledEntry:()=>vr,redskilledBundleCacheRoot:()=>na,redskilledServeArgv:()=>on,requireRedskilledEntry:()=>oa,resolveRedskilledEntry:()=>sn});import{existsSync as mS,readdirSync as bS}from"node:fs";import{homedir as yS}from"node:os";import{basename as Dd,dirname as Od,join as Kt,resolve as ra}from"node:path";function vr(e){return"command"in e}function on(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 na(e=process.env){return Qg(e)}function sn(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??mS,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[Fd];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&Md(i))return a(ra(i),"caller-entry");let d=[];for(let[c,u]of _S(i,t.rootDir,r,t.listDir??vS))if(d.push(c),n(c))return a(c,u);return{diagnostic:ys,searched:d,...i?{callerEntry:ra(i)}:{}}}function oa(e={},t={}){let r=sn(e,t);if(vr(r))return r;throw new ks(r)}function Md(e){let t=Dd(e);return t===Er||Id.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:RS(ra(e))}function RS(e){let t=Od(e);for(let r=0;r<4;r++){if(Dd(t)==="redskilled")return!0;let n=Od(t);if(n===t)return!1;t=n}return!1}function*_S(e,t,r,n){if(e){let s=Od(ra(e));yield[Kt(s,Er),"caller-sibling-bundle"];let i=kS.exec(Dd(e));i&&(yield[Kt(s,`redskilled-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Kt(s,"..","dist",Er),"caller-sibling-bundle"]}for(let s of wS){let i=r[s];i&&(yield[Kt(i,"dist",Er),"plugin-root-bundle"],yield[Kt(i,"..","..","dist",Er),"plugin-root-bundle"])}t&&(yield[Kt(t,"dist",Er),"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=Qg(r);yield[Kt(o,Er),"bundle-cache"];for(let s of xS(o,n))yield[Kt(o,s),"bundle-cache"]}function Qg(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Kt(e.HOME||yS(),".cache");return Kt(t,"red-skills","bundles")}function xS(e,t){return t(e).filter(r=>Id.test(r)).sort((r,n)=>ES(Yg(n),Yg(r)))}function Yg(e){return Id.exec(e)?.[1]??""}function ES(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 vS(e){try{return bS(e)}catch{return[]}}var Er,ys,Fd,ks,kS,Id,wS,Ur=Px(()=>{"use strict";Er="redskilled.bundle.min.mjs",ys="redskilled-daemon-entry-unresolved",Fd="REDSKILLED_BIN";ks=class extends Error{code=ys;searched;callerEntry;constructor(t){super(`${ys}: no published ${Er} 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)}};lS=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Ad=/^redskilled-(.+)\.bundle\.min\.mjs$/,dS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var oc=wf((rc,nc)=>{(function(e,t){typeof rc=="object"&&typeof nc<"u"?nc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(rc,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(Q){return Q&&Q.default||Q}var r=function(Q,C,w={}){var F,M,B;for(F in C)B=C[F],w[F]=(M=Q[F])!=null?M:B;return w},n=function(Q,C,w={}){var F,M;for(F in Q)M=Q[F],C[F]!==void 0&&(w[F]=M);return w},o={load:r,overwrite:n},s;s=class{constructor(C,w){this.incr=C,this.decr=w,this._first=null,this._last=null,this.length=0}push(C){var w;this.length++,typeof this.incr=="function"&&this.incr(),w={value:C,prev:this._last,next:null},this._last!=null?(this._last.next=w,this._last=w):this._first=this._last=w}shift(){var C;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),C=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,C}first(){if(this._first!=null)return this._first.value}getArray(){var C,w,F;for(C=this._first,F=[];C!=null;)F.push((w=C,C=C.next,w.value));return F}forEachShift(C){var w;for(w=this.shift();w!=null;)C(w),w=this.shift()}debug(){var C,w,F,M,B;for(C=this._first,B=[];C!=null;)B.push((w=C,C=C.next,{value:w.value,prev:(F=w.prev)!=null?F.value:void 0,next:(M=w.next)!=null?M.value:void 0}));return B}};var i=s,a;a=class{constructor(C){if(this.instance=C,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(w,F)=>this._addListener(w,"many",F),this.instance.once=(w,F)=>this._addListener(w,"once",F),this.instance.removeAllListeners=(w=null)=>w!=null?delete this._events[w]:this._events={}}_addListener(C,w,F){var M;return(M=this._events)[C]==null&&(M[C]=[]),this._events[C].push({cb:F,status:w}),this.instance}listenerCount(C){return this._events[C]!=null?this._events[C].length:0}async trigger(C,...w){var F,M;try{return C!=="debug"&&this.trigger("debug",`Event triggered: ${C}`,w),this._events[C]==null?void 0:(this._events[C]=this._events[C].filter(function(B){return B.status!=="none"}),M=this._events[C].map(async B=>{var U,X;if(B.status!=="none"){B.status==="once"&&(B.status="none");try{return X=typeof B.cb=="function"?B.cb(...w):void 0,typeof X?.then=="function"?await X:X}catch(be){return U=be,this.trigger("error",U),null}}}),(await Promise.all(M)).find(function(B){return B!=null}))}catch(B){return F=B,this.trigger("error",F),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(C){var w;this.Events=new c(this),this._length=0,this._lists=function(){var F,M,B;for(B=[],w=F=1,M=C;1<=M?F<=M:F>=M;w=1<=M?++F:--F)B.push(new d(()=>this.incr(),()=>this.decr()));return B}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(C){return this._lists[C.options.priority].push(C)}queued(C){return C!=null?this._lists[C].length:this._length}shiftAll(C){return this._lists.forEach(function(w){return w.forEachShift(C)})}getFirst(C=this._lists){var w,F,M;for(w=0,F=C.length;w<F;w++)if(M=C[w],M.length>0)return M;return[]}shiftLastFrom(C){return this.getFirst(this._lists.slice(C).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,k,b,v,T,$;T=10,b=5,$=o,k=f,v=class{constructor(C,w,F,M,B,U,X,be){this.task=C,this.args=w,this.rejectOnDrop=B,this.Events=U,this._states=X,this.Promise=be,this.options=$.load(F,M),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===M.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Be)=>{this._resolve=je,this._reject=Be}),this.retryCount=0}_sanitizePriority(C){var w;return w=~~C!==C?b:C,w<0?0:w>T-1?T-1:w}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:C,message:w="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(C??new k(w)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(C){var w;if(w=this._states.jobStatus(this.options.id),!(w===C||C==="DONE"&&w===null))throw new k(`Invalid job status ${w}, expected ${C}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(C,w){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:C,blocked:w})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(C,w,F,M){var B,U,X;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),U={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",U);try{if(X=await(C!=null?C.schedule(this.options,this.task,...this.args):this.task(...this.args)),w())return this.doDone(U),await M(this.options,U),this._assertStatus("DONE"),this._resolve(X)}catch(be){return B=be,this._onFailure(B,U,w,F,M)}}doExpire(C,w,F){var M,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},M=new k(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(M,B,C,w,F)}async _onFailure(C,w,F,M,B){var U,X;if(F())return U=await this.Events.trigger("failed",C,w),U!=null?(X=~~U,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,w),this.retryCount++,M(X)):(this.doDone(w),await B(this.options,w),this._assertStatus("DONE"),this._reject(C))}doDone(C){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",C)}};var D=v,L,W,K;K=o,L=f,W=class{constructor(C,w,F){this.instance=C,this.storeOptions=w,this.clientId=this.instance._randomIndex(),K.load(F,F,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var C;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(C=this.heartbeat=setInterval(()=>{var w,F,M,B,U;if(B=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&B>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=B,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&B>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:w,reservoirIncreaseMaximum:M,reservoir:U}=this.storeOptions,this._lastReservoirIncrease=B,F=M!=null?Math.min(w,M-U):w,F>0))return this.storeOptions.reservoir+=F,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?C.unref():void 0:clearInterval(this.heartbeat)}async __publish__(C){return await this.yieldLoop(),this.instance.Events.trigger("message",C.toString())}async __disconnect__(C){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(C=0){return new this.Promise(function(w,F){return setTimeout(w,C)})}computePenalty(){var C;return(C=this.storeOptions.penalty)!=null?C:15*this.storeOptions.minTime||5e3}async __updateSettings__(C){return await this.yieldLoop(),K.overwrite(C,C,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(C){return await this.yieldLoop(),this._nextRequest+this.timeout<C}computeCapacity(){var C,w;return{maxConcurrent:C,reservoir:w}=this.storeOptions,C!=null&&w!=null?Math.min(C-this._running,w):C!=null?C-this._running:w??null}conditionsCheck(C){var w;return w=this.computeCapacity(),w==null||C<=w}async __incrementReservoir__(C){var w;return await this.yieldLoop(),w=this.storeOptions.reservoir+=C,this.instance._drainAll(this.computeCapacity()),w}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(C){return this._unblockTime>=C}check(C,w){return this.conditionsCheck(C)&&this._nextRequest-w<=0}async __check__(C){var w;return await this.yieldLoop(),w=Date.now(),this.check(C,w)}async __register__(C,w,F){var M,B;return await this.yieldLoop(),M=Date.now(),this.conditionsCheck(w)?(this._running+=w,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=w),B=Math.max(this._nextRequest-M,0),this._nextRequest=M+B+this.storeOptions.minTime,{success:!0,wait:B,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(C,w){var F,M,B;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&w>this.storeOptions.maxConcurrent)throw new L(`Impossible to add a job having a weight of ${w} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return M=Date.now(),B=this.storeOptions.highWater!=null&&C===this.storeOptions.highWater&&!this.check(w,M),F=this.strategyIsBlock()&&(B||this.isBlocked(M)),F&&(this._unblockTime=M+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:F,strategy:this.storeOptions.strategy}}async __free__(C,w){return await this.yieldLoop(),this._running-=w,this._done+=w,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var H=W,I,N;I=f,N=class{constructor(C){this.status=C,this._jobs={},this.counts=this.status.map(function(){return 0})}next(C){var w,F;if(w=this._jobs[C],F=w+1,w!=null&&F<this.status.length)return this.counts[w]--,this.counts[F]++,this._jobs[C]++;if(w!=null)return this.counts[w]--,delete this._jobs[C]}start(C){var w;return w=0,this._jobs[C]=w,this.counts[w]++}remove(C){var w;return w=this._jobs[C],w!=null&&(this.counts[w]--,delete this._jobs[C]),w!=null}jobStatus(C){var w;return(w=this.status[this._jobs[C]])!=null?w:null}statusJobs(C){var w,F,M,B,U;if(C!=null){if(F=this.status.indexOf(C),F<0)throw new I(`status must be one of ${this.status.join(", ")}`);M=this._jobs,B=[];for(w in M)U=M[w],U===F&&B.push(w);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((C,w,F)=>(C[this.status[F]]=w,C),{})}};var V=N,ge,fe;ge=i,fe=class{constructor(C,w){this.schedule=this.schedule.bind(this),this.name=C,this.Promise=w,this._running=0,this._queue=new ge}isEmpty(){return this._queue.length===0}async _tryToRun(){var C,w,F,M,B,U,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:C,resolve:B,reject:M}=this._queue.shift(),w=await async function(){try{return U=await X(...C),function(){return B(U)}}catch(be){return F=be,function(){return M(F)}}}(),this._running--,this._tryToRun(),w()}schedule(C,...w){var F,M,B;return B=M=null,F=new this.Promise(function(U,X){return B=U,M=X}),this._queue.push({task:C,args:w,resolve:B,reject:M}),this._tryToRun(),F}};var de=fe,te="2.19.5",me={version:te},Oe=Object.freeze({version:te,default:me}),ve=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),ke=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),J=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),ie,Re,Ae,Ee,we,Se;Se=o,ie=l,Ee=ve,Ae=ke,we=J,Re=function(){class Q{constructor(w={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=w,Se.load(this.limiterOptions,this.defaults,this),this.Events=new ie(this),this.instances={},this.Bottleneck=Ce,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Ee(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new Ae(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(w=""){var F;return(F=this.instances[w])!=null?F:(()=>{var M;return M=this.instances[w]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${w}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",M,w),M})()}async deleteKey(w=""){var F,M;return M=this.instances[w],this.connection&&(F=await this.connection.__runCommand__(["del",...we.allKeys(`${this.id}-${w}`)])),M!=null&&(delete this.instances[w],await M.disconnect()),M!=null||F>0}limiters(){var w,F,M,B;F=this.instances,M=[];for(w in F)B=F[w],M.push({key:w,limiter:B});return M}keys(){return Object.keys(this.instances)}async clusterKeys(){var w,F,M,B,U,X,be,je,Be;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],w=null,Be=`b_${this.id}-`.length,F=9;w!==0;)for([je,M]=await this.connection.__runCommand__(["scan",w??0,"match",`b_${this.id}-*_settings`,"count",1e4]),w=~~je,B=0,be=M.length;B<be;B++)U=M[B],X.push(U.slice(Be,-F));return X}_startAutoCleanup(){var w;return clearInterval(this.interval),typeof(w=this.interval=setInterval(async()=>{var F,M,B,U,X,be;X=Date.now(),B=this.instances,U=[];for(M in B){be=B[M];try{await be._store.__groupCheck__(X)?U.push(this.deleteKey(M)):U.push(void 0)}catch(je){F=je,U.push(be.Events.trigger("error",F))}}return U},this.timeout/2)).unref=="function"?w.unref():void 0}updateSettings(w={}){if(Se.overwrite(w,this.defaults,this),Se.overwrite(w,w,this.limiterOptions),w.timeout!=null)return this._startAutoCleanup()}disconnect(w=!0){var F;if(!this.sharedConnection)return(F=this.connection)!=null?F.disconnect(w):void 0}}return Q.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},Q}.call(e);var ce=Re,oe,_e,Fe;Fe=o,_e=l,oe=function(){class Q{constructor(w={}){this.options=w,Fe.load(this.options,this.defaults,this),this.Events=new _e(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((w,F)=>this._resolve=w)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(w){var F;return this._arr.push(w),F=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),F}}return Q.prototype.defaults={maxTime:null,maxSize:null,Promise},Q}.call(e);var it=oe,$t=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Yr=t(Oe),Qr,lo,le,Gt,ct,Ze,wt,at,ut,Rt,_t,jr=[].splice;Ze=10,lo=5,_t=o,wt=p,Gt=D,ct=H,at=$t,le=l,ut=V,Rt=de,Qr=function(){class Q{constructor(w={},...F){var M,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(w,F),_t.load(w,this.instanceDefaults,this),this._queues=new wt(Ze),this._scheduled={},this._states=new ut(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new le(this),this._submitLock=new Rt("submit",this.Promise),this._registerLock=new Rt("register",this.Promise),B=_t.load(w,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return M=_t.load(w,this.redisStoreDefaults,{}),new at(this,B,M);if(this.datastore==="local")return M=_t.load(w,this.localStoreDefaults,{}),new ct(this,B,M);throw new Q.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var U;return(U=this._store.heartbeat)!=null&&typeof U.ref=="function"?U.ref():void 0}),this._queues.on("zero",()=>{var U;return(U=this._store.heartbeat)!=null&&typeof U.unref=="function"?U.unref():void 0})}_validateOptions(w,F){if(!(w!=null&&typeof w=="object"&&F.length===0))throw new Q.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(w){return this._store.__publish__(w)}disconnect(w=!0){return this._store.__disconnect__(w)}chain(w){return this._limiter=w,this}queued(w){return this._queues.queued(w)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(w){return this._states.jobStatus(w)}jobs(w){return this._states.statusJobs(w)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(w=1){return this._store.__check__(w)}_clearGlobalState(w){return this._scheduled[w]!=null?(clearTimeout(this._scheduled[w].expiration),delete this._scheduled[w],!0):!1}async _free(w,F,M,B){var U,X;try{if({running:X}=await this._store.__free__(w,M.weight),this.Events.trigger("debug",`Freed ${M.id}`,B),X===0&&this.empty())return this.Events.trigger("idle")}catch(be){return U=be,this.Events.trigger("error",U)}}_run(w,F,M){var B,U,X;return F.doRun(),B=this._clearGlobalState.bind(this,w),X=this._run.bind(this,w,F),U=this._free.bind(this,w,F),this._scheduled[w]={timeout:setTimeout(()=>F.doExecute(this._limiter,B,X,U),M),expiration:F.options.expiration!=null?setTimeout(function(){return F.doExpire(B,X,U)},M+F.options.expiration):void 0,job:F}}_drainOne(w){return this._registerLock.schedule(()=>{var F,M,B,U,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:U,args:F}=B=X.first(),w!=null&&U.weight>w?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${U.id}`,{args:F,options:U}),M=this._randomIndex(),this._store.__register__(M,U.weight,U.expiration).then(({success:be,wait:je,reservoir:Be})=>{var Qt;return this.Events.trigger("debug",`Drained ${U.id}`,{success:be,args:F,options:U}),be?(X.shift(),Qt=this.empty(),Qt&&this.Events.trigger("empty"),Be===0&&this.Events.trigger("depleted",Qt),this._run(M,B,je),this.Promise.resolve(U.weight)):this.Promise.resolve(null)})))})}_drainAll(w,F=0){return this._drainOne(w).then(M=>{var B;return M!=null?(B=w!=null?w-M:w,this._drainAll(B,F+M)):this.Promise.resolve(F)}).catch(M=>this.Events.trigger("error",M))}_dropAllQueued(w){return this._queues.shiftAll(function(F){return F.doDrop({message:w})})}stop(w={}){var F,M;return w=_t.load(w,this.stopDefaults),M=B=>{var U;return U=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===B},new this.Promise((X,be)=>U()?X():this.on("done",()=>{if(U())return this.removeAllListeners("done"),X()}))},F=w.dropWaitingJobs?(this._run=function(B,U){return U.doDrop({message:w.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var B,U,X;U=this._scheduled;for(B in U)X=U[B],this.jobStatus(X.job.options.id)==="RUNNING"&&(clearTimeout(X.timeout),clearTimeout(X.expiration),X.job.doDrop({message:w.dropErrorMessage}));return this._dropAllQueued(w.dropErrorMessage),M(0)}))):this.schedule({priority:Ze-1,weight:0},()=>M(1)),this._receive=function(B){return B._reject(new Q.prototype.BottleneckError(w.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new Q.prototype.BottleneckError("stop() has already been called")),F}async _addToQueue(w){var F,M,B,U,X,be,je;({args:F,options:U}=w);try{({reachedHWM:X,blocked:M,strategy:je}=await this._store.__submit__(this.queued(),U.weight))}catch(Be){return B=Be,this.Events.trigger("debug",`Could not queue ${U.id}`,{args:F,options:U,error:B}),w.doDrop({error:B}),!1}return M?(w.doDrop(),!0):X&&(be=je===Q.prototype.strategy.LEAK?this._queues.shiftLastFrom(U.priority):je===Q.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(U.priority+1):je===Q.prototype.strategy.OVERFLOW?w:void 0,be?.doDrop(),be==null||je===Q.prototype.strategy.OVERFLOW)?(be==null&&w.doDrop(),X):(w.doQueue(X,M),this._queues.push(w),await this._drainAll(),X)}_receive(w){return this._states.jobStatus(w.options.id)!=null?(w._reject(new Q.prototype.BottleneckError(`A job with the same id already exists (id=${w.options.id})`)),!1):(w.doReceive(),this._submitLock.schedule(this._addToQueue,w))}submit(...w){var F,M,B,U,X,be,je;return typeof w[0]=="function"?(X=w,[M,...w]=X,[F]=jr.call(w,-1),U=_t.load({},this.jobDefaults)):(be=w,[U,M,...w]=be,[F]=jr.call(w,-1),U=_t.load(U,this.jobDefaults)),je=(...Be)=>new this.Promise(function(Qt,hr){return M(...Be,function(...Ve){return(Ve[0]!=null?hr:Qt)(Ve)})}),B=new Gt(je,w,U,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),B.promise.then(function(Be){return typeof F=="function"?F(...Be):void 0}).catch(function(Be){return Array.isArray(Be)?typeof F=="function"?F(...Be):void 0:typeof F=="function"?F(Be):void 0}),this._receive(B)}schedule(...w){var F,M,B;return typeof w[0]=="function"?([B,...w]=w,M={}):[M,B,...w]=w,F=new Gt(B,w,M,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(F),F.promise}wrap(w){var F,M;return F=this.schedule.bind(this),M=function(...B){return F(w.bind(this),...B)},M.withOptions=function(B,...U){return F(B,w,...U)},M}async updateSettings(w={}){return await this._store.__updateSettings__(_t.overwrite(w,this.storeDefaults)),_t.overwrite(w,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(w=0){return this._store.__incrementReservoir__(w)}}return Q.default=Q,Q.Events=le,Q.version=Q.prototype.version=Yr.version,Q.strategy=Q.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},Q.BottleneckError=Q.prototype.BottleneckError=f,Q.Group=Q.prototype.Group=ce,Q.RedisConnection=Q.prototype.RedisConnection=ve,Q.IORedisConnection=Q.prototype.IORedisConnection=ke,Q.Batcher=Q.prototype.Batcher=it,Q.prototype.jobDefaults={priority:lo,weight:1,expiration:null,id:"<no-id>"},Q.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:Q.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},Q.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},Q.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},Q.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},Q.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},Q}.call(e);var Ce=Qr,Le=Ce;return Le})});var Wm=wf(pa=>{"use strict";Object.defineProperty(pa,"__esModule",{value:!0});pa.format=MP;pa.parse=LP;var DP=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,jm=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,FP=/[\\"]/g,IP=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Bm=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function MP(e){let{type:t,parameters:r}=e;if(!t||!IP.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!jm.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${GP(r[o])}`}return n}function LP(e,t){let r=e.length,n=cc(e,0,r),o=n;n=dc(e,n,r);let s=uc(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new Bm:$P(e,n,r);return{type:i,parameters:a}}var $m=32,Gm=9,Nm=59,jP=61,Lm=34,BP=92;function $P(e,t,r){let n=new Bm;e:for(;t<r;){t=cc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===Nm)continue e;if(s===jP){let i=uc(e,o,t),a=e.slice(o,i).toLowerCase();if(t=cc(e,t+1,r),t<r&&e.charCodeAt(t)===Lm){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===Lm){t=dc(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===BP&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=dc(e,t,r),n[a]===void 0){let d=uc(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function dc(e,t,r){for(;t<r&&e.charCodeAt(t)!==Nm;)t++;return t}function cc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==$m&&n!==Gm)break;t++}return t}function uc(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==$m&&n!==Gm)break;r--}return r}function GP(e){if(jm.test(e))return e;if(DP.test(e))return`"${e.replace(FP,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as Dj}from"node:child_process";import{homedir as _i}from"node:os";import{join as Cl}from"node:path";var go=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},An=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function q(e,t){return new go(e,t)}function Te(e,t){return new An(e,t)}function ho(e){return e instanceof An?e:e instanceof go?new An(e.line,e.reason):new An(0,String(e&&e.message?e.message:e))}var Rf=["type","kind","event"],Cn="|",_f=new Set(["order","discriminator","rows","common"]);var ze=",";function Li(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: ",vt(r.order.encoded,
|
|
10
|
-
`),e.push(" discriminator: ",vt(r.discriminator,
|
|
6
|
+
`)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};kS=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Id=/^redskilled-(.+)\.bundle\.min\.mjs$/,wS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var cc=Ef((lc,dc)=>{(function(e,t){typeof lc=="object"&&typeof dc<"u"?dc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(lc,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(Q){return Q&&Q.default||Q}var r=function(Q,C,w={}){var F,M,B;for(F in C)B=C[F],w[F]=(M=Q[F])!=null?M:B;return w},n=function(Q,C,w={}){var F,M;for(F in Q)M=Q[F],C[F]!==void 0&&(w[F]=M);return w},o={load:r,overwrite:n},s;s=class{constructor(C,w){this.incr=C,this.decr=w,this._first=null,this._last=null,this.length=0}push(C){var w;this.length++,typeof this.incr=="function"&&this.incr(),w={value:C,prev:this._last,next:null},this._last!=null?(this._last.next=w,this._last=w):this._first=this._last=w}shift(){var C;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),C=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,C}first(){if(this._first!=null)return this._first.value}getArray(){var C,w,F;for(C=this._first,F=[];C!=null;)F.push((w=C,C=C.next,w.value));return F}forEachShift(C){var w;for(w=this.shift();w!=null;)C(w),w=this.shift()}debug(){var C,w,F,M,B;for(C=this._first,B=[];C!=null;)B.push((w=C,C=C.next,{value:w.value,prev:(F=w.prev)!=null?F.value:void 0,next:(M=w.next)!=null?M.value:void 0}));return B}};var i=s,a;a=class{constructor(C){if(this.instance=C,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(w,F)=>this._addListener(w,"many",F),this.instance.once=(w,F)=>this._addListener(w,"once",F),this.instance.removeAllListeners=(w=null)=>w!=null?delete this._events[w]:this._events={}}_addListener(C,w,F){var M;return(M=this._events)[C]==null&&(M[C]=[]),this._events[C].push({cb:F,status:w}),this.instance}listenerCount(C){return this._events[C]!=null?this._events[C].length:0}async trigger(C,...w){var F,M;try{return C!=="debug"&&this.trigger("debug",`Event triggered: ${C}`,w),this._events[C]==null?void 0:(this._events[C]=this._events[C].filter(function(B){return B.status!=="none"}),M=this._events[C].map(async B=>{var U,X;if(B.status!=="none"){B.status==="once"&&(B.status="none");try{return X=typeof B.cb=="function"?B.cb(...w):void 0,typeof X?.then=="function"?await X:X}catch(be){return U=be,this.trigger("error",U),null}}}),(await Promise.all(M)).find(function(B){return B!=null}))}catch(B){return F=B,this.trigger("error",F),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(C){var w;this.Events=new c(this),this._length=0,this._lists=function(){var F,M,B;for(B=[],w=F=1,M=C;1<=M?F<=M:F>=M;w=1<=M?++F:--F)B.push(new d(()=>this.incr(),()=>this.decr()));return B}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(C){return this._lists[C.options.priority].push(C)}queued(C){return C!=null?this._lists[C].length:this._length}shiftAll(C){return this._lists.forEach(function(w){return w.forEachShift(C)})}getFirst(C=this._lists){var w,F,M;for(w=0,F=C.length;w<F;w++)if(M=C[w],M.length>0)return M;return[]}shiftLastFrom(C){return this.getFirst(this._lists.slice(C).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,k,b,v,T,$;T=10,b=5,$=o,k=f,v=class{constructor(C,w,F,M,B,U,X,be){this.task=C,this.args=w,this.rejectOnDrop=B,this.Events=U,this._states=X,this.Promise=be,this.options=$.load(F,M),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===M.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Be)=>{this._resolve=je,this._reject=Be}),this.retryCount=0}_sanitizePriority(C){var w;return w=~~C!==C?b:C,w<0?0:w>T-1?T-1:w}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:C,message:w="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(C??new k(w)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(C){var w;if(w=this._states.jobStatus(this.options.id),!(w===C||C==="DONE"&&w===null))throw new k(`Invalid job status ${w}, expected ${C}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(C,w){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:C,blocked:w})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(C,w,F,M){var B,U,X;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),U={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",U);try{if(X=await(C!=null?C.schedule(this.options,this.task,...this.args):this.task(...this.args)),w())return this.doDone(U),await M(this.options,U),this._assertStatus("DONE"),this._resolve(X)}catch(be){return B=be,this._onFailure(B,U,w,F,M)}}doExpire(C,w,F){var M,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},M=new k(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(M,B,C,w,F)}async _onFailure(C,w,F,M,B){var U,X;if(F())return U=await this.Events.trigger("failed",C,w),U!=null?(X=~~U,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,w),this.retryCount++,M(X)):(this.doDone(w),await B(this.options,w),this._assertStatus("DONE"),this._reject(C))}doDone(C){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",C)}};var D=v,L,W,K;K=o,L=f,W=class{constructor(C,w,F){this.instance=C,this.storeOptions=w,this.clientId=this.instance._randomIndex(),K.load(F,F,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var C;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(C=this.heartbeat=setInterval(()=>{var w,F,M,B,U;if(B=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&B>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=B,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&B>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:w,reservoirIncreaseMaximum:M,reservoir:U}=this.storeOptions,this._lastReservoirIncrease=B,F=M!=null?Math.min(w,M-U):w,F>0))return this.storeOptions.reservoir+=F,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?C.unref():void 0:clearInterval(this.heartbeat)}async __publish__(C){return await this.yieldLoop(),this.instance.Events.trigger("message",C.toString())}async __disconnect__(C){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(C=0){return new this.Promise(function(w,F){return setTimeout(w,C)})}computePenalty(){var C;return(C=this.storeOptions.penalty)!=null?C:15*this.storeOptions.minTime||5e3}async __updateSettings__(C){return await this.yieldLoop(),K.overwrite(C,C,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(C){return await this.yieldLoop(),this._nextRequest+this.timeout<C}computeCapacity(){var C,w;return{maxConcurrent:C,reservoir:w}=this.storeOptions,C!=null&&w!=null?Math.min(C-this._running,w):C!=null?C-this._running:w??null}conditionsCheck(C){var w;return w=this.computeCapacity(),w==null||C<=w}async __incrementReservoir__(C){var w;return await this.yieldLoop(),w=this.storeOptions.reservoir+=C,this.instance._drainAll(this.computeCapacity()),w}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(C){return this._unblockTime>=C}check(C,w){return this.conditionsCheck(C)&&this._nextRequest-w<=0}async __check__(C){var w;return await this.yieldLoop(),w=Date.now(),this.check(C,w)}async __register__(C,w,F){var M,B;return await this.yieldLoop(),M=Date.now(),this.conditionsCheck(w)?(this._running+=w,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=w),B=Math.max(this._nextRequest-M,0),this._nextRequest=M+B+this.storeOptions.minTime,{success:!0,wait:B,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(C,w){var F,M,B;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&w>this.storeOptions.maxConcurrent)throw new L(`Impossible to add a job having a weight of ${w} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return M=Date.now(),B=this.storeOptions.highWater!=null&&C===this.storeOptions.highWater&&!this.check(w,M),F=this.strategyIsBlock()&&(B||this.isBlocked(M)),F&&(this._unblockTime=M+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:F,strategy:this.storeOptions.strategy}}async __free__(C,w){return await this.yieldLoop(),this._running-=w,this._done+=w,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var H=W,I,G;I=f,G=class{constructor(C){this.status=C,this._jobs={},this.counts=this.status.map(function(){return 0})}next(C){var w,F;if(w=this._jobs[C],F=w+1,w!=null&&F<this.status.length)return this.counts[w]--,this.counts[F]++,this._jobs[C]++;if(w!=null)return this.counts[w]--,delete this._jobs[C]}start(C){var w;return w=0,this._jobs[C]=w,this.counts[w]++}remove(C){var w;return w=this._jobs[C],w!=null&&(this.counts[w]--,delete this._jobs[C]),w!=null}jobStatus(C){var w;return(w=this.status[this._jobs[C]])!=null?w:null}statusJobs(C){var w,F,M,B,U;if(C!=null){if(F=this.status.indexOf(C),F<0)throw new I(`status must be one of ${this.status.join(", ")}`);M=this._jobs,B=[];for(w in M)U=M[w],U===F&&B.push(w);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((C,w,F)=>(C[this.status[F]]=w,C),{})}};var V=G,ge,fe;ge=i,fe=class{constructor(C,w){this.schedule=this.schedule.bind(this),this.name=C,this.Promise=w,this._running=0,this._queue=new ge}isEmpty(){return this._queue.length===0}async _tryToRun(){var C,w,F,M,B,U,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:C,resolve:B,reject:M}=this._queue.shift(),w=await async function(){try{return U=await X(...C),function(){return B(U)}}catch(be){return F=be,function(){return M(F)}}}(),this._running--,this._tryToRun(),w()}schedule(C,...w){var F,M,B;return B=M=null,F=new this.Promise(function(U,X){return B=U,M=X}),this._queue.push({task:C,args:w,resolve:B,reject:M}),this._tryToRun(),F}};var de=fe,te="2.19.5",me={version:te},Oe=Object.freeze({version:te,default:me}),ve=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),ke=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),J=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),ie,Re,Ae,Ee,we,Se;Se=o,ie=l,Ee=ve,Ae=ke,we=J,Re=function(){class Q{constructor(w={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=w,Se.load(this.limiterOptions,this.defaults,this),this.Events=new ie(this),this.instances={},this.Bottleneck=Ce,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Ee(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new Ae(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(w=""){var F;return(F=this.instances[w])!=null?F:(()=>{var M;return M=this.instances[w]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${w}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",M,w),M})()}async deleteKey(w=""){var F,M;return M=this.instances[w],this.connection&&(F=await this.connection.__runCommand__(["del",...we.allKeys(`${this.id}-${w}`)])),M!=null&&(delete this.instances[w],await M.disconnect()),M!=null||F>0}limiters(){var w,F,M,B;F=this.instances,M=[];for(w in F)B=F[w],M.push({key:w,limiter:B});return M}keys(){return Object.keys(this.instances)}async clusterKeys(){var w,F,M,B,U,X,be,je,Be;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],w=null,Be=`b_${this.id}-`.length,F=9;w!==0;)for([je,M]=await this.connection.__runCommand__(["scan",w??0,"match",`b_${this.id}-*_settings`,"count",1e4]),w=~~je,B=0,be=M.length;B<be;B++)U=M[B],X.push(U.slice(Be,-F));return X}_startAutoCleanup(){var w;return clearInterval(this.interval),typeof(w=this.interval=setInterval(async()=>{var F,M,B,U,X,be;X=Date.now(),B=this.instances,U=[];for(M in B){be=B[M];try{await be._store.__groupCheck__(X)?U.push(this.deleteKey(M)):U.push(void 0)}catch(je){F=je,U.push(be.Events.trigger("error",F))}}return U},this.timeout/2)).unref=="function"?w.unref():void 0}updateSettings(w={}){if(Se.overwrite(w,this.defaults,this),Se.overwrite(w,w,this.limiterOptions),w.timeout!=null)return this._startAutoCleanup()}disconnect(w=!0){var F;if(!this.sharedConnection)return(F=this.connection)!=null?F.disconnect(w):void 0}}return Q.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},Q}.call(e);var ce=Re,oe,_e,Fe;Fe=o,_e=l,oe=function(){class Q{constructor(w={}){this.options=w,Fe.load(this.options,this.defaults,this),this.Events=new _e(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((w,F)=>this._resolve=w)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(w){var F;return this._arr.push(w),F=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),F}}return Q.prototype.defaults={maxTime:null,maxSize:null,Promise},Q}.call(e);var at=oe,$t=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Xr=t(Oe),Zr,lo,le,Nt,ct,et,wt,lt,ut,Rt,_t,Br=[].splice;et=10,lo=5,_t=o,wt=p,Nt=D,ct=H,lt=$t,le=l,ut=V,Rt=de,Zr=function(){class Q{constructor(w={},...F){var M,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(w,F),_t.load(w,this.instanceDefaults,this),this._queues=new wt(et),this._scheduled={},this._states=new ut(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new le(this),this._submitLock=new Rt("submit",this.Promise),this._registerLock=new Rt("register",this.Promise),B=_t.load(w,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return M=_t.load(w,this.redisStoreDefaults,{}),new lt(this,B,M);if(this.datastore==="local")return M=_t.load(w,this.localStoreDefaults,{}),new ct(this,B,M);throw new Q.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var U;return(U=this._store.heartbeat)!=null&&typeof U.ref=="function"?U.ref():void 0}),this._queues.on("zero",()=>{var U;return(U=this._store.heartbeat)!=null&&typeof U.unref=="function"?U.unref():void 0})}_validateOptions(w,F){if(!(w!=null&&typeof w=="object"&&F.length===0))throw new Q.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(w){return this._store.__publish__(w)}disconnect(w=!0){return this._store.__disconnect__(w)}chain(w){return this._limiter=w,this}queued(w){return this._queues.queued(w)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(w){return this._states.jobStatus(w)}jobs(w){return this._states.statusJobs(w)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(w=1){return this._store.__check__(w)}_clearGlobalState(w){return this._scheduled[w]!=null?(clearTimeout(this._scheduled[w].expiration),delete this._scheduled[w],!0):!1}async _free(w,F,M,B){var U,X;try{if({running:X}=await this._store.__free__(w,M.weight),this.Events.trigger("debug",`Freed ${M.id}`,B),X===0&&this.empty())return this.Events.trigger("idle")}catch(be){return U=be,this.Events.trigger("error",U)}}_run(w,F,M){var B,U,X;return F.doRun(),B=this._clearGlobalState.bind(this,w),X=this._run.bind(this,w,F),U=this._free.bind(this,w,F),this._scheduled[w]={timeout:setTimeout(()=>F.doExecute(this._limiter,B,X,U),M),expiration:F.options.expiration!=null?setTimeout(function(){return F.doExpire(B,X,U)},M+F.options.expiration):void 0,job:F}}_drainOne(w){return this._registerLock.schedule(()=>{var F,M,B,U,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:U,args:F}=B=X.first(),w!=null&&U.weight>w?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${U.id}`,{args:F,options:U}),M=this._randomIndex(),this._store.__register__(M,U.weight,U.expiration).then(({success:be,wait:je,reservoir:Be})=>{var Zt;return this.Events.trigger("debug",`Drained ${U.id}`,{success:be,args:F,options:U}),be?(X.shift(),Zt=this.empty(),Zt&&this.Events.trigger("empty"),Be===0&&this.Events.trigger("depleted",Zt),this._run(M,B,je),this.Promise.resolve(U.weight)):this.Promise.resolve(null)})))})}_drainAll(w,F=0){return this._drainOne(w).then(M=>{var B;return M!=null?(B=w!=null?w-M:w,this._drainAll(B,F+M)):this.Promise.resolve(F)}).catch(M=>this.Events.trigger("error",M))}_dropAllQueued(w){return this._queues.shiftAll(function(F){return F.doDrop({message:w})})}stop(w={}){var F,M;return w=_t.load(w,this.stopDefaults),M=B=>{var U;return U=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===B},new this.Promise((X,be)=>U()?X():this.on("done",()=>{if(U())return this.removeAllListeners("done"),X()}))},F=w.dropWaitingJobs?(this._run=function(B,U){return U.doDrop({message:w.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var B,U,X;U=this._scheduled;for(B in U)X=U[B],this.jobStatus(X.job.options.id)==="RUNNING"&&(clearTimeout(X.timeout),clearTimeout(X.expiration),X.job.doDrop({message:w.dropErrorMessage}));return this._dropAllQueued(w.dropErrorMessage),M(0)}))):this.schedule({priority:et-1,weight:0},()=>M(1)),this._receive=function(B){return B._reject(new Q.prototype.BottleneckError(w.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new Q.prototype.BottleneckError("stop() has already been called")),F}async _addToQueue(w){var F,M,B,U,X,be,je;({args:F,options:U}=w);try{({reachedHWM:X,blocked:M,strategy:je}=await this._store.__submit__(this.queued(),U.weight))}catch(Be){return B=Be,this.Events.trigger("debug",`Could not queue ${U.id}`,{args:F,options:U,error:B}),w.doDrop({error:B}),!1}return M?(w.doDrop(),!0):X&&(be=je===Q.prototype.strategy.LEAK?this._queues.shiftLastFrom(U.priority):je===Q.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(U.priority+1):je===Q.prototype.strategy.OVERFLOW?w:void 0,be?.doDrop(),be==null||je===Q.prototype.strategy.OVERFLOW)?(be==null&&w.doDrop(),X):(w.doQueue(X,M),this._queues.push(w),await this._drainAll(),X)}_receive(w){return this._states.jobStatus(w.options.id)!=null?(w._reject(new Q.prototype.BottleneckError(`A job with the same id already exists (id=${w.options.id})`)),!1):(w.doReceive(),this._submitLock.schedule(this._addToQueue,w))}submit(...w){var F,M,B,U,X,be,je;return typeof w[0]=="function"?(X=w,[M,...w]=X,[F]=Br.call(w,-1),U=_t.load({},this.jobDefaults)):(be=w,[U,M,...w]=be,[F]=Br.call(w,-1),U=_t.load(U,this.jobDefaults)),je=(...Be)=>new this.Promise(function(Zt,yr){return M(...Be,function(...Ve){return(Ve[0]!=null?yr:Zt)(Ve)})}),B=new Nt(je,w,U,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),B.promise.then(function(Be){return typeof F=="function"?F(...Be):void 0}).catch(function(Be){return Array.isArray(Be)?typeof F=="function"?F(...Be):void 0:typeof F=="function"?F(Be):void 0}),this._receive(B)}schedule(...w){var F,M,B;return typeof w[0]=="function"?([B,...w]=w,M={}):[M,B,...w]=w,F=new Nt(B,w,M,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(F),F.promise}wrap(w){var F,M;return F=this.schedule.bind(this),M=function(...B){return F(w.bind(this),...B)},M.withOptions=function(B,...U){return F(B,w,...U)},M}async updateSettings(w={}){return await this._store.__updateSettings__(_t.overwrite(w,this.storeDefaults)),_t.overwrite(w,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(w=0){return this._store.__incrementReservoir__(w)}}return Q.default=Q,Q.Events=le,Q.version=Q.prototype.version=Xr.version,Q.strategy=Q.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},Q.BottleneckError=Q.prototype.BottleneckError=f,Q.Group=Q.prototype.Group=ce,Q.RedisConnection=Q.prototype.RedisConnection=ve,Q.IORedisConnection=Q.prototype.IORedisConnection=ke,Q.Batcher=Q.prototype.Batcher=at,Q.prototype.jobDefaults={priority:lo,weight:1,expiration:null,id:"<no-id>"},Q.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:Q.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},Q.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},Q.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},Q.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},Q.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},Q}.call(e);var Ce=Zr,Le=Ce;return Le})});var qm=Ef(ma=>{"use strict";Object.defineProperty(ma,"__esModule",{value:!0});ma.format=qP;ma.parse=KP;var WP=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,Nm=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,HP=/[\\"]/g,UP=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Gm=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function qP(e){let{type:t,parameters:r}=e;if(!t||!UP.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!Nm.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${YP(r[o])}`}return n}function KP(e,t){let r=e.length,n=mc(e,0,r),o=n;n=hc(e,n,r);let s=bc(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new Gm:JP(e,n,r);return{type:i,parameters:a}}var Wm=32,Hm=9,Um=59,VP=61,$m=34,zP=92;function JP(e,t,r){let n=new Gm;e:for(;t<r;){t=mc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===Um)continue e;if(s===VP){let i=bc(e,o,t),a=e.slice(o,i).toLowerCase();if(t=mc(e,t+1,r),t<r&&e.charCodeAt(t)===$m){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===$m){t=hc(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===zP&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=hc(e,t,r),n[a]===void 0){let d=bc(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function hc(e,t,r){for(;t<r&&e.charCodeAt(t)!==Um;)t++;return t}function mc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==Wm&&n!==Hm)break;t++}return t}function bc(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==Wm&&n!==Hm)break;r--}return r}function YP(e){if(Nm.test(e))return e;if(WP.test(e))return`"${e.replace(HP,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as Vj}from"node:child_process";import{homedir as Ti}from"node:os";import{join as Ml}from"node:path";var go=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},Cn=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function q(e,t){return new go(e,t)}function Te(e,t){return new Cn(e,t)}function ho(e){return e instanceof Cn?e:e instanceof go?new Cn(e.line,e.reason):new Cn(0,String(e&&e.message?e.message:e))}var vf=["type","kind","event"],On="|",Sf=new Set(["order","discriminator","rows","common"]);var ze=",";function Gi(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 wr(e){return q(e,"invalid quoted string")}function Ut(e,t){if(e==="")return"";if(e.startsWith('"'))return Af(e,t);if(e.includes('"'))throw wr(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:Ox(e)?Number(e):e}function tr(e,t){let r=e.trim();if(r.startsWith('"'))return[Af(r,t),!0];if(r.includes('"')||/\s/.test(r))throw q(t,"expected non-empty field name");return[r,!1]}var Tf=/["\\\u0000-\u0008\u000a-\u001f]/g;function Af(e,t){if(e.charCodeAt(0)!==34)throw wr(t);let r="",n=1;for(;n<e.length;){Tf.lastIndex=n;let o=Tf.exec(e);if(o===null)break;if(o[0]==='"'){if(e.slice(o.index+1).trim()==="")return r+e.slice(n,o.index);throw wr(t)}if(o[0]!=="\\")throw wr(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 wr(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw wr(t);r+=String.fromCharCode(a),n+=4;break}default:throw wr(t)}}throw wr(t)}function Cf(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 wr(r);t=o+2;continue}if(n===-1)throw wr(r);return n+1}}function rr(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=Cf(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function Et(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=Cf(e,o+1,r)}return-1}function Ox(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Dx(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Fx(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw q(0,"number is not representable in TOON");return String(e)}function Rr(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function vt(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return Fx(e);if(typeof e=="string")return Mx(e,t);throw q(0,"not a primitive")}function Ix(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ft(e){return Ix(e)?e:Wi(e)}function Mx(e,t){return Ul(e,t)?Wi(e):e}function Ul(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||Dx(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}var Pf=/["\\\u0000-\u001f]/g;function Wi(e){let t='"',r=0;Pf.lastIndex=0;let n;for(;(n=Pf.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 nr(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function nt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Of(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 Df(e,t){let r=[],n=!1;return Gi(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 q(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw q(i,"invalid indentation");let l=Math.floor(a/t.indent);_r(l,i,t),r.push({number:i,depth:l,content:o.slice(a),blankBefore:n}),n=!1}),r}function _r(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw q(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function us(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,_r(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}function Mf(e){if(!nt(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=Lx(n,1);if(o===void 0)return e;nr(t,r,o)}return t}function Lx(e,t){if(!nt(e)||!jx(e))return;let{order:r,discriminator:n,rows:o}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(o)||o<0)throw mt(t);let s=Bx(r,o,t),i=e.common,a=i===void 0?Array.from({length:o},()=>({})):i;if(!Array.isArray(a)||a.length!==o||!a.every(nt))throw Lf(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!Sf.has(u)){if(!Array.isArray(p)||!p.every(nt))throw mt(t);l.set(u,p)}if(l.size===0)throw mt(t);let d=new Map,c=s.map((u,p)=>{let g=l.get(u);if(g===void 0)throw ql(t);let f=d.get(u)??0,k=g[f];if(k===void 0)throw ql(t);return d.set(u,f+1),$x(n,u,a[p],k,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw ql(t);return c}function jx(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function Bx(e,t,r){if(!e.startsWith("cycle("))throw mt(r);let n=e.slice(6),o=n.indexOf(")*");if(o===-1)throw mt(r);let s=n.slice(0,o),i=n.slice(o+2);if(s===""||i.includes("+tail("))throw mt(r);let a=s.split(",").map(c=>Hx(c,r));if(a.some(c=>c===""))throw mt(r);let l=Wx(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw mt(r);if(d!==t)throw Lf(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function $x(e,t,r,n,o){let s={};nr(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw mt(o);nr(s,i,a)}for(let[i,a]of Object.entries(Nx(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw mt(o);nr(s,i,a)}return s}function Nx(e,t){let r={};for(let[n,o]of Object.entries(e))Gx(r,n.split("."),o,t);return Hi(r,t)}function Gx(e,t,r,n){if(t.some(s=>s===""))throw mt(n);let o=e;for(let s=0;s<t.length;s+=1){let i=t[s];if(s===t.length-1){o[i]=r;return}if(o[i]??={},o=o[i],!nt(o))throw mt(n)}}function Hi(e,t){return Array.isArray(e)?e.map(r=>Hi(r,t)):nt(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw mt(t);return Hi(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Hi(n,t)])):e}function Wx(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw mt(t);let r=Number(e);if(!Number.isSafeInteger(r))throw mt(t);return r}function Hx(e,t){try{return decodeURIComponent(e)}catch{throw mt(t)}}function Ff(e){return encodeURIComponent(e)}function mt(e){return q(e,"invalid cyclic array wire")}function Lf(e){return q(e,"cyclic array length mismatch")}function ql(e){return q(e,"cyclic array group length mismatch")}function jf(e){if(!nt(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[o,s]of t){let i=Ux(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)zx(n,o,s);return n.join("")}function Ux(e){if(!Array.isArray(e)||e.length===0||!e.every(nt))return;let t=qx(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=Kx(r);if(n===void 0)return;let o=Vx(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)&&!Kl(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=Yx(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 qx(e){return vf.find(t=>e.every(r=>typeof r[t]=="string"))}function Kx(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(Ff).join(","),s=`cycle(${r.map(Ff).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function Vx(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(!Jx(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>Rr(i[s])))break;r.push(s)}return r}function zx(e,t,r){e.push(ft(t),`:
|
|
9
|
+
`),e.push(" order: ",vt(r.order.encoded,On),`
|
|
10
|
+
`),e.push(" discriminator: ",vt(r.discriminator,On),`
|
|
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=>vt(o[s],
|
|
14
|
-
`)}function Bx(e){return e!==""&&Wl(e)}function Nl(e,t,r,n=new Set){if(!Wl(t))return!1;if(yr(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)=>Nl(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(".")&&Nl(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function $x(e){let t=Object.keys(e[0]??{});if(e.every(r=>Gx(Object.keys(r),t)))return t.every(Wl)?t:void 0}function Gx(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Wl(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function mo(e,t){let r=e[t]??e[e.length-1];return q(r===void 0?1:r.number,"array length mismatch")}function $i(e,t){if(t===-1)throw q(0,"array header missing colon");let r=e.slice(0,t),n=Et(r,"[",0);if(n===-1)throw q(0,"invalid array header");let o,s;try{[o,s]=Zt(r.slice(0,n),0)}catch{throw q(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw q(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 q(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 q(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=Wx(p.slice(1,-1),u),g=Ul(f)}catch(k){throw q(0,k.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw q(0,"invalid array header");return{key:o,keyQuoted:s,len:c,delimiter:u,fields:g,fieldTree:f}}function If(e){let t=Et(e,"{",0);if(t===-1||!e.endsWith("}"))throw q(0,"invalid keyed map header");let r,n;try{[r,n]=Zt(e.slice(0,t),0)}catch{throw q(0,"invalid keyed map header")}if(r===""&&!n)throw q(0,"expected non-empty field name");let o=e.slice(t+1,-1),s=ze;(o.startsWith("|")||o.startsWith(" "))&&(s=o[0],o=o.slice(1));let i;try{i=Nx(o,s,s)}catch(a){throw q(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:s,fields:i}}function Nx(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 q(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]=Zt(e.slice(u,o),0);if(p===""&&!g)throw q(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 q(0,"invalid array header");let k=e.slice(f,o);if(!Mf(k,r))throw q(0,"invalid array header");o+=1,n.push({path:[...l,p],listDelimiter:k})}else if(e[o]==="{"){o+=1;let f=n.length;if(s([...l,p],!0),e[o]!=="}"||n.length===f)throw q(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 q(0,"invalid array header");continue}if(d?e[o]==="}":o===e.length)break;throw q(0,"invalid array header")}if(c===0)throw q(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 q(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(Lf(n[l].path,n[d].path)||cs(n[l].path,n[d].path)||cs(n[d].path,n[l].path))throw q(0,"duplicate key");for(let l of n){let c=l.path.join("\0");if(a.has(c))throw q(0,"duplicate key");a.add(c)}return n}function Wx(e,t){if(t!==ze&&e.includes(ze)&&(e.includes("[")||e.includes("{")))return Hl(e,ze,t);try{return Hl(e,t,t)}catch(r){if(t!==ze&&r.reason!=="duplicate key")return Hl(e,ze,t);throw r}}function Hl(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 q(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]=Zt(e.slice(c,n),0);if(u===""&&!p)throw q(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 q(0,"invalid array header");let k=e.slice(f,n);n+=1;let b=Hx(k);if(b!==void 0){if(b.delimiter!==r)throw q(0,"invalid array header");g.fixedLength=b.len,g.fixedDelimiter=b.delimiter}else if(Mf(k,r))g.listDelimiter=k;else throw q(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=o(!0),e[n]!=="}"||g.children.length===0)throw q(0,"invalid array header");n+=1}if(d.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw q(0,"invalid array header");continue}if(l?e[n]==="}":n===e.length)break;throw q(0,"invalid array header")}if(d.length===0)throw q(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 q(0,"invalid array header");let a=Ul(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(Lf(a[l].path,a[d].path)||cs(a[l].path,a[d].path)||cs(a[d].path,a[l].path))throw q(0,"duplicate key");return i}function Hx(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=ze;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function Ul(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?Ul(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function Gi(e,t,r){return e.listDelimiter===void 0?Ut(t,r):er(t,e.listDelimiter,r).map(n=>Ut(n,r))}function Mf(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Lf(e,t){return e.length===t.length&&cs(e,t)}function cs(e,t){return t.every((r,n)=>e[n]===r)}function Ni(e,t){return q(t,e.reason??String(e.message))}function Ct(e,t){let r=Tf(t),n=Pf(e,r),o=n[0];if(o===void 0)return{};if(o.depth!==0)throw q(o.number,"invalid indentation");let s=n.length===1;if(s&&o.content.trim()==="[]")return[];if(o.content.startsWith("[")){ds(o.content,o.number,r);let d;try{d=$i(o.content,Et(o.content,":",o.number))}catch(c){if(r.strict)throw Ni(c,o.number);d=void 0}if(d!==void 0)return Kx(d,n,r)}if(s&&Et(o.content,":",o.number)===-1)return Ut(o.content.trim(),o.number);let i={index:0},a=Kl(n,i,0,r),l=n[i.index];if(l!==void 0)throw q(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Of(a):a}function Kl(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 q(s.number,"invalid indentation");let{key:i,quoted:a,value:l}=Ux(e,t,r,n);Hf(o,i,a,l,n,s.number)}return o}function Ux(e,t,r,n){let o=e[t.index],s=o.content,i=Et(s,":",o.number);if(i===-1)throw q(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=Et(a,"[",o.number),c=Et(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){ds(a,o.number,n);let f;try{f=If(a)}catch(b){if(n.strict)throw Ni(b,o.number);t.index+=1;let v=ql(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:v}}if(l.trim()!=="")throw q(o.number,"expected keyed map rows");let k=qx(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:k}}if(d!==-1){ds(a,o.number,n);let f;try{f=$i(a,i)}catch(b){if(n.strict)throw Ni(b,o.number);t.index+=1;let v=ql(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:v}}if(f.key===""&&!f.keyQuoted)throw q(o.number,"expected non-empty field name");let k=Vl(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:k}}let[u,p]=Zt(a,o.number);if(u===""&&!p)throw q(o.number,"expected non-empty field name");t.index+=1;let g=ql(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function ql(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?Kl(e,t,r+1,s):{}}function qx(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 q(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw q(i.number,"blank line inside keyed map");let a=Et(i.content,":",i.number);if(a===-1)throw q(i.number,"expected `key: value`");let[l,d]=Zt(i.content.slice(0,a),i.number);if(l===""&&!d)throw q(i.number,"expected non-empty field name");let c=er(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw q(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{yo(u,p.path,Gi(p,c[g],i.number),o,i.number)}),Hf(s,l,d,u,o,i.number),r.index+=1}return s}function Kx(e,t,r){let n=t[0],o=Et(n.content,":",n.number);if(o===-1)throw q(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=Vl(e,s,t,i,0,r),l=t[i.index];if(l!==void 0)throw q(l.number,"expected end of document");return a}function Vl(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 q(i,"expected tabular rows");return Vx(e,e.fields,r,n,o+1,s)}if(a!==""){let l=er(a,e.delimiter,i).map(d=>Ut(d,i));if(l.length!==e.len)throw q(i,"array length mismatch");return l}return eE(e,r,n,o+1,s)}function Vx(e,t,r,n,o,s){if(e.fieldTree!==void 0&&Xx(e.fieldTree))return zx(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw mo(r,n.index);if(l.depth<o)break;if(l.depth>o)throw q(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw q(l.number,"blank line inside array");if(!bo(l.content,e.delimiter,l.number))break;let d=er(l.content,e.delimiter,l.number);if(d.length!==t.length)throw q(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{yo(c,u.path,Gi(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw mo(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&bo(a.content,e.delimiter,a.number))throw q(a.number,"array length mismatch");return i}function zx(e,t,r,n,o){return jf(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function jf(e,t,r,n,o,s,i,a){let l=[],d=$f(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw mo(n,o.index);if(u.depth<s)break;if(u.depth>s)throw q(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw q(u.number,"blank line inside array");if(!bo(u.content,r,u.number))break;let p=er(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Wi(t),childTableFields:d},f=Bf(t,p,u.number,n,g,s+1,r,i);if(g.cellIndex!==p.length)throw q(u.number,"array row length mismatch");l.push(Qx(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw mo(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&bo(c.content,r,c.number))throw q(c.number,"array length mismatch");return l}function Bf(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=Jx(d,u,t,r,n,o,s,i,a);yo(l,[d.key],p,a,r)}),l}function Jx(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){if(s.cellIndex+e.fixedLength>r.length)throw q(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=Wi(e.children),u=r[s.cellIndex],p=Nf(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],k=f!==void 0&&f.depth===i,b=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(b===void 0?p!==void 0&&(k||r.length!==s.flatWidth&&g<c+Zx(t)):b){if(p===void 0)throw q(n,"array row length mismatch");return s.cellIndex+=1,jf(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return Bf(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw q(n,"array row length mismatch");return s.cellIndex+=1,Gi(e,d,n)}function $f(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=Gf(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 Gf(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||!bo(p.content,n,p.number))return;let g=er(p.content,n,p.number),f=Yx(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&&bo(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function Yx(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=Nf(r[l]);if(p===void 0)return;l+=1;let g=$f(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=Gf(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Wi(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function Qx(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function Nf(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function Xx(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Wi(e){return e.reduce((t,r)=>t+Wf(r),0)}function Wf(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Wi(e.children):1}function Zx(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Wf(r),0)}function bo(e,t,r){let n=Et(e,":",r);if(n===-1)return!0;let o=Et(e,t,r);return o===-1?!1:o<n}function eE(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 mo(t,r.index);if(a.depth>n)throw q(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw q(a.number,"blank line inside array");s.push(tE(t,r,n,o))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw q(i.number,"array length mismatch");return s}function tE(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw q(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=Et(s,":",o.number);ds(s,o.number,n);let a;try{a=$i(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return Vl(a,l,e,t,r,n)}}if(Et(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 Kl(i,{index:0},r+1,n)}return t.index+=1,Ut(s,o.number)}function Hf(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(rE)){yo(e,i,n,o,s);return}}yo(e,[t],n,o,s)}function yo(e,t,r,n,o){kr(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 q(o,"duplicate key");tr(e,s,r);return}if(i&&!rt(e[s])){if(n.strict)throw q(o,"path expansion conflict");tr(e,s,{})}else i||tr(e,s,{});yo(e[s],t.slice(1),r,n,o)}function rE(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function nt(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??ze;if(![ze,"|"," "].includes(n))throw q(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=Ff(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?Ql(s,void 0,e,0,!1,o):rt(e)?Uf(s,e,0,o):s.push(vt(e,n)),s.join("")}function ko(e,t){e.push(" ".repeat(t*2))}function Uf(e,t,r,n){kr(r,0,n);for(let[o,s]of Object.entries(t))ko(e,r),Jl(e,o,s,r,n)}function Jl(e,t,r,n,o){if(kr(n,0,o),Array.isArray(r)){Ql(e,t,r,n,!1,o);return}if(rt(r)){let s=o.keyedMapCollapse?oE(r,o,n+1):void 0;if(s!==void 0){e.push(ft(t),"{",Xl(o.delimiter),s.fields.map(i=>td(i,o.delimiter)).join(o.delimiter),`}:
|
|
15
|
-
`);for(let[i,a]of Object.entries(r)){ko(e,n+1);let l=[];e.push(ft(i),": ",s.paths.map(d=>
|
|
12
|
+
`),r.common.length>0&&If(e,"common",r.common,r.commonRows);for(let n of r.groups)If(e,n.label,n.fields,n.rows)}function If(e,t,r,n){e.push(" ",ft(t),"[",String(n.length),On,"]{",r.map(ft).join(On),`}:
|
|
13
|
+
`);for(let o of n)e.push(" ",r.map(s=>vt(o[s],On)).join(On),`
|
|
14
|
+
`)}function Jx(e){return e!==""&&Vl(e)}function Kl(e,t,r,n=new Set){if(!Vl(t))return!1;if(Rr(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)=>Kl(s,`${t}.${i}`,r,n));return n.delete(e),o}if(nt(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&Kl(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function Yx(e){let t=Object.keys(e[0]??{});if(e.every(r=>Qx(Object.keys(r),t)))return t.every(Vl)?t:void 0}function Qx(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Vl(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function mo(e,t){let r=e[t]??e[e.length-1];return q(r===void 0?1:r.number,"array length mismatch")}function Ui(e,t){if(t===-1)throw q(0,"array header missing colon");let r=e.slice(0,t),n=Et(r,"[",0);if(n===-1)throw q(0,"invalid array header");let o,s;try{[o,s]=tr(r.slice(0,n),0)}catch{throw q(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw q(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 q(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 q(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=Zx(p.slice(1,-1),u),g=Jl(f)}catch(k){throw q(0,k.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw q(0,"invalid array header");return{key:o,keyQuoted:s,len:c,delimiter:u,fields:g,fieldTree:f}}function Bf(e){let t=Et(e,"{",0);if(t===-1||!e.endsWith("}"))throw q(0,"invalid keyed map header");let r,n;try{[r,n]=tr(e.slice(0,t),0)}catch{throw q(0,"invalid keyed map header")}if(r===""&&!n)throw q(0,"expected non-empty field name");let o=e.slice(t+1,-1),s=ze;(o.startsWith("|")||o.startsWith(" "))&&(s=o[0],o=o.slice(1));let i;try{i=Xx(o,s,s)}catch(a){throw q(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:s,fields:i}}function Xx(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 q(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]=tr(e.slice(u,o),0);if(p===""&&!g)throw q(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 q(0,"invalid array header");let k=e.slice(f,o);if(!$f(k,r))throw q(0,"invalid array header");o+=1,n.push({path:[...l,p],listDelimiter:k})}else if(e[o]==="{"){o+=1;let f=n.length;if(s([...l,p],!0),e[o]!=="}"||n.length===f)throw q(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 q(0,"invalid array header");continue}if(d?e[o]==="}":o===e.length)break;throw q(0,"invalid array header")}if(c===0)throw q(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 q(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(Nf(n[l].path,n[d].path)||ps(n[l].path,n[d].path)||ps(n[d].path,n[l].path))throw q(0,"duplicate key");for(let l of n){let c=l.path.join("\0");if(a.has(c))throw q(0,"duplicate key");a.add(c)}return n}function Zx(e,t){if(t!==ze&&e.includes(ze)&&(e.includes("[")||e.includes("{")))return zl(e,ze,t);try{return zl(e,t,t)}catch(r){if(t!==ze&&r.reason!=="duplicate key")return zl(e,ze,t);throw r}}function zl(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 q(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]=tr(e.slice(c,n),0);if(u===""&&!p)throw q(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 q(0,"invalid array header");let k=e.slice(f,n);n+=1;let b=eE(k);if(b!==void 0){if(b.delimiter!==r)throw q(0,"invalid array header");g.fixedLength=b.len,g.fixedDelimiter=b.delimiter}else if($f(k,r))g.listDelimiter=k;else throw q(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=o(!0),e[n]!=="}"||g.children.length===0)throw q(0,"invalid array header");n+=1}if(d.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw q(0,"invalid array header");continue}if(l?e[n]==="}":n===e.length)break;throw q(0,"invalid array header")}if(d.length===0)throw q(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 q(0,"invalid array header");let a=Jl(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(Nf(a[l].path,a[d].path)||ps(a[l].path,a[d].path)||ps(a[d].path,a[l].path))throw q(0,"duplicate key");return i}function eE(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=ze;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function Jl(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?Jl(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function qi(e,t,r){return e.listDelimiter===void 0?Ut(t,r):rr(t,e.listDelimiter,r).map(n=>Ut(n,r))}function $f(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Nf(e,t){return e.length===t.length&&ps(e,t)}function ps(e,t){return t.every((r,n)=>e[n]===r)}function Ki(e,t){return q(t,e.reason??String(e.message))}function Ct(e,t){let r=Of(t),n=Df(e,r),o=n[0];if(o===void 0)return{};if(o.depth!==0)throw q(o.number,"invalid indentation");let s=n.length===1;if(s&&o.content.trim()==="[]")return[];if(o.content.startsWith("[")){us(o.content,o.number,r);let d;try{d=Ui(o.content,Et(o.content,":",o.number))}catch(c){if(r.strict)throw Ki(c,o.number);d=void 0}if(d!==void 0)return nE(d,n,r)}if(s&&Et(o.content,":",o.number)===-1)return Ut(o.content.trim(),o.number);let i={index:0},a=Ql(n,i,0,r),l=n[i.index];if(l!==void 0)throw q(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Mf(a):a}function Ql(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 q(s.number,"invalid indentation");let{key:i,quoted:a,value:l}=tE(e,t,r,n);Vf(o,i,a,l,n,s.number)}return o}function tE(e,t,r,n){let o=e[t.index],s=o.content,i=Et(s,":",o.number);if(i===-1)throw q(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=Et(a,"[",o.number),c=Et(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){us(a,o.number,n);let f;try{f=Bf(a)}catch(b){if(n.strict)throw Ki(b,o.number);t.index+=1;let v=Yl(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:v}}if(l.trim()!=="")throw q(o.number,"expected keyed map rows");let k=rE(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:k}}if(d!==-1){us(a,o.number,n);let f;try{f=Ui(a,i)}catch(b){if(n.strict)throw Ki(b,o.number);t.index+=1;let v=Yl(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:v}}if(f.key===""&&!f.keyQuoted)throw q(o.number,"expected non-empty field name");let k=Xl(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:k}}let[u,p]=tr(a,o.number);if(u===""&&!p)throw q(o.number,"expected non-empty field name");t.index+=1;let g=Yl(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function Yl(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?Ql(e,t,r+1,s):{}}function rE(e,t,r,n,o){let s={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw q(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw q(i.number,"blank line inside keyed map");let a=Et(i.content,":",i.number);if(a===-1)throw q(i.number,"expected `key: value`");let[l,d]=tr(i.content.slice(0,a),i.number);if(l===""&&!d)throw q(i.number,"expected non-empty field name");let c=rr(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw q(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{yo(u,p.path,qi(p,c[g],i.number),o,i.number)}),Vf(s,l,d,u,o,i.number),r.index+=1}return s}function nE(e,t,r){let n=t[0],o=Et(n.content,":",n.number);if(o===-1)throw q(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=Xl(e,s,t,i,0,r),l=t[i.index];if(l!==void 0)throw q(l.number,"expected end of document");return a}function Xl(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 q(i,"expected tabular rows");return oE(e,e.fields,r,n,o+1,s)}if(a!==""){let l=rr(a,e.delimiter,i).map(d=>Ut(d,i));if(l.length!==e.len)throw q(i,"array length mismatch");return l}return uE(e,r,n,o+1,s)}function oE(e,t,r,n,o,s){if(e.fieldTree!==void 0&&dE(e.fieldTree))return sE(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw mo(r,n.index);if(l.depth<o)break;if(l.depth>o)throw q(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw q(l.number,"blank line inside array");if(!bo(l.content,e.delimiter,l.number))break;let d=rr(l.content,e.delimiter,l.number);if(d.length!==t.length)throw q(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{yo(c,u.path,qi(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw mo(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&bo(a.content,e.delimiter,a.number))throw q(a.number,"array length mismatch");return i}function sE(e,t,r,n,o){return Gf(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function Gf(e,t,r,n,o,s,i,a){let l=[],d=Hf(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw mo(n,o.index);if(u.depth<s)break;if(u.depth>s)throw q(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw q(u.number,"blank line inside array");if(!bo(u.content,r,u.number))break;let p=rr(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Vi(t),childTableFields:d},f=Wf(t,p,u.number,n,g,s+1,r,i);if(g.cellIndex!==p.length)throw q(u.number,"array row length mismatch");l.push(lE(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw mo(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&bo(c.content,r,c.number))throw q(c.number,"array length mismatch");return l}function Wf(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=iE(d,u,t,r,n,o,s,i,a);yo(l,[d.key],p,a,r)}),l}function iE(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){if(s.cellIndex+e.fixedLength>r.length)throw q(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=Vi(e.children),u=r[s.cellIndex],p=qf(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],k=f!==void 0&&f.depth===i,b=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(b===void 0?p!==void 0&&(k||r.length!==s.flatWidth&&g<c+cE(t)):b){if(p===void 0)throw q(n,"array row length mismatch");return s.cellIndex+=1,Gf(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return Wf(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw q(n,"array row length mismatch");return s.cellIndex+=1,qi(e,d,n)}function Hf(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=Uf(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 Uf(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||!bo(p.content,n,p.number))return;let g=rr(p.content,n,p.number),f=aE(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&&bo(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function aE(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=qf(r[l]);if(p===void 0)return;l+=1;let g=Hf(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=Uf(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Vi(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function lE(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function qf(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function dE(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Vi(e){return e.reduce((t,r)=>t+Kf(r),0)}function Kf(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Vi(e.children):1}function cE(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Kf(r),0)}function bo(e,t,r){let n=Et(e,":",r);if(n===-1)return!0;let o=Et(e,t,r);return o===-1?!1:o<n}function uE(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 mo(t,r.index);if(a.depth>n)throw q(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw q(a.number,"blank line inside array");s.push(pE(t,r,n,o))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw q(i.number,"array length mismatch");return s}function pE(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw q(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=Et(s,":",o.number);us(s,o.number,n);let a;try{a=Ui(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return Xl(a,l,e,t,r,n)}}if(Et(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 Ql(i,{index:0},r+1,n)}return t.index+=1,Ut(s,o.number)}function Vf(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(fE)){yo(e,i,n,o,s);return}}yo(e,[t],n,o,s)}function yo(e,t,r,n,o){_r(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 q(o,"duplicate key");nr(e,s,r);return}if(i&&!nt(e[s])){if(n.strict)throw q(o,"path expansion conflict");nr(e,s,{})}else i||nr(e,s,{});yo(e[s],t.slice(1),r,n,o)}function fE(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function ot(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??ze;if(![ze,"|"," "].includes(n))throw q(0,"invalid array header");let o={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(o.cyclicDiscriminatedArrays){let i=jf(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?rd(s,void 0,e,0,!1,o):nt(e)?zf(s,e,0,o):s.push(vt(e,n)),s.join("")}function ko(e,t){e.push(" ".repeat(t*2))}function zf(e,t,r,n){_r(r,0,n);for(let[o,s]of Object.entries(t))ko(e,r),ed(e,o,s,r,n)}function ed(e,t,r,n,o){if(_r(n,0,o),Array.isArray(r)){rd(e,t,r,n,!1,o);return}if(nt(r)){let s=o.keyedMapCollapse?hE(r,o,n+1):void 0;if(s!==void 0){e.push(ft(t),"{",nd(o.delimiter),s.fields.map(i=>id(i,o.delimiter)).join(o.delimiter),`}:
|
|
15
|
+
`);for(let[i,a]of Object.entries(r)){ko(e,n+1);let l=[];e.push(ft(i),": ",s.paths.map(d=>ad(sd(a,d.path),d,o.delimiter,o,l,n+2)).join(o.delimiter),`
|
|
16
16
|
`),e.push(...l)}return}e.push(ft(t),`:
|
|
17
|
-
`),
|
|
18
|
-
`)}function
|
|
17
|
+
`),zf(e,r,n+1,o);return}e.push(ft(t),": ",vt(r,o.delimiter),`
|
|
18
|
+
`)}function rd(e,t,r,n,o,s){if(_r(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){ko(e,n+1);let l=[];e.push(i.paths.map(d=>
|
|
24
|
-
`),e.push(...l)}return}
|
|
25
|
-
`);for(let a of r)ko(e,n+1),
|
|
26
|
-
`);return}e.push("- "),
|
|
27
|
-
`)}function
|
|
28
|
-
`),e.push(...i)}}function
|
|
29
|
-
`}function
|
|
30
|
-
`}function
|
|
31
|
-
`,f=()=>
|
|
32
|
-
`;return T+=D,a+=1,l+=1,d+=D.length,T},declareLane(b,v){if(u)throw Te(0,"TOONL encoder is closed");let T=
|
|
33
|
-
`},end(){return u?"":(u=!0,g())}}}function
|
|
21
|
+
`);return}if(r.every(Rr)){Zl(e,t,r.length,void 0,s.delimiter),e.push(" "),e.push(r.map(a=>vt(a,s.delimiter)).join(s.delimiter)),e.push(`
|
|
22
|
+
`);return}let i=o?void 0:Jf(r,s,n+1);if(i!==void 0){Zl(e,t,r.length,i.fields,s.delimiter),e.push(`
|
|
23
|
+
`);for(let a of r){ko(e,n+1);let l=[];e.push(i.paths.map(d=>ad(sd(a,d.path),d,s.delimiter,s,l,n+2)).join(s.delimiter)),e.push(`
|
|
24
|
+
`),e.push(...l)}return}Zl(e,t,r.length,void 0,s.delimiter),e.push(`
|
|
25
|
+
`);for(let a of r)ko(e,n+1),gE(e,a,n+1,s)}function gE(e,t,r,n){if(_r(r,0,n),Array.isArray(t)){e.push("- "),rd(e,void 0,t,r,!0,n);return}if(nt(t)){let o=Object.entries(t);if(o.length===0){e.push(`-
|
|
26
|
+
`);return}e.push("- "),ed(e,o[0][0],o[0][1],r+1,n);for(let[s,i]of o.slice(1))ko(e,r+1),ed(e,s,i,r+1,n);return}e.push("- ",vt(t,n.delimiter),`
|
|
27
|
+
`)}function Zl(e,t,r,n,o){t!==void 0&&e.push(ft(t)),e.push("[",String(r),nd(o),"]"),n!==void 0&&e.push("{",n.map(s=>id(s,o)).join(o),"}"),e.push(":")}function nd(e){return e===ze?"":e}function Jf(e,t,r){let n=mE(e,t);if(n!==void 0)return n;let o=td(e.map(s=>({value:s})),t,r);return o===void 0?void 0:{fields:o,paths:od(o)}}function hE(e,t,r){let n=Object.values(e);if(!(n.length<2))return Jf(n,t,r)}function td(e,t,r){_r(r,0,t);let n=e[0]?.value;if(!nt(n))return;let o=Object.keys(n).map(s=>({key:s}));if(o.length!==0){for(let{value:s}of e)if(!nt(s)||Object.keys(s).length!==o.length||o.some(a=>!Object.prototype.hasOwnProperty.call(s,a.key)))return;for(let s of o){let i=e.map(({value:l})=>({value:l[s.key]}));if(i.every(({value:l})=>Rr(l)))continue;if(t.primitiveArrayColumns&&i.every(({value:l})=>Array.isArray(l)&&l.every(Rr))){s.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:l})=>Array.isArray(l))){let l=Yf(i.map(({value:c})=>c));if(l!==void 0){s.fixedLength=l.fixedLength,s.fixedDelimiter=t.delimiter;continue}let d=td(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=td(i,t,r+1);if(a===void 0)return;s.children=a}return o}}function mE(e,t){if(!t.objectArrayColumns)return;let r=Yf(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function Yf(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(Rr)))return{fixedLength:t}}function od(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}]:od(r.children,n)})}function sd(e,t){let r=e;for(let n of t)r=r[n];return r}function id(e,t){return e.listDelimiter!==void 0?`${ft(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ft(e.key)}[${e.fixedLength}${nd(t)}]`:e.children===void 0?ft(e.key):`${ft(e.key)}{${e.children.map(r=>id(r,t)).join(t)}}`}function ad(e,t,r,n,o,s){return t.childFields!==void 0?(bE(o,e,t.childFields,n,s),String(e.length)):t.fixedLength!==void 0?e.map(i=>vt(i,r)).join(r):t.listDelimiter===void 0?vt(e,r):e.map(i=>yE(i,r,t.listDelimiter)).join(t.listDelimiter)}function bE(e,t,r,n,o){for(let s of t){ko(e,o);let i=[];e.push(od(r).map(a=>ad(sd(s,a.path),a,n.delimiter,n,i,o+1)).join(n.delimiter)),e.push(`
|
|
28
|
+
`),e.push(...i)}}function yE(e,t,r){return typeof e!="string"?vt(e,t):Ul(e,t)||e.includes(r)?Wi(e):e}var og=[ze,"|"," "];var sg=8,ig=/^[A-Za-z0-9_-]+$/,p$=new TextEncoder,f$=new TextDecoder;function _E(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw Te(t,"invalid trailer count");return Number.parseInt(r,10)}function ag(e,t){if(!ig.test(e))throw Te(t,"invalid tag")}function xE(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!ig.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw Te(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function EE(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw Te(t,"invalid header");let o=r.slice(0,n),s=o.startsWith("~"),i=s?o.slice(1):o;if(!s&&i.startsWith("="))return null;if(!og.includes(i)&&i!=="")throw Te(t,"invalid header delimiter");let a=i===""?ze:i,l=r.slice(n+1),d=null;if(!s&&l.startsWith("<")){let p=l.indexOf(">");if(p===-1)throw Te(t,"invalid tag");if(d=l.slice(1,p),ag(d,t),i!=="")throw Te(t,"invalid header delimiter");l=l.slice(p+1)}if(!l.startsWith("{")||!l.endsWith("}:"))throw Te(t,"invalid header");let c=l.slice(1,-2),u;try{u=rr(c,a,t).map(p=>tr(p,t)[0])}catch(p){throw ho(p)}if(u.length===0||u.some(p=>p===""))throw Te(t,"invalid header fields");return{delimiter:a,fields:u,fieldText:c,continuation:s,tag:d}}function vE(e,t,r){if(e===null||e.delimiter===void 0)throw Te(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw Te(r,"continuation header mismatch")}function Qf(e,t,r,n){let o;try{o=rr(e,t,n)}catch(s){throw ho(s)}if(o.length!==r)throw Te(n,"row arity mismatch");for(let s of o)try{Ut(s,n)}catch(i){throw ho(i)}return o}function SE(e,t,r){let n={};return e.forEach((o,s)=>{try{nr(n,o,Ut(t[s],r))}catch(i){throw ho(i)}}),n}function TE(e,t,r){if(e.startsWith("- "))throw Te(t,"reserved line prefix");let n=_E(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw Te(t,"trailer without header");if(r.rowCount!==n)throw Te(t,"trailer count mismatch");return{kind:"trailer"}}let o=EE(e,t);if(o!==null)return o.continuation?(vE(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=xE(e,t);if(s!==null){let i=r?.taggedLanes?.get(s.tag);if(i===void 0)throw Te(t,"unknown tag");return{kind:"tagged-row",tag:s.tag,cells:Qf(s.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw Te(t,"row before header");return{kind:"row",cells:Qf(e,r.delimiter,r.fields.length,t)}}function PE(e,t={}){let r=[],n=new Map,o=[],s=[],i=null,a=!1,l=!1;function d(g,f){let k=s.at(-1);if(k!==void 0&&k.lane===g.lane&&k.delimiter===g.delimiter&&k.fieldText===g.fieldText){k.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,k){let b=n.get(g);if(b===void 0){if(n.size>=sg)throw Te(k,"too many tagged lanes");b={segments:[],current:null},n.set(g,b),r.push(g)}else b.current!==null&&b.segments.push(b.current);b.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},b.delimiter=f.delimiter,b.fields=f.fields,b.fieldText=f.fieldText}if(Gi(e).forEach((g,f)=>{let k=f+1;if(g==="")return;let b=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},v=TE(g,k,b);if(v.kind==="trailer"){c(),i=null;return}if(v.kind!=="continuation"){if(v.kind==="tag-header"){l=!0,u(v.header.tag,v.header,k);return}if(v.kind==="header"){c(),a||(r.push(null),a=!0),i={lane:null,delimiter:v.header.delimiter,fields:v.header.fields,fieldText:v.header.fieldText,rows:[]};return}if(v.kind==="tagged-row"){l=!0;let T=n.get(v.tag).current;T.rows.push(v.cells),d(T,v.cells);return}if(i===null)throw Te(k,"row before header");i.rows.push(v.cells),d(i,v.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 xr(e){return PE(e).flatMap(t=>t.rows.map(r=>SE(t.fields,r,0)))}function AE(e){if(!og.includes(e))throw Te(0,"invalid header delimiter")}function Xf(e,t,r=!1){return`[${`${r?"~":""}${e===ze?"":e}`}]{${t}}:
|
|
29
|
+
`}function Zf(e,t){return`[]<${e}>{${t}}:
|
|
30
|
+
`}function ld(e,t){return t.map(ft).join(e)}function CE(e){if(!Array.isArray(e)||e.length===0)throw Te(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=tr(String(t),0)}catch(n){throw ho(n)}if(r==="")throw Te(0,"TOONL header requires fields");return r})}function eg(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function tg(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Te(0,"TOONL continuation cadence must be positive")}function OE(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function rg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw Te(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw Te(0,"TOONL output requires object rows");if(t.some(r=>!Rr(e[r])))throw Te(0,"TOONL rows must be flat objects");return t}function DE(e){return JSON.stringify([...e].sort())}function ng(e,t){let r=DE(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function Mt({delimiter:e=ze,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){AE(e),tg(r),tg(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=()=>OE(p,l,d)?(l=0,d=0,Xf(e,s,!0)):"",k=b=>{ag(b,0);let v=c.get(b);if(v===void 0){if(c.size>=sg)throw Te(0,"too many tagged lanes");v={fields:null,fieldsByShape:new Map},c.set(b,v)}return v};return{push(b){if(u)throw Te(0,"TOONL encoder is closed");let v=ng(rg(b),i),T="";(o===null||o.length!==v.length||o.some((L,W)=>L!==v[W]))&&(T+=g(),o=v,s=ld(e,o),a=0,l=0,d=0,T+=Xf(e,s));let $=o.map(L=>vt(b[L],e));T+=f();let D=`${$.join(e)}
|
|
32
|
+
`;return T+=D,a+=1,l+=1,d+=D.length,T},declareLane(b,v){if(u)throw Te(0,"TOONL encoder is closed");let T=CE(v),$=ld(ze,T),D=k(b);return eg(D.fields,T)?"":(D.fields=T,Zf(b,$))},pushTagged(b,v){if(u)throw Te(0,"TOONL encoder is closed");let T=k(b),$=ng(rg(v),T.fieldsByShape),D=ld(ze,$),L=$.map(K=>vt(v[K],ze)),W="";return eg(T.fields,$)||(T.fields=$,W+=Zf(b,D)),`${W}${b}:${L.join(ze)}
|
|
33
|
+
`},end(){return u?"":(u=!0,g())}}}function dd(e){let t={app:e,version:FE(wo("__RED_BUILD_VERSION__",()=>"3.12.3")??"0.0.0-dev"),gitSha:wo("__RED_BUILD_GIT_SHA__",()=>"94bf8257e75f03fd433bceffc1b9a3a24e4a8add")??"unknown",buildTime:wo("__RED_BUILD_TIME__",()=>"2026-08-07T17:19:20-03:00")??"unknown",bundleAsset:wo("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=wo("__REDDB_SDK_VERSION__",()=>""),n=wo("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function FE(e){return e.startsWith("v")?e.slice(1):e}function lg(e){return`${e.app} ${e.version} ${e.gitSha}`}function wo(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var dg={"=":"data",":=":{to:"data",typed:!0},":":"meta"},IE=/^[a-z][a-z0-9+.-]*:\/\//i;function ME(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 LE(e=dg){return Object.entries(e).map(([t,r])=>ME(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function jE(e){return/^-\d+(\.\d+)?$/.test(e)}function fs(e){return!(!e||e.startsWith("-")&&!jE(e))}function zi(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 cg(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=>cg(r.trim())):e}function Dn(e,t){switch(t){case"boolean":return BE(e);case"number":return $E(e);case"array":return e.split(",").map(r=>zi(r.trim()));case"string":default:return e}}function BE(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function $E(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 rn(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function NE(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 GE(e){let t=[],r=HE(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,n),t}function
|
|
40
|
+
`));let n=UE(e.options);t.push(...n)}return t}function WE(e,t){let r=GE(e);return NE(r,t)}function HE(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 UE(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=k=>{u.includes(k)||u.push(k)};c.short&&p(`-${c.short}`),p(`--${d}`);for(let k of c.aliases??[])k.length===1?p(`-${k}`):p(`--${k}`);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 ug(e){let t=QE(e.options??{},e.autoShort??!1),r=LE(e.separators??dg);return{schema:e,parse(n){return qE(n,e,t,r)},help(){return WE(e,e.formatter)}}}function qE(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?Dn(f,p.type):f),l++}o.positional[p.name]=g,i++}else{let g=p.type?Dn(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=JE(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!rv(c)){l=YE(c,l,e,o,r,t);continue}let u=KE(c,n);if(u){let{key:p,value:g,config:f}=u,k=o,b=k[f.to]??(k[f.to]={});b[p]=f.typed?cg(g):rn(g),l++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;l<e.length&&!e[l].startsWith("-");){let k=e[l];f.push(p.type?Dn(k,p.type):k),l++}o.positional[p.name]=f,i++;continue}let g=p.type?Dn(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 ZE(o,t,r),ev(o,t,a),tv(o,t,r),o}function KE(e,t){if(IE.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(VE(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(zE(o,s,r))return{key:o,value:s,config:r}}}return null}function VE(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function zE(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 JE(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 Ji(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return fs(l)?Ji(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 YE(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=cd(l,o);return c?Ji(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=zi(rn(d))),t+1)}if(i.length===1){let a=cd(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return fs(l)?Ji(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(fs(l))return n.options[i]=zi(rn(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=cd(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 Ji(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?Dn(rn(t),i.type):rn(t);if(!i.choices.includes(l))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?Dn(rn(t),i.type):rn(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]=zi(rn(t)));return r}function QE(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=XE(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 XE(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 cd(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function ZE(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?Dn(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 ev(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 tv(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 rv(e){return/^-\d+(\.\d+)?$/.test(e)}var ud=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 nv(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 ov(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&&fs(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 nn(e,t,r={}){let o=ug({options:nv(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=ov(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 ud(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 pd=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 pg(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 pd(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as hv,mkdirSync as mv,readFileSync as _g,statSync as bv}from"node:fs";import{dirname as Eg,join as yv}from"node:path";var fg="RED_WORKER_SCOPE",gg="RED_WORKER_MEMORY_CEILING",hg="RED_WORKER_SCOPE_DEGRADATION",gd={scope:null,memory_ceiling:null,scope_degradation:null};function hd(e){return{scope:fd(e[fg]),memory_ceiling:fd(e[gg]),scope_degradation:fd(e[hg])}}function gs(e){let t={};return e.scope!=null&&e.scope!==""&&(t[fg]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(t[gg]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(t[hg]=e.scope_degradation),t}function fd(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as av,readdirSync as lv,readFileSync as kg,rmSync as dv,writeFileSync as cv}from"node:fs";import{basename as uv,join as Ro}from"node:path";import{isAbsolute as K$,join as Yi,resolve as V$}from"node:path";function sv(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var mg="deaths",bg="deaths.toonl";function Qi(e){return Yi(sv(e),mg)}function hs(e){return Yi(Qi(e),bg)}var ms="live",yg="attributions.toonl";function Xi(e){return Yi(Qi(e),ms)}function md(e){return Yi(Qi(e),yg)}var yd=Ro("sys","kernel","random","boot_id"),wg=1;function kd(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:wg,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:Rg(Ro(r,yd)),cgroup:pv(r,n),last_phase:e.last_phase}}function Rg(e){try{let t=kg(e,"utf8").trim();return t===""?null:t}catch{return null}}function pv(e,t){let r=Rg(Ro(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 wd(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function Rd(e,t){let r=Ro(e,wd(t));try{return av(e,{recursive:!0,mode:448}),cv(r,Mt({trailer:!1}).push(gv(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function Fn(e,t){try{dv(Ro(e,wd(t)),{force:!0})}catch{}}function _d(e,t){let r;try{r=lv(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=Ro(e,o);try{let a=xr(kg(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(fv(a))}catch(i){t?.(uv(s),i instanceof Error?i.message:String(i))}}return n}function fv(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:bd(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:bd(e.pid),ppid:bd(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 bd(e){return typeof e=="number"?e:Number(e)}function gv(e){return{...e}}var kv=1,wv=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function Rv(e){return typeof e=="string"&&wv.has(e)}var _v="startup";function xv(e,t){return{...e.scope??gd,version:kv,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 Ev(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 Ed={mkdir(e){mv(e,{recursive:!0,mode:448})},endsClean(e){let t;try{t=bv(e).size}catch{return!0}if(t===0)return!0;try{return _g(e,"utf8").endsWith(`
|
|
43
|
+
`)}catch{return!0}},append(e,t){hv(e,t,{encoding:"utf8",mode:384})},read(e){return _g(e,"utf8")}};function vv(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function Sv(e,t,r=Ed){let n=Mt({trailer:!1}).push(vv(t));return r.mkdir(Eg(e)),r.endsClean(e)||r.append(e,`
|
|
44
|
+
`),r.append(e,n),t}function vg(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===""?[]:xr(t).map(Tv)}function Tv(e){let t=e.exit_path;if(!Rv(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 Sg(e,t=Ed){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return vg(r)}var Pv=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],xd=null;function Tg(e){let t=e.host??process,r=e.io??Ed,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??hd(process.env),i=e.phase??_v,a=null,l=e.presenceDir===void 0?yv(Eg(e.lanePath),ms):e.presenceDir,d=null,c=()=>{l!==null&&(d=kd({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),Rd(l,d))},u=b=>{if(!a){try{a=Sv(e.lanePath,xv({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...b},Ev(t)),r)}catch{}l!==null&&d!==null&&Fn(l,d)}},p={signal(b){u({exit_path:"signal",signal:b})},exit(b){u({exit_path:"exit",exit_code:b})},uncaughtException(b){u({exit_path:"uncaught-exception",detail:xg(b)})},unhandledRejection(b){u({exit_path:"unhandled-rejection",detail:xg(b)})}},f=[...(e.signals??Pv).map(b=>{let v=()=>{if(p.signal(b),!(t.listenerCount?.(b)!==1||!t.kill)){t.off(b,v);try{t.kill(o,b)}catch{}}};return[b,v]}),["uncaughtException",(...b)=>p.uncaughtException(b[0])],["unhandledRejection",(...b)=>p.unhandledRejection(b[0])],["exit",(...b)=>p.exit(typeof b[0]=="number"?b[0]:null)]];for(let[b,v]of f)t.on(b,v);let k={lanePath:e.lanePath,phase(b){i=b,a||c()},currentPhase:()=>i,written:()=>a,uninstall(){for(let[b,v]of f)t.off(b,v);l!==null&&d!==null&&Fn(l,d),xd===k&&(xd=null)},handlers:p};return e.setActive!==!1&&(xd=k),c(),k}function xg(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as Av,readdirSync as Cv,readFileSync as Zi,statSync as Ov,writeFileSync as Dv}from"node:fs";import{join as Og}from"node:path";var Fv=1,Iv=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],Mv=512*1024;function Lv(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??Iv,n=[],o=Og(t,yd),s=null;try{let l=Zi(o,"utf8").trim();s=l===""?null:l,n.push({source:o,result:s?"read":"empty",detail:s})}catch(l){n.push({source:o,result:vd(l),detail:null})}let i=new Set;try{for(let l of Cv(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:vd(l),detail:null})}let a=[];for(let l of r)try{let c=jv(l,e.tailBytes??Mv).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:vd(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function vd(e){return e.code==="ENOENT"?"absent":"unreadable"}function jv(e,t){let r=Ov(e).size,n=Zi(e,"utf8");return r<=t?n:n.slice(n.length-t)}var Bv=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,$v=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,Nv=/Killed (\/\S*) due to memory pressure/,Gv=/\bopid=(\d+)\b/,Pg=/\bsig=(\d+)\b/,Wv=/\buid=(\d+)\b/,Hv=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,Uv={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function qv(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:Fv,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=>Ag(u,e.pid,Bv)||Ag(u,e.pid,$v));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=Nv.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(Gv.exec(u)?.[1])===e.pid&&Pg.test(u));if(d!==void 0){let u=Number(Pg.exec(d)?.[1]),p=Wv.exec(d)?.[1];return i("user-signal",o?"medium":"high",Uv[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=>Hv.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 Ag(e,t,r){return Number(r.exec(e)?.[1])===t}var Kv=" | ";function Cg(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(Kv)}function Vv(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:Cg(e.evidence),checked:Cg(e.checked)}}function zv(e){let t=Mt({trailer:!1});return e.map(r=>t.push(Vv(r))).join("")}function Dg(e){let t=Xi(e.stateRoot),r=md(e.stateRoot),n=e.now??(()=>new Date().toISOString()),o=e.evidence??Lv({procRoot:e.procRoot,journalPaths:e.journalPaths}),s=[],i=_d(t,u=>s.push(u)),a=Sg(hs(e.stateRoot)),l=[],d=[],c=[];for(let u of i){if(o.live_pids.has(u.pid)){d.push(u);continue}if(a.find(g=>g.pid===u.pid&&g.id===u.id)!==void 0){c.push(u),Fn(t,u);continue}l.push(qv(u,o,a,n())),Fn(t,u)}return l.length>0&&Jv(r,l),{attributions:l,alive:d,self_recorded:c,skipped:s,laneText:()=>{try{return Zi(r,"utf8")}catch{return""}}}}function Fg(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 Jv(e,t){try{Av(Og(e,".."),{recursive:!0,mode:448});let r=Yv(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
|
+
`;Dv(e,`${r}${n}${zv(t)}`,{encoding:"utf8",mode:384})}catch{}}function Yv(e){try{return Zi(e,"utf8")}catch{return""}}import{join as Qv}from"node:path";var Xv=[".red","redskilled"],Hr=448;function or(e){return Qv(e,...Xv)}import{randomUUID as F0}from"node:crypto";import{spawn as SF}from"node:child_process";import{mkdir as TF}from"node:fs/promises";import{dirname as PF}from"node:path";import{createHash as tS}from"node:crypto";import{constants as Cd}from"node:fs";import{mkdir as Wg,open as rS,readFile as nS,rm as Hg,stat as oS}from"node:fs/promises";import{createConnection as sS}from"node:net";import{tmpdir as iS}from"node:os";import{dirname as Ug,join as bs}from"node:path";var Zv="toon";function Lg(e){return e.trimStart().startsWith("{")?"json":"toon"}function Td(e){let t=0;for(;e[t]===`
|
|
50
|
+
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=Lg(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 Pd(e){let t=Lg(e)==="json"?Sd:Ig,r=t===Sd?Ig:Sd;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function Sd(e){return JSON.parse(e)}function Ig(e){return Ct(e)}function Ad(e,t){if(t==="toon"){let r=eS(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(Wg))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 nS(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 Vv(e)).mtimeMs)}catch{return null}}function lt(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var oS="/tmp";function Yi(e){let t=e.env??process.env,r=Uv("sha256").update(e.key).digest("hex").slice(0,20),n=l=>hs(l,e.socketFileName).length<Yv,o=t.XDG_RUNTIME_DIR;if(o){let l=hs(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=hs(`red-skills-${s}`,r),a=hs(Jv(),i);return n(a)||process.platform==="win32"?a:hs(oS,i)}Hr();import{homedir as TS}from"node:os";import{join as jd}from"node:path";import{spawnSync as PS}from"node:child_process";import{createHash as AS}from"node:crypto";import{existsSync as CS,readdirSync as OS}from"node:fs";import{mkdir as Zg,readFile as DS,rename as FS,writeFile as IS}from"node:fs/promises";import{dirname as MS}from"node:path";var Mn="@reddb-io/red-skills",hS="https://registry.npmjs.org",mS="canary",In=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},bS=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function Dd(e){return typeof e=="string"&&bS.test(e.trim())}function Jg(e){return`${e}-.bundle.min.mjs`}var yS=".unversioned";function kS(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!Dd(t))throw new In("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${Jg(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 ea(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return ys(n,kS(t,r,o))}function wS(e){return e==="dev"?["rsp","redskilled"]:[]}function RS(e){return`${e}.bundle.min.mjs`}function _S(e){return ys("dist",RS(e))}function xS(e,t="stable"){return`${Mn}@${t==="canary"?mS:e}`}function Fd(e=Mn){return`${hS}/${e.replace("/","%2F")}`}async function Id(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=ea({plugin:r,version:n,cacheDir:o,channel:s}),a=wS(r),l=a.map(p=>ea({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await vS(e,l))return i;let d=xS(n,s),c=ys(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw Xg(p,d)}for(let p of[r,...a]){let g=_S(p),f=ys(u,g);if(!await e.exists(f))throw new In("bundle-missing",`npm package ${d} has no ${g}`);let k=p===r?i:ea({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(k,await e.readFile(f))}return await ES(e,o,[r,...a]),i}async function ES(e,t,r){if(e.rename)for(let n of r){let o=ys(t,Jg(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${yS}`)}catch{}}}async function vS(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function Yg(e,t,r=Mn){let n;try{n=await e.fetchText(Fd(r))}catch(s){throw Xg(s,r)}let o=Md(n);return{sameMajor:SS(o,t),newest:Ld(o)}}function Md(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 SS(e,t){let r=Od(t);if(r===null)return null;let n=null;for(let o of e)Od(o)===r&&(n===null||Qg(o,n)>0)&&(n=o);return n}function Ld(e){let t=null;for(let r of e){let n=String(r).trim();Od(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||Qg(n,t)>0)&&(t=n)}return t}function Od(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function Qg(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 Xg(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new In("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new In("package-missing",`npm could not resolve ${t}: ${r}`,e):new In("network",`failed to resolve ${t}: ${r}`,e)}function ys(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}Hr();var eh={async materialize(e,t){await Zg(t,{recursive:!0});let r=PS("npm",["install",e,"--prefix",t,"--no-save","--no-audit","--no-fund","--ignore-scripts","--loglevel=error"],{stdio:["ignore","ignore","pipe"],encoding:"utf8"});if(r.error)throw r.error;if(r.status!==0)throw new Error(`npm install ${e} -> ${r.status}: ${(r.stderr||"").trim()}`);return jd(t,"node_modules",...Mn.split("/"))},async readFile(e){return new Uint8Array(await DS(e))},async writeFile(e,t){await Zg(MS(e),{recursive:!0}),await IS(e,t)},async exists(e){return CS(e)},sha256(e){return AS("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 FS(e,t)}},LS="redskilled";function jS(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||jd(e.HOME||TS(),".cache");return jd(t,"red-skills","bundles")}var BS=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function $S(e,t){if(Dd(e.version))return e.version.trim();let r=e.listCacheDir??WS,n=GS(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??eh).fetchText(Fd());return Ld(Md(s))}catch{return null}}function GS(e,t){let r=null;for(let n of e){let o=BS.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||NS(s,r)>0)&&(r=s)}return r}function NS(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 WS(e){try{return OS(e)}catch{return[]}}async function HS(e={},t={},r={}){let n=rn(e,t);if(xr(n))return n;let o=r.env??t.env??process.env,s=jS(o),i=await $S(r,s);if(i===null)return n;try{await Id(r.bundleIO??eh,{plugin:LS,version:i,cacheDir:s})}catch{return n}return rn(e,t)}async function th(e={},t={},r={}){let n=await HS(e,t,r);if(xr(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(Hr(),zg));throw new o(n)}var _o=3e5,rh=1e4,nh=6e4,oh=15e3,Bd=3e4,sh=Bd*2,ih=6e4,ks=16;function ah(e,t={}){if(e.event!=="worker-death"&&e.event!=="worker-budget-kill")return null;let r=e.event==="worker-budget-kill",n=!r&&t.refusal!=null,o=t.refusal??e.detail??`redskilled observed exit code=${e.exit_code??"null"} signal=${e.signal??"null"}`,s=t.startedAt==null?null:Date.parse(t.startedAt),i=Date.parse(e.ts),a=s!=null&&Number.isFinite(s)&&Number.isFinite(i)?Math.max(0,i-s)/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":"unknown",confidence:r||n?"high":"none",signal:e.signal,host_boot_changed:!1,evidence:r||n?[o]:[],checked:n?["Worker log tail"]:[`redskilled host event: ${o}`],project_label:e.project_label,...a===void 0?{}:{uptime_s:a},detail:t.refusal??e.detail}}function $d(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var lh="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as b0}from"node:crypto";import{mkdir as s1,rm as i1}from"node:fs/promises";import{dirname as a1}from"node:path";import{randomUUID as dh}from"node:crypto";import{rm as US}from"node:fs/promises";import{connect as qS,createServer as KS}from"node:net";var Er=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 Gd(e,t=250){return await new Promise(r=>{let n=qS(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 ch(e,t){for(let r=0;r<2;r++){let n=KS();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 Gd(e)!=="unowned")throw new Er(e);if(await t?.())throw new Er(e);await US(e,{force:!0})}}throw new Er(e)}async function vr(e,t=250){try{return(await Ji({socketPath:e,timeoutMs:t},{id:dh(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function uh(e,t){Ng(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??dh(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function kh(e){return{generated_at:e.now,hour:fh("hour",36e5,e),day:fh("day",864e5,e),history_48h:VS(e)}}function VS(e){let t=nn(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=zS(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=>nn(d.ts)).filter(d=>d!=null&&n!=null&&t!=null&&d>=n&&d<=t),l=o.map(d=>{let c=d==null||a.length===0?null:a.filter(u=>u>=d&&u<d+36e5).length;return{hour:d==null?e.now:new Date(d).toISOString(),value:c,absent_reason:c==null?"no Worker outcome history is available for the last 48 hours":null}});return{hours:48,from:n==null?e.now:new Date(n).toISOString(),to:e.now,tokens_per_hour:ph(i),tickets_per_hour:ph(l)}}function zS(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=nn(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],k=Math.min(f+36e5,r),b=Math.max(0,Math.min(c.at,k)-Math.max(d.at,f));b!==0&&(a[g].tokens+=p*(b/u),a[g].duration+=b)}}for(let l=0;l<a.length;l+=1){let d=a[l];d.duration<=0||(o[l]+=d.tokens/(d.duration/36e5),s[l]=!0)}}return o.map((i,a)=>s[a]?i:null)}function ph(e){let t=e.at(-1),r=e.at(-2),n=t?.value??null,o=e.filter(i=>i.value!=null).length,s=null;return n!=null&&r?.value!=null&&(s=n===r.value?"flat":n>r.value?"up":"down"),{buckets:e,current:{value:n,absent_reason:t?.absent_reason??"the current hourly bucket is unavailable",samples:o},trend:s,trend_absent_reason:s==null?"the current and previous hourly buckets are not both measured":null}}function Ln(e,t,r){let n=nn(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=nn(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function fh(e,t,r){let n=nn(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:nn(u.observed_at)})).filter(u=>u.at!=null&&mh(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>nn(u.ts)).filter(u=>u!=null&&mh(u,o,n)),l=gh(i,u=>u.tokens,"tokens",s),d=gh(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:JS(a.length,t,s),runner_share:hh("runner",i,u=>u.runner,s),model_share:hh("model",i,u=>u.model,s),unavailable:c}}function gh(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 JS(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 hh(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 mh(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function nn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function wh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&yh(t.hour)&&yh(t.day)&&(t.history_48h===void 0||YS(t.history_48h))}function YS(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&bh(t.tokens_per_hour)&&bh(t.tickets_per_hour)}function bh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Array.isArray(t.buckets)&&t.buckets.length===48&&t.buckets.every(r=>{if(r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return typeof n.hour=="string"&&(n.value===null||typeof n.value=="number")&&(n.absent_reason===null||typeof n.absent_reason=="string")})}function yh(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"&&Nd(t.tokens_per_min)&&Nd(t.tools_per_min)&&Nd(t.issues_per_hour)&&Array.isArray(t.unavailable)}function Nd(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 Rh(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:Ln([...e,o],s=>s.observed_at,{now:n}),record:{kind:"worker-metrics",worker:r,ts:o.observed_at,tokens:o.tokens,tools:o.tools,runner:o.runner,model:o.model}}}function _h(e,t){return Ln(e.filter(r=>r.kind==="worker-metrics").map(r=>({worker_id:r.worker_id,observed_at:r.ts,tokens:r.tokens??null,tools:r.tools??null,runner:r.runner??null,model:r.model??null})),r=>r.observed_at,{now:t})}import{availableParallelism as vh,totalmem as XS}from"node:os";function ws(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 xh(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=ws(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=xo(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:QS(e.length,n,a,l)}}function QS(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 xo(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 Eh(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 Sh="REDSKILLED_MEMORY_CEILING",Hd="REDSKILLED_WORKER_CEILING",Ch="REDSKILLED_VALIDATION_CEILING",Th="REDSKILLED_INTERACTIVE_RESERVATION",Rs=1,Ph=.7,ZS=2*1024**3,eT=2;function Oh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return xo(t)}function ra(e){let t=0,r=[];for(let n of e){let o=Oh(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 Dh(e){let{ceiling:t}=e,r=ra(e.workers),n=Oh(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??Rs),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 Fh(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=ra(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 (${Hd} 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 na(e=process.env,t=XS(),r={}){let n=Wd(r.flags?.memoryCeiling,e[Sh],r.config?.memoryCeiling),o=Wd(r.flags?.workerCeiling,e[Hd],r.config?.workerCeiling),s=Wd(r.flags?.validationCeiling,e[Ch],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[Th]??"").trim(),d=Ih(a),c=l===""?Rs:nT(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!tT(a)&&(ta(`redskilled: ${Ud(o)} ${Hd}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=rT(i,t);if(p!==void 0)return Ah({memory_bytes:p,worker_count:d,interactive_reservation:c??Rs,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??vh());ta(`redskilled: ${Ud(n)} ${Sh}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Ph*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&ta(`redskilled: ${Th}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${Rs} Worker(s) instead.`),Ah({memory_bytes:Math.floor(t*Ph),worker_count:d,interactive_reservation:c??Rs,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??vh())}function Ah(e,t,r){if(t!==void 0){let i=Ih(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};ta(`redskilled: ${Ud(t)} ${Ch}=${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)/eT)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/ZS)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function Wd(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 Ud(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function tT(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var ta=e=>process.stderr.write(`${e}
|
|
61
|
-
`);function
|
|
62
|
-
`);return t.pop(),t.length===0?[]:
|
|
58
|
+
`}function eS(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=ot(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function jg(e,t){return!Mg(e)||!Mg(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Mg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Bg=new Set;function $g(e){return Bg.has(e)?"json":Zv}function Ng(e){Bg.add(e)}var aS=108;async function ea(e,t,r="resident server"){let n=e.wire,o=n??$g(e.socketPath),s=await Gg(e,t,r,o);return n||o==="json"||!jg(t,s)?s:(Ng(e.socketPath),await Gg(e,t,r,"json"))}async function Gg(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=sS(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(Ad(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=Td(d);g&&(d=g.rest,u(()=>{try{s(Pd(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 qg(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=Td(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(Ad(a,s.dialect))}catch{}};(async()=>{let a;try{a=Pd(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function lS(e){await Wg(Ug(e),{recursive:!0,mode:448});try{return await rS(e,Cd.O_CREAT|Cd.O_EXCL|Cd.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var dS=6e4,Kg="resident-spawn-lock v1",cS=3;async function Vg(e,t={}){let r=t.maxAgeMs??dS,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??Qe;await Wg(Ug(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await lS(e);if(l)return await l.writeFile(`${Kg} pid=${o} taken=${new Date(n()).toISOString()}
|
|
59
|
+
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await pS(e),c=await gS(e,d,n());if(a>=cS||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=uS(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 Hg(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function zg(e){await e.handle.close().catch(()=>{}),await Hg(e.lockPath,{force:!0})}function uS(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function Jg(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 pS(e){try{return fS(await nS(e,"utf8"))}catch{return null}}function fS(e){let t=e.split(`
|
|
60
|
+
`,1)[0]?.trim()??"";if(!t.startsWith(Kg))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 gS(e,t,r){let n=t==null?Number.NaN:Date.parse(t.takenAt);if(Number.isFinite(n))return Math.max(0,r-n);try{return Math.max(0,r-(await oS(e)).mtimeMs)}catch{return null}}function Qe(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var hS="/tmp";function ta(e){let t=e.env??process.env,r=tS("sha256").update(e.key).digest("hex").slice(0,20),n=l=>bs(l,e.socketFileName).length<aS,o=t.XDG_RUNTIME_DIR;if(o){let l=bs(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=bs(`red-skills-${s}`,r),a=bs(iS(),i);return n(a)||process.platform==="win32"?a:bs(hS,i)}Ur();import{homedir as BS}from"node:os";import{join as Wd}from"node:path";import{spawnSync as $S}from"node:child_process";import{createHash as NS}from"node:crypto";import{existsSync as GS,readdirSync as WS}from"node:fs";import{mkdir as nh,readFile as HS,rename as US,writeFile as qS}from"node:fs/promises";import{dirname as KS}from"node:path";var Mn="@reddb-io/red-skills",SS="https://registry.npmjs.org",TS="canary",In=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},PS=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function jd(e){return typeof e=="string"&&PS.test(e.trim())}function Zg(e){return`${e}-.bundle.min.mjs`}var AS=".unversioned";function CS(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!jd(t))throw new In("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${Zg(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 sa(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return ws(n,CS(t,r,o))}function OS(e){return e==="dev"?["rsp","redskilled"]:[]}function DS(e){return`${e}.bundle.min.mjs`}function FS(e){return ws("dist",DS(e))}function IS(e,t="stable"){return`${Mn}@${t==="canary"?TS:e}`}function Bd(e=Mn){return`${SS}/${e.replace("/","%2F")}`}async function $d(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=sa({plugin:r,version:n,cacheDir:o,channel:s}),a=OS(r),l=a.map(p=>sa({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await LS(e,l))return i;let d=IS(n,s),c=ws(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw rh(p,d)}for(let p of[r,...a]){let g=FS(p),f=ws(u,g);if(!await e.exists(f))throw new In("bundle-missing",`npm package ${d} has no ${g}`);let k=p===r?i:sa({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(k,await e.readFile(f))}return await MS(e,o,[r,...a]),i}async function MS(e,t,r){if(e.rename)for(let n of r){let o=ws(t,Zg(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${AS}`)}catch{}}}async function LS(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function eh(e,t,r=Mn){let n;try{n=await e.fetchText(Bd(r))}catch(s){throw rh(s,r)}let o=Nd(n);return{sameMajor:jS(o,t),newest:Gd(o)}}function Nd(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 jS(e,t){let r=Ld(t);if(r===null)return null;let n=null;for(let o of e)Ld(o)===r&&(n===null||th(o,n)>0)&&(n=o);return n}function Gd(e){let t=null;for(let r of e){let n=String(r).trim();Ld(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||th(n,t)>0)&&(t=n)}return t}function Ld(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function th(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 rh(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new In("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new In("package-missing",`npm could not resolve ${t}: ${r}`,e):new In("network",`failed to resolve ${t}: ${r}`,e)}function ws(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}Ur();var oh={async materialize(e,t){await nh(t,{recursive:!0});let r=$S("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 Wd(t,"node_modules",...Mn.split("/"))},async readFile(e){return new Uint8Array(await HS(e))},async writeFile(e,t){await nh(KS(e),{recursive:!0}),await qS(e,t)},async exists(e){return GS(e)},sha256(e){return NS("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 US(e,t)}},VS="redskilled";function zS(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Wd(e.HOME||BS(),".cache");return Wd(t,"red-skills","bundles")}var JS=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function YS(e,t){if(jd(e.version))return e.version.trim();let r=e.listCacheDir??ZS,n=QS(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??oh).fetchText(Bd());return Gd(Nd(s))}catch{return null}}function QS(e,t){let r=null;for(let n of e){let o=JS.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||XS(s,r)>0)&&(r=s)}return r}function XS(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 ZS(e){try{return WS(e)}catch{return[]}}async function eT(e={},t={},r={}){let n=sn(e,t);if(vr(n))return n;let o=r.env??t.env??process.env,s=zS(o),i=await YS(r,s);if(i===null)return n;try{await $d(r.bundleIO??oh,{plugin:VS,version:i,cacheDir:s})}catch{return n}return sn(e,t)}async function sh(e={},t={},r={}){let n=await eT(e,t,r);if(vr(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(Ur(),Xg));throw new o(n)}var _o=3e5,ih=1e4,ah=6e4,lh=15e3,Hd=3e4,dh=Hd*2,ch=6e4,Rs=16;function uh(e,t={}){if(e.event!=="worker-death"&&e.event!=="worker-budget-kill")return null;let r=e.event==="worker-budget-kill",n=!r&&t.refusal!=null,o=t.refusal??e.detail??`redskilled observed exit code=${e.exit_code??"null"} signal=${e.signal??"null"}`,s=t.startedAt==null?null:Date.parse(t.startedAt),i=Date.parse(e.ts),a=s!=null&&Number.isFinite(s)&&Number.isFinite(i)?Math.max(0,i-s)/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":"unknown",confidence:r||n?"high":"none",signal:e.signal,host_boot_changed:!1,evidence:r||n?[o]:[],checked:n?["Worker log tail"]:[`redskilled host event: ${o}`],project_label:e.project_label,...a===void 0?{}:{uptime_s:a},detail:t.refusal??e.detail}}function Ud(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var ph="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as v0}from"node:crypto";import{mkdir as bF,rm as yF}from"node:fs/promises";import{dirname as kF}from"node:path";import{randomUUID as fh}from"node:crypto";import{rm as tT}from"node:fs/promises";import{connect as rT,createServer as nT}from"node:net";var Sr=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 qd(e,t=250){return await new Promise(r=>{let n=rT(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 gh(e,t){for(let r=0;r<2;r++){let n=nT();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 qd(e)!=="unowned")throw new Sr(e);if(await t?.())throw new Sr(e);await tT(e,{force:!0})}}throw new Sr(e)}async function Vt(e,t=250){try{return(await ea({socketPath:e,timeoutMs:t},{id:fh(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function hh(e,t){qg(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??fh(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function xh(e){return{generated_at:e.now,hour:bh("hour",36e5,e),day:bh("day",864e5,e),history_48h:oT(e)}}function oT(e){let t=an(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=sT(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=>an(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:mh(i),tickets_per_hour:mh(l)}}function sT(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=an(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],k=Math.min(f+36e5,r),b=Math.max(0,Math.min(c.at,k)-Math.max(d.at,f));b!==0&&(a[g].tokens+=p*(b/u),a[g].duration+=b)}}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 mh(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 Ln(e,t,r){let n=an(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=an(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function bh(e,t,r){let n=an(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:an(u.observed_at)})).filter(u=>u.at!=null&&wh(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>an(u.ts)).filter(u=>u!=null&&wh(u,o,n)),l=yh(i,u=>u.tokens,"tokens",s),d=yh(i,u=>u.tools,"tools",s),c=[];return i.length===0?c.push("worker-vitals"):(l.samples===0&&c.push("worker-vitals.tokens"),d.samples===0&&c.push("worker-vitals.tools")),a.length===0&&c.push("worker-outcomes"),{window:e,window_ms:t,from:o==null?r.now:new Date(o).toISOString(),to:r.now,tokens_per_min:l,tools_per_min:d,issues_per_hour:iT(a.length,t,s),runner_share:kh("runner",i,u=>u.runner,s),model_share:kh("model",i,u=>u.model,s),unavailable:c}}function yh(e,t,r,n){let o=new Map,s=0;for(let d of e){let c=t(d.observation);if(c==null||!Number.isFinite(c))continue;s+=1;let u=o.get(d.observation.worker_id)??[];u.push({at:d.at,count:c}),o.set(d.observation.worker_id,u)}if(s===0)return{value:null,absent_reason:`no Worker published a ${r} count in the last ${n}`,samples:0};let i=0,a=null,l=null;for(let d of o.values()){if(d.length<2)continue;for(let p=1;p<d.length;p++){let g=d[p-1],f=d[p];g==null||f==null||(i+=Math.max(0,f.count-g.count))}let c=d[0],u=d[d.length-1];c!=null&&(a=a==null?c.at:Math.min(a,c.at)),u!=null&&(l=l==null?u.at:Math.max(l,u.at))}return a==null||l==null||l<=a?{value:null,absent_reason:`the last ${n} holds one sample of ${r} per Worker, and one instant spans no rate`,samples:s}:{value:i/((l-a)/6e4),absent_reason:null,samples:s}}function iT(e,t,r){return e===0?{value:null,absent_reason:`no Worker outcome was recorded in the last ${r}`,samples:0}:{value:e/(t/36e5),absent_reason:null,samples:e}}function kh(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 wh(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function an(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Eh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&_h(t.hour)&&_h(t.day)&&(t.history_48h===void 0||aT(t.history_48h))}function aT(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&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 _h(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.window=="string"&&typeof t.window_ms=="number"&&Kd(t.tokens_per_min)&&Kd(t.tools_per_min)&&Kd(t.issues_per_hour)&&Array.isArray(t.unavailable)}function Kd(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 vh(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:Ln([...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 Sh(e,t){return Ln(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 Ah,totalmem as dT}from"node:os";function _s(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 Th(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=_s(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=xo(p);f==null?u=!0:g(f)}c.cpu_weight!=null&&(o+=c.cpu_weight),u&&s.push(d.worker_id),d.isolated||i.push(d.worker_id)}let a=t.hostCeilingBytes??null,l=a==null?0:Math.max(0,n-a);return{version:1,worker_count:e.length,memory_high_bytes:r,memory_max_bytes:n,cpu_weight_total:o,unaccounted_workers:s.sort(),unisolated_workers:i.sort(),memory_ceiling_bytes:a,over_committed_bytes:l,over_commitment_reason:l===0?null:lT(e.length,n,a,l)}}function lT(e,t,r,n){return`this host's ${e} Worker(s) carry ${t} bytes of applied MemoryMax against a host ceiling of ${r} bytes \u2014 ${n} bytes over. A per-Worker MemoryMax is a wall rather than a reservation, so the host stays safe only while the Workers do not all peak together; the ceiling is not enforced host-wide.`}function xo(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 Ph(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 Ch="REDSKILLED_MEMORY_CEILING",zd="REDSKILLED_WORKER_CEILING",Ih="REDSKILLED_VALIDATION_CEILING",Oh="REDSKILLED_INTERACTIVE_RESERVATION",xs=1,Dh=.7,cT=2*1024**3,uT=2;function Mh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return xo(t)}function aa(e){let t=0,r=[];for(let n of e){let o=Mh(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 Lh(e){let{ceiling:t}=e,r=aa(e.workers),n=Mh(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??xs),l=e.projectLabel!=null&&e.projectLabel!==""?` for project ${JSON.stringify(e.projectLabel)}`:"",d=`the host is already holding ${r.memory_bytes} bytes across ${r.worker_count} Worker(s)`,c=(g,f)=>({version:1,admitted:!1,verdict:g,reason:f,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}),u=t.worker_count==null?0:i-t.worker_count;if(u>0){if(e.reservation!=="interactive")return c("refused-over-worker-ceiling",`redskilled refused this Worker${l}: it would be Worker ${i} past a host ceiling of ${t.worker_count} Worker(s); ${a} extra slot(s) are reserved for interactive dispatches, and ${d}`);if(u>a)return c("refused-over-interactive-reservation",`redskilled refused this interactive Worker${l}: reserved slot ${u}/${a} is outside the bounded interactive reservation above the host ceiling of ${t.worker_count} Worker(s), and ${d}`)}if(t.memory_bytes!=null&&n===null)return c("refused-unaccountable-budget",`redskilled refused this Worker${l}: its declared memory budget cannot be reduced to bytes, so it cannot be proven to fit under the host ceiling of ${t.memory_bytes} bytes, and ${d}`);if(t.memory_bytes!=null&&s>t.memory_bytes)return c("refused-over-memory-ceiling",`redskilled refused this Worker${l}: it would take the host to ${s} bytes of declared Worker memory, past the host ceiling of ${t.memory_bytes} bytes, and ${d}`);let p=e.reservation==="interactive"&&u>0;return{version:1,admitted:!0,verdict:p?"admitted-interactive-reservation":"admitted",reason:p?`redskilled admitted this interactive Worker${l} into reserved interactive slot ${u}/${a} above the host ceiling of ${t.worker_count} Worker(s): ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`:`redskilled admitted this Worker${l}: ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}}function jh(e){let t=e.budget?.memory_max??e.budget?.memory_high;if(t!=null)return{memory_max:t,reason:`the client declared this Worker's memory ceiling (${t}), so the host derived none`};if(e.ceiling.memory_bytes==null)return{memory_max:null,reason:"this host admits Workers against no memory ceiling, so there is no accounting to derive a per-Worker ceiling from; the daemon's RSS sampling floor is the only remaining ceiling"};let r=aa(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 (${zd} 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 la(e=process.env,t=dT(),r={}){let n=Vd(r.flags?.memoryCeiling,e[Ch],r.config?.memoryCeiling),o=Vd(r.flags?.workerCeiling,e[zd],r.config?.workerCeiling),s=Vd(r.flags?.validationCeiling,e[Ih],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[Oh]??"").trim(),d=Bh(a),c=l===""?xs:gT(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!pT(a)&&(ia(`redskilled: ${Jd(o)} ${zd}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=fT(i,t);if(p!==void 0)return Fh({memory_bytes:p,worker_count:d,interactive_reservation:c??xs,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Ah());ia(`redskilled: ${Jd(n)} ${Ch}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Dh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&ia(`redskilled: ${Oh}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${xs} Worker(s) instead.`),Fh({memory_bytes:Math.floor(t*Dh),worker_count:d,interactive_reservation:c??xs,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Ah())}function Fh(e,t,r){if(t!==void 0){let i=Bh(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};ia(`redskilled: ${Jd(t)} ${Ih}=${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)/uT)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/cT)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function Vd(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 Jd(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function pT(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var ia=e=>process.stderr.write(`${e}
|
|
61
|
+
`);function fT(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)):xo(e)??void 0}function Bh(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 gT(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}import{appendFile as hT,mkdir as mT,open as bT,readFile as yT,stat as kT,truncate as $h}from"node:fs/promises";import{dirname as wT}from"node:path";var RT=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"],_T=["demand-refusal","daemon-stop"],Nh="redskilled.log.toonl";function da(e){let t=e.worker.budget??{},r="kind"in e?e.kind:e.event;return{version:1,ts:e.ts,kind:r,event:r,worker_id:e.worker.worker_id,project_label:e.worker.project_label,pid:e.worker.pid,workspace_path:e.worker.workspace_path,fork_sha:e.worker.fork_sha??null,log_path:e.worker.log_path??null,isolated:e.worker.isolated,unit:e.worker.unit??null,memory_high:t.memory_high??null,memory_max:t.memory_max??null,cpu_weight:t.cpu_weight??null,admission_verdict:"admissionVerdict"in e?e.admissionVerdict??null:null,phase:"phase"in e?e.phase??null:null,step:"step"in e?e.step??null:null,tokens:"tokens"in e?e.tokens??null:null,tools:"tools"in e?e.tools??null:null,runner:"runner"in e?e.runner??null:null,model:"model"in e?e.model??null:null,base_head_sha:"baseHeadSha"in e?e.baseHeadSha??null:null,base_commits_ahead:"baseCommitsAhead"in e?e.baseCommitsAhead??null:null,heal_kind:"healKind"in e?e.healKind??null:null,detail:e.detail??null,exit_code:e.exitCode??null,signal:e.signal??null,reason:"reason"in e?e.reason??null:null}}var xT="daemon:";function ET(e){return{version:1,ts:e.ts,kind:"daemon-stop",event:"daemon-stop",worker_id:`${xT}${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 vT(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 Gh(e){let t=Mt({trailer:!1}),r=Promise.resolve();async function n(o){let s=r.then(async()=>{await mT(wT(e),{recursive:!0,mode:448}),await ST(e),await hT(e,t.push(CT(o)),{encoding:"utf8",mode:384})});return r=s.catch(()=>{}),await s,o}return{path:e,record:o=>n(da(o)),recordWorker:o=>n(da(o)),recordDemandRefusal:o=>n(vT(o)),recordDaemonStop:o=>n(ET(o)),read:()=>TT(e),flush:async()=>{await r}}}async function ST(e){let t;try{t=(await kT(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await bT(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 $h(e,s-i+l+1);return}}await $h(e,0)}finally{await n.close()}}async function TT(e){let t;try{t=await yT(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return PT(t)}function PT(e){let t=e.split(`
|
|
62
|
+
`);return t.pop(),t.length===0?[]:xr(`${t.join(`
|
|
63
63
|
`)}
|
|
64
|
-
`).filter(wT).map(RT)}function Bh(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,yT(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function yT(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 kT(e){return{...e}}function wT(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...cT,...uT].includes(t)}function RT(e){let t=e.kind??e.event;return{version:1,ts:String(e.ts),kind:t,event:t,worker_id:String(e.worker_id),project_label:gt(e.project_label)??"",pid:Number(e.pid??0),workspace_path:gt(e.workspace_path)??"",fork_sha:gt(e.fork_sha),log_path:gt(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:gt(e.unit),memory_high:gt(e.memory_high),memory_max:gt(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:gt(e.admission_verdict),phase:gt(e.phase),step:gt(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:gt(e.runner),model:gt(e.model),base_head_sha:gt(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:gt(e.heal_kind),detail:gt(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:gt(e.signal),reason:gt(e.reason)}}function gt(e){return e==null||e===""?null:String(e)}function $h(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,k=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:k,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 b=0;b<k;b+=1)(s[b]??(s[b]=[])).push({project_label:i.project_label,index:a+b,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function Gh(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function Nh(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 _s={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function Wh(e,t,r){if(t>=6e4)return _s;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 Hh(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function qd(){return _s}function _T(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 Uh(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>_T(r,n,t)).filter(r=>r!=null)}function Kh(e){let t=e.workers.map(xT),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:vT({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function Vh(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 xT(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 ET(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 vT(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${ET(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${qh(e.held,"Worker")} across ${qh(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 qh(e,t){return`${e} ${t}${e===1?"":"s"}`}function Kd(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 ST,mkdir as TT,readFile as PT,rm as AT,writeFile as CT}from"node:fs/promises";import{dirname as zh,join as Xh}from"node:path";import{tmpdir as Jh}from"node:os";var OT="redskilled.machine.claim.toon",DT="REDSKILLED_MACHINE_DIR",FT=8,on=class extends Error{constructor(r,n,o){super(MT(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},Yh;function Zh(){return Yh??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},Yh}function IT(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[DT]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||Jh():Jh();return Xh(o,`redskilled-${e.machineIdHash}`)}function sa(e){return Xh(IT(e),OT)}function ia(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??lt;async function s(){let l;try{l=await PT(e,"utf8")}catch(c){if(c.code==="ENOENT"||Vd(c))return;throw c}let d=jT(l);return BT(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 AT(e,{force:!0}),!0}catch(l){if(Vd(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await TT(zh(e),{recursive:!0,mode:1023})!=null&&await ST(zh(e),1023).catch(()=>{});let c=!1;for(let u=0;u<FT;u+=1){let p=i(l,n());try{return await CT(e,LT(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(Vd(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(Qh(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||!Qh(d,l,t.socketPath)?!1:await a()}}}function em(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 tm(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 MT(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 Vd(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function Qh(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function LT(e){return`${nt(e,{keyedMapCollapse:!0})}
|
|
65
|
-
`}function jT(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function BT(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 $T=["worker_id","slot","workspace_path","log_path"],aa=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${$T.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},rm=/\{\{([a-z_]+)\}\}/g;function GT(e,t){let r=(i,a)=>i.replace(rm,(l,d)=>{switch(d){case"worker_id":return t.worker_id;case"slot":return String(t.slot);case"workspace_path":return t.workspace_path;case"log_path":return t.log_path??"";default:throw new aa(d,a)}}),n=e.argv.map((i,a)=>r(i,`argv word ${a}`)),o={};for(let[i,a]of Object.entries(e.env??{}))o[i]=r(a,`env entry ${JSON.stringify(i)}`);let s=e.log_path==null?void 0:r(e.log_path,"the log path");return{argv:n,env:o,...s==null||s===""?{}:{log_path:s}}}function nm(e,t){if(!(e==null||e.trim()===""))return e.replace(rm,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new aa(n,"the log path")}})}function om(e,t,r){let n=GT(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 zd(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 Jd(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 Yd(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 NT=3e5,WT=.5,Qd=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 sm(e,t){if(t.held!=null)throw new Qd(t.held);let r=xs(e.project_label,"a project label"),n=xs(e.selector,"a selector"),o=KT(e.queue_poll,r),s=zd(e.argv,r),i=Yd(e.env,r),a=Jd(e.log_path,r),l=xs(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),d=e.trunk==null?void 0:{remote:xs(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:xs(e.trunk.branch,`a trunk branch for project ${JSON.stringify(r)}`)};if(!Number.isInteger(e.target)||e.target<0)throw new Error(`redskilled needs a whole, non-negative target to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.target)}`);let c=e.renew_within_ms??NT;if(!Number.isFinite(c)||c<=0)throw new Error(`redskilled needs a positive renewal window to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.renew_within_ms)}: a registration that lapses on arrival is a poll nobody asked for`);let u=Date.parse(t.now);if(!Number.isFinite(u))throw new Error(`redskilled needs an instant to date a registration, not ${JSON.stringify(t.now)}`);return{version:1,project_label:r,selector:n,...o==null?{}:{queue_poll:o},argv:s,workspace_path:l,...d==null?{}:{trunk:d},env:i,...a==null?{}:{log_path:a},target:e.target,registered_at:new Date(u).toISOString(),renew_within_ms:c,renew_by:new Date(u+c).toISOString(),renewed_at:new Date(u).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var jn=class extends Error{constructor(r,n={kind:"never"}){super(HT(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function HT(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 im(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:zd(t.launch.argv,e.project_label),env:Yd(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:Jd(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 Xd(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 UT(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function am(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*WT;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 lm(e,t){let r=[],n=[];for(let o of e)(UT(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Es(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.project_label=="string"&&typeof t.selector=="string"&&(t.queue_poll===void 0||dm(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||qT(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||VT(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.launch_revision===void 0||Number.isInteger(t.launch_revision))&&(t.sustained_at===void 0||typeof t.sustained_at=="string")&&(t.sustains===void 0||Number.isInteger(t.sustains))&&(t.sustained_by===void 0||t.sustained_by==="open-work"||t.sustained_by==="live-worker")}function qT(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 KT(e,t){if(e!==void 0){if(!dm(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function dm(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.owner=="string"&&t.owner!==""&&typeof t.repo=="string"&&t.repo!==""&&Array.isArray(t.labels)&&t.labels.length>0&&t.labels.every(r=>typeof r=="string"&&r!=="")&&(t.creator===void 0||typeof t.creator=="string")}function VT(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function xs(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var zT={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 cm(e){return`worker-${e}`}function um(e){let t=zT[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 pm(e){return e==="single-object"?"rest":"graphql"}function fm(e,t){return e==="stable-poll"?"rest":pm(t)}function Vt(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??fm(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 gm=[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",Vt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),ot("release view","single-object","stable-poll","rest",Vt("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",Vt("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",Vt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),ot("run list","multi-node","stable-poll","rest",Vt("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",Vt("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",Vt("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",Vt("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",Vt("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",Vt("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",Vt("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",Vt("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")],JT=new Map(gm.map(e=>[e.key,e]));function hm(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 Zd(e){let t=hm(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 la=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=Zd(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 mm(e){return JT.get(Zd(e))??null}function bm(e){let t=mm(e);if(!t)throw new la(e);return t}function ec(e){return bm(e).surface}import{appendFile as YT,mkdir as QT,readFile as XT}from"node:fs/promises";import{dirname as ZT}from"node:path";function da(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=eP(n.operation,n.cost,n.observedAt??t(),n.actor),s=Mt().push(rP(o));return r=r.then(async()=>{await QT(ZT(e.path),{recursive:!0}),await YT(e.path,s,"utf8")}),r},async report(n){await r;let o=tc(n.from,"report window start"),s=tc(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await tP(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 eP(e,t,r,n){if(tc(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 tP(e){let t;try{t=await XT(e,"utf8")}catch(s){if(sP(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(OT).map(DT)}function Wh(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,AT(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function AT(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 CT(e){return{...e}}function OT(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...RT,..._T].includes(t)}function DT(e){let t=e.kind??e.event;return{version:1,ts:String(e.ts),kind:t,event:t,worker_id:String(e.worker_id),project_label:gt(e.project_label)??"",pid:Number(e.pid??0),workspace_path:gt(e.workspace_path)??"",fork_sha:gt(e.fork_sha),log_path:gt(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:gt(e.unit),memory_high:gt(e.memory_high),memory_max:gt(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:gt(e.admission_verdict),phase:gt(e.phase),step:gt(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:gt(e.runner),model:gt(e.model),base_head_sha:gt(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:gt(e.heal_kind),detail:gt(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:gt(e.signal),reason:gt(e.reason)}}function gt(e){return e==null||e===""?null:String(e)}function Hh(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,k=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:k,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 b=0;b<k;b+=1)(s[b]??(s[b]=[])).push({project_label:i.project_label,index:a+b,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function Uh(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function qh(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 Es={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function Kh(e,t,r){if(t>=6e4)return Es;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 Vh(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function Yd(){return Es}function FT(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 zh(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>FT(r,n,t)).filter(r=>r!=null)}function Yh(e){let t=e.workers.map(IT),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:LT({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function Qh(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 IT(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 MT(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 LT(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${MT(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${Jh(e.held,"Worker")} across ${Jh(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 Jh(e,t){return`${e} ${t}${e===1?"":"s"}`}function Qd(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 jT,mkdir as BT,readFile as $T,rm as NT,writeFile as GT}from"node:fs/promises";import{dirname as Xh,join as rm}from"node:path";import{tmpdir as Zh}from"node:os";var WT="redskilled.machine.claim.toon",Zd="REDSKILLED_MACHINE_DIR",HT=8,qr=class extends Error{constructor(r,n,o){super(qT(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},em;function ca(){return em??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},em}function UT(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[Zd]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||Zh():Zh();return rm(o,`redskilled-${e.machineIdHash}`)}function Eo(e){return rm(UT(e),WT)}function vs(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){let l;try{l=await $T(e,"utf8")}catch(c){if(c.code==="ENOENT"||Xd(c))return;throw c}let d=VT(l);return zT(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 NT(e,{force:!0}),!0}catch(l){if(Xd(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await BT(Xh(e),{recursive:!0,mode:1023})!=null&&await jT(Xh(e),1023).catch(()=>{});let c=!1;for(let u=0;u<HT;u+=1){let p=i(l,n());try{return await GT(e,KT(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(Xd(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(tm(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||!tm(d,l,t.socketPath)?!1:await a()}}}function nm(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 om(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 qT(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 Xd(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function tm(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function KT(e){return`${ot(e,{keyedMapCollapse:!0})}
|
|
65
|
+
`}function VT(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function zT(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 JT=["worker_id","slot","workspace_path","log_path"],ua=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${JT.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},sm=/\{\{([a-z_]+)\}\}/g;function YT(e,t){let r=(i,a)=>i.replace(sm,(l,d)=>{switch(d){case"worker_id":return t.worker_id;case"slot":return String(t.slot);case"workspace_path":return t.workspace_path;case"log_path":return t.log_path??"";default:throw new ua(d,a)}}),n=e.argv.map((i,a)=>r(i,`argv word ${a}`)),o={};for(let[i,a]of Object.entries(e.env??{}))o[i]=r(a,`env entry ${JSON.stringify(i)}`);let s=e.log_path==null?void 0:r(e.log_path,"the log path");return{argv:n,env:o,...s==null||s===""?{}:{log_path:s}}}function im(e,t){if(!(e==null||e.trim()===""))return e.replace(sm,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new ua(n,"the log path")}})}function am(e,t,r){let n=YT(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 ec(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 tc(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 rc(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 QT=3e5,XT=.5,nc=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 lm(e,t){if(t.held!=null)throw new nc(t.held);let r=Ss(e.project_label,"a project label"),n=Ss(e.selector,"a selector"),o=rP(e.queue_poll,r),s=ec(e.argv,r),i=rc(e.env,r),a=tc(e.log_path,r),l=Ss(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),d=e.trunk==null?void 0:{remote:Ss(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:Ss(e.trunk.branch,`a trunk branch for project ${JSON.stringify(r)}`)};if(!Number.isInteger(e.target)||e.target<0)throw new Error(`redskilled needs a whole, non-negative target to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.target)}`);let c=e.renew_within_ms??QT;if(!Number.isFinite(c)||c<=0)throw new Error(`redskilled needs a positive renewal window to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.renew_within_ms)}: a registration that lapses on arrival is a poll nobody asked for`);let u=Date.parse(t.now);if(!Number.isFinite(u))throw new Error(`redskilled needs an instant to date a registration, not ${JSON.stringify(t.now)}`);return{version:1,project_label:r,selector:n,...o==null?{}:{queue_poll:o},argv:s,workspace_path:l,...d==null?{}:{trunk:d},env:i,...a==null?{}:{log_path:a},target:e.target,registered_at:new Date(u).toISOString(),renew_within_ms:c,renew_by:new Date(u+c).toISOString(),renewed_at:new Date(u).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var jn=class extends Error{constructor(r,n={kind:"never"}){super(ZT(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function ZT(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 dm(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:ec(t.launch.argv,e.project_label),env:rc(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:tc(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 oc(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 eP(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function cm(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*XT;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 um(e,t){let r=[],n=[];for(let o of e)(eP(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Ts(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||pm(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||tP(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||nP(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.launch_revision===void 0||Number.isInteger(t.launch_revision))&&(t.sustained_at===void 0||typeof t.sustained_at=="string")&&(t.sustains===void 0||Number.isInteger(t.sustains))&&(t.sustained_by===void 0||t.sustained_by==="open-work"||t.sustained_by==="live-worker")}function tP(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 rP(e,t){if(e!==void 0){if(!pm(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function pm(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 nP(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function Ss(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var oP={ping:"host-read","host-state":"host-read","statusline-payload":"host-read",shutdown:"daemon-life","worker-start":"project-write","worker-stop":"project-write","worker-recycle":"project-write","worker-steer":"project-write","worker-heartbeat":"project-write","project-register":"project-write","project-renew":"project-write","project-reset":"project-write","project-deregister":"project-write"};function fm(e){return`worker-${e}`}function gm(e){let t=oP[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 hm(e){return e==="single-object"?"rest":"graphql"}function mm(e,t){return e==="stable-poll"?"rest":hm(t)}function zt(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??mm(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 bm=[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",zt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),st("release view","single-object","stable-poll","rest",zt("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",zt("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",zt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),st("run list","multi-node","stable-poll","rest",zt("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",zt("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",zt("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",zt("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",zt("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",zt("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",zt("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",zt("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")],sP=new Map(bm.map(e=>[e.key,e]));function ym(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 sc(e){let t=ym(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=sc(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 km(e){return sP.get(sc(e))??null}function wm(e){let t=km(e);if(!t)throw new pa(e);return t}function ic(e){return wm(e).surface}import{appendFile as iP,mkdir as aP,readFile as lP}from"node:fs/promises";import{dirname as dP}from"node:path";function fa(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=cP(n.operation,n.cost,n.observedAt??t(),n.actor),s=Mt().push(pP(o));return r=r.then(async()=>{await aP(dP(e.path),{recursive:!0}),await iP(e.path,s,"utf8")}),r},async report(n){await r;let o=ac(n.from,"report window start"),s=ac(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await uP(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 cP(e,t,r,n){if(ac(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 uP(e){let t;try{t=await lP(e,"utf8")}catch(s){if(hP(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=xr(`${i}
|
|
67
67
|
${a}
|
|
68
|
-
`)[0]}catch{n+=1,s+=1;continue}if(!
|
|
68
|
+
`)[0]}catch{n+=1,s+=1;continue}if(!fP(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function pP(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 fP(e){return gP(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 ac(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 gP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function hP(e){return e instanceof Error&&"code"in e}var _m=Hl(cc(),1);var Kr=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 mP="0.0.0-development";function bP(e){return e.request!==void 0}async function Rm(e,t,r,n){if(!bP(r)||!r?.request.request)throw r;if(r.status>=400&&!e.doNotRetry.includes(r.status)){let o=n.request.retries!=null?n.request.retries:e.retries,s=Math.pow((n.request.retryCount||0)+1,2);throw t.retry.retryRequest(r,o,s)}throw r}async function yP(e,t,r,n){let o=new _m.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(kP.bind(null,e,t,r),n)}async function kP(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 Kr(o.data.errors[0].message,500,{request:n,response:o});return Rm(e,t,s,n)}return o}function uc(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",Rm.bind(null,r,n)),e.hook.wrap("request",yP.bind(null,r,n))),n}uc.VERSION=mP;var Em=Hl(cc(),1),wP="0.0.0-development",pc=()=>Promise.resolve();function RP(e,t,r){return e.retryLimiter.schedule(_P,e,t,r)}async function _P(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=xP(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,pc),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,pc),i&&await e.search.key(e.id).schedule(d,pc);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 xP(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 EP=["/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 vP(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var xm=vP(EP),vm=xm.test.bind(xm),sr={},SP=function(e,t){sr.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),sr.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),sr.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),sr.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),sr.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function ga(e,t){let{enabled:r=!0,Bottleneck:n=Em.default,id:o="no-id",timeout:s=1e3*60*2,connection:i}=t.throttle||{};if(!r)return{};let a={timeout:s};typeof i<"u"&&(a.connection=i);let l=Object.assign({clustering:i!=null,triggersNotification:vm,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:o},t.throttle);if(typeof l.onSecondaryRateLimit!="function"||typeof l.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
|
|
69
69
|
You must pass the onSecondaryRateLimit and onRateLimit error handlers.
|
|
70
70
|
See https://octokit.github.io/rest.js/#throttling
|
|
71
71
|
|
|
@@ -75,33 +75,34 @@ ${a}
|
|
|
75
75
|
onRateLimit: (retryAfter, options) => {/* ... */}
|
|
76
76
|
}
|
|
77
77
|
})
|
|
78
|
-
`);let d=!1,c=()=>{if(d)return;d=!0,
|
|
79
|
-
`+n.repeat(u));let b=f.val[f.index],v=i(f.val,String(f.index),b);if(
|
|
80
|
-
`+n.repeat(u)+
|
|
81
|
-
`+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},
|
|
78
|
+
`);let d=!1,c=()=>{if(d)return;d=!0,sr.global==null&&SP(n,a),l.global=l.global??sr.global,l.auth=l.auth??sr.auth,l.search=l.search??sr.search,l.write=l.write??sr.write,l.notifications=l.notifications??sr.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[k,b,v]=f.args,{pathname:T}=new URL(v.url,"http://github.test");if(!(T.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let D=~~b.retryCount;b.retryCount=D,v.request.retryCount=D;let{wantRetry:L,retryAfter:W=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let K=Number(g.response.headers["retry-after"])||k.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",K,v,e,D),retryAfter:K}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(K=>K.type==="RATE_LIMITED")){let K=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),H=Math.max(Math.ceil((K-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",H,v,e,D),retryAfter:H}}return{}}();if(L)return b.retryCount++,W*k.retryAfterBaseValue})};return e.hook.wrap("request",(u,p)=>(c(),RP(l,u,p))),{}}ga.VERSION=wP;ga.triggersNotification=vm;function ln(){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 ha(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)=>ha.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 Sm(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 Tm(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 Pm=Function.bind,Am=Pm.bind(Pm);function Cm(e,t,r){let n=Am(Tm,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]=Am(Sm,null).apply(null,s)})}function TP(){let e=Symbol("Singular"),t={registry:{}},r=ha.bind(null,t,e);return Cm(r,t,e),r}function PP(){let e={registry:{}},t=ha.bind(null,e);return Cm(t,e),t}var Om={Singular:TP,Collection:PP};var AP="0.0.0-development",CP=`octokit-endpoint.js/${AP} ${ln()}`,OP={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":CP},mediaType:{format:""}};function DP(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function FP(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 Im(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{FP(t[n])?n in e?r[n]=Im(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Dm(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function gc(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=DP(r.headers),Dm(r),Dm(r.headers);let n=Im(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 IP(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 MP=/\{[^{}}]+\}/g;function LP(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function jP(e){let t=e.match(MP);return t?t.map(LP).reduce((r,n)=>r.concat(n),[]):[]}function Fm(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Mm(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 So(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Ps(e,t,r){return t=e==="+"||e==="#"?Mm(t):So(t),r?So(r)+"="+t:t}function vo(e){return e!=null}function fc(e){return e===";"||e==="&"||e==="?"}function BP(e,t,r,n){var o=e[r],s=[];if(vo(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(Ps(t,o,fc(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(vo).forEach(function(i){s.push(Ps(t,i,fc(t)?r:""))}):Object.keys(o).forEach(function(i){vo(o[i])&&s.push(Ps(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(vo).forEach(function(a){i.push(Ps(t,a))}):Object.keys(o).forEach(function(a){vo(o[a])&&(i.push(So(a)),i.push(Ps(t,o[a].toString())))}),fc(t)?s.push(So(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?vo(o)&&s.push(So(r)):o===""&&(t==="&"||t==="?")?s.push(So(r)+"="):o===""&&s.push("");return s}function $P(e){return{expand:NP.bind(null,e)}}function NP(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(BP(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 Mm(s)}),e==="/"?e:e.replace(/\/$/,"")}function Lm(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),o,s=Fm(e,["method","baseUrl","url","headers","request","mediaType"]),i=jP(r);r=$P(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(c=>i.includes(c)).concat("baseUrl"),l=Fm(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=IP(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 GP(e,t,r){return Lm(gc(e,t,r))}function jm(e,t){let r=gc(e,t),n=GP.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:jm.bind(null,r),merge:gc.bind(null,r),parse:Lm})}var Bm=jm(null,OP);var rb=Hl(qm(),1);var QP=/^-?\d+$/,ya=/^-?\d+n+$/,dn=JSON.stringify,yc=JSON.parse,Ym=/^-?\d+n$/,Km=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Vm=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,kc=e=>e===void 0||typeof e=="function"||typeof e=="symbol",wc=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",XP=(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,k,b)=>(b!==null&&typeof b=="object"&&typeof b.toJSON=="function"&&(b=b.toJSON(k)),typeof b=="string"&&ya.test(b)?b+"n":typeof b=="bigint"?"rawJSON"in JSON?JSON.rawJSON(b.toString()):b.toString()+"n":(o&&(b=t.call(f,k,b)),b!==null&&typeof b=="object"&&(b instanceof Number||b instanceof String||b instanceof Boolean)&&(b=b.valueOf()),b)),a=i({"":e},"",e);if(kc(a))return;let l=a===null||typeof a!="object",d=wc(a);if(l||d)return dn(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 k=!1;if(f.isArray)if(f.index<f.val.length){f.first||c.push(","),n&&c.push(`
|
|
79
|
+
`+n.repeat(u));let b=f.val[f.index],v=i(f.val,String(f.index),b);if(kc(v))c.push("null"),f.first=!1,f.index++;else{let T=v!==null&&typeof v=="object",$=wc(v);if(T&&!$){if(g.has(v))throw new TypeError("Converting circular structure to JSON");g.add(v),p.push({parent:f.val,key:String(f.index),val:v,isArray:Array.isArray(v),keys:Array.isArray(v)?null:Object.keys(v),index:0,first:!0}),f.first=!1,f.index++}else c.push(dn(v)),f.first=!1,f.index++}}else k=!0;else{for(;f.index<f.keys.length;){let v=f.keys[f.index++];if(s&&!s.has(v))continue;let $=f.val[v],D=i(f.val,v,$);if(kc(D))continue;f.first||c.push(","),n?c.push(`
|
|
80
|
+
`+n.repeat(u)+dn(v)+": "):c.push(dn(v)+":");let L=D!==null&&typeof D=="object",W=wc(D);if(L&&!W){if(g.has(D))throw new TypeError("Converting circular structure to JSON");g.add(D),p.push({parent:f.val,key:v,val:D,isArray:Array.isArray(D),keys:Array.isArray(D)?null:Object.keys(D),index:0,first:!0}),f.first=!1;break}else c.push(dn(D)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(k=!0)}k&&(u--,!f.first&&n&&c.push(`
|
|
81
|
+
`+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},Qm=(e,t,r)=>{try{return"rawJSON"in JSON?dn(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?dn(e,(a,l)=>typeof l=="string"&&ya.test(l)||typeof l=="bigint"?l.toString()+"n":typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r).replace(Km,"$1$2$3").replace(Vm,"$1$2$3"):dn(e,t,r)}catch(n){if(n instanceof RangeError){let o=XP(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(Km,"$1$2$3").replace(Vm,"$1$2$3")}throw n}},ba=new Map,ZP=()=>{let e=JSON.parse.toString();if(ba.has(e))return ba.get(e);try{let t=JSON.parse("1",(r,n,o)=>!!o?.source&&o.source==="1");return ba.set(e,t),t}catch{return ba.set(e,!1),!1}},eA=(e,t,r,n)=>typeof t=="string"&&Ym.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&ya.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,tA=(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&&QP.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),Xm=Number.MAX_SAFE_INTEGER.toString(),zm=Xm.length,rA=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,nA=/^"-?\d+n+"$/,oA=(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"&&(Ym.test(a)?a=BigInt(a.slice(0,-1)):ya.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[""]},Jm=e=>e.replace(rA,(t,r,n,o)=>{let s=t[0]==='"';if(s&&nA.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<zm||r.length===zm&&r<=Xm);return s||a||l?t:'"'+t+'n"'}),Zm=(e,t)=>{if(!e)return yc(e,t);try{if(ZP())return tA(e,t);let r=Jm(e);return yc(r,(n,o,s)=>eA(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=Jm(e),o=yc(n);return oA(o,t)}throw r}};var sA="10.0.13",iA={headers:{"user-agent":`octokit-request.js/${sA} ${ln()}`}};function aA(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 eb=()=>"";async function tb(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=aA(e.body)||Array.isArray(e.body)?Qm(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 Kr(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 Kr(i.statusText,a,{response:c,request:e})}if(a===304)throw c.data=await Rc(i),new Kr("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await Rc(i),new Kr(dA(c.data),a,{response:c,request:e});return c.data=n?await Rc(i):i.body,c}async function Rc(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(eb);let r=(0,rb.parse)(t);if(lA(r)){let n="";try{return n=await e.text(),Zm(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(eb):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function lA(e){return e.type==="application/json"||e.type==="application/scim+json"}function dA(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 _c(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 tb(r.parse(i));let a=(l,d)=>tb(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:_c.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:_c.bind(null,r)})}var As=_c(Bm,iA);var cA="0.0.0-development";function uA(e){return`Request failed due to following response errors:
|
|
82
82
|
`+e.errors.map(t=>` - ${t.message}`).join(`
|
|
83
|
-
`)}var rA=class extends Error{constructor(e,t,r){super(tA(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},nA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],oA=["query","method","url"],eb=/\/api\/v3\/?$/;function sA(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(oA.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)=>nA.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 eb.test(s)&&(o.url=s.replace(eb,"/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 rA(o,a,i.data)}return i.data.data})}function bc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>sA(r,o,s),{defaults:bc.bind(null,r),endpoint:r.endpoint})}var VG=bc(Ss,{headers:{"user-agent":`octokit-graphql.js/${eA} ${sn()}`},method:"POST",url:"/graphql"});function tb(e){return bc(e,{method:"POST",url:"/graphql"})}var yc="(?:[a-zA-Z0-9_-]+)",rb="\\.",nb=new RegExp(`^${yc}${rb}${yc}${rb}${yc}$`),iA=nb.test.bind(nb);async function aA(e){let t=iA(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 lA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function dA(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=lA(e),t(o)}var ob=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(aA.bind(null,t),{hook:dA.bind(null,t)})};var kc="7.0.7";var sb=()=>{},cA=console.warn.bind(console),uA=console.error.bind(console);function pA(e={}){return typeof e.debug!="function"&&(e.debug=sb),typeof e.info!="function"&&(e.info=sb),typeof e.warn!="function"&&(e.warn=cA),typeof e.error!="function"&&(e.error=uA),e}var ib=`octokit-core.js/${kc} ${sn()}`,ha=class{static VERSION=kc;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 Pm.Collection,n={baseUrl:Ss.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} ${ib}`:ib,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Ss.defaults(n),this.graphql=tb(this.request).defaults(n),this.log=pA(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=ob(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 ab="6.0.0";function wc(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})})}wc.VERSION=ab;var fA="0.0.0-development";function gA(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 Rc(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=gA(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 lb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),db(e,[],Rc(e,t,r)[Symbol.asyncIterator](),n)}function db(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:db(e,t,r,n)})}var cN=Object.assign(lb,{iterator:Rc});function _c(e){return{paginate:Object.assign(lb.bind(null,e),{iterator:Rc.bind(null,e)})}}_c.VERSION=fA;var xc="17.0.0";var hA={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"]}},cb=hA;var Bn=new Map;for(let[e,t]of Object.entries(cb))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);Bn.has(e)||Bn.set(e,new Map),Bn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var mA={has({scope:e},t){return Bn.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[...Bn.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=Bn.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=bA(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function Ec(e){let t={};for(let r of Bn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},mA);return t}function bA(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 yA(e){return{rest:Ec(e)}}yA.VERSION=xc;function vc(e){let t=Ec(e);return{...t,rest:t}}vc.VERSION=xc;var ub="22.0.1";var pb=ha.plugin(wc,vc,_c).defaults({userAgent:`octokit-rest.js/${ub}`});function kA(e){return`r${e}`}function fb(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=kA(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 pA=class extends Error{constructor(e,t,r){super(uA(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},fA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],gA=["query","method","url"],nb=/\/api\/v3\/?$/;function hA(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(gA.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)=>fA.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 nb.test(s)&&(o.url=s.replace(nb,"/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 pA(o,a,i.data)}return i.data.data})}function xc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>hA(r,o,s),{defaults:xc.bind(null,r),endpoint:r.endpoint})}var lG=xc(As,{headers:{"user-agent":`octokit-graphql.js/${cA} ${ln()}`},method:"POST",url:"/graphql"});function ob(e){return xc(e,{method:"POST",url:"/graphql"})}var Ec="(?:[a-zA-Z0-9_-]+)",sb="\\.",ib=new RegExp(`^${Ec}${sb}${Ec}${sb}${Ec}$`),mA=ib.test.bind(ib);async function bA(e){let t=mA(e),r=e.startsWith("v1.")||e.startsWith("ghs_"),n=e.startsWith("ghu_");return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function yA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function kA(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=yA(e),t(o)}var ab=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(bA.bind(null,t),{hook:kA.bind(null,t)})};var vc="7.0.7";var lb=()=>{},wA=console.warn.bind(console),RA=console.error.bind(console);function _A(e={}){return typeof e.debug!="function"&&(e.debug=lb),typeof e.info!="function"&&(e.info=lb),typeof e.warn!="function"&&(e.warn=wA),typeof e.error!="function"&&(e.error=RA),e}var db=`octokit-core.js/${vc} ${ln()}`,ka=class{static VERSION=vc;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 Om.Collection,n={baseUrl:As.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${db}`:db,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=As.defaults(n),this.graphql=ob(this.request).defaults(n),this.log=_A(t.log),this.hook=r,t.authStrategy){let{authStrategy:s,...i}=t,a=s(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let s=ab(t.auth);r.wrap("request",s.hook),this.auth=s}let o=this.constructor;for(let s=0;s<o.plugins.length;++s)Object.assign(this,o.plugins[s](this,t))}request;graphql;log;hook;auth};var cb="6.0.0";function Sc(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})})}Sc.VERSION=cb;var xA="0.0.0-development";function EA(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 Tc(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=EA(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 ub(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),pb(e,[],Tc(e,t,r)[Symbol.asyncIterator](),n)}function pb(e,t,r,n){return r.next().then(o=>{if(o.done)return t;let s=!1;function i(){s=!0}return t=t.concat(n?n(o.value,i):o.value.data),s?t:pb(e,t,r,n)})}var vG=Object.assign(ub,{iterator:Tc});function Pc(e){return{paginate:Object.assign(ub.bind(null,e),{iterator:Tc.bind(null,e)})}}Pc.VERSION=xA;var Ac="17.0.0";var vA={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteCustomImageFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],deleteCustomImageVersionFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomImageForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],getCustomImageVersionForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listCustomImageVersionsForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"],listCustomImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingPremiumRequestUsageReportOrg:["GET /organizations/{org}/settings/billing/premium_request/usage"],getGithubBillingPremiumRequestUsageReportUser:["GET /users/{username}/settings/billing/premium_request/usage"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubBillingUsageReportUser:["GET /users/{username}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},credentials:{revoke:["POST /credentials/revoke"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],repositoryAccessForOrg:["GET /organizations/{org}/dependabot/repository-access"],setRepositoryAccessDefaultLevel:["PUT /organizations/{org}/dependabot/repository-access/default-level"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],updateRepositoryAccessForOrg:["PATCH /organizations/{org}/dependabot/repository-access"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},enterpriseTeamMemberships:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"],get:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],list:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],remove:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"]},enterpriseTeamOrganizations:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"],delete:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignment:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignments:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"]},enterpriseTeams:{create:["POST /enterprises/{enterprise}/teams"],delete:["DELETE /enterprises/{enterprise}/teams/{team_slug}"],get:["GET /enterprises/{enterprise}/teams/{team_slug}"],list:["GET /enterprises/{enterprise}/teams"],update:["PATCH /enterprises/{enterprise}/teams/{team_slug}"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addBlockedByDependency:["POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],getParent:["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listDependenciesBlockedBy:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],listDependenciesBlocking:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeDependencyBlockedBy:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createArtifactStorageRecord:["POST /orgs/{org}/artifacts/metadata/storage-record"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createWebhook:["POST /orgs/{org}/hooks"],customPropertiesForOrgsCreateOrUpdateOrganizationValues:["PATCH /organizations/{org}/org-properties/values"],customPropertiesForOrgsGetOrganizationValues:["GET /organizations/{org}/org-properties/values"],customPropertiesForReposCreateOrUpdateOrganizationDefinition:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposCreateOrUpdateOrganizationDefinitions:["PATCH /orgs/{org}/properties/schema"],customPropertiesForReposCreateOrUpdateOrganizationValues:["PATCH /orgs/{org}/properties/values"],customPropertiesForReposDeleteOrganizationDefinition:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinition:["GET /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinitions:["GET /orgs/{org}/properties/schema"],customPropertiesForReposGetOrganizationValues:["GET /orgs/{org}/properties/values"],delete:["DELETE /orgs/{org}"],deleteAttestationsBulk:["POST /orgs/{org}/attestations/delete-request"],deleteAttestationsById:["DELETE /orgs/{org}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /orgs/{org}/attestations/digest/{subject_digest}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],disableSelectedRepositoryImmutableReleasesOrganization:["DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],enableSelectedRepositoryImmutableReleasesOrganization:["PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],get:["GET /orgs/{org}"],getImmutableReleasesSettings:["GET /orgs/{org}/settings/immutable-releases"],getImmutableReleasesSettingsRepositories:["GET /orgs/{org}/settings/immutable-releases/repositories"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listArtifactStorageRecords:["GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"],listAttestationRepositories:["GET /orgs/{org}/attestations/repositories"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listAttestationsBulk:["POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setImmutableReleasesSettings:["PUT /orgs/{org}/settings/immutable-releases"],setImmutableReleasesSettingsRepositories:["PUT /orgs/{org}/settings/immutable-releases/repositories"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},projects:{addItemForOrg:["POST /orgs/{org}/projectsV2/{project_number}/items"],addItemForUser:["POST /users/{username}/projectsV2/{project_number}/items"],deleteItemForOrg:["DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],deleteItemForUser:["DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"],getFieldForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"],getFieldForUser:["GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"],getForOrg:["GET /orgs/{org}/projectsV2/{project_number}"],getForUser:["GET /users/{username}/projectsV2/{project_number}"],getOrgItem:["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],getUserItem:["GET /users/{username}/projectsV2/{project_number}/items/{item_id}"],listFieldsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields"],listFieldsForUser:["GET /users/{username}/projectsV2/{project_number}/fields"],listForOrg:["GET /orgs/{org}/projectsV2"],listForUser:["GET /users/{username}/projectsV2"],listItemsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/items"],listItemsForUser:["GET /users/{username}/projectsV2/{project_number}/items"],updateItemForOrg:["PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],updateItemForUser:["PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkImmutableReleases:["GET /repos/{owner}/{repo}/immutable-releases"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],customPropertiesForReposCreateOrUpdateRepositoryValues:["PATCH /repos/{owner}/{repo}/properties/values"],customPropertiesForReposGetRepositoryValues:["GET /repos/{owner}/{repo}/properties/values"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disableImmutableReleases:["DELETE /repos/{owner}/{repo}/immutable-releases"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enableImmutableReleases:["PUT /repos/{owner}/{repo}/immutable-releases"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],listOrgPatternConfigs:["GET /orgs/{org}/secret-scanning/pattern-configurations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],updateOrgPatternConfigs:["PATCH /orgs/{org}/secret-scanning/pattern-configurations"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteAttestationsBulk:["POST /users/{username}/attestations/delete-request"],deleteAttestationsById:["DELETE /users/{username}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /users/{username}/attestations/digest/{subject_digest}"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listAttestationsBulk:["POST /users/{username}/attestations/bulk-list{?per_page,before,after}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},fb=vA;var Bn=new Map;for(let[e,t]of Object.entries(fb))for(let[r,n]of Object.entries(t)){let[o,s,i]=n,[a,l]=o.split(/ /),d=Object.assign({method:a,url:l},s);Bn.has(e)||Bn.set(e,new Map),Bn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var SA={has({scope:e},t){return Bn.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[...Bn.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=Bn.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=TA(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function Cc(e){let t={};for(let r of Bn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},SA);return t}function TA(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 PA(e){return{rest:Cc(e)}}PA.VERSION=Ac;function Oc(e){let t=Cc(e);return{...t,rest:t}}Oc.VERSION=Ac;var gb="22.0.1";var hb=ka.plugin(Sc,Oc,Pc).defaults({userAgent:`octokit-rest.js/${gb}`});function AA(e){return`r${e}`}function mb(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=AA(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 gb(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 wA=pb.plugin(sc,ca);function hb(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function mb(e){if(e?.outcome!=="asked")return Number.POSITIVE_INFINITY;let t=e.pools.rest,r=e.pools.graphql;return t===null||r===null||r.remaining<=0||r.fraction<=0?Number.POSITIVE_INFINITY:t.remaining<=0||t.fraction<=0?1:!Number.isFinite(t.fraction)||!Number.isFinite(r.fraction)?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(t.fraction/r.fraction))}var So=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 Sc(e){let t=e.etags??hb(),r=new wA({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=ln(p.headers)?p.headers:{};p.headers={...g,...u?{"if-none-match":u.etag}:{}};try{let f=await r.request(c.route,p),k=f.headers,b=ma(k,"etag");return b!==void 0&&t.set(c.cacheKey,{etag:b,data:f.data,headers:k}),await e.attribution?.record({operation:c.operation,cost:1,actor:c.actor}),{data:f.data,headers:k,quotaFree:!1}}catch(f){if(Ts(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 k=bb(f),b={...u.headers,...k},v=ma(b,"etag")??u.etag;return t.set(c.cacheKey,{etag:v,data:u.data,headers:b}),await e.attribution?.record({operation:c.operation,cost:0,actor:c.actor}),{data:u.data,headers:b,quotaFree:!0}}throw Ts(f)===401?new So({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=fb(c.map(({input:b})=>b)),p=await r.graphql(u.query),g=gb(u,p),f=_A(p),k=c[0].input;await e.attribution?.record({operation:{key:k.operation.key,budget:"graphql"},cost:f,actor:xA(c.map(({input:b})=>b.actor))}),g.forEach((b,v)=>{let T=c[v];b.value===null?T.reject(new Error(`GitHub returned no ${b.read.kind} #${b.read.number} from the coalesced query`)):T.resolve({data:T.input.project?T.input.project(b.value,"graphql"):b.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=Ts(u)===401?new So({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=mb(c);s=!1;let p=[...o.values()];o.clear(),await Promise.all(p.map(async g=>{g.length>u?await a(g):await Promise.all(g.map(i))}))};return{conditionalRest:n,singleObject:c=>t.get(c.cacheKey)!==void 0?new Promise((u,p)=>{i({input:c,resolve:u,reject:p})}):new Promise((u,p)=>{let g=o.get(c.kind)??[];g.push({input:c,resolve:u,reject:p}),o.set(c.kind,g),s||(s=!0,setTimeout(()=>void l(),0))}),async conditionalPaginate(c){let u=[],p={},g=0,f=!0,k=1;for(;;){let b=await n({...c,cacheKey:`${c.cacheKey}:page:${k}`,parameters:{...c.parameters??{},per_page:100,page:k}});if(g+=1,f=f&&b.quotaFree,!Array.isArray(b.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(c.cacheKey)} page ${k}`);if(u.push(...b.data),p=b.headers,!RA(b.headers))break;k+=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 Ts(g)===401?new So({cause:g}):g}}}}function RA(e){let t=ma(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Ps(e){let t=Ts(e),r=bb(e);return t===429||t===403&&ma(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function Ts(e){if(ln(e))return typeof e.status=="number"?e.status:void 0}function bb(e){return!ln(e)||!ln(e.response)||!ln(e.response.headers)?{}:e.response.headers}function ma(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function ln(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function _A(e){let t=ln(e)?e:{},r=ln(t.data)?t.data:t,o=(ln(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 xA(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 kb="rate_limit",wb={rest:"core",graphql:"graphql",search:"search"},qr=["rest","graphql","search"];function wa(e,t){return{version:1,origin:"asked",outcome:"unanswered",source:"GET /rate_limit",asked_at:e,request_count:0,pools:{rest:null,graphql:null,search:null},unreported_pools:[...qr],detail:t??"no balance has been asked for yet, so none is known"}}var Pc=15e3,To=.15,ya=[{at_or_below_fraction:0,every_ms:Pc,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:To,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 DN=60*6e4,Tc=2;function Rb(e,t){let r=yb(e),n=yb(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of qr){let l=wb[a],d=n[l],c=SA(a,l,d);o[a]=c,c==null&&s.push(a)}let i=qr.length-s.length;return{version:1,origin:"asked",outcome:i>0?"asked":"unanswered",source:"GET /rate_limit",asked_at:t.askedAt,request_count:1,pools:o,unreported_pools:s,detail:i>0?`the token's own answer for ${i} of ${qr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function Ac(e){try{let t=await e.transport();return Rb(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...wa(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function Cc(e){let t=null;for(let r of qr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function Ra(e,t){let r=Cc(e);if(r==null)return ka(To).every_ms;let n=ka(r.fraction);if(r.remaining>0)return n.every_ms;let o=xb(t.now,r.reset_at);return o==null?n.every_ms:Math.max(Pc,Math.min(n.every_ms,o))}function Oc(e,t=To){return Math.ceil(e.limit*t)}function _b(e,t,r=To){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<Oc(n,r)?"reserved":"open"}function Dc(e){let t=e.reservedFraction??To,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:ka(t).every_ms*Tc,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:ka(t).every_ms,pools:[],unreported_pools:[...qr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=Ra(r,{now:e.now}),o=e.stalenessMs??n*Tc,s=xb(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=qr.map(c=>r.pools[c]).filter(c=>c!=null),l=vA(r,t),d=Cc(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`:EA(l,d,r,t)}}function Fc(e){if(!Mc(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 EA(e,t,r,n){if(t==null)return r.detail;let o=Oc(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 vA(e,t){let r="unknown";for(let n of qr){if(e.pools[n]==null)continue;let o=_b(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function ka(e){for(let t of ya)if(e<=t.at_or_below_fraction)return t;return ya[ya.length-1]}function SA(e,t,r){if(!Mc(r))return null;let n=ba(r.limit),o=ba(r.remaining),s=ba(r.used),i=ba(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 Ic(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${kb}`,{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 xb(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 ba(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function yb(e){return Mc(e)?e:{}}function Mc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as TA}from"node:child_process";import{existsSync as PA,readFileSync as _a,readdirSync as AA}from"node:fs";import{dirname as CA,join as $n}from"node:path";function As(e){let t=ws(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=xo(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function Eb(e){let t=[],r=[];for(let n of e.workers){let o=As(n);if(o==null){r.push({worker_id:n.worker_id,reason:(ws(n).memory_max??ws(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(OA(n,o,s))}}return{terminations:t,unenforceable:r}}function OA(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 DA=4096;function vb(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=IA(e,r,t);for(let[u,p]of a){let g=jA(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=GA(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],k=new Set;for(;f.length>0;){let b=f.pop();if(k.has(b))continue;k.add(b);let v=d.get(b);if(v){p+=v.rssBytes,g+=v.cpuSeconds;for(let T of c.get(b)??[])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 FA="/sys/fs/cgroup";function IA(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??FA,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=MA(s,r);for(let l of i)for(let d of a){let c=$n(d,l.unit);if(PA($n(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function MA(e,t){let r=t.selfCgroupPath??LA(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o($n(e,s));let a=CA(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o($n(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function LA(){try{for(let e of _a("/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 XA(e,t,r){let n=Po(t),o=Po(n.data),s=Array.isArray(n.errors)?n.errors.map(Po):[],i=oC(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=>Ab(f.path,l)||Ab(f.path,d));if(Cs(p)){let f=Cb(p.open_pull_requests),k=Cb(p.open_issues),b=sC(o[d]);if(f!=null&&k!=null&&b!=null)return{project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:f,open_issues:k,recently_closed:b},detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`}}return i.exhausted||jb(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: ${xa(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 ZA(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 Db(e){if(e.projects.length===0)return ZA(e.now);if(Bc(e.projects,e.hostTokenRef),e.transport.conditionalList)return await tC(e);let t=Ob(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return XA(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 eC={key:"redskilled repository activity poll",budget:"rest"};async function tC(e){Lb(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=Ob(e.projects,{now:r,closedWindowMs:e.closedWindowMs}),o=e.transport.conditionalList,s=[],i=0,a={remaining:null,reset_at:null,exhausted:!1,point_cost:null};for(let l of e.projects){let d=`${l.owner}/${l.name}`,c=[["open-prs","GET /repos/{owner}/{repo}/pulls",{owner:l.owner,repo:l.name,state:"open"}],["open-issues","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"open"}],["recently-closed","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"closed",since:n.closed_since}]],u=[];try{for(let[p,g,f]of c){let k=await o({cacheKey:`activity:${d}:${p}:${JSON.stringify(f)}`,route:g,parameters:f,operation:eC});i+=k.requestCount;let b=p==="open-prs"?k.data:k.data.filter(v=>!Cs(v.pull_request));u.push(p==="recently-closed"?b.filter(v=>xa(v.closed_at)>=n.closed_since).length:b.length),a=Tb(a,nC(k.headers))}s.push({project_label:l.project_label,repository:d,outcome:"counted",counts:{open_pull_requests:u[0],open_issues:u[1],recently_closed:u[2]},detail:`counted ${d} for project ${JSON.stringify(l.project_label)}`})}catch(p){let g=Ps(p);a=Tb(a,{remaining:null,reset_at:null,exhausted:g,point_cost:null}),s.push({project_label:l.project_label,repository:d,outcome:g?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${d} answered: ${p instanceof Error?p.message:String(p)}`})}}return{version:1,fetched_at:e.now,request_count:i,project_count:s.length,rate_limit:a,projects:s}}function Fb(e){let t=e.stalenessMs??YA,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 Ib(e){if(!Cs(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)&&Cs(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function Mb(e){let t=e.endpoint==null?void 0:rC(e.endpoint),r=Sc({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 rC(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 nC(e){let t=Pb(e,"x-ratelimit-remaining"),r=Pb(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Tb(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 Pb(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 Lb(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>Sb)throw new Error(`redskilled activity fetch spans at most ${Sb} repositories in one query`);let t=new Set;for(let r of e){if(r.project_label===""||r.owner===""||r.name==="")throw new Error("redskilled activity fetch needs a project label and an owner/name for every registered project");if(t.has(r.project_label))throw new Error(`redskilled holds one repository per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function oC(e,t){let r=Po(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(jb),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 jb(e){if(e==null)return!1;let t=xa(e.type),r=xa(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function Ab(e,t){return Array.isArray(e)&&e.includes(t)}function Cb(e){let t=Po(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function sC(e){let t=Po(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Po(e){return Cs(e)?e:{}}function Cs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function xa(e){return typeof e=="string"?e:""}var iC=3e4,aC=2,lC=3,dC=4,cC=["logs","vitals","display"];function Bb(e,t){if(t===void 0)return e;let r=cC.filter(o=>t[o]!==!0);if(r.length===0)return e;let n=o=>t[o]===!0;return{...e,workers:e.workers.map(o=>({...o,...n("vitals")?{}:{vitals:uC,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:pC},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var uC={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},pC={last_line:null,published_at:null,source:null};function $b(e){let t=e.stalenessMs??iC,r=dn(e.now),n=e.sampledAt==null?null:dn(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=>mC(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=ra(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:wC({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:kC(a),known_projects:yC(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:Dc({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Fb({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),...e.deaths===void 0?{}:{deaths:fC(e.deaths,e.recentDeathLimit??dC)},engine:hC(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function fC(e,t){let r=[...e].sort((s,i)=>(dn(i.ts)??0)-(dn(s.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(s=>({kind:s.kind,id:s.id,pid:s.pid,ts:s.ts,last_seen:s.last_seen,last_phase:s.last_phase,sender_class:s.sender_class,confidence:s.confidence,signal:s.signal,evidence:s.evidence[0]??null})),o=gC(r);return{count:r.length,recent:n,latest:n[0]??null,reaped_at:n[0]?.ts??null,...o==null?{}:{boot_loop:o}}}function gC(e){let t=new Map;for(let n of e){if(n.sender_class!=="boot-refused"||n.uptime_s==null||n.uptime_s>aC||n.project_label==null||n.project_label===""||dn(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>=lC).map(([n,o])=>{let s=o[0],i=dn(s.ts),a=Math.min(...o.map(d=>dn(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 hC(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 mC(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=As(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=dn(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:bC(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function bC(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 yC(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 kC(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 wC(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 dn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function $c(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(RC))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(_C))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||Ib(t.repository_activity))&&(t.github_balance===void 0||Fc(t.github_balance))&&(t.deaths===void 0||xC(t.deaths))&&(t.engine===void 0||EC(t.engine))&&(t.metrics===void 0||wh(t.metrics))}function RC(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 _C(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 xC(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 EC(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 Gb={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 Nb(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 bt=e=>`\x1B[${e}m`,Os=bt("48;2;114;47;55"),Gc=bt("48;2;88;36;42"),cn=bt("38;2;255;255;255"),Nc=bt("38;2;201;150;158"),Ds=bt("38;2;255;214;214"),Fs=bt("39"),Lt=bt("38;2;224;138;148"),Wc=bt("38;2;240;200;120"),Hc=bt("38;2;240;110;120"),Uc=bt("38;2;255;214;214"),qc=bt("38;2;146;84;94"),Kc=bt("38;2;255;95;95"),Sr=bt("49"),nr=bt("0"),Ea=bt("1"),va=bt("22");var vC=/\x1b\[[0-9;]*m/g,SC=/(\x1b\[[0-9;]*m)/,TC=/^\x1b\[[0-9;]*m$/;function Sa(e){return e.replace(vC,"")}function PC(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function zt(e){return[...Sa(e)].length}function Qe(e,t){if(t<=0)return"";if(zt(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(SC))if(i!==""){if(TC.test(i)){s+=i,o=!PC(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?nr:""}`;s+=a,n+=1}}return`${s}\u2026${o?nr:""}`}function Is(e,t){return e+" ".repeat(Math.max(0,t-zt(e)))}function Vc(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 or(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 Ms(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 un(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return Ms(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 pn(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 Ao(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var Ls="!unregistered",zc="!lapsed",js="\u21E1",Tr="\u2020",Co="\u25D0",Oo="\u25EF",Jc="\u21B3",Yc="redskilled unreachable \u2014 Worker state unknown";function Do(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Ta(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function Bs(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 Qc(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}var fn=["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},AC=" ",Wb="\u2588",CC="\u25B6",OC="\u2717",DC="\u2591",FC=new Set(["gate","push-pr","merge","cascade"]),IC=new Set(["requeue"]),MC="repair";function $s(e){return e.display?.origin===MC}function Fo(e,t=jt){let r=Bs(e,t.project),n=Do(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(f=>Aa(f,t,e.generated_at)),i=zC(s),a=o.map((f,k)=>({worker_id:f.worker_id,project_label:f.project_label,mine:t.project!=null&&f.project_label===t.project,cells:s[k],line:Qe(JC(s[k],i),t.maxWidth)})),l=jC(e,t,n,r),d=n.length-o.length,c=[l.line,...HC(e,t),...a.map(f=>f.line)];d>0&&c.push(Qe(`\u2026 ${d} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),c.push(...NC(e,t)),c.push(...GC(e,t));let u=Math.max(1,Math.floor(t.maxHeight??jt.maxHeight)),p=Math.max(0,c.length-u),g=p===0?c:u===1?[l.line]:[...c.slice(0,u-1),Qe(`\u2026 ${p+1} more row(s) \u2014 terminal height is ${u}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:fn,header:l,rows:a,lines:g,hidden_row_count:Math.max(0,d),stale:e.staleness.stale}}function Aa(e,t,r){let n=e.display??Gb,o=$s(e),s=[n.runner,n.model==null?null:Vc(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&FC.has(n.phase),a=o||i||n.origin!=null&&IC.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:Ub(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:pn(Nb(e,r)),eta:n.eta==null?"":`eta=${pn(n.eta*1e3)}`,hb:LC(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":VC(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${Ms(n.tokens)}`,ctx:n.context==null?"":`ctx=${Ms(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 LC(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} ${pn(Math.max(0,n-r))}`}function Ub(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 Wb.repeat(Math.floor(t));let o=e.failed?OC:CC;return`${Wb.repeat(n)}${o}${DC.repeat(Math.floor(t)-n-1)}`}function jC(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(L=>L.project_label===t.project),s={open_pull_requests:o?.counts?.open_pull_requests??null,recently_closed:o?.counts?.recently_closed??null,open_issues:o?.counts?.open_issues??null,stale:o?.stale===!0},i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=KC(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=[BC(l??"host",c,d!=null&&d.current===!1?js:"")];(n==="unregistered"||n==="name-only")&&g.push(Ls),n==="lapsed"&&g.push(zc);let f=p?.history_48h==null?null:WC(p.history_48h);f!=null&&g.push(Kr(f));let k=e.workers.filter($s).length;if(k>0){let L=Math.max(0,e.host.worker_count-k);g.push(`${Kr(`workers=${L} coding +`)} ${Os}${cn}${k} repairing${Sr}${Lt}`)}else g.push(Kr(`wrk=${r.length}/${e.host.worker_count}`));let b=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(Kr(`${b} reserve=${i.interactive_reservation} interactive`)),g.push(Kr(qC(i))),a!=null&&g.push(`${Os}${cn}${a}${Sr}${Lt}`),s.open_pull_requests!=null&&g.push(Kr(`prs=${s.open_pull_requests}`)),s.recently_closed!=null&&g.push(Kr(`cpr=${s.recently_closed}`)),s.open_issues!=null&&g.push(Kr(`iss=${s.open_issues}`)),s.stale&&g.push("!counts stale");let v=p==null?null:qb(p.hour),T=v==null?null:Kr(v);if(T!=null&&g.push(T),u!=null&&u.count>0&&u.latest!=null){let L=u.boot_loop,W=Ao(L?.latest_refusal);g.push(L==null?`${Tr}${u.count} ${u.latest.sender_class}`:`${Tr}${u.count} boot-refused \xD7${L.count} in ${$C(L.span_ms)}`+(W==null?"":` \u2014 ${W}`))}if(e.staleness.stale){let L=e.staleness.age_ms;g.push(L==null?"!unmeasured":`!stale ${Math.round(L/1e3)}s`)}let $=`${g.join(" \xB7 ")}${nr}`,D=v!=null&&zt($)>t.maxWidth?`${g.filter(L=>L!==T).join(" \xB7 ")}${nr}`:$;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 BC(e,t,r){return`${Gc}${cn}${Wc}\xBB${cn} ${Ea}${e}${va} ${Nc}v${t}${r}${cn}${Sr}${Lt}`}function Kr(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Ds}${n}${Fs}${o}${Lt}`)}function $C(e){return pn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function qb(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${un(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${un(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${un(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 GC(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?Oo:Co,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 NC(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(`${Tr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>Qe(`${Tr} ${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 WC(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${un(t)} ${Xc(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${un(r)} ${Xc(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function HC(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)]:[Hb("tokens",r.history_48h.tokens_per_hour,t),Hb("Tickets",r.history_48h.tickets_per_hour,t)]}var Pa=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function Hb(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=${un(o)}/h ${Xc(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 ${UC(t)} \xB7 ${a}${l}`,r.maxWidth)}function UC(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?Pa[0]:Pa[Math.min(Pa.length-1,Math.floor(Math.max(0,n.value)/r*(Pa.length-1)))]).join("")}function Xc(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function qC(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${or(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${or(e.memory_used_bytes)}/${or(e.memory_ceiling_bytes)}${t}`}function KC(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 VC(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 zC(e){let t=Object.fromEntries(fn.map(r=>[r,0]));for(let r of e)for(let n of fn)t[n]=Math.max(t[n],zt(r[n]));return t}function JC(e,t){let r=fn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>Ca(o,Is(e[o],s===r.length-1?zt(e[o]):t[o])));return`${Sr}${Lt}${n.join(AC)}${nr}`}function Ca(e,t){if(e==="wid")return`${Ea}${t}${va}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Os}${cn}${t.trimEnd()}${Sr}${Lt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${Hc}${n}`).replace("\u25B6",`${Uc}\u25B6`).replace("\u2717",`${Kc}\u2717`).replace(/░+/g,n=>`${qc}${n}`)+Lt;let r=t.indexOf("=");return r>0?`${Ds}${t.slice(0,r+1)}${Fs}${t.slice(r+1)}${Lt}`:t}function eu(e){return Object.freeze({none:!0,reason:e})}function Gs(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function Zc(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=>Zc(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=Zc(o,t);return Object.freeze(r)}finally{t.delete(e)}}function YC(e){let t=Zc(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function Gn(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=YC(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 Nn(e,t=Ge){let r=Bs(e,t.project),n=Do(e,t),o=Ta(e,t),s=rO(e,t.project,r),i=XC(e,t,n,r,s.prose),a=Qc({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:aO(i,QC(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||zt(f)<=t.maxWidth)break}let d=Qe(l.line,t.maxWidth),c=l.detail==="workers"?oO(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let k=t.verbose?sO(g,t):null;return k==null?[c.lines[f]]:[c.lines[f],k]}):[],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 ou(e){let t=e.options??Ge,r=Qe(Yc,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 QC(e,t){return e==="projects"?t.map(iO):[]}function XC(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="name-only";t.mode==="global"?(s.push(`host ${tu(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(nu(e,t))):n==="matched"?(s.push(`${t.project} ${tu(r,r.length)}`),s.push(nu(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${tu(r,r.length)}`),s.push(nu(e,t)),s.push(Ls)):s.push(o),s.push(Kb(e));let a=ZC(e);a!=null&&s.push(a);let l=eO(e);l!=null&&s.push(l),e.staleness.stale&&s.push(Vb(e));let d=s.join(" ");return!i||zt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,Kb(e),e.staleness.stale?Vb(e):null].filter(c=>c!=null).join(" ")}function tu(e,t){let r=e.filter($s).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function Kb(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${js}`}function ZC(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${Oo} quota spent`:t.posture==="reserved"?`${Co} quota band`:null}function eO(e){let t=e.deaths;if(t==null||t.count<=0||t.latest==null)return null;let r=t.boot_loop;if(r!=null){let n=Ao(r.latest_refusal);return`${Tr}${t.count} boot-refused \xD7${r.count} in ${tO(r.span_ms)}`+(n==null?"":` \u2014 ${n}`)}return`${Tr}${t.count} ${t.latest.sender_class}`}function tO(e){return pn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function rO(e,t,r){if(r==="unregistered")return Gn({state:`project unknown \u2014 ${t} was never registered on this host`,repair:Gs()});if(r==="orphaned")return Gn({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:eu("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 Gn({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${ru(n.at)}`}`,repair:Gs()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${ru(n.registered_at)})`;return Gn({state:`project unknown \u2014 ${t} lapsed at ${ru(n.at)}${o}`,repair:Gs()})}return Gn({state:`project unknown \u2014 ${t} lapsed`,repair:Gs()})}return r==="unresolved"?Gn({state:"project unknown \u2014 this directory resolved to no project",repair:eu("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function ru(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?`${or(r)}/${or(n)}`:or(r)}function Vb(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function nO(e,t,r,n){let o=r.map(s=>Ca(s,Is(e[s],t[s])));return Qe(`${Sr}${Lt}${o.join(" ")}${nr}`,n)}function oO(e,t,r){let n=e.map(a=>Aa(a,t,r)),o=fn.filter(a=>n.some(l=>zt(l[a])>0)),s=[...o],i=zb(n,s);for(;s.length>1&&Jb(i,s)>t.maxWidth;)s.pop(),i=zb(n,s);return{lines:n.map(a=>nO(a,i,s,t.maxWidth)),degraded:s.length<o.length||Jb(i,s)>t.maxWidth}}function zb(e,t){let r=Object.fromEntries(fn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],zt(n[o]));return r}function Jb(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function sO(e,t){let r=Ao(e.log.last_line);return r==null?null:Qe(` ${Jc} ${Yb(e,t.mode)}: ${r}`,t.maxWidth)}function Yb(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function iO(e){return`${e.project_label} ${e.worker_count}w ${or(e.observed_rss_bytes)}`}function aO(e,t,r){return[e,...t].join(r)}var Oa=1;async function Ns(e,t){return await Ji(e,t,"redskilled daemon")}function Xb(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:Oa,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:uO(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:xh(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:pO(e)}}function uO(e){let t=e.now==null?Number.NaN:Date.parse(e.now),r=Number.isFinite(t),n=e.queue??null,o=new Map(n==null?[]:n.projects.map(s=>[s.project_label,s]));return[...e.registrations??[]].map(s=>{let i=o.get(s.project_label);return{...s,...r?{renewal:am(s,t)}:{},...n==null||i==null?{}:{last_poll:{at:n.fetched_at,outcome:i.outcome,depth:i.depth,request_count:n.request_count,detail:i.detail}}}}).sort((s,i)=>s.project_label.localeCompare(i.project_label))}function pO(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 Zb(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||bO(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Eh(t.budget_accounting)&&(t.scope===void 0||tm(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Es))&&(t.demand===void 0||Nh(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(hO))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(mO))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(fO))&&(t.upgrade===void 0||yO(t.upgrade))}function fO(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 hO(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 mO(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 bO(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 yO(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 wO}from"node:crypto";import{mkdir as RO,readFile as _O,rename as xO,writeFile as EO}from"node:fs/promises";import{dirname as vO}from"node:path";function ey(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await _O(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=SO(s);return TO(i)?i.registrations:[]}async function o(s){await RO(vO(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${wO()}.tmp`,a={version:1,registrations:[...s]};await EO(i,`${nt(a,{keyedMapCollapse:!0})}
|
|
90
|
-
`,{encoding:"utf8",mode:384}),await
|
|
91
|
-
`),e.command,...e.args]}function
|
|
92
|
-
`).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function
|
|
93
|
-
`),aliases:n}}function
|
|
94
|
-
`);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
|
|
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
|
|
85
|
+
`),aliases:r}}function bb(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 CA=hb.plugin(uc,ga);function yb(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function kb(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 To=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 Dc(e){let t=e.etags??yb(),r=new CA({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=cn(p.headers)?p.headers:{};p.headers={...g,...u?{"if-none-match":u.etag}:{}};try{let f=await r.request(c.route,p),k=f.headers,b=wa(k,"etag");return b!==void 0&&t.set(c.cacheKey,{etag:b,data:f.data,headers:k}),await e.attribution?.record({operation:c.operation,cost:1,actor:c.actor}),{data:f.data,headers:k,quotaFree:!1}}catch(f){if(Cs(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 k=wb(f),b={...u.headers,...k},v=wa(b,"etag")??u.etag;return t.set(c.cacheKey,{etag:v,data:u.data,headers:b}),await e.attribution?.record({operation:c.operation,cost:0,actor:c.actor}),{data:u.data,headers:b,quotaFree:!0}}throw Cs(f)===401?new To({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=mb(c.map(({input:b})=>b)),p=await r.graphql(u.query),g=bb(u,p),f=DA(p),k=c[0].input;await e.attribution?.record({operation:{key:k.operation.key,budget:"graphql"},cost:f,actor:FA(c.map(({input:b})=>b.actor))}),g.forEach((b,v)=>{let T=c[v];b.value===null?T.reject(new Error(`GitHub returned no ${b.read.kind} #${b.read.number} from the coalesced query`)):T.resolve({data:T.input.project?T.input.project(b.value,"graphql"):b.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=Cs(u)===401?new To({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=kb(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,k=1;for(;;){let b=await n({...c,cacheKey:`${c.cacheKey}:page:${k}`,parameters:{...c.parameters??{},per_page:100,page:k}});if(g+=1,f=f&&b.quotaFree,!Array.isArray(b.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(c.cacheKey)} page ${k}`);if(u.push(...b.data),p=b.headers,!OA(b.headers))break;k+=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 Cs(g)===401?new To({cause:g}):g}}}}function OA(e){let t=wa(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Os(e){let t=Cs(e),r=wb(e);return t===429||t===403&&wa(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function Cs(e){if(cn(e))return typeof e.status=="number"?e.status:void 0}function wb(e){return!cn(e)||!cn(e.response)||!cn(e.response.headers)?{}:e.response.headers}function wa(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function cn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function DA(e){let t=cn(e)?e:{},r=cn(t.data)?t.data:t,o=(cn(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 FA(e){let t=[...new Set(e.filter(r=>r!==void 0))].sort();if(t.length!==0)return t.length===1?t[0]:`coalesced:${t.join("+")}`}var _b="rate_limit",xb={rest:"core",graphql:"graphql",search:"search"},Vr=["rest","graphql","search"];function Ea(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:[...Vr],detail:t??"no balance has been asked for yet, so none is known"}}var Ic=15e3,Po=.15,_a=[{at_or_below_fraction:0,every_ms:Ic,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:Po,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 VG=60*6e4,Fc=2;function Eb(e,t){let r=Rb(e),n=Rb(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Vr){let l=xb[a],d=n[l],c=LA(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Vr.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 ${Vr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function Mc(e){try{let t=await e.transport();return Eb(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Ea(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function Lc(e){let t=null;for(let r of Vr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function va(e,t){let r=Lc(e);if(r==null)return xa(Po).every_ms;let n=xa(r.fraction);if(r.remaining>0)return n.every_ms;let o=Sb(t.now,r.reset_at);return o==null?n.every_ms:Math.max(Ic,Math.min(n.every_ms,o))}function jc(e,t=Po){return Math.ceil(e.limit*t)}function vb(e,t,r=Po){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<jc(n,r)?"reserved":"open"}function Bc(e){let t=e.reservedFraction??Po,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:xa(t).every_ms*Fc,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:xa(t).every_ms,pools:[],unreported_pools:[...Vr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=va(r,{now:e.now}),o=e.stalenessMs??n*Fc,s=Sb(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Vr.map(c=>r.pools[c]).filter(c=>c!=null),l=MA(r,t),d=Lc(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`:IA(l,d,r,t)}}function $c(e){if(!Gc(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 IA(e,t,r,n){if(t==null)return r.detail;let o=jc(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 MA(e,t){let r="unknown";for(let n of Vr){if(e.pools[n]==null)continue;let o=vb(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function xa(e){for(let t of _a)if(e<=t.at_or_below_fraction)return t;return _a[_a.length-1]}function LA(e,t,r){if(!Gc(r))return null;let n=Ra(r.limit),o=Ra(r.remaining),s=Ra(r.used),i=Ra(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 Nc(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${_b}`,{method:"GET",headers:{authorization:`bearer ${e.token}`,accept:"application/vnd.github+json"}});if(!n.ok)throw new Error(`the balance ask was refused with HTTP ${n.status}`);return await n.json()}}function Sb(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 Ra(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function Rb(e){return Gc(e)?e:{}}function Gc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as jA}from"node:child_process";import{existsSync as BA,readFileSync as Sa,readdirSync as $A}from"node:fs";import{dirname as NA,join as $n}from"node:path";function Ds(e){let t=_s(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=xo(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function Tb(e){let t=[],r=[];for(let n of e.workers){let o=Ds(n);if(o==null){r.push({worker_id:n.worker_id,reason:(_s(n).memory_max??_s(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(GA(n,o,s))}}return{terminations:t,unenforceable:r}}function GA(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 WA=4096;function Pb(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=UA(e,r,t);for(let[u,p]of a){let g=VA(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=YA(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],k=new Set;for(;f.length>0;){let b=f.pop();if(k.has(b))continue;k.add(b);let v=d.get(b);if(v){p+=v.rssBytes,g+=v.cpuSeconds;for(let T of c.get(b)??[])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 HA="/sys/fs/cgroup";function UA(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??HA,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=qA(s,r);for(let l of i)for(let d of a){let c=$n(d,l.unit);if(BA($n(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function qA(e,t){let r=t.selfCgroupPath??KA(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o($n(e,s));let a=NA(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o($n(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function KA(){try{for(let e of Sa("/proc/self/cgroup","utf8").split(`
|
|
86
|
+
`))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function VA(e){let t;try{t=Sa($n(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:zA(e)}}function zA(e){let t;try{t=Sa($n(e,"cpu.stat"),"utf8")}catch{return null}return JA(t)}function JA(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 YA(e,t){return t.procRoot!=null||e==="linux"?rC(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?eC(QA(t.psTable)):new Map}function QA(e){try{return(e??XA)()}catch{return""}}function XA(){return jA("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var ZA=1024;function eC(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=tC(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*ZA,cpuSeconds:a})}return t}function tC(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 rC(e){let t=new Map,r;try{r=$A(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=Sa($n(e,n,"stat"),"utf8")}catch{continue}let s=oC(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*WA,cpuSeconds:s.cpuTicks/nC})}return t}var nC=100;function oC(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 sC=["api","graphql"],E5=ic(sC);var Ab=100,Hc=6e4,iC=2*Hc,aC=7*24*60*60*1e3,Wc=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 Uc(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new Wc(r.project_label,r.token_ref,t)}function Ib(e,t={now:new Date(0).toISOString()}){$b(e);let r=t.closedWindowMs??aC,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 lC(e,t,r){let n=Ao(t),o=Ao(n.data),s=Array.isArray(n.errors)?n.errors.map(Ao):[],i=gC(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=>Db(f.path,l)||Db(f.path,d));if(Fs(p)){let f=Fb(p.open_pull_requests),k=Fb(p.open_issues),b=hC(o[d]);if(f!=null&&k!=null&&b!=null)return{project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:f,open_issues:k,recently_closed:b},detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`}}return i.exhausted||Nb(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: ${Ta(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 dC(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 Mb(e){if(e.projects.length===0)return dC(e.now);if(Uc(e.projects,e.hostTokenRef),e.transport.conditionalList)return await uC(e);let t=Ib(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return lC(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 cC={key:"redskilled repository activity poll",budget:"rest"};async function uC(e){$b(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=Ib(e.projects,{now:r,closedWindowMs:e.closedWindowMs}),o=e.transport.conditionalList,s=[],i=0,a={remaining:null,reset_at:null,exhausted:!1,point_cost:null};for(let l of e.projects){let d=`${l.owner}/${l.name}`,c=[["open-prs","GET /repos/{owner}/{repo}/pulls",{owner:l.owner,repo:l.name,state:"open"}],["open-issues","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"open"}],["recently-closed","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"closed",since:n.closed_since}]],u=[];try{for(let[p,g,f]of c){let k=await o({cacheKey:`activity:${d}:${p}:${JSON.stringify(f)}`,route:g,parameters:f,operation:cC});i+=k.requestCount;let b=p==="open-prs"?k.data:k.data.filter(v=>!Fs(v.pull_request));u.push(p==="recently-closed"?b.filter(v=>Ta(v.closed_at)>=n.closed_since).length:b.length),a=Cb(a,fC(k.headers))}s.push({project_label:l.project_label,repository:d,outcome:"counted",counts:{open_pull_requests:u[0],open_issues:u[1],recently_closed:u[2]},detail:`counted ${d} for project ${JSON.stringify(l.project_label)}`})}catch(p){let g=Os(p);a=Cb(a,{remaining:null,reset_at:null,exhausted:g,point_cost:null}),s.push({project_label:l.project_label,repository:d,outcome:g?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${d} answered: ${p instanceof Error?p.message:String(p)}`})}}return{version:1,fetched_at:e.now,request_count:i,project_count:s.length,rate_limit:a,projects:s}}function Lb(e){let t=e.stalenessMs??iC,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 jb(e){if(!Fs(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)&&Fs(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function Bb(e){let t=e.endpoint==null?void 0:pC(e.endpoint),r=Dc({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 pC(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 fC(e){let t=Ob(e,"x-ratelimit-remaining"),r=Ob(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Cb(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 Ob(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 $b(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>Ab)throw new Error(`redskilled activity fetch spans at most ${Ab} repositories in one query`);let t=new Set;for(let r of e){if(r.project_label===""||r.owner===""||r.name==="")throw new Error("redskilled activity fetch needs a project label and an owner/name for every registered project");if(t.has(r.project_label))throw new Error(`redskilled holds one repository per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function gC(e,t){let r=Ao(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(Nb),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 Nb(e){if(e==null)return!1;let t=Ta(e.type),r=Ta(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function Db(e,t){return Array.isArray(e)&&e.includes(t)}function Fb(e){let t=Ao(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function hC(e){let t=Ao(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Ao(e){return Fs(e)?e:{}}function Fs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ta(e){return typeof e=="string"?e:""}var mC=3e4,bC=2,yC=3,kC=4,wC=["logs","vitals","display"];function Gb(e,t){if(t===void 0)return e;let r=wC.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:RC,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:_C},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var RC={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},_C={last_line:null,published_at:null,source:null};function Wb(e){let t=e.stalenessMs??mC,r=un(e.now),n=e.sampledAt==null?null:un(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=>SC(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=aa(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:CC({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:AC(a),known_projects:PC(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:Bc({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Lb({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),...e.deaths===void 0?{}:{deaths:xC(e.deaths,e.recentDeathLimit??kC)},engine:vC(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function xC(e,t){let r=[...e].sort((s,i)=>(un(i.ts)??0)-(un(s.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(s=>({kind:s.kind,id:s.id,pid:s.pid,ts:s.ts,last_seen:s.last_seen,last_phase:s.last_phase,sender_class:s.sender_class,confidence:s.confidence,signal:s.signal,evidence:s.evidence[0]??null})),o=EC(r);return{count:r.length,recent:n,latest:n[0]??null,reaped_at:n[0]?.ts??null,...o==null?{}:{boot_loop:o}}}function EC(e){let t=new Map;for(let n of e){if(n.sender_class!=="boot-refused"||n.uptime_s==null||n.uptime_s>bC||n.project_label==null||n.project_label===""||un(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>=yC).map(([n,o])=>{let s=o[0],i=un(s.ts),a=Math.min(...o.map(d=>un(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 vC(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 SC(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=Ds(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=un(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:TC(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function TC(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 PC(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 AC(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 CC(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 un(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function qc(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(OC))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(DC))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||jb(t.repository_activity))&&(t.github_balance===void 0||$c(t.github_balance))&&(t.deaths===void 0||FC(t.deaths))&&(t.engine===void 0||IC(t.engine))&&(t.metrics===void 0||Eh(t.metrics))}function OC(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 DC(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 FC(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 IC(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 Hb={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 Ub(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 bt=e=>`\x1B[${e}m`,Is=bt("48;2;114;47;55"),Kc=bt("48;2;88;36;42"),pn=bt("38;2;255;255;255"),Vc=bt("38;2;201;150;158"),Ms=bt("38;2;255;214;214"),Ls=bt("39"),Lt=bt("38;2;224;138;148"),zc=bt("38;2;240;200;120"),Jc=bt("38;2;240;110;120"),Yc=bt("38;2;255;214;214"),Qc=bt("38;2;146;84;94"),Xc=bt("38;2;255;95;95"),Tr=bt("49"),ir=bt("0"),Pa=bt("1"),Aa=bt("22");var MC=/\x1b\[[0-9;]*m/g,LC=/(\x1b\[[0-9;]*m)/,jC=/^\x1b\[[0-9;]*m$/;function Ca(e){return e.replace(MC,"")}function BC(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function Jt(e){return[...Ca(e)].length}function Xe(e,t){if(t<=0)return"";if(Jt(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(LC))if(i!==""){if(jC.test(i)){s+=i,o=!BC(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?ir:""}`;s+=a,n+=1}}return`${s}\u2026${o?ir:""}`}function js(e,t){return e+" ".repeat(Math.max(0,t-Jt(e)))}function Zc(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 ar(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 Bs(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 fn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return Bs(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 gn(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 Co(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var $s="!unregistered",eu="!lapsed",Ns="\u21E1",Pr="\u2020",Oo="\u25D0",Do="\u25EF",tu="\u21B3",ru="redskilled unreachable \u2014 Worker state unknown";function Fo(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Oa(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function Gs(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 nu(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}var hn=["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},$C=" ",qb="\u2588",NC="\u25B6",GC="\u2717",WC="\u2591",HC=new Set(["gate","push-pr","merge","cascade"]),UC=new Set(["requeue"]),qC="repair";function Ws(e){return e.display?.origin===qC}function Io(e,t=jt){let r=Gs(e,t.project),n=Fo(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(f=>Fa(f,t,e.generated_at)),i=oO(s),a=o.map((f,k)=>({worker_id:f.worker_id,project_label:f.project_label,mine:t.project!=null&&f.project_label===t.project,cells:s[k],line:Xe(sO(s[k],i),t.maxWidth)})),l=VC(e,t,n,r),d=n.length-o.length,c=[l.line,...ZC(e,t),...a.map(f=>f.line)];d>0&&c.push(Xe(`\u2026 ${d} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),c.push(...QC(e,t)),c.push(...YC(e,t));let u=Math.max(1,Math.floor(t.maxHeight??jt.maxHeight)),p=Math.max(0,c.length-u),g=p===0?c:u===1?[l.line]:[...c.slice(0,u-1),Xe(`\u2026 ${p+1} more row(s) \u2014 terminal height is ${u}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:hn,header:l,rows:a,lines:g,hidden_row_count:Math.max(0,d),stale:e.staleness.stale}}function Fa(e,t,r){let n=e.display??Hb,o=Ws(e),s=[n.runner,n.model==null?null:Zc(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&HC.has(n.phase),a=o||i||n.origin!=null&&UC.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:Vb(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:gn(Ub(e,r)),eta:n.eta==null?"":`eta=${gn(n.eta*1e3)}`,hb:KC(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":nO(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${Bs(n.tokens)}`,ctx:n.context==null?"":`ctx=${Bs(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 KC(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} ${gn(Math.max(0,n-r))}`}function Vb(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 qb.repeat(Math.floor(t));let o=e.failed?GC:NC;return`${qb.repeat(n)}${o}${WC.repeat(Math.floor(t)-n-1)}`}function VC(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(L=>L.project_label===t.project),s={open_pull_requests:o?.counts?.open_pull_requests??null,recently_closed:o?.counts?.recently_closed??null,open_issues:o?.counts?.open_issues??null,stale:o?.stale===!0},i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=rO(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=[zC(l??"host",c,d!=null&&d.current===!1?Ns:"")];(n==="unregistered"||n==="name-only")&&g.push($s),n==="lapsed"&&g.push(eu);let f=p?.history_48h==null?null:XC(p.history_48h);f!=null&&g.push(zr(f));let k=e.workers.filter(Ws).length;if(k>0){let L=Math.max(0,e.host.worker_count-k);g.push(`${zr(`workers=${L} coding +`)} ${Is}${pn}${k} repairing${Tr}${Lt}`)}else g.push(zr(`wrk=${r.length}/${e.host.worker_count}`));let b=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(zr(`${b} reserve=${i.interactive_reservation} interactive`)),g.push(zr(tO(i))),a!=null&&g.push(`${Is}${pn}${a}${Tr}${Lt}`),s.open_pull_requests!=null&&g.push(zr(`prs=${s.open_pull_requests}`)),s.recently_closed!=null&&g.push(zr(`cpr=${s.recently_closed}`)),s.open_issues!=null&&g.push(zr(`iss=${s.open_issues}`)),s.stale&&g.push("!counts stale");let v=p==null?null:zb(p.hour),T=v==null?null:zr(v);if(T!=null&&g.push(T),u!=null&&u.count>0&&u.latest!=null){let L=u.boot_loop,W=Co(L?.latest_refusal);g.push(L==null?`${Pr}${u.count} ${u.latest.sender_class}`:`${Pr}${u.count} boot-refused \xD7${L.count} in ${JC(L.span_ms)}`+(W==null?"":` \u2014 ${W}`))}if(e.staleness.stale){let L=e.staleness.age_ms;g.push(L==null?"!unmeasured":`!stale ${Math.round(L/1e3)}s`)}let $=`${g.join(" \xB7 ")}${ir}`,D=v!=null&&Jt($)>t.maxWidth?`${g.filter(L=>L!==T).join(" \xB7 ")}${ir}`:$;return{repo:l,project:t.project,project_match:n,version:c,engine:d,deaths:u,metrics:p,model:a,windows:i,counts:s,stale:e.staleness.stale,age_ms:e.staleness.age_ms,line:Xe(D,t.maxWidth)}}function zC(e,t,r){return`${Kc}${pn}${zc}\xBB${pn} ${Pa}${e}${Aa} ${Vc}v${t}${r}${pn}${Tr}${Lt}`}function zr(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Ms}${n}${Ls}${o}${Lt}`)}function JC(e){return gn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function zb(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${fn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${fn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${fn(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 YC(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?Do:Oo,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[Xe(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function QC(e,t){let r=e.deaths;if(r==null||r.count<=0)return[];if(!t.showDeathDetails){let s=r.latest,i=s==null?`${r.count} posed death(s)`:`${r.count} posed death(s) \xB7 latest ${s.sender_class}/${s.confidence} ${s.last_phase}`;return[Xe(`${Pr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>Xe(`${Pr} ${s.kind} ${s.id} pid=${s.pid} ${s.sender_class}/${s.confidence} phase=${s.last_phase}`+(s.signal==null?"":` signal=${s.signal}`)+(s.evidence==null?"":` \u2014 ${s.evidence}`),t.maxWidth)),o=r.count-r.recent.length;return o>0&&n.push(Xe(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function XC(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${fn(t)} ${ou(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${fn(r)} ${ou(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function ZC(e,t){let r=e.metrics;return r==null?[Xe("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[Xe("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[Kb("tokens",r.history_48h.tokens_per_hour,t),Kb("Tickets",r.history_48h.tickets_per_hour,t)]}var Da=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function Kb(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=${fn(o)}/h ${ou(t.trend)}`.trim();if(r.maxWidth<72)return Xe(`${n} 48h unavailable at width ${r.maxWidth} \u2014 48 hourly points need 72 columns`,r.maxWidth);let l=s.length===0?"":` \xB7 ${s.length} missing (${i??"unmeasured"})`;return Xe(`${n} 48h ${eO(t)} \xB7 ${a}${l}`,r.maxWidth)}function eO(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?Da[0]:Da[Math.min(Da.length-1,Math.floor(Math.max(0,n.value)/r*(Da.length-1)))]).join("")}function ou(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function tO(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${ar(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${ar(e.memory_used_bytes)}/${ar(e.memory_ceiling_bytes)}${t}`}function rO(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 nO(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 oO(e){let t=Object.fromEntries(hn.map(r=>[r,0]));for(let r of e)for(let n of hn)t[n]=Math.max(t[n],Jt(r[n]));return t}function sO(e,t){let r=hn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>Ia(o,js(e[o],s===r.length-1?Jt(e[o]):t[o])));return`${Tr}${Lt}${n.join($C)}${ir}`}function Ia(e,t){if(e==="wid")return`${Pa}${t}${Aa}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Is}${pn}${t.trimEnd()}${Tr}${Lt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${Jc}${n}`).replace("\u25B6",`${Yc}\u25B6`).replace("\u2717",`${Xc}\u2717`).replace(/░+/g,n=>`${Qc}${n}`)+Lt;let r=t.indexOf("=");return r>0?`${Ms}${t.slice(0,r+1)}${Ls}${t.slice(r+1)}${Lt}`:t}function iu(e){return Object.freeze({none:!0,reason:e})}function Hs(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function su(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=>su(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=su(o,t);return Object.freeze(r)}finally{t.delete(e)}}function iO(e){let t=su(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function Nn(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=iO(e.repair);return{prose:`${e.state}; repair: call \`${t.tool}\` with \`${JSON.stringify(t.args)}\` because ${t.why}`,repair:t}}var Ne={mode:"local",project:null,maxWorkers:4,maxProjects:4,maxWidth:120,separator:" \xB7 ",verbose:!1};function Gn(e,t=Ne){let r=Gs(e,t.project),n=Fo(e,t),o=Oa(e,t),s=pO(e,t.project,r),i=lO(e,t,n,r,s.prose),a=nu({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:bO(i,aO(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||Jt(f)<=t.maxWidth)break}let d=Xe(l.line,t.maxWidth),c=l.detail==="workers"?gO(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let k=t.verbose?hO(g,t):null;return k==null?[c.lines[f]]:[c.lines[f],k]}):[],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 cu(e){let t=e.options??Ne,r=Xe(ru,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 aO(e,t){return e==="projects"?t.map(mO):[]}function lO(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="name-only";t.mode==="global"?(s.push(`host ${au(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(du(e,t))):n==="matched"?(s.push(`${t.project} ${au(r,r.length)}`),s.push(du(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${au(r,r.length)}`),s.push(du(e,t)),s.push($s)):s.push(o),s.push(Jb(e));let a=dO(e);a!=null&&s.push(a);let l=cO(e);l!=null&&s.push(l),e.staleness.stale&&s.push(Yb(e));let d=s.join(" ");return!i||Jt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,Jb(e),e.staleness.stale?Yb(e):null].filter(c=>c!=null).join(" ")}function au(e,t){let r=e.filter(Ws).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function Jb(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${Ns}`}function dO(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${Do} quota spent`:t.posture==="reserved"?`${Oo} quota band`:null}function cO(e){let t=e.deaths;if(t==null||t.count<=0||t.latest==null)return null;let r=t.boot_loop;if(r!=null){let n=Co(r.latest_refusal);return`${Pr}${t.count} boot-refused \xD7${r.count} in ${uO(r.span_ms)}`+(n==null?"":` \u2014 ${n}`)}return`${Pr}${t.count} ${t.latest.sender_class}`}function uO(e){return gn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function pO(e,t,r){if(r==="unregistered")return Nn({state:`project unknown \u2014 ${t} was never registered on this host`,repair:Hs()});if(r==="orphaned")return Nn({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:iu("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 Nn({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${lu(n.at)}`}`,repair:Hs()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${lu(n.registered_at)})`;return Nn({state:`project unknown \u2014 ${t} lapsed at ${lu(n.at)}${o}`,repair:Hs()})}return Nn({state:`project unknown \u2014 ${t} lapsed`,repair:Hs()})}return r==="unresolved"?Nn({state:"project unknown \u2014 this directory resolved to no project",repair:iu("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function lu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function du(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?`${ar(r)}/${ar(n)}`:ar(r)}function Yb(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function fO(e,t,r,n){let o=r.map(s=>Ia(s,js(e[s],t[s])));return Xe(`${Tr}${Lt}${o.join(" ")}${ir}`,n)}function gO(e,t,r){let n=e.map(a=>Fa(a,t,r)),o=hn.filter(a=>n.some(l=>Jt(l[a])>0)),s=[...o],i=Qb(n,s);for(;s.length>1&&Xb(i,s)>t.maxWidth;)s.pop(),i=Qb(n,s);return{lines:n.map(a=>fO(a,i,s,t.maxWidth)),degraded:s.length<o.length||Xb(i,s)>t.maxWidth}}function Qb(e,t){let r=Object.fromEntries(hn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],Jt(n[o]));return r}function Xb(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function hO(e,t){let r=Co(e.log.last_line);return r==null?null:Xe(` ${tu} ${Zb(e,t.mode)}: ${r}`,t.maxWidth)}function Zb(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function mO(e){return`${e.project_label} ${e.worker_count}w ${ar(e.observed_rss_bytes)}`}function bO(e,t,r){return[e,...t].join(r)}var Ma=1;async function Us(e,t){return await ea(e,t,"redskilled daemon")}function ty(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:Ma,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:RO(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:Th(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:_O(e)}}function RO(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:cm(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 ry(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||TO(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Ph(t.budget_accounting)&&(t.scope===void 0||om(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Ts))&&(t.demand===void 0||qh(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(EO))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(vO))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(SO))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(xO))&&(t.upgrade===void 0||PO(t.upgrade))}function xO(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.repair;return t.name==="project-birth-breaker"&&typeof t.project_label=="string"&&(t.state==="open"||t.state==="half-open")&&typeof t.opened_at=="string"&&typeof t.reason=="string"&&typeof t.closes=="string"&&(t.probe_worker_id===null||typeof t.probe_worker_id=="string")&&r!=null&&r.tool==="project_reset"&&typeof r.args=="object"&&r.args!==null&&typeof r.why=="string"}function EO(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.at=="string"&&typeof t.renew_by=="string"&&Number.isInteger(t.renewals)&&Number.isInteger(t.sustains)&&typeof t.detail=="string"}function vO(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 SO(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 TO(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 PO(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||AO(t.major_hold))}function AO(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 CO}from"node:crypto";import{mkdir as OO,readFile as DO,rename as FO,writeFile as IO}from"node:fs/promises";import{dirname as MO}from"node:path";function ny(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await DO(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=LO(s);return jO(i)?i.registrations:[]}async function o(s){await OO(MO(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${CO()}.tmp`,a={version:1,registrations:[...s]};await IO(i,`${ot(a,{keyedMapCollapse:!0})}
|
|
90
|
+
`,{encoding:"utf8",mode:384}),await FO(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 LO(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function jO(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(Ts)}import{spawnSync as Ba}from"node:child_process";import{existsSync as hu}from"node:fs";import{delimiter as KO,join as fy}from"node:path";import{join as oy}from"node:path";import{existsSync as BO}from"node:fs";import{createRequire as $O}from"node:module";var sy="redskilled-job-object.node",Wn=100;function Mo(e){return{available:!1,reason:e}}function NO(e,t,r){return[oy(r,"prebuilds",`${e}-${t}`,sy),oy(r,"native","build","Release",sy)]}function iy(e={}){let t=e.platform??process.platform,r=e.arch??process.arch;if(t!=="win32")return Mo(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);let n=e.packageRoot??WO(),o=e.exists??BO,s=NO(t,r,n),i=s.find(d=>o(d));if(i==null)return Mo(`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??$O(import.meta.url),l;try{l=a(i)}catch(d){return Mo(`the Job Object addon at ${i} could not be loaded: ${d instanceof Error?d.message:String(d)}`)}return GO(l)?{available:!0,binding:l}:Mo(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function GO(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function WO(){return new URL("..",import.meta.url).pathname}function ay(e){let t=e??{},r=[],n=HO(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<Wn?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 ${Wn}, 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 HO(e){return Ds({budget:e})}var La=5,ly=19;function uu(e){return{available:!1,reason:e}}var UO="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 cy(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=La;else if(r.cpu_weight<Wn){let a=Math.round(ly*(Wn-r.cpu_weight)/Wn);o=Math.min(ly,Math.max(La,a))}else o=La,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${Wn}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${La}`);let s=dy(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=dy(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:UO,...n.length>0?{note:n.join("; ")}:{}}}function uy(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 ${qO(e.nice)} -n ${t.nice} "$0" "$@"`:'exec "$0" "$@"'),["-c",r.join(`
|
|
91
|
+
`),e.command,...e.args]}function py(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 pu(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 dy(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function qO(e){return`'${e.replace(/'/g,"'\\''")}'`}var gy="REDSKILLED_PLACEMENT",ja="red-worker",fu="/bin/sh";function hy(e=process.env,t=process.platform){let r=uu(`POSIX rlimit and priority placement is the macOS backend (platform=${t})`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:iy({platform:t}),posix:r};let n=Mo(`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:VO(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&hu(fy(o,"systemd","private"));return{platform:t,systemdRun:ky("systemd-run",e),userSession:s,jobObjects:n,posix:r}}function VO(e){return hu(fu)?{available:!0,shell:fu,nice:ky("nice",e)}:uu(`no POSIX shell was found at ${fu}, so there is nothing to apply rlimits or priority in`)}function my(e=process.env){let t=(e[gy]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function zO(e,t,r=ja){return by(e,t,r).replace(/\.service$/,"")}function by(e,t,r=ja){return`${gu(r,"red-worker",24)}-${gu(e,"project",32)}-${gu(t,"worker",32)}.service`}function yy(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:gs({scope:null,memory_ceiling:n,scope_degradation:u}),...o?{budgetWarning:"a budget was declared but this placement cannot enforce it: the daemon's RSS sampling is the only remaining floor"}:{}});if(s.isolation==="inherit")return i("placement target is `inherit`: the Worker is charged to the daemon's own resource group, so a memory-pressure kill can land on the daemon and every Worker it holds");if(e.enabled===!1)return i(`worker isolation disabled by ${gy}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return YO(e,t,r,n,o,i);if(e.probes.platform==="darwin")return JO(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=by(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=gs({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=pu(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 JO(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=cy(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=py(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:uy({limits:i,nice:s.nice,command:e.command,args:t}),cwd:e.workspacePath,posix:i,warning:l,budget:r,...n!=null?{memoryCeiling:n}:{},environment:gs({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 YO(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=ay(r),l=zO(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:gs({scope:l,memory_ceiling:n,scope_degradation:null}),...QO(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,pu(e.budget))}}function QO(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function ky(e,t){for(let r of(t.PATH??"").split(KO)){if(!r)continue;let n=fy(r,e);if(hu(n))return n}return null}function gu(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}async function mu(e,t){let r=[],n=[];for(let o of e){let s=!1;try{s=await t(o)===!0}catch{s=!1}(s?r:n).push(o)}return{alive:r,dead:n}}var wy=3e4;function Ry(e){return e.unit!=null&&e.unit!==""?XO(e.unit):Qe(e.pid)}function XO(e){let t=Ba("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var ZO="REDSKILLED_UNIT_DISCOVERY",_y="(unowned)";function xy(e){let t=Ba("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 eD(e=process.env){let t=(e[ZO]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function Ey(e,t,r=process.env){return eD(r)&&e===t}function vy(e=ja){let t=Ba("systemctl",["--user","list-units","--type=service","--state=active","--plain","--no-legend","--no-pager",`${e}-*.service`],{encoding:"utf8"});return t.error!=null||t.status!==0?[]:(t.stdout??"").split(`
|
|
92
|
+
`).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function Sy(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:_y,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 Ty(e){return e.project_label.trim()!==""?e:{...e,project_label:_y,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 Py(e){if(e.unit!=null&&e.unit!==""){let t=Ba("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 Vs=50,yu=15e3,hH=2*yu;function tD(e,t=Vs){if(ku(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 Cy(e,t={}){let r=t.batchSize??Vs;if(ku(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(`
|
|
93
|
+
`),aliases:n}}function Oy(e,t){let r=Ks(t),n=Ks(r.data),o=Array.isArray(r.errors)?r.errors.map(Ks):[],s=iD(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=lD(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=>aD(u.path,a));return s.exhausted||Iy(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: ${bu(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function rD(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:Vs,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function Dy(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:Vs,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 Fy(e){if(e.projects.length===0)return rD(e.now);if(e.transport.conditionalList)return await oD(e);let t=e.batchSize??Vs,r=tD(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=Cy(s,{batchSize:t});try{let a=await e.transport(i.query),l=Oy(i,a);n.push(...l.projects),o=qs(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=qs(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 nD={key:"redskilled queue poll",budget:"rest"};async function oD(e){ku(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=Cy([s],{batchSize:1}),d=Oy(l,await e.transport(l.query));o+=1,r.push(...d.projects),n=qs(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:nD});o+=i.requestCount;let a=i.data.filter(l=>!My(l.pull_request)).length;n=qs(n,sD(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=Os(i);n=qs(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 ku(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 qs(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 sD(e){let t=Ay(e,"x-ratelimit-remaining"),r=Ay(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function Ay(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 iD(e,t){let r=Ks(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(Iy)||n===0}}function Iy(e){return e==null?!1:bu(e.type)==="RATE_LIMITED"||/rate limit/i.test(bu(e.message))}function aD(e,t){return Array.isArray(e)&&e.includes(t)}function lD(e){let t=Ks(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Ks(e){return My(e)?e:{}}function My(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function bu(e){return typeof e=="string"?e:""}function Ly(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(dD,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=cD?Math.max(t,3e4):o<=uD?Math.max(t,2e4):t}var dD=1e5,cD=250,uD=1e3;var pD={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},fD=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at"],gD=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function jy(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...pD};for(let n of fD){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of gD){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{randomInt as yD}from"node:crypto";import{spawn as kD}from"node:child_process";import{appendFileSync as wD,mkdirSync as RD}from"node:fs";import{dirname as _D}from"node:path";import{delimiter as By,dirname as hD}from"node:path";function mD(e,t=By){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function bD(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=hD(t);return r===""||r==="."?null:r}function $y(e,t=process.execPath,r=By){let n=mD(e,r),o=bD(t);return o==null?n.join(r):[o,...n.filter(s=>s!==o)].join(r)}var Lo=class extends Error{constructor(t){super(t),this.name="RedskilledWorkerSpecError"}},Ar=class extends Error{constructor(r,n){super(r);this.admission=n;this.name="RedskilledAdmissionError"}},wu="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",Ny=4,xD=wu.length**Ny;function _u(e,t=yD){let r=new Set(e);for(let n=0;n<xD;n+=1){let o="h";for(let s=0;s<Ny;s+=1)o+=wu[t(wu.length)];if(!r.has(o))return o}throw new Lo("redskilled exhausted the host Worker id space")}function ED(e){if(e==null||e.trim()==="")return{ready:!1};let t=_D(e);try{return RD(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})`}: ${Ru(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function vD(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{wD(t,Mt().push({at:new Date().toISOString(),kind:o,msg:a}),"utf8")}catch{}};n.on("data",a=>{s+=String(a);let l=s.split(`
|
|
94
|
+
`);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 SD(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 Lo(`redskilled worker spec is missing ${r}`);if(e.args!=null&&!Array.isArray(e.args))throw new Lo("redskilled worker spec args must be an array")}function TD(e){if(e==null)throw new Ar("redskilled refused this Worker: no host admission verdict was handed over, and an unjudged birth is an unbudgeted one");if(!e.admitted)throw new Ar(e.reason,e)}function Gy(e){let{spec:t,admission:r}=e;TD(r),SD(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||_u(e.liveWorkerIds??[]),i=e.probes??hy(n),a=im(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),l=e.openLog===!1?{ready:!1}:ED(a),d=l.ready,c={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:$y(t.env?.PATH??n.PATH,e.execPath??process.execPath)},u=yy({workerId:s,projectLabel:t.project_label,workspacePath:t.workspace_path,command:t.command,args:t.args,budget:t.budget,...e.memoryCeiling!=null?{memoryCeiling:e.memoryCeiling}:{},target:t.placement,env:c,enabled:e.enabled??my(n),probes:i,pipeOutput:d}),g=(e.spawnFn??kD)(u.command,u.args,{...u.cwd!=null?{cwd:u.cwd}:{},detached:!0,stdio:d?["ignore","pipe","pipe"]:"ignore",env:u.backend==="transient-unit"?{...n}:{...n,...c,...u.environment}});if(d&&a!=null&&vD(g,a),g.pid==null)throw g.once("error",()=>{}),new Lo(`redskilled could not spawn ${JSON.stringify(u.command)} for worker ${s}`);let f=u.job!=null?PD(u,i,g.pid):null;g.once("error",()=>{}),g.once("exit",(T,$)=>{try{f?.job?.close()}catch{}e.onExit?.(s,T,$)}),g.unref();let k=u.job!=null?f?.job!=null:u.isolated,b=[u.warning,f?.warning,u.budgetWarning,l.warning].filter(T=>T!=null);return{worker:{worker_id:s,project_label:t.project_label,pid:g.pid,started_at:o(),workspace_path:t.workspace_path,...d&&a!=null?{log_path:a}:{},isolated:k,...u.unit!=null?{unit:u.unit}:{},...t.budget!=null?{budget:t.budget}:{},...Object.keys(u.budget).length>0?{applied_budget:u.budget}:{},...u.memoryCeiling!=null?{memory_ceiling:u.memoryCeiling,memory_ceiling_reason:e.memoryCeiling?.reason??"this Worker's ceiling is the budget its client declared"}:{},warnings:b},admission:r,...e.forkSha==null||e.forkSha===""?{}:{fork_sha:e.forkSha},warnings:b,plan:u,child:g,...f?.job!=null?{job:f.job}:{}}}function PD(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: ${Ru(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)}: ${Ru(i)}. ${o}`}}return{job:s}}function Ru(e){return e instanceof Error?e.message:String(e)}import{execFile as AD}from"node:child_process";var CD="refs/heads/red-trunk";function $a(e,t){return new Promise((r,n)=>{AD("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function Wy(e){await $a(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await $a(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 $a(e.workspace_path,["update-ref",CD,t]),t}async function Hy(e){let t=await $a(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 OD,stat as DD}from"node:fs/promises";var FD=16*1024;async function Uy(e,t=FD){let r;try{r=(await DD(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await OD(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 ID(o)}function ID(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 QD}from"node:child_process";import{existsSync as XD,readdirSync as ZD}from"node:fs";import{dirname as eF,join as t0,resolve as tF}from"node:path";var MD="<version>";function mn(e,t=[],r){let n=r&&r.trim().length>0?r.trim():MD;return[`npx -y -p ${Mn}@${n}`,e,...t].join(" ")}function lr(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 xu(e,t){let r=lr(e),n=lr(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var BH=4*60*60*1e3;Ur();Ur();import{spawnSync as LD}from"node:child_process";import{randomUUID as jD}from"node:crypto";import{mkdir as BD,rm as $D,writeFile as ND}from"node:fs/promises";import{existsSync as GD,mkdirSync as WD,renameSync as HD,writeFileSync as UD}from"node:fs";import{homedir as qD}from"node:os";import{dirname as qy,join as zs}from"node:path";var Yt="redskilled.service",Eu="REDSKILLED_SUPERVISED",KD="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function VD(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||zs(e.HOME?.trim()||qD(),".config");return zs(t,"systemd","user")}function jo(e=process.env){return zs(VD(e),Yt)}function Ky(e,t={}){let r=t.env??process.env,n=oa(t.override??{},t.entryLookup??{}),o=[...n.args,...on(e,t.idleMs==null?{}:{idleMs:t.idleMs})];return{unitName:Yt,unitPath:jo(r),command:n.command,args:o,text:zD(n.command,o,e)}}function zD(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${KD}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${[e,...t].map(Jy).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${Eu}=1"`,`Environment="REDSKILLED_SESSION=${Yy(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
|
|
96
|
+
`)}function JD(e=process.env){return zs(`${jo(e)}.d`,"10-current-entry.conf")}function Vy(e){return zs(`${e}.d`,"10-current-entry.conf")}function zy(e,t,r={}){let n=JD(r.env??process.env),o=`${n}.${process.pid}.${jD()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...on(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(Jy).join(" ")}`,""].join(`
|
|
97
|
+
`);WD(qy(n),{recursive:!0,mode:448}),UD(o,i,{encoding:"utf8",mode:384}),HD(o,n);let a=(r.run??Ga)(["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 Jy(e){return/[\s"'\\$%]/.test(e)?`"${Yy(e)}"`:e}function Yy(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function Qy(e,t={}){let r=t.writeFile??YD,n=t.removeFile??e0,o=t.run??Ga,s=[];return await r(e.unitPath,e.text),await n(Vy(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(Na("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(Na("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function Xy(e={}){let t=e.removeFile??e0,r=e.run??Ga,n=jo(e.env??process.env),o=[Na("disable",r,["systemctl","--user","disable","--now",Yt])];return await t(n),await t(Vy(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(Na("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function Zy(e={}){let t=e.exists??GD,r=e.run??Ga,n=jo(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",Yt]).status===0,i=o&&r(["systemctl","--user","is-active",Yt]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${Yt} is installed and enabled but inactive`,fix:`systemctl --user restart ${Yt}`}]:[];return{unitName:Yt,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function Na(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 YD(e,t){await BD(qy(e),{recursive:!0}),await ND(e,t,{encoding:"utf8",mode:420})}async function e0(e){await $D(e,{force:!0})}function Ga(e){let t=LD(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 r0=75,o0=9e5,n0="redskilled-replacement-entry-unresolved",rF="REDSKILLED_NO_REGISTRY_PROBE",s0="REDSKILLED_BORN_BY_REPLACEMENT";function i0(e=process.env){return e[s0]==="1"}function a0(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function l0(e){let t=e.running.trim();if(Js(t))return null;let r=e.newest?.trim()??"",n=lr(r),o=lr(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:nF(n.major,e.supervised)}}function nF(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: ${mn("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 d0(e){let t=e.running.trim();if(Js(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||lr(r)===null?{act:"hold",reason:"published-unknown"}:xu(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function Js(e){let t=e.trim();return lr(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function c0(e=process.env){return e[Eu]==="1"}var vu=class extends Error{code=n0;searched;constructor(t,r){super(`${n0}: the published redskilled bundle ${t} exists on no reachable path and the version-pinned dispatch is disabled
|
|
97
98
|
searched:
|
|
98
99
|
${r.map(n=>` ${n}`).join(`
|
|
99
|
-
`)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function
|
|
100
|
-
`}function t1(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function r1(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 y0(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??_o,o=e.clock??(()=>new Date().toISOString()),s=e.launch??By,i=e.refreshTrunk??$y,a=e.countBaseMovement??Gy,l=e.ceiling??na();e.repositoryActivity!=null&&Bc(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??g0(),c=e.leaseStore??h0(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??Zh(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??ia(t.machineClaimPath,p,{clock:o});await s1(a1(t.socketPath),{recursive:!0,mode:448});let[f,k]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),b=Date.parse(o()),v=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&k!=null&&f.pid===k.pid&&f.start_time===k.start_time&&f.socket_path===t.socketPath&&k.socket_path===t.socketPath&&Number.isFinite(b)&&Number.isFinite(v)&&b-v>=sh&&await Gd(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:k.pid,startTime:k.start_time,uid:k.uid}).catch(()=>!1);let $=await g.claim(u);if(!$.claimed)throw $.claim?.socket_path===t.socketPath?new Er(t.socketPath):new on(g.claimPath,$.reason,$.claim);let D=await c.acquire(d);if(!D.acquired)throw await g.release(u).catch(()=>{}),new Er(t.socketPath,D.lease);let L;try{L=await ch(t.socketPath,async()=>{let[m,A]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return m!=null&&m.pid!==d.pid&<(m.pid)?!0:A!=null&&A.socket_path===t.socketPath&&A.pid!==u.pid&<(A.pid)})}catch(m){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),m}let W=o(),K=e.eventLane??jh(t.eventLanePath),H=e.registrationIntentStore??ey(t.registrationIntentPath),I=e.liveness??yy,N=e.livenessGraceMs??by,V=e.stopWorker??vy,ge=e.unitInventory??(()=>Ry(t.machineClaimPath,sa({machineIdHash:t.machineIdHash}))?_y():[]),fe=e.unitMainPid??wy,de=e.treeSampler??vb,te=e.readLogTail??Ny,me=e.sampleMs??oh,Oe=e.leaseRenewMs??Bd,ve=e.registrationSustainMs??ih,ke=e.publishedVersion??(m=>s0(m)),J=e.replaceCheckMs??Yy,ie=e.publishedProbeTimeoutMs??rh,Re=e.localPublishedEvidence??(m=>i0(m,e.replacementIO?.env??process.env)),Ae=e.bornByReplacement??Xy(),Ee=e.replaceBootCheckMs??nh,we=e.supervised??r0(),Se=e.replacementIO??{},ce=e.repositoryActivity,oe=ce?.intervalMs??jc,_e=e.githubBalance,Fe=e.queueDiscovery,it=Fe?.transport??ce?.transport,$t=Fe?.unconfiguredReason??lh,Yr=Fe?.intervalMs??pu,Qr=e.demandMs??15e3,lo=e.demandBackoffMs??3e4,le=new Map,Gt=new Map,ct=new Set,Ze=new Map,wt=new Map,at=[],ut=[],Rt=e.deaths===void 0?void 0:[...e.deaths],_t=await H.read().catch(()=>[]),jr=Date.parse(W),Ce=new Map,Le=new Map;for(let m of _t){let A=Date.parse(m.renew_by);!Number.isFinite(jr)||!Number.isFinite(A)||A>=jr?Ce.set(m.project_label,m):jr-A<=m.renew_within_ms&&Le.set(m.project_label,m)}let Q=new Set,C={},w=null,F=null,M=null,B=!1,U=0,X=null,be="none",je=null,Be=null,Qt=null,hr=null,Ve=null,mr=null,Pt=[],Xt=[],re=new Map((e.orphanedRegistrations??[]).map(m=>[m.project_label,m])),ye=null,Ie={},Nt=!1,At,Wt,Xr,xn,En,vn,Ue,Sn,Zr,Br,et=!1,co=!1,$e=null,Tn,$r=new Promise(m=>{Tn=m});function Gr(m){Qp(m);let A=Date.parse(m),j=lm(Ce.values(),A);for(let G of j.lapsed){Ce.delete(G.project_label);let z=Ve?.projects.find(se=>se.project_label===G.project_label),ne=[...le.values()].some(se=>se.project_label===G.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&Le.set(G.project_label,G),B_(G,A)}return j.lapsed.length>0&&uo(),j.lapsed}function uo(){let m=new Map(Le);for(let[A,j]of Ce)m.set(A,j);H.replace([...m.values()]).catch(()=>{})}function B_(m,A){let j=Number.isFinite(A)?new Date(A).toISOString():m.renew_by;Pt.push({project_label:m.project_label,registered_at:m.registered_at,at:j,renew_by:m.renew_by,renewals:m.renewals,sustains:m.sustains??0,detail:`redskilled dropped the registration for project ${JSON.stringify(m.project_label)}: it stood until ${m.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`}),Pt.length>ks&&Pt.splice(0,Pt.length-ks)}function Qp(m){if(Ce.size===0)return;let A=Date.parse(m);if(!Number.isFinite(A))return;let j={};for(let se of le.values())j[se.project_label]=(j[se.project_label]??0)+1;let G=Ve==null?Number.NaN:Date.parse(Ve.fetched_at),z=new Map((Ve?.projects??[]).map(se=>[se.project_label,se])),ne=!1;for(let se of[...Ce.values()]){let Ye=Number.isFinite(G)&&A-G<=se.renew_within_ms?z.get(se.project_label):void 0,po=Xd(se,{now:m,...Ye==null?{}:{queue:{outcome:Ye.outcome,depth:Ye.depth}},liveWorkers:j[se.project_label]??0});po.registration!==se&&(Ce.set(se.project_label,po.registration),ne=!0)}ne&&uo()}function Xp(m){if(Le.size===0)return;let A=Date.parse(m);if(!Number.isFinite(A))return;let j=new Map((Ve?.projects??[]).map(z=>[z.project_label,z])),G=!1;for(let[z,ne]of[...Le]){if(A-Date.parse(ne.renew_by)>ne.renew_within_ms){Le.delete(z),G=!0;continue}let se=j.get(z),tt=Xd(ne,{now:m,...se==null?{}:{queue:{outcome:se.outcome,depth:se.depth}},liveWorkers:[...le.values()].filter(Ye=>Ye.project_label===z).length});tt.verdict==="open-work"||tt.verdict==="live-worker"?(Ce.set(z,tt.registration),Le.delete(z),G=!0):tt.verdict==="drained"&&(Le.delete(z),G=!0)}G&&uo()}function Ei(){let m=o();return Gr(m),Xb({now:m,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:W,ceiling:l,scope:em(g.claimPath,p,u),workers:[...le.values()],registrations:[...Ce.values()],demand:mr,lapses:Pt,stops:Xt,orphanedRegistrations:[...re.values()],birthLatches:Uh(Ie,Date.parse(m)),queue:Ve,published:{version:F,checkedAt:M,newer:B,replacement:be,newest:je,majorHold:Be,checks:U,holdReason:X}})}function vi(){return $b({hostState:Ei(),ceiling:l,rss:C,sampledAt:w,logLines:Object.fromEntries(Ze),displays:Object.fromEntries(wt),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:Qt,githubBalance:hr,...Rt===void 0?{}:{deaths:Rt},metrics:kh({observations:at,outcomes:ut,now:o()})})}function $_(m,A){let j=Rh(at,m,A,o());at=j.observations,K.recordWorker(j.record).catch(()=>{})}function G_(m){ut=Ln([...ut,m],A=>A.ts,{now:o()})}async function Ol(){return ce==null||ce.projects.length===0?null:(Qt=await Db({projects:ce.projects,hostTokenRef:ce.hostTokenRef,transport:ce.transport,closedWindowMs:ce.closedWindowMs,now:o()}),Qt)}async function Zp(){return _e==null?null:(hr=await Ac({transport:_e.transport,now:o()}),hr)}function N_(){if(et||Zr!=null||_e==null)return;let m=()=>{Zr=void 0,Zp().catch(()=>{}).then(()=>{if(et)return;let A=_e.intervalMsOverride??Ra(hr??W_(),{now:o()});Zr=setTimeout(m,A),Zr.unref()})};m()}function W_(){return wa(o())}function H_(){if(!(it!=null||Fe?.armTransport==null))try{let m=Fe.armTransport();if(m.transport!=null){it=m.transport;return}m.unconfiguredReason!=null&&($t=m.unconfiguredReason)}catch(m){$t=`this host could not resolve a tracker credential: ${m instanceof Error?m.message:String(m)}`}}async function ef(){let m=o();Gr(m);let A=Date.parse(m);for(let[ne,se]of[...Le])Number.isFinite(A)&&A-Date.parse(se.renew_by)>se.renew_within_ms&&Le.delete(ne);let G=[...new Map([...Le,...Ce]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,se)=>ne.project_label.localeCompare(se.project_label));if(G.length===0)return null;if(H_(),it==null)return Ve=Ay(G,m,$t),Ve;Ve=await Cy({projects:G,transport:it,now:m,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return Xp(z),Qp(z),Ve}async function tf(){let m=o();if(Nt)return mr??Gh(m);Nt=!0;try{await Fl().catch(()=>{});let A={};for(let he of le.values())A[he.project_label]=(A[he.project_label]??0)+1;let j={};for(let he of Ve?.projects??[])j[he.project_label]=he.depth;let G=Date.parse(m),z=Number.isFinite(G)?G:0;for(let[he,xt]of Object.entries(Ie)){if(xt.probeWorkerId==null)continue;let Fi=le.get(xt.probeWorkerId);Fi!=null&&z-Date.parse(Fi.started_at)>=6e4&&(Ie[he]=qd())}let ne=$h({projects:[...Ce.values()].map(he=>({project_label:he.project_label,selector:he.selector,argv:he.argv,workspace_path:he.workspace_path,target:he.target})),queue:j,live:A,nowMs:z,backoffUntilMs:ye,birthHealth:Ie}),se=[],tt=new Map,Ye=null;for(let he of ne.births){let xt,Fi=mu(le.keys()),fo=Ce.get(he.project_label),Ii=om({argv:he.argv,...fo?.env==null?{}:{env:fo.env},...fo?.log_path==null?{}:{log_path:fo.log_path}},{worker_id:Fi,slot:he.index,workspace_path:he.workspace_path},{project_label:he.project_label});try{if(fo?.trunk==null)xt=Ti(Ii);else{let Nr={workspace_path:he.workspace_path,trunk:fo.trunk},is=ss(Ii);if(!is.admitted)throw new Pr(is.reason,is);let kf=df(Nr),Mi=tt.get(kf);Mi==null&&(Mi=Dl(Nr),tt.set(kf,Mi)),xt=await cf(Ii,Nr,Mi,is)}}catch(Nr){Ye=Nr instanceof Error?Nr.message:String(Nr),Nr instanceof Pr&&Nr.admission?.verdict==="refused-unreachable-trunk-remote"||(ye=(Number.isFinite(G)?G:Date.now())+lo);break}se.push({project_label:he.project_label,worker_id:xt.worker.worker_id,pid:xt.worker.pid,...xt.fork_sha==null?{}:{fork_sha:xt.fork_sha},warnings:Ii.log_path==null?[...xt.warnings,`project ${JSON.stringify(he.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(xt.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:xt.warnings});let Ll=Ie[he.project_label];Ll?.haltUntilMs!=null&&z>=Ll.haltUntilMs&&(Ie[he.project_label]=Hh(Ll,xt.worker.worker_id))}Ye==null&&ne.births.length>0&&(ye=null);let po=new Set(se.map(he=>he.project_label));for(let he of ne.intents){if(he.queue_depth==null||he.queue_depth<=0||he.live>=he.target||po.has(he.project_label))continue;let xt=Ye!=null&&(he.outcome==="asking"||he.outcome==="half-open-probe")?`project ${JSON.stringify(he.project_label)} was birth-eligible but the host refused it: ${Ye}`:he.detail;await K.recordDemandRefusal({ts:m,projectLabel:he.project_label,detail:xt}).catch(()=>{})}return mr={version:1,at:m,requested:ne.births.length,granted:se,shortfall:ne.births.length-se.length,refusal:Ye,retry_after:ye==null?null:new Date(ye).toISOString(),projects:ne.intents},mr}finally{Nt=!1}}function U_(m){return Nn(vi(),{...Ge,mode:m?.mode??Ge.mode,project:m?.project??Ge.project,maxWorkers:m?.max_workers??Ge.maxWorkers,maxProjects:m?.max_projects??Ge.maxProjects,maxWidth:m?.max_width??Ge.maxWidth,verbose:m?.verbose??Ge.verbose})}function q_(m){return Fo(vi(),{mode:m?.mode??jt.mode,project:m?.project??jt.project,maxWidth:m?.max_width??jt.maxWidth,maxRows:m?.max_rows??jt.maxRows,maxHeight:m?.max_height??jt.maxHeight,showDeathDetails:m?.show_death_details??jt.showDeathDetails})}function Pn(m,A,j){return um({op:m,sessionProject:A??null,targetProject:j})}async function K_(m){let A=le.get(m.worker_id),j=Pn(cm(m.command),m.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(m.command!=="stop")throw new Error(`redskilled does not implement ${m.command}: it owns birth, death and limits, and ${m.command} is a work decision the project's own bundle makes on top of them`);let G=A!=null&&await Q_(A,m.detail??"stopped by its own project");return{version:1,command:m.command,worker_id:m.worker_id,applied:G,reach:j,detail:G?`redskilled stopped Worker ${JSON.stringify(m.worker_id)} of project ${JSON.stringify(A.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(m.worker_id)} to stop`}}function Si(m){le.delete(m),ct.delete(m),Ze.delete(m),wt.delete(m)}function rf(m){let A=le.get(m.worker_id),j=Pn("worker-heartbeat",m.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(typeof m.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(A==null)return{version:1,worker_id:m.worker_id,accepted:!1,reach:j,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(m.worker_id)} to publish a line for`};let G=o();Ze.set(m.worker_id,{line:m.last_log_line,published_at:G,source:"heartbeat"});let z=m.display===void 0?null:Iy(m.display);if(z!=null){let ne=wt.get(m.worker_id)?.display,se={display:z,published_at:G};wt.set(m.worker_id,se),$_(se,A),(z.phase!==ne?.phase||z.step!==ne?.step)&&Ht("worker-activity",A,null,{phase:z.phase,step:z.step})}return m.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Ht("worker-heal",A,`${m.mechanical_heal.cause}; cycle ${m.mechanical_heal.cycle}/${m.mechanical_heal.cap}; free=${m.mechanical_heal.free}`,{healKind:m.mechanical_heal.heal_kind}),{version:1,worker_id:m.worker_id,accepted:!0,reach:j,published_at:G,detail:`redskilled stored a line for Worker ${JSON.stringify(m.worker_id)} without reading it`}}async function V_(m,A,j){let G=`exit code=${A??"null"} signal=${j??"null"}`;if(m.unit!=null&&m.unit!==""&&await J_(m)){Y_(m,`its launch client ended (${G}) while unit ${JSON.stringify(m.unit)} stayed active, so the daemon holds it by unit name from here on and its death is discovered by asking the host`);return}let z=m.log_path==null?null:$d(await te(m.log_path).catch(()=>null));Si(m.worker_id),Ht("worker-death",m,z==null?G:`session-error: ${z}`,{exitCode:A,signal:j,refusal:z}),pt()}function z_(m,A){if(!Number.isFinite(A)||A<0){Ie[m]=_s;return}let j=Ie[m]??_s,G=Wh(j,A,Date.parse(o()));Ie[m]=G,G.haltUntilMs!=null&&j.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(m)} lost ${G.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(G.haltUntilMs).toISOString()}
|
|
101
|
-
`)}function nf(m,A){let j=Pn("project-reset",A,m);if(!j.permitted)throw new Error(j.reason);let G=Ie[m]?.haltUntilMs!=null||Ie[m]?.probeWorkerId!=null;return Ie[m]=qd(),{version:1,project_label:m,latch:"project-birth-breaker",reset:G,reach:j,detail:G?`redskilled cleared project ${JSON.stringify(m)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(m)}; nothing changed`}}async function J_(m){try{return await I(m)===!0}catch{return!1}}function Y_(m,A){let j=m.unit==null?null:fe(m.unit);le.set(m.worker_id,{...m,...j!=null&&j>0?{pid:j}:{},warnings:[...m.warnings,A]}),ct.add(m.worker_id),pt()}function of(m,A){let j=Pn("project-register",A,m.project_label);if(!j.permitted)throw new Error(j.reason);let G=o();Gr(G);let z=sm(m,{now:G,held:Ce.get(m.project_label)});return Ce.set(z.project_label,z),uo(),lf(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 sf(m,A={}){let j=Pn("project-renew",A.sessionProject,m);if(!j.permitted)throw new Error(j.reason);let G=o();Gr(G);let z=Ce.get(m);if(z==null){if(re.has(m))throw new jn(m,{kind:"orphaned"});let se=[...Xt].reverse().find(Ye=>Ye.project_label===m);if(se!=null)throw new jn(m,{kind:"stopped",at:se.at});let tt=[...Pt].reverse().find(Ye=>Ye.project_label===m);throw tt!=null?new jn(m,{kind:"lapsed",at:tt.at,...tt.registered_at==null?{}:{registered_at:tt.registered_at}}):new jn(m)}let ne=im(z,{now:G,...A.renewWithinMs==null?{}:{renew_within_ms:A.renewWithinMs},...A.launch==null?{}:{launch:A.launch}});return Ce.set(ne.project_label,ne),uo(),pt(),{version:1,registration:ne,reach:j,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(A.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function af(m,A){let j=Pn("project-deregister",A,m);if(!j.permitted)throw new Error(j.reason);let G=Ce.get(m)??Le.get(m),z=Ce.delete(m),ne=Le.delete(m),se=z||ne;if(G!=null){let tt=`redskilled released the registration for project ${JSON.stringify(m)}`;lf(m),Xt.push({project_label:m,registered_at:G.registered_at,at:o(),detail:tt}),Xt.length>ks&&Xt.splice(0,Xt.length-ks)}return se&&uo(),{version:1,project_label:m,released:se,reach:j,detail:se?`redskilled released the registration for project ${JSON.stringify(m)}`:`redskilled held no registration for project ${JSON.stringify(m)}, so there was nothing to release`}}function lf(m){Le.delete(m);for(let A=Pt.length-1;A>=0;A-=1)Pt[A].project_label===m&&Pt.splice(A,1);for(let A=Xt.length-1;A>=0;A-=1)Xt[A].project_label===m&&Xt.splice(A,1);re.delete(m)}async function Q_(m,A){try{await V(m)}catch{}return Si(m.worker_id),Ht("worker-death",m,A),pt(),!0}function ss(m){return Dh({ceiling:l,workers:[...le.values()],budget:m.budget,projectLabel:m.project_label,...m.reservation==null?{}:{reservation:m.reservation}})}function df(m){return`${m.workspace_path}\0${m.trunk.remote}\0${m.trunk.branch}`}function Dl(m){let A=df(m),j=Gt.get(A);if(j!=null)return j;let G=i(m).finally(()=>{Gt.get(A)===G&&Gt.delete(A)});return Gt.set(A,G),G}function X_(m,A,j){let G=j instanceof Error?j.message:String(j);return{...m,admitted:!1,verdict:"refused-unreachable-trunk-remote",reason:`refused-unreachable-trunk-remote: redskilled refused this Worker because trunk remote ${JSON.stringify(A.trunk.remote)} could not refresh branch ${JSON.stringify(A.trunk.branch)}: ${G}`}}async function cf(m,A,j,G){let z=G??ss(m);if(!z.admitted)throw new Pr(z.reason,z);let ne;try{ne=await(j??Dl(A))}catch(tt){let Ye=X_(z,A,tt);throw new Pr(Ye.reason,Ye)}let se=ss(m);if(!se.admitted)throw new Pr(se.reason,se);return Ti(m,{admission:se,forkSha:ne})}function Ti(m,A={}){let j=Fh({ceiling:l,workers:[...le.values()],budget:m.budget}),G=s({spec:m,admission:A.admission??ss(m),...A.forkSha==null?{}:{forkSha:A.forkSha},memoryCeiling:j,liveWorkerIds:le.keys(),clock:o,onExit:(tt,Ye,po)=>{let he=le.get(tt);if(he==null){pt();return}V_(he,Ye,po).catch(()=>{})}}),z=A.forkSha??G.fork_sha??G.worker.fork_sha,ne=z==null||z===""?G.worker:{...G.worker,fork_sha:z},se={...G,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return le.set(ne.worker_id,ne),Ht("worker-birth",ne,null,{admissionVerdict:A.admission?.verdict??G.admission.verdict}),pt(),se}function Ht(m,A,j,G={}){if(et)return;let z=o(),ne={kind:m,worker:A,ts:z,detail:j,...G};(m==="worker-death"||m==="worker-budget-kill")&&(G_({worker_id:A.worker_id,ts:z,outcome:m}),uf(oa(ne),{startedAt:A.started_at,...G.refusal==null?{}:{refusal:G.refusal}}),z_(A.project_label,Date.parse(z)-Date.parse(A.started_at))),K.recordWorker(ne).catch(()=>{})}function uf(m,A={}){let j=ah(m,A);if(j==null)return;let G=[j,...(Rt??[]).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));Rt=Ln(G,z=>z.ts,{now:o()})}async function Fl(){let m=Date.parse(o()),A=[...le.values()].filter(G=>{if(ct.has(G.worker_id))return!0;let z=Date.parse(G.started_at);return!Number.isFinite(z)||m-z>=N});if(A.length===0)return[];let{dead:j}=await cu(A,I);for(let G of j)Si(G.worker_id),Ht("worker-death",G,"the host no longer confirms this Worker");return j.length>0&&pt(),j}async function pf(m,A){let j=le.get(m);if(!j)return!1;try{await V(j)}catch{}return Si(m),Ht("worker-budget-kill",j,A),pt(),!0}async function ff(){let m=[...le.values()];if(m.length===0)return[];let A;try{A=await de(m)}catch{return[]}let j=A.rss;C=j,w=o(),Z_(A.cpu_seconds,w);let{terminations:G}=Eb({workers:m,rss:j}),z=[];for(let ne of G)await pf(ne.worker_id,ne.reason)&&z.push(ne);return z}function Z_(m,A){for(let[j,G]of Object.entries(m)){if(typeof G!="number"||!Number.isFinite(G))continue;let z=le.get(j);z&&le.set(j,{...z,cpu:{cpu_seconds:G,sampled_at:A}})}}async function ex(){try{return ie<=0?await ke(r):await new Promise(m=>{let A=setTimeout(()=>m(Il()),ie);A.unref(),ke(r).then(j=>{clearTimeout(A),m(j)},()=>{clearTimeout(A),m(Il())})})}catch{return Il()}}function Il(){try{return Re(r)}catch{return null}}async function gf(){if(qs(r))return U+=1,M=o(),X="local-build",{act:"hold",reason:"local-build"};let m=Zy(await ex()),A=m.version;F=A,je=m.newest??null,M=o(),Be=e0({running:r,newest:je,supervised:we});let j=t0({running:r,published:A,supervised:we});return B=j.act==="replace",U+=1,X=j.act==="hold"?j.reason:null,be!=="in-progress"&&(be=j.act==="replace"?"pending":"none"),j}async function Pi(){let m=await gf();if(m.act!=="replace"||be==="in-progress")return m;let A=n0(m,Se);return be="in-progress",await K.flush().catch(()=>{}),await H.flush().catch(()=>{}),await Ci({reason:"replaced"}),o0(A,t,{...n==null?{}:{idleMs:n},io:Se}),m}function tx(){et||vn!=null||J<=0||(!Ae&&Ee>0&&(Ue=setTimeout(()=>{Pi().catch(()=>{})},Ee),Ue.unref()),vn=setInterval(()=>{Pi().catch(()=>{})},J),vn.unref())}async function hf(){return await c.renew(d).catch(()=>null)}function rx(){et||Xr!=null||Oe<=0||(Xr=setInterval(()=>{hf()},Oe),Xr.unref())}function nx(){et||xn!=null||ve<=0||(xn=setInterval(()=>{Gr(o())},ve),xn.unref())}function ox(){et||Wt!=null||me<=0||(Wt=setInterval(()=>{ff().catch(()=>{})},me),Wt.unref())}function sx(){et||Sn!=null||ce==null||ce.projects.length===0||oe<=0||(Ol().catch(()=>{}),Sn=setInterval(()=>{Ol().catch(()=>{})},oe),Sn.unref())}function ix(){if(et||Br!=null||Yr<=0)return;let m=A=>{Br=setTimeout(()=>{Br=void 0,mf().then(()=>ef()).catch(()=>{}).finally(()=>{if(et)return;let j=Date.parse(o());m(Fy(Ve,Yr,Number.isFinite(j)?j:Date.now()))})},A),Br.unref()};m(Yr)}async function mf(){await Promise.allSettled([...Ce.values()].filter(m=>m.trunk!=null).map(async m=>{let A=await Dl({workspace_path:m.workspace_path,trunk:m.trunk}),j=[...le.values()].filter(G=>G.project_label===m.project_label&&G.fork_sha!=null&&G.fork_sha!=="");await Promise.allSettled(j.map(async G=>{let z=await a({workspace_path:m.workspace_path,fork_sha:G.fork_sha,head_sha:A}),ne=le.get(G.worker_id);if(ne==null||ne.fork_sha!==G.fork_sha)return;let se={...ne,base_head_sha:A,base_commits_ahead:z};le.set(G.worker_id,se),(ne.base_head_sha!==A||ne.base_commits_ahead!==z)&&Ht("worker-drift",se,null,{baseHeadSha:A,baseCommitsAhead:z})}))}))}function ax(){et||En!=null||Qr<=0||(En=setInterval(()=>{tf().catch(()=>{})},Qr),En.unref())}function pt(){et||(At&&clearTimeout(At),At=setTimeout(()=>{Fl().catch(()=>{}).then(()=>bf())},n),At.unref())}function bf(){return le.size>0?(pt(),"held-by-workers"):(Gr(o()),Ce.size>0?(pt(),"held-by-registrations"):(lx(),"exited"))}async function lx(){if(!qs(r)){if((await Pi().catch(()=>null))?.act==="replace"||co||et)return;if(le.size>0||Ce.size>0){pt();return}}await Ci({reason:"idle"})}function Ai(m){return Kh({reason:m,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...le.values()],projects:[...Ce.keys()]})}function yf(m){if($e!=null)return $e;let A=m.reason??"requested",j=m.note?.trim();return $e=K.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:A,detail:j==null||j===""?Ai(A).detail:`${Ai(A).detail} \u2014 ${j}`,...m.signal==null?{}:{signal:m.signal}}).catch(()=>{}),$e}async function Ci(m={}){if(co)return await $r;co=!0,await yf(m),et=!0,At&&clearTimeout(At),Wt&&clearInterval(Wt),Xr&&clearInterval(Xr),xn&&clearInterval(xn),vn&&clearInterval(vn),Ue&&clearTimeout(Ue),Sn&&clearInterval(Sn),Zr&&clearTimeout(Zr),Br&&clearTimeout(Br),En&&clearInterval(En),await K.flush().catch(()=>{}),await H.flush().catch(()=>{}),await c.release(d),await g.release(u),L.close();for(let A of Q)A.destroy();return await new Promise(A=>L.once("close",()=>A())),await i1(t.socketPath,{force:!0}),Tn(),await $r}let Oi=await K.read().catch(()=>[]),Di=new Map;for(let m of Oi){if(m.event==="worker-birth"){Di.set(m.worker_id,m.ts);continue}let A=$d(m.detail);uf(m,{...Di.get(m.worker_id)==null?{}:{startedAt:Di.get(m.worker_id)},...A==null?{}:{refusal:A}}),(m.event==="worker-death"||m.event==="worker-budget-kill")&&Di.delete(m.worker_id)}ut=Ln(Oi.filter(m=>m.event==="worker-death"||m.event==="worker-budget-kill").map(m=>({worker_id:m.worker_id,ts:m.ts,outcome:m.event})),m=>m.ts,{now:o()}),at=_h(Oi,o());let dx=Bh(Oi),Ml=await cu(dx,I);for(let m of Ml.alive){let A=Ey(m),j=A.unit==null||lt(A.pid)?null:fe(A.unit);le.set(A.worker_id,j!=null&&j>0?{...A,pid:j}:A),ct.add(A.worker_id)}for(let m of Ml.dead)Ht("worker-death",m,"the Worker ended while no daemon was watching");let cx=xy({units:await Promise.resolve(ge()).catch(()=>[]),held:[...le.values()],mainPid:fe,now:W});for(let m of cx)le.set(m.worker_id,m),ct.add(m.worker_id),Ht("worker-birth",m,"adopted from an active unit with no birth on this lane");Xp(o());for(let m of Ml.alive){if(m.log_path==null||Ze.has(m.worker_id))continue;let A=await te(m.log_path).catch(()=>null);A==null||A.trim()===""||Ze.set(m.worker_id,{line:A,published_at:o(),source:"rehydrated"})}L.on("connection",m=>{Q.add(m),m.once("close",()=>Q.delete(m)),pt(),uh(m,async(A,j)=>{pt();let G=await ux(A);j(G),A.op==="shutdown"&&setImmediate(()=>void Ci({reason:"requested"}).catch(()=>{}))})});async function ux(m){try{if(m.op==="ping")return{id:m.id,ok:!0,value:{pong:!0,protocol_version:Oa,daemon_version:r,pid:d.pid}};if(m.op==="host-state")return{id:m.id,ok:!0,value:Ei()};if(m.op==="statusline-payload")return{id:m.id,ok:!0,value:Bb(vi(),m.extras)};if(m.op==="statusline-string")return{id:m.id,ok:!0,value:U_(m.render)};if(m.op==="statusline-dashboard")return{id:m.id,ok:!0,value:q_(m.dashboard)};if(m.op==="worker-heartbeat")return{id:m.id,ok:!0,value:rf(m.heartbeat)};if(m.op==="project-register"){let j=of(m.registration,m.session_project);return await H.flush(),{id:m.id,ok:!0,value:j}}if(m.op==="project-renew"){let j=sf(m.project_label,{...m.session_project==null?{}:{sessionProject:m.session_project},...m.renew_within_ms==null?{}:{renewWithinMs:m.renew_within_ms},...m.launch==null?{}:{launch:m.launch}});return await H.flush(),{id:m.id,ok:!0,value:j}}if(m.op==="project-deregister"){let j=af(m.project_label,m.session_project);return await H.flush(),{id:m.id,ok:!0,value:j}}if(m.op==="project-reset")return{id:m.id,ok:!0,value:nf(m.project_label,m.session_project)};if(m.op==="worker-command")return{id:m.id,ok:!0,value:await K_(m.command)};if(m.op==="worker-start"){let j=Pn("worker-start",m.session_project,m.spec.project_label);if(!j.permitted)return{id:m.id,ok:!1,error:j.reason};let G=m.spec.trunk==null?Ti(m.spec):await cf(m.spec,{workspace_path:m.spec.workspace_path,trunk:m.spec.trunk});return await K.flush().catch(()=>{}),{id:m.id,ok:!0,value:{worker:G.worker,admission:G.admission,fork_sha:G.fork_sha,warnings:G.warnings}}}if(m.op==="shutdown"){let j=Ai("requested");return await yf({reason:"requested",...m.detail==null?{}:{note:m.detail}}),{id:m.id,ok:!0,value:j}}let A=m;return{id:A.id??b0(),ok:!1,error:`unsupported redskilled op: ${A.op??"unknown"}`}}catch(A){return{id:m.id??b0(),ok:!1,error:A instanceof Error?A.message:String(A)}}}return pt(),ox(),rx(),nx(),tx(),sx(),N_(),ix(),ax(),{socketPath:t.socketPath,lease:D.lease,startedAt:W,closed:$r,startWorker:Ti,admit:ss,ceiling:()=>l,killWorkerOverBudget:pf,sampleMemoryBudgets:ff,renewLease:hf,pollRepositoryActivity:Ol,pollGithubBalance:Zp,githubBalance:()=>hr,pollQueueDiscovery:ef,queueDiscovery:()=>Ve,driveDemand:tf,demand:()=>mr,sweepWorkerLiveness:Fl,publishWorkerHeartbeat:rf,reattached:()=>[...ct].map(m=>le.get(m)).filter(m=>m!=null),flushEvents:()=>K.flush(),trackWorker(m){le.set(m.worker_id,m),Ht("worker-birth",m,null),pt()},releaseWorker(m){let A=le.get(m),j=le.delete(m);return ct.delete(m),Ze.delete(m),wt.delete(m),A&&Ht("worker-death",A,"released by the daemon"),pt(),j},workerCount:()=>le.size,registerProject:of,renewProject:sf,resetProjectBirthBreaker:nf,deregisterProject:af,registrations:()=>Ei().registrations??[],hostState:Ei,refreshRegisteredTrunks:mf,statuslinePayload:vi,evaluateIdle:bf,observePublishedVersion:gf,checkForReplacement:Pi,stopReport:Ai,stop:Ci}}function Su(e){let t=e.socketPath,r=l1(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 ${k0(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 \`${gn("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 \`${gn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Tu(e){return`${e.reason} ${e.repair}`}function l1(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:d1(t.acquired_at,e.now??new Date().toISOString())}}function d1(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 k0(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`}Hr();var _0=1e4,Hn=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"?`. ${Tu(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},Pu=class extends Hn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},Ba=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function $a(e,t={}){let r=t.answers??await vr(e.socketPath),n=await Lo(e.leasePath).catch(()=>{});return Su({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&<(n.pid)})}async function Au(e,t={}){try{return await f1(e,t)}catch(r){if(r instanceof on||r instanceof Hn)throw r;let n=await $a(e).catch(()=>{});throw new Hn(e.socketPath,r,n)}}async function f1(e,t){if(await u1(p1(e.socketPath),{recursive:!0,mode:448}),await vr(e.socketPath))return"already-running";await m1(e);let r=await h1(e,t);if(r!=null)return r;let n=await Hg(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??g1});if(!n.acquired)return await w0(e,t,void 0,n),"joined";try{if(await vr(e.socketPath))return"already-running";let o=await y1(e,t);return await w0(e,t,o),"spawned"}finally{await Ug(n)}}function g1(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
|
|
102
|
-
`)}async function
|
|
103
|
-
`)}import{chmod as
|
|
104
|
-
`)){let o=n.replace(/\r$/,""),s=o.trim();if(!s||s.startsWith("#"))continue;let i=o.indexOf(":");if(i<0)continue;let a=o.length-o.trimStart().length,l=o.slice(0,i).trim();if(!l)continue;let d=o.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:l}),d&&r.map(u=>u.key).join(".")===t)return
|
|
100
|
+
`)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function oF(e,t={}){let r=t.env??process.env,n=t.exists??XD,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=[[t0(na(r),i),"bundle-cache"]];s&&l.push([t0(eF(tF(s)),i),"caller-sibling-bundle"]);for(let[d,c]of l)if(a.push(d),n(d))return{command:o,args:[d],version:e,source:c,searched:a};if(r.RED_SKILLS_NO_PINNED_DISPATCH==="1")throw new vu(e,a);return{command:r.RED_SKILLS_NPX||"npx",args:["-y","-p",`@reddb-io/red-skills@${e}`,"red-skills-redskilled"],version:e,source:"pinned-dispatch",searched:a}}function u0(e,t={},r,n){let s=(t.resolveEntry??(i=>oF(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>zy(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 p0(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??iF)(r0),{...e,exitCode:r0};let o=[...e.entry.args,...on(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??sF(n.env))(e.entry,o),e}function sF(e){return(t,r)=>{let n=QD(t.command,[...r],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[s0]:"1"}});n.on("error",()=>{}),n.unref()}}function iF(e){process.exitCode=e,process.exit(e)}async function f0(e,t=process.env,r=aF){let n=h0(t),o=m0(e,t);if(t[rF]==="1")return{version:o,newest:n};let s=lr(e)===null?"0.0.0":e;try{let i=await eh({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function g0(e,t=process.env,r){let n=r??Su;return{version:m0(e,t,n),newest:h0(t,n)}}function h0(e=process.env,t=Su){return y0(b0(e,t))}function m0(e,t=process.env,r=Su){let n=lr(e.trim())?.major;return n===void 0?null:y0(b0(t,r).filter(o=>lr(o)?.major===n))}function b0(e,t){let r=[];for(let n of t(na(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||lr(o)===null||r.push(o)}return r}function y0(e){let t=null;for(let r of e)(t===null||xu(r,t)>0)&&(t=r);return t}function Su(e){try{return ZD(e)}catch{return[]}}async function aF(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 lF,readFile as dF,rename as cF,rm as Tu,writeFile as k0}from"node:fs/promises";import{randomUUID as uF}from"node:crypto";import{dirname as pF}from"node:path";var Wa=class extends Error{constructor(t){super(`redskilled lease ${JSON.stringify(t)} is held by another owner`),this.name="RedskilledLeaseOwnershipError"}};async function Bo(e){let t;try{t=await dF(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=fF(t);return gF(r)?r:void 0}var w0;function _0(){return w0??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},w0}function x0(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){return await Bo(e)}async function i(l){let d=`${e}.${l.pid}.${uF()}.tmp`;await k0(d,R0(l),{encoding:"utf8",mode:384}),await cF(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 lF(pF(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await k0(e,R0(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 Tu(e,{force:!0}),d=!0;continue}if(Pu(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await Tu(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!Pu(d,l))throw new Wa(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!Pu(d,l))throw new Wa(e);return await Tu(e,{force:!0}),!0}}}function Pu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function R0(e){return`${ot(e,{keyedMapCollapse:!0})}
|
|
101
|
+
`}function fF(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function gF(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 S0(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??_o,o=e.clock??(()=>new Date().toISOString()),s=e.launch??Gy,i=e.refreshTrunk??Wy,a=e.countBaseMovement??Hy,l=e.ceiling??la();e.repositoryActivity!=null&&Uc(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??_0(),c=e.leaseStore??x0(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??ca(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??vs(t.machineClaimPath,p,{clock:o});await bF(kF(t.socketPath),{recursive:!0,mode:448});let[f,k]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),b=Date.parse(o()),v=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&k!=null&&f.pid===k.pid&&f.start_time===k.start_time&&f.socket_path===t.socketPath&&k.socket_path===t.socketPath&&Number.isFinite(b)&&Number.isFinite(v)&&b-v>=dh&&await qd(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:k.pid,startTime:k.start_time,uid:k.uid}).catch(()=>!1);let $=await g.claim(u);if(!$.claimed)throw $.claim?.socket_path===t.socketPath?new Sr(t.socketPath):new qr(g.claimPath,$.reason,$.claim);let D=await c.acquire(d);if(!D.acquired)throw await g.release(u).catch(()=>{}),new Sr(t.socketPath,D.lease);let L;try{L=await gh(t.socketPath,async()=>{let[m,A]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return m!=null&&m.pid!==d.pid&&Qe(m.pid)?!0:A!=null&&A.socket_path===t.socketPath&&A.pid!==u.pid&&Qe(A.pid)})}catch(m){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),m}let W=o(),K=e.eventLane??Gh(t.eventLanePath),H=e.registrationIntentStore??ny(t.registrationIntentPath),I=e.liveness??Ry,G=e.livenessGraceMs??wy,V=e.stopWorker??Py,ge=e.unitInventory??(()=>Ey(t.machineClaimPath,Eo({machineIdHash:t.machineIdHash}))?vy():[]),fe=e.unitMainPid??xy,de=e.treeSampler??Pb,te=e.readLogTail??Uy,me=e.sampleMs??lh,Oe=e.leaseRenewMs??Hd,ve=e.registrationSustainMs??ch,ke=e.publishedVersion??(m=>f0(m)),J=e.replaceCheckMs??o0,ie=e.publishedProbeTimeoutMs??ih,Re=e.localPublishedEvidence??(m=>g0(m,e.replacementIO?.env??process.env)),Ae=e.bornByReplacement??i0(),Ee=e.replaceBootCheckMs??ah,we=e.supervised??c0(),Se=e.replacementIO??{},ce=e.repositoryActivity,oe=ce?.intervalMs??Hc,_e=e.githubBalance,Fe=e.queueDiscovery,at=Fe?.transport??ce?.transport,$t=Fe?.unconfiguredReason??ph,Xr=Fe?.intervalMs??yu,Zr=e.demandMs??15e3,lo=e.demandBackoffMs??3e4,le=new Map,Nt=new Map,ct=new Set,et=new Map,wt=new Map,lt=[],ut=[],Rt=e.deaths===void 0?void 0:[...e.deaths],_t=await H.read().catch(()=>[]),Br=Date.parse(W),Ce=new Map,Le=new Map;for(let m of _t){let A=Date.parse(m.renew_by);!Number.isFinite(Br)||!Number.isFinite(A)||A>=Br?Ce.set(m.project_label,m):Br-A<=m.renew_within_ms&&Le.set(m.project_label,m)}let Q=new Set,C={},w=null,F=null,M=null,B=!1,U=0,X=null,be="none",je=null,Be=null,Zt=null,yr=null,Ve=null,kr=null,Pt=[],er=[],re=new Map((e.orphanedRegistrations??[]).map(m=>[m.project_label,m])),ye=null,Ie={},Gt=!1,At,Wt,en,En,vn,Sn,Ue,Tn,tn,$r,tt=!1,co=!1,$e=null,Pn,Nr=new Promise(m=>{Pn=m});function Gr(m){tf(m);let A=Date.parse(m),j=um(Ce.values(),A);for(let N of j.lapsed){Ce.delete(N.project_label);let z=Ve?.projects.find(se=>se.project_label===N.project_label),ne=[...le.values()].some(se=>se.project_label===N.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&Le.set(N.project_label,N),J_(N,A)}return j.lapsed.length>0&&uo(),j.lapsed}function uo(){let m=new Map(Le);for(let[A,j]of Ce)m.set(A,j);H.replace([...m.values()]).catch(()=>{})}function J_(m,A){let j=Number.isFinite(A)?new Date(A).toISOString():m.renew_by;Pt.push({project_label:m.project_label,registered_at:m.registered_at,at:j,renew_by:m.renew_by,renewals:m.renewals,sustains:m.sustains??0,detail:`redskilled dropped the registration for project ${JSON.stringify(m.project_label)}: it stood until ${m.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`}),Pt.length>Rs&&Pt.splice(0,Pt.length-Rs)}function tf(m){if(Ce.size===0)return;let A=Date.parse(m);if(!Number.isFinite(A))return;let j={};for(let se of le.values())j[se.project_label]=(j[se.project_label]??0)+1;let N=Ve==null?Number.NaN:Date.parse(Ve.fetched_at),z=new Map((Ve?.projects??[]).map(se=>[se.project_label,se])),ne=!1;for(let se of[...Ce.values()]){let Ye=Number.isFinite(N)&&A-N<=se.renew_within_ms?z.get(se.project_label):void 0,po=oc(se,{now:m,...Ye==null?{}:{queue:{outcome:Ye.outcome,depth:Ye.depth}},liveWorkers:j[se.project_label]??0});po.registration!==se&&(Ce.set(se.project_label,po.registration),ne=!0)}ne&&uo()}function rf(m){if(Le.size===0)return;let A=Date.parse(m);if(!Number.isFinite(A))return;let j=new Map((Ve?.projects??[]).map(z=>[z.project_label,z])),N=!1;for(let[z,ne]of[...Le]){if(A-Date.parse(ne.renew_by)>ne.renew_within_ms){Le.delete(z),N=!0;continue}let se=j.get(z),rt=oc(ne,{now:m,...se==null?{}:{queue:{outcome:se.outcome,depth:se.depth}},liveWorkers:[...le.values()].filter(Ye=>Ye.project_label===z).length});rt.verdict==="open-work"||rt.verdict==="live-worker"?(Ce.set(z,rt.registration),Le.delete(z),N=!0):rt.verdict==="drained"&&(Le.delete(z),N=!0)}N&&uo()}function Ai(){let m=o();return Gr(m),ty({now:m,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:W,ceiling:l,scope:nm(g.claimPath,p,u),workers:[...le.values()],registrations:[...Ce.values()],demand:kr,lapses:Pt,stops:er,orphanedRegistrations:[...re.values()],birthLatches:zh(Ie,Date.parse(m)),queue:Ve,published:{version:F,checkedAt:M,newer:B,replacement:be,newest:je,majorHold:Be,checks:U,holdReason:X}})}function Ci(){return Wb({hostState:Ai(),ceiling:l,rss:C,sampledAt:w,logLines:Object.fromEntries(et),displays:Object.fromEntries(wt),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:Zt,githubBalance:yr,...Rt===void 0?{}:{deaths:Rt},metrics:xh({observations:lt,outcomes:ut,now:o()})})}function Y_(m,A){let j=vh(lt,m,A,o());lt=j.observations,K.recordWorker(j.record).catch(()=>{})}function Q_(m){ut=Ln([...ut,m],A=>A.ts,{now:o()})}async function Ll(){return ce==null||ce.projects.length===0?null:(Zt=await Mb({projects:ce.projects,hostTokenRef:ce.hostTokenRef,transport:ce.transport,closedWindowMs:ce.closedWindowMs,now:o()}),Zt)}async function nf(){return _e==null?null:(yr=await Mc({transport:_e.transport,now:o()}),yr)}function X_(){if(tt||tn!=null||_e==null)return;let m=()=>{tn=void 0,nf().catch(()=>{}).then(()=>{if(tt)return;let A=_e.intervalMsOverride??va(yr??Z_(),{now:o()});tn=setTimeout(m,A),tn.unref()})};m()}function Z_(){return Ea(o())}function ex(){if(!(at!=null||Fe?.armTransport==null))try{let m=Fe.armTransport();if(m.transport!=null){at=m.transport;return}m.unconfiguredReason!=null&&($t=m.unconfiguredReason)}catch(m){$t=`this host could not resolve a tracker credential: ${m instanceof Error?m.message:String(m)}`}}async function of(){let m=o();Gr(m);let A=Date.parse(m);for(let[ne,se]of[...Le])Number.isFinite(A)&&A-Date.parse(se.renew_by)>se.renew_within_ms&&Le.delete(ne);let N=[...new Map([...Le,...Ce]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,se)=>ne.project_label.localeCompare(se.project_label));if(N.length===0)return null;if(ex(),at==null)return Ve=Dy(N,m,$t),Ve;Ve=await Fy({projects:N,transport:at,now:m,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return rf(z),tf(z),Ve}async function sf(){let m=o();if(Gt)return kr??Uh(m);Gt=!0;try{await Bl().catch(()=>{});let A={};for(let he of le.values())A[he.project_label]=(A[he.project_label]??0)+1;let j={};for(let he of Ve?.projects??[])j[he.project_label]=he.depth;let N=Date.parse(m),z=Number.isFinite(N)?N:0;for(let[he,xt]of Object.entries(Ie)){if(xt.probeWorkerId==null)continue;let Bi=le.get(xt.probeWorkerId);Bi!=null&&z-Date.parse(Bi.started_at)>=6e4&&(Ie[he]=Yd())}let ne=Hh({projects:[...Ce.values()].map(he=>({project_label:he.project_label,selector:he.selector,argv:he.argv,workspace_path:he.workspace_path,target:he.target})),queue:j,live:A,nowMs:z,backoffUntilMs:ye,birthHealth:Ie}),se=[],rt=new Map,Ye=null;for(let he of ne.births){let xt,Bi=_u(le.keys()),fo=Ce.get(he.project_label),$i=am({argv:he.argv,...fo?.env==null?{}:{env:fo.env},...fo?.log_path==null?{}:{log_path:fo.log_path}},{worker_id:Bi,slot:he.index,workspace_path:he.workspace_path},{project_label:he.project_label});try{if(fo?.trunk==null)xt=Di($i);else{let Wr={workspace_path:he.workspace_path,trunk:fo.trunk},ls=as($i);if(!ls.admitted)throw new Ar(ls.reason,ls);let xf=ff(Wr),Ni=rt.get(xf);Ni==null&&(Ni=jl(Wr),rt.set(xf,Ni)),xt=await gf($i,Wr,Ni,ls)}}catch(Wr){Ye=Wr instanceof Error?Wr.message:String(Wr),Wr instanceof Ar&&Wr.admission?.verdict==="refused-unreachable-trunk-remote"||(ye=(Number.isFinite(N)?N:Date.now())+lo);break}se.push({project_label:he.project_label,worker_id:xt.worker.worker_id,pid:xt.worker.pid,...xt.fork_sha==null?{}:{fork_sha:xt.fork_sha},warnings:$i.log_path==null?[...xt.warnings,`project ${JSON.stringify(he.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(xt.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:xt.warnings});let Gl=Ie[he.project_label];Gl?.haltUntilMs!=null&&z>=Gl.haltUntilMs&&(Ie[he.project_label]=Vh(Gl,xt.worker.worker_id))}Ye==null&&ne.births.length>0&&(ye=null);let po=new Set(se.map(he=>he.project_label));for(let he of ne.intents){if(he.queue_depth==null||he.queue_depth<=0||he.live>=he.target||po.has(he.project_label))continue;let xt=Ye!=null&&(he.outcome==="asking"||he.outcome==="half-open-probe")?`project ${JSON.stringify(he.project_label)} was birth-eligible but the host refused it: ${Ye}`:he.detail;await K.recordDemandRefusal({ts:m,projectLabel:he.project_label,detail:xt}).catch(()=>{})}return kr={version:1,at:m,requested:ne.births.length,granted:se,shortfall:ne.births.length-se.length,refusal:Ye,retry_after:ye==null?null:new Date(ye).toISOString(),projects:ne.intents},kr}finally{Gt=!1}}function tx(m){return Gn(Ci(),{...Ne,mode:m?.mode??Ne.mode,project:m?.project??Ne.project,maxWorkers:m?.max_workers??Ne.maxWorkers,maxProjects:m?.max_projects??Ne.maxProjects,maxWidth:m?.max_width??Ne.maxWidth,verbose:m?.verbose??Ne.verbose})}function rx(m){return Io(Ci(),{mode:m?.mode??jt.mode,project:m?.project??jt.project,maxWidth:m?.max_width??jt.maxWidth,maxRows:m?.max_rows??jt.maxRows,maxHeight:m?.max_height??jt.maxHeight,showDeathDetails:m?.show_death_details??jt.showDeathDetails})}function An(m,A,j){return gm({op:m,sessionProject:A??null,targetProject:j})}async function nx(m){let A=le.get(m.worker_id),j=An(fm(m.command),m.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(m.command!=="stop")throw new Error(`redskilled does not implement ${m.command}: it owns birth, death and limits, and ${m.command} is a work decision the project's own bundle makes on top of them`);let N=A!=null&&await lx(A,m.detail??"stopped by its own project");return{version:1,command:m.command,worker_id:m.worker_id,applied:N,reach:j,detail:N?`redskilled stopped Worker ${JSON.stringify(m.worker_id)} of project ${JSON.stringify(A.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(m.worker_id)} to stop`}}function Oi(m){le.delete(m),ct.delete(m),et.delete(m),wt.delete(m)}function af(m){let A=le.get(m.worker_id),j=An("worker-heartbeat",m.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(typeof m.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(A==null)return{version:1,worker_id:m.worker_id,accepted:!1,reach:j,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(m.worker_id)} to publish a line for`};let N=o();et.set(m.worker_id,{line:m.last_log_line,published_at:N,source:"heartbeat"});let z=m.display===void 0?null:jy(m.display);if(z!=null){let ne=wt.get(m.worker_id)?.display,se={display:z,published_at:N};wt.set(m.worker_id,se),Y_(se,A),(z.phase!==ne?.phase||z.step!==ne?.step)&&Ht("worker-activity",A,null,{phase:z.phase,step:z.step})}return m.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Ht("worker-heal",A,`${m.mechanical_heal.cause}; cycle ${m.mechanical_heal.cycle}/${m.mechanical_heal.cap}; free=${m.mechanical_heal.free}`,{healKind:m.mechanical_heal.heal_kind}),{version:1,worker_id:m.worker_id,accepted:!0,reach:j,published_at:N,detail:`redskilled stored a line for Worker ${JSON.stringify(m.worker_id)} without reading it`}}async function ox(m,A,j){let N=`exit code=${A??"null"} signal=${j??"null"}`;if(m.unit!=null&&m.unit!==""&&await ix(m)){ax(m,`its launch client ended (${N}) while unit ${JSON.stringify(m.unit)} stayed active, so the daemon holds it by unit name from here on and its death is discovered by asking the host`);return}let z=m.log_path==null?null:Ud(await te(m.log_path).catch(()=>null));Oi(m.worker_id),Ht("worker-death",m,z==null?N:`session-error: ${z}`,{exitCode:A,signal:j,refusal:z}),pt()}function sx(m,A){if(!Number.isFinite(A)||A<0){Ie[m]=Es;return}let j=Ie[m]??Es,N=Kh(j,A,Date.parse(o()));Ie[m]=N,N.haltUntilMs!=null&&j.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(m)} lost ${N.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(N.haltUntilMs).toISOString()}
|
|
102
|
+
`)}function lf(m,A){let j=An("project-reset",A,m);if(!j.permitted)throw new Error(j.reason);let N=Ie[m]?.haltUntilMs!=null||Ie[m]?.probeWorkerId!=null;return Ie[m]=Yd(),{version:1,project_label:m,latch:"project-birth-breaker",reset:N,reach:j,detail:N?`redskilled cleared project ${JSON.stringify(m)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(m)}; nothing changed`}}async function ix(m){try{return await I(m)===!0}catch{return!1}}function ax(m,A){let j=m.unit==null?null:fe(m.unit);le.set(m.worker_id,{...m,...j!=null&&j>0?{pid:j}:{},warnings:[...m.warnings,A]}),ct.add(m.worker_id),pt()}function df(m,A){let j=An("project-register",A,m.project_label);if(!j.permitted)throw new Error(j.reason);let N=o();Gr(N);let z=lm(m,{now:N,held:Ce.get(m.project_label)});return Ce.set(z.project_label,z),uo(),pf(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 cf(m,A={}){let j=An("project-renew",A.sessionProject,m);if(!j.permitted)throw new Error(j.reason);let N=o();Gr(N);let z=Ce.get(m);if(z==null){if(re.has(m))throw new jn(m,{kind:"orphaned"});let se=[...er].reverse().find(Ye=>Ye.project_label===m);if(se!=null)throw new jn(m,{kind:"stopped",at:se.at});let rt=[...Pt].reverse().find(Ye=>Ye.project_label===m);throw rt!=null?new jn(m,{kind:"lapsed",at:rt.at,...rt.registered_at==null?{}:{registered_at:rt.registered_at}}):new jn(m)}let ne=dm(z,{now:N,...A.renewWithinMs==null?{}:{renew_within_ms:A.renewWithinMs},...A.launch==null?{}:{launch:A.launch}});return Ce.set(ne.project_label,ne),uo(),pt(),{version:1,registration:ne,reach:j,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(A.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function uf(m,A){let j=An("project-deregister",A,m);if(!j.permitted)throw new Error(j.reason);let N=Ce.get(m)??Le.get(m),z=Ce.delete(m),ne=Le.delete(m),se=z||ne;if(N!=null){let rt=`redskilled released the registration for project ${JSON.stringify(m)}`;pf(m),er.push({project_label:m,registered_at:N.registered_at,at:o(),detail:rt}),er.length>Rs&&er.splice(0,er.length-Rs)}return se&&uo(),{version:1,project_label:m,released:se,reach:j,detail:se?`redskilled released the registration for project ${JSON.stringify(m)}`:`redskilled held no registration for project ${JSON.stringify(m)}, so there was nothing to release`}}function pf(m){Le.delete(m);for(let A=Pt.length-1;A>=0;A-=1)Pt[A].project_label===m&&Pt.splice(A,1);for(let A=er.length-1;A>=0;A-=1)er[A].project_label===m&&er.splice(A,1);re.delete(m)}async function lx(m,A){try{await V(m)}catch{}return Oi(m.worker_id),Ht("worker-death",m,A),pt(),!0}function as(m){return Lh({ceiling:l,workers:[...le.values()],budget:m.budget,projectLabel:m.project_label,...m.reservation==null?{}:{reservation:m.reservation}})}function ff(m){return`${m.workspace_path}\0${m.trunk.remote}\0${m.trunk.branch}`}function jl(m){let A=ff(m),j=Nt.get(A);if(j!=null)return j;let N=i(m).finally(()=>{Nt.get(A)===N&&Nt.delete(A)});return Nt.set(A,N),N}function dx(m,A,j){let N=j instanceof Error?j.message:String(j);return{...m,admitted:!1,verdict:"refused-unreachable-trunk-remote",reason:`refused-unreachable-trunk-remote: redskilled refused this Worker because trunk remote ${JSON.stringify(A.trunk.remote)} could not refresh branch ${JSON.stringify(A.trunk.branch)}: ${N}`}}async function gf(m,A,j,N){let z=N??as(m);if(!z.admitted)throw new Ar(z.reason,z);let ne;try{ne=await(j??jl(A))}catch(rt){let Ye=dx(z,A,rt);throw new Ar(Ye.reason,Ye)}let se=as(m);if(!se.admitted)throw new Ar(se.reason,se);return Di(m,{admission:se,forkSha:ne})}function Di(m,A={}){let j=jh({ceiling:l,workers:[...le.values()],budget:m.budget}),N=s({spec:m,admission:A.admission??as(m),...A.forkSha==null?{}:{forkSha:A.forkSha},memoryCeiling:j,liveWorkerIds:le.keys(),clock:o,onExit:(rt,Ye,po)=>{let he=le.get(rt);if(he==null){pt();return}ox(he,Ye,po).catch(()=>{})}}),z=A.forkSha??N.fork_sha??N.worker.fork_sha,ne=z==null||z===""?N.worker:{...N.worker,fork_sha:z},se={...N,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return le.set(ne.worker_id,ne),Ht("worker-birth",ne,null,{admissionVerdict:A.admission?.verdict??N.admission.verdict}),pt(),se}function Ht(m,A,j,N={}){if(tt)return;let z=o(),ne={kind:m,worker:A,ts:z,detail:j,...N};(m==="worker-death"||m==="worker-budget-kill")&&(Q_({worker_id:A.worker_id,ts:z,outcome:m}),hf(da(ne),{startedAt:A.started_at,...N.refusal==null?{}:{refusal:N.refusal}}),sx(A.project_label,Date.parse(z)-Date.parse(A.started_at))),K.recordWorker(ne).catch(()=>{})}function hf(m,A={}){let j=uh(m,A);if(j==null)return;let N=[j,...(Rt??[]).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));Rt=Ln(N,z=>z.ts,{now:o()})}async function Bl(){let m=Date.parse(o()),A=[...le.values()].filter(N=>{if(ct.has(N.worker_id))return!0;let z=Date.parse(N.started_at);return!Number.isFinite(z)||m-z>=G});if(A.length===0)return[];let{dead:j}=await mu(A,I);for(let N of j)Oi(N.worker_id),Ht("worker-death",N,"the host no longer confirms this Worker");return j.length>0&&pt(),j}async function mf(m,A){let j=le.get(m);if(!j)return!1;try{await V(j)}catch{}return Oi(m),Ht("worker-budget-kill",j,A),pt(),!0}async function bf(){let m=[...le.values()];if(m.length===0)return[];let A;try{A=await de(m)}catch{return[]}let j=A.rss;C=j,w=o(),cx(A.cpu_seconds,w);let{terminations:N}=Tb({workers:m,rss:j}),z=[];for(let ne of N)await mf(ne.worker_id,ne.reason)&&z.push(ne);return z}function cx(m,A){for(let[j,N]of Object.entries(m)){if(typeof N!="number"||!Number.isFinite(N))continue;let z=le.get(j);z&&le.set(j,{...z,cpu:{cpu_seconds:N,sampled_at:A}})}}async function ux(){try{return ie<=0?await ke(r):await new Promise(m=>{let A=setTimeout(()=>m($l()),ie);A.unref(),ke(r).then(j=>{clearTimeout(A),m(j)},()=>{clearTimeout(A),m($l())})})}catch{return $l()}}function $l(){try{return Re(r)}catch{return null}}async function yf(){if(Js(r))return U+=1,M=o(),X="local-build",{act:"hold",reason:"local-build"};let m=a0(await ux()),A=m.version;F=A,je=m.newest??null,M=o(),Be=l0({running:r,newest:je,supervised:we});let j=d0({running:r,published:A,supervised:we});return B=j.act==="replace",U+=1,X=j.act==="hold"?j.reason:null,be!=="in-progress"&&(be=j.act==="replace"?"pending":"none"),j}async function Fi(){let m=await yf();if(m.act!=="replace"||be==="in-progress")return m;let A=u0(m,Se,t,n);return be="in-progress",await K.flush().catch(()=>{}),await H.flush().catch(()=>{}),await Mi({reason:"replaced"}),p0(A,t,{...n==null?{}:{idleMs:n},io:Se}),m}function px(){tt||Sn!=null||J<=0||(!Ae&&Ee>0&&(Ue=setTimeout(()=>{Fi().catch(()=>{})},Ee),Ue.unref()),Sn=setInterval(()=>{Fi().catch(()=>{})},J),Sn.unref())}async function kf(){return await c.renew(d).catch(()=>null)}function fx(){tt||en!=null||Oe<=0||(en=setInterval(()=>{kf()},Oe),en.unref())}function gx(){tt||En!=null||ve<=0||(En=setInterval(()=>{Gr(o())},ve),En.unref())}function hx(){tt||Wt!=null||me<=0||(Wt=setInterval(()=>{bf().catch(()=>{})},me),Wt.unref())}function mx(){tt||Tn!=null||ce==null||ce.projects.length===0||oe<=0||(Ll().catch(()=>{}),Tn=setInterval(()=>{Ll().catch(()=>{})},oe),Tn.unref())}function bx(){if(tt||$r!=null||Xr<=0)return;let m=A=>{$r=setTimeout(()=>{$r=void 0,wf().then(()=>of()).catch(()=>{}).finally(()=>{if(tt)return;let j=Date.parse(o());m(Ly(Ve,Xr,Number.isFinite(j)?j:Date.now()))})},A),$r.unref()};m(Xr)}async function wf(){await Promise.allSettled([...Ce.values()].filter(m=>m.trunk!=null).map(async m=>{let A=await jl({workspace_path:m.workspace_path,trunk:m.trunk}),j=[...le.values()].filter(N=>N.project_label===m.project_label&&N.fork_sha!=null&&N.fork_sha!=="");await Promise.allSettled(j.map(async N=>{let z=await a({workspace_path:m.workspace_path,fork_sha:N.fork_sha,head_sha:A}),ne=le.get(N.worker_id);if(ne==null||ne.fork_sha!==N.fork_sha)return;let se={...ne,base_head_sha:A,base_commits_ahead:z};le.set(N.worker_id,se),(ne.base_head_sha!==A||ne.base_commits_ahead!==z)&&Ht("worker-drift",se,null,{baseHeadSha:A,baseCommitsAhead:z})}))}))}function yx(){tt||vn!=null||Zr<=0||(vn=setInterval(()=>{sf().catch(()=>{})},Zr),vn.unref())}function pt(){tt||(At&&clearTimeout(At),At=setTimeout(()=>{Bl().catch(()=>{}).then(()=>Rf())},n),At.unref())}function Rf(){return le.size>0?(pt(),"held-by-workers"):(Gr(o()),Ce.size>0?(pt(),"held-by-registrations"):(kx(),"exited"))}async function kx(){if(!Js(r)){if((await Fi().catch(()=>null))?.act==="replace"||co||tt)return;if(le.size>0||Ce.size>0){pt();return}}await Mi({reason:"idle"})}function Ii(m){return Yh({reason:m,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...le.values()],projects:[...Ce.keys()]})}function _f(m){if($e!=null)return $e;let A=m.reason??"requested",j=m.note?.trim();return $e=K.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:A,detail:j==null||j===""?Ii(A).detail:`${Ii(A).detail} \u2014 ${j}`,...m.signal==null?{}:{signal:m.signal}}).catch(()=>{}),$e}async function Mi(m={}){if(co)return await Nr;co=!0,await _f(m),tt=!0,At&&clearTimeout(At),Wt&&clearInterval(Wt),en&&clearInterval(en),En&&clearInterval(En),Sn&&clearInterval(Sn),Ue&&clearTimeout(Ue),Tn&&clearInterval(Tn),tn&&clearTimeout(tn),$r&&clearTimeout($r),vn&&clearInterval(vn),await K.flush().catch(()=>{}),await H.flush().catch(()=>{}),await c.release(d),await g.release(u),L.close();for(let A of Q)A.destroy();return await new Promise(A=>L.once("close",()=>A())),await yF(t.socketPath,{force:!0}),Pn(),await Nr}let Li=await K.read().catch(()=>[]),ji=new Map;for(let m of Li){if(m.event==="worker-birth"){ji.set(m.worker_id,m.ts);continue}let A=Ud(m.detail);hf(m,{...ji.get(m.worker_id)==null?{}:{startedAt:ji.get(m.worker_id)},...A==null?{}:{refusal:A}}),(m.event==="worker-death"||m.event==="worker-budget-kill")&&ji.delete(m.worker_id)}ut=Ln(Li.filter(m=>m.event==="worker-death"||m.event==="worker-budget-kill").map(m=>({worker_id:m.worker_id,ts:m.ts,outcome:m.event})),m=>m.ts,{now:o()}),lt=Sh(Li,o());let wx=Wh(Li),Nl=await mu(wx,I);for(let m of Nl.alive){let A=Ty(m),j=A.unit==null||Qe(A.pid)?null:fe(A.unit);le.set(A.worker_id,j!=null&&j>0?{...A,pid:j}:A),ct.add(A.worker_id)}for(let m of Nl.dead)Ht("worker-death",m,"the Worker ended while no daemon was watching");let Rx=Sy({units:await Promise.resolve(ge()).catch(()=>[]),held:[...le.values()],mainPid:fe,now:W});for(let m of Rx)le.set(m.worker_id,m),ct.add(m.worker_id),Ht("worker-birth",m,"adopted from an active unit with no birth on this lane");rf(o());for(let m of Nl.alive){if(m.log_path==null||et.has(m.worker_id))continue;let A=await te(m.log_path).catch(()=>null);A==null||A.trim()===""||et.set(m.worker_id,{line:A,published_at:o(),source:"rehydrated"})}L.on("connection",m=>{Q.add(m),m.once("close",()=>Q.delete(m)),pt(),hh(m,async(A,j)=>{pt();let N=await _x(A);j(N),A.op==="shutdown"&&setImmediate(()=>void Mi({reason:"requested"}).catch(()=>{}))})});async function _x(m){try{if(m.op==="ping")return{id:m.id,ok:!0,value:{pong:!0,protocol_version:Ma,daemon_version:r,pid:d.pid}};if(m.op==="host-state")return{id:m.id,ok:!0,value:Ai()};if(m.op==="statusline-payload")return{id:m.id,ok:!0,value:Gb(Ci(),m.extras)};if(m.op==="statusline-string")return{id:m.id,ok:!0,value:tx(m.render)};if(m.op==="statusline-dashboard")return{id:m.id,ok:!0,value:rx(m.dashboard)};if(m.op==="worker-heartbeat")return{id:m.id,ok:!0,value:af(m.heartbeat)};if(m.op==="project-register"){let j=df(m.registration,m.session_project);return await H.flush(),{id:m.id,ok:!0,value:j}}if(m.op==="project-renew"){let j=cf(m.project_label,{...m.session_project==null?{}:{sessionProject:m.session_project},...m.renew_within_ms==null?{}:{renewWithinMs:m.renew_within_ms},...m.launch==null?{}:{launch:m.launch}});return await H.flush(),{id:m.id,ok:!0,value:j}}if(m.op==="project-deregister"){let j=uf(m.project_label,m.session_project);return await H.flush(),{id:m.id,ok:!0,value:j}}if(m.op==="project-reset")return{id:m.id,ok:!0,value:lf(m.project_label,m.session_project)};if(m.op==="worker-command")return{id:m.id,ok:!0,value:await nx(m.command)};if(m.op==="worker-start"){let j=An("worker-start",m.session_project,m.spec.project_label);if(!j.permitted)return{id:m.id,ok:!1,error:j.reason};let N=m.spec.trunk==null?Di(m.spec):await gf(m.spec,{workspace_path:m.spec.workspace_path,trunk:m.spec.trunk});return await K.flush().catch(()=>{}),{id:m.id,ok:!0,value:{worker:N.worker,admission:N.admission,fork_sha:N.fork_sha,warnings:N.warnings}}}if(m.op==="shutdown"){let j=Ii("requested");return await _f({reason:"requested",...m.detail==null?{}:{note:m.detail}}),{id:m.id,ok:!0,value:j}}let A=m;return{id:A.id??v0(),ok:!1,error:`unsupported redskilled op: ${A.op??"unknown"}`}}catch(A){return{id:m.id??v0(),ok:!1,error:A instanceof Error?A.message:String(A)}}}return pt(),hx(),fx(),gx(),px(),mx(),X_(),bx(),yx(),{socketPath:t.socketPath,lease:D.lease,startedAt:W,closed:Nr,startWorker:Di,admit:as,ceiling:()=>l,killWorkerOverBudget:mf,sampleMemoryBudgets:bf,renewLease:kf,pollRepositoryActivity:Ll,pollGithubBalance:nf,githubBalance:()=>yr,pollQueueDiscovery:of,queueDiscovery:()=>Ve,driveDemand:sf,demand:()=>kr,sweepWorkerLiveness:Bl,publishWorkerHeartbeat:af,reattached:()=>[...ct].map(m=>le.get(m)).filter(m=>m!=null),flushEvents:()=>K.flush(),trackWorker(m){le.set(m.worker_id,m),Ht("worker-birth",m,null),pt()},releaseWorker(m){let A=le.get(m),j=le.delete(m);return ct.delete(m),et.delete(m),wt.delete(m),A&&Ht("worker-death",A,"released by the daemon"),pt(),j},workerCount:()=>le.size,registerProject:df,renewProject:cf,resetProjectBirthBreaker:lf,deregisterProject:uf,registrations:()=>Ai().registrations??[],hostState:Ai,refreshRegisteredTrunks:wf,statuslinePayload:Ci,evaluateIdle:Rf,observePublishedVersion:yf,checkForReplacement:Fi,stopReport:Ii,stop:Mi}}function Au(e){let t=e.socketPath,r=wF(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 ${T0(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 \`${mn("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 \`${mn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Cu(e){return`${e.reason} ${e.repair}`}function wF(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:RF(t.acquired_at,e.now??new Date().toISOString())}}function RF(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 T0(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 _F}from"node:child_process";import{existsSync as xF}from"node:fs";import{basename as P0,dirname as EF,join as A0}from"node:path";async function Ys(e){let r=await vs(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==ca().uid||!Qe(r.pid))return{paths:e,joined:!1};let n=EF(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:A0(n,P0(e.lockPath)),leasePath:A0(n,P0(e.leasePath))}}}async function C0(e){let r=await vs(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Qe(r.pid)))throw new qr(e.machineClaimPath,"held",r)}async function O0(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[Zd]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==Eo({env:n,machineIdHash:e.machineIdHash}))||!(o??xF(jo(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=_F("systemctl",["--user","start",Yt],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${Yt}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await vF(e,t,r),!0}async function vF(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await Ys(e);if(await Vt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${Yt} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}Ur();var Du=1e4,Hn=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"?`. ${Cu(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},Ou=class extends Hn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},Ha=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function Ua(e,t={}){let r=t.answers??await Vt(e.socketPath),n=await Bo(e.leasePath).catch(()=>{});return Au({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Qe(n.pid)})}async function Fu(e,t={}){let r=await Ys(e);try{let n=await AF(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof qr||n instanceof Hn)throw n;let o=await Ua(r.paths).catch(()=>{});throw new Hn(r.paths.socketPath,n,o)}}async function AF(e,t){if(await TF(PF(e.socketPath),{recursive:!0,mode:448}),await Vt(e.socketPath))return"already-running";await C0(e);let r=await OF(e,t);if(r!=null)return r;if(await O0(e,t,Du))return"joined";let n=await Vg(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??CF});if(!n.acquired)return await D0(e,t,void 0,n),"joined";try{if(await Vt(e.socketPath))return"already-running";let o=await FF(e,t);return await D0(e,t,o),"spawned"}finally{await zg(n)}}function CF(e){process.stderr.write(`redskilled: reaped the spawn lock ${JSON.stringify(e.lockPath)} (${e.reason}, ${Math.round(e.ageMs/1e3)}s old, holder ${e.holder==null?"unnamed":`pid ${e.holder.pid}`}) and went on to spawn
|
|
103
|
+
`)}async function OF(e,t){let r=await Ua(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??Du,o=Date.now()+n;for(;;){if(await Vt(e.socketPath))return"joined";if(Date.now()>=o)break;await new Promise(i=>setTimeout(i,25))}let s=await Ua(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new Ou(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 I0(e,t,r={}){await Fu(e,r);let n=(await Ys(e)).paths,o;try{o=await Us({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:F0()})}catch(s){throw new Hn(n.socketPath,s,await Ua(n).catch(()=>{}))}if(!o.ok)throw new Ha(o.error);return o.value}async function M0(e,t={},r={}){let n=(await Ys(e)).paths;if(!await Vt(n.socketPath))return Qh(n.socketPath);let o;try{o=await Us({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:F0(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new Hn(n.socketPath,a)}if(!o.ok)throw new Ha(o.error);if(!Qd(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await DF(n,s.pid,t.settleTimeoutMs??5e3);return i.complete?s:{...s,stopped:!1,detail:`${s.detail}; the daemon accepted the stop but did not finish its bounded drain by ${i.deadline}: ${i.pending.join(", ")}`}}async function DF(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await Vt(e.socketPath)&&o.push(`the socket ${JSON.stringify(e.socketPath)} still answers`),await Bo(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&Qe(t)&&o.push(`daemon pid ${t} is still alive`),o.length===0)return{complete:!0,deadline:new Date(n).toISOString(),pending:o};if(Date.now()>=n)return{complete:!1,deadline:new Date(n).toISOString(),pending:o};await new Promise(s=>setTimeout(s,25))}}async function L0(e,t={}){let r=await I0(e,{op:"host-state"},t);if(!ry(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function j0(e,t={},r){let n=await I0(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!qc(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function B0(e,t=Ne,r={}){let n=await j0(e,r,{vitals:!0,logs:t.verbose,display:!0});return Gn(n,t)}async function $0(e,t={},r={}){let n=await j0(e,r,{vitals:!0,logs:!0,display:!0});return Io(n,{...jt,...t})}async function D0(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??Du);for(;;){if(await Vt(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 ${Jg(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 FF(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await sh({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...on(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=SF(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}Ur();import{readFile as IF}from"node:fs/promises";import{homedir as MF,totalmem as LF}from"node:os";import{join as jF}from"node:path";var BF="REDSKILLED_IDLE_MS",$F=".red/config.yaml";async function G0(e=MF()){let t=jF(e,$F),r;try{r=await IF(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(Iu(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${N0(n)}`),{})}try{let n=GF(r);return{...qa(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...qa(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...qa(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...qa(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return Iu(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${N0(n)}`),{}}}function W0(e={}){let t=e.env??process.env,r=e.config??{},n=la(t,e.totalMemoryBytes??LF(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=NF(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[BF],r.idleMs);if(o==null)return{ceiling:n,idleMs:_o,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(Iu(`redskilled: ${UF(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${_o}ms instead.`),{ceiling:n,idleMs:_o,idleMsSource:"derived-default"})}function NF(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 qa(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function GF(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=WF(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(".")]=HF(c.trim())}return t}function WF(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 HF(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function UF(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function N0(e){return e instanceof Error?e.message:String(e)}function Iu(e){process.stderr.write(`${e}
|
|
104
|
+
`)}import{chmod as Y0,mkdir as X0,readFile as Z0,stat as s1,writeFile as ek}from"node:fs/promises";import{homedir as ju}from"node:os";import{dirname as tk,join as Ka}from"node:path";import{join as JF}from"node:path";import{existsSync as qF,readFileSync as Z4}from"node:fs";import{dirname as KF,join as VF}from"node:path";function H0(e,t){let r=e;for(let n=0;n<16;n++){let o=VF(r,t);if(qF(o))return o;let s=KF(r);if(s===r)break;r=s}return null}function zF(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function $o(e,t){let r=[];for(let n of e.split(`
|
|
105
|
+
`)){let o=n.replace(/\r$/,""),s=o.trim();if(!s||s.startsWith("#"))continue;let i=o.indexOf(":");if(i<0)continue;let a=o.length-o.trimStart().length,l=o.slice(0,i).trim();if(!l)continue;let d=o.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:l}),d&&r.map(u=>u.key).join(".")===t)return zF(d)}}var U0=["local","tmp","host"],YF="local",Qs="plugins.dev.workspace.target";var Mu=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function K0(e){let t=$o(e,Qs),r=ZF(t??"").trim();return r===""?void 0:r}function V0(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:YF};let r=U0.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 Mu(`${Qs}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${U0.join(", ")}) or an absolute parent directory for Workers.`)}function z0(e,t){return e.kind==="preset"?e.preset==="host":XF(QF(e.parentDir,t),or(t))}function QF(e,t){return e==="~"?q0(t):e.startsWith("~/")?JF(t,e.slice(2)):q0(e)}function XF(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function q0(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function ZF(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}Ur();import{createHash as e1}from"node:crypto";import{hostname as t1}from"node:os";import{join as Xs}from"node:path";var No="redskilled.sock",r1="REDSKILLED_SESSION";function n1(e={}){let t=e.env??process.env,r=t[r1]?.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 o1(e={}){return J0(e.host??t1())}function dr(e={}){let t=n1(e),r=e.runtimeDir??ta({key:`redskilled:${t}`,socketFileName:No,env:e.env,uid:e.uid}),n=o1(e),o=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:J0(t),machineIdHash:n,runtimeDir:r,socketPath:Xs(r,No),lockPath:Xs(r,"redskilled.spawn.lock"),leasePath:Xs(r,"redskilled.lease.toon"),eventLanePath:Xs(or(o),Nh),registrationIntentPath:Xs(or(o),"redskilled.registrations.toon"),machineClaimPath:e.machineClaimPath??Eo({env:e.env,machineIdHash:n,platform:e.platform})}}function J0(e){return e1("sha256").update(e).digest("hex").slice(0,12)}var Lu=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${mn("red-skills-redskilled",["provision"])}\` directly`,i1=`# Host-scoped redskilled policy. This file is never read from a repository.
|
|
105
106
|
plugins:
|
|
106
107
|
dev:
|
|
107
108
|
redskilled:
|
|
@@ -109,15 +110,15 @@ plugins:
|
|
|
109
110
|
# memory_ceiling: 8G
|
|
110
111
|
# validation_ceiling: 2
|
|
111
112
|
# idle_ms: 300000
|
|
112
|
-
`;async function
|
|
113
|
-
`)}async function
|
|
114
|
-
`||e[r]===" ")&&(t+=e[r]),r++}return t}function
|
|
115
|
-
`||e[r]===" ")&&(t+=e[r]),r++}return t}function
|
|
113
|
+
`;async function rk(e=ju()){let t=or(e),r=Ka(tk(t),"config.yaml"),n=await $u(t),o=!1,s=!1;n===void 0?(await X0(t,{recursive:!0,mode:Hr}),await Y0(t,Hr),o=!0):n!==Hr&&(await Y0(t,Hr),s=!0);let i=!1;try{await ek(r,i1,{encoding:"utf8",flag:"wx",mode:384}),i=!0}catch(a){if(a.code!=="EEXIST")throw a}return{path:t,created:o,tightened:s,mode:Hr,configPath:r,configCreated:i}}var nk={needed:!1,declaredBy:`no ${Qs} in view`};async function Bu(e={}){let t=e.homeDir??ju(),r=e.declaredTarget?.trim();if(r)return Q0(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return nk;let o=Ka(n,".red","config.yaml"),s=await Z0(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=K0(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:Q0(i,t,o)}function Q0(e,t,r){let n=`${Qs}: ${e} (${r})`;try{return{needed:z0(V0(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function ok(e){let t=[a1(e),l1(e),d1(e),c1(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 a1(e){let t=e.homeNeed??nk;if(!e.homePresent)return t.needed?{check:"home",verdict:"missing",evidence:`${e.homePath} does not exist, and it is needed \u2014 ${t.declaredBy}`,fix:Lu}:{check:"home",verdict:"ok",evidence:`${e.homePath} is absent and unneeded \u2014 ${t.declaredBy}; the daemon never reads it`,fix:""};let r=e.homeMode??Hr;return r!==Hr?{check:"home",verdict:"degraded",evidence:`${e.homePath} is mode ${r.toString(8)}, not owner-only ${Hr.toString(8)}`,fix:`${Lu} \u2014 it narrows the home back to owner-only`}:{check:"home",verdict:"ok",evidence:`${e.homePath} (mode ${r.toString(8)})`,fix:""}}function l1(e){return vr(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 \`${mn("red-skills-redskilled",["provision"])}\``}}function d1(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:`${Lu} \u2014 it starts the daemon and waits for the socket`}}function c1(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 sk(e={}){let t=e.env??process.env,r=e.homeDir??ju(),n=e.paths??dr({env:t}),o=or(r),[s,i,a]=await Promise.all([$u(o),Vt(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):Bu({homeDir:r,projectRoot:e.projectRoot,declaredTarget:e.declaredTarget})]);return{homePath:o,homePresent:s!==void 0,homeMode:s,homeNeed:a,entry:sn(e.entryOverride??{},{env:t,...e.entryLookup}),socketPath:n.socketPath,reachable:i,supervisorUnit:await p1(f1(e,t,r),t)}}var u1="redskilled.service";function ik(e){return Ka(e,"systemd","user",u1)}function ak(e){let t=e.socketPath?` --socket ${e.socketPath}`:"";return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)","StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${e.command} serve${t}`,"Restart=always","RestartSec=2","","[Install]","WantedBy=default.target",""].join(`
|
|
114
|
+
`)}async function lk(e){let t=ik(e.configHome);return await $u(t)!==void 0?{path:t,status:"already-present"}:(await X0(tk(t),{recursive:!0}),await ek(t,e.unit,"utf8"),{path:t,status:"installed"})}async function p1(e,t){if(process.platform!=="linux")return"unsupported";try{return await Z0(ik(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function f1(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??Ka(r,".config")}async function $u(e){try{return(await s1(e)).mode&511}catch{return}}import{readdir as ck,rm as g1,stat as h1}from"node:fs/promises";import{dirname as m1,join as Nu}from"node:path";var b1=5*6e4,y1="redskilled.";function k1(e={}){let t=e.env??process.env,r=i=>m1(ta({key:"redskilled:reclaim-probe",socketFileName:No,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 uk(e={}){let t=e.roots??k1(e),r=e.graceMs??b1,n=e.now??Date.now,o=e.isPidAlive??Qe,s=e.answers??x1,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await ck(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await w1(Nu(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 w1(e,t){let r;try{r=(await ck(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:pk(i),removed:[]}}let n=r.filter(i=>i.startsWith(y1));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await R1(Nu(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 dk(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(No)&&await t.answers(Nu(e,No)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await _1(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 dk(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function dk(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await g1(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:pk(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function R1(e){try{return await Bo(e)}catch{return}}async function _1(e,t){try{return Math.max(0,t()-(await h1(e)).mtimeMs)}catch{return}}async function x1(e){try{return(await Us({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function pk(e){return e instanceof Error?e.message:String(e)}var E1="plugins.dev.statusline",v1="dev.statusline";function S1(e){let t=[],r=a=>{for(let l of[E1,v1]){let d=`${l}.${a}`,c=$o(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 T1={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 Va(e){let{values:t,positionals:r}=nn(e,T1),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 za(e={}){let t=e.configText==null?{config:{},warnings:[]}:S1(e.configText),r=e.flags??{};return{options:{...Ne,mode:r.mode??t.config.mode??Ne.mode,project:r.project!==void 0?r.project:e.project??Ne.project,maxWorkers:r.maxWorkers??t.config.maxWorkers??Ne.maxWorkers,maxProjects:r.maxProjects??t.config.maxProjects??Ne.maxProjects,maxWidth:r.maxWidth??t.config.maxWidth??Ne.maxWidth,verbose:r.verbose??t.config.verbose??Ne.verbose},warnings:t.warnings}}var Ja,Ya=new Map,P1=256;function mk(){if(Ja!==void 0)return Ja;let e=Intl.Segmenter;return Ja=e?new e(void 0,{granularity:"grapheme"}):null,Ja}function Gu(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 fk(e){let t=Ya.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return Ya.size>=P1&&Ya.clear(),Ya.set(e,r),r}function gk(e){return e>=127462&&e<=127487}function hk(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function A1(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function C1(e,t,r){if(fk(t)||A1(t)||hk(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(Gu(n)||fk(n)||hk(n)||gk(t)&&gk(n)||t===13&&n===10)}function O1(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&&!Gu(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function bk(e){let t=mk();if(!t)return O1(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 Wu(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(C1(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=mk();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&&!Gu(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var Go="\x1B",D1="\x07",B3=`${Go}\\`;function F1(e){return e>=64&&e<=126}function I1(e,t){for(let r=t;r<e.length;r++){if(e[r]===D1)return r+1;if(e[r]===Go&&e[r+1]==="\\")return r+2}return e.length}function Un(e,t){if(e[t]!==Go)return null;let r=e[t+1];if(r===void 0)return{end:t+1,value:Go,kind:"control"};if(r==="["){let n=t+2;for(;n<e.length&&!F1(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=I1(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 yk(e){return e<=31||e>=127&&e<=159}function Wo(e){let t="",r=0;for(;r<e.length;){if(e[r]===Go){let o=Un(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!yk(n)||e[r]===`
|
|
115
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function Hu(e){let t="",r=0;for(;r<e.length;){if(e[r]===Go){let o=Un(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!yk(n)||e[r]===`
|
|
116
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function kk(e){return Hu(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var Rk="\x1B",wk=/^[\x20-\x7e]*$/,Qa=new Map,M1=256;function L1(e){return Hu(e)}function xe(e){if(wk.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return _k(t);let r=L1(e);if(wk.test(r))return r.length;let n=0;for(let{segment:o}of bk(r))n+=j1(o);return n}function qn(e,t){if(t<0||t>=e.length)return null;if(e.charCodeAt(t)<=127)return{symbol:e[t],nextIndex:t+1};let n=Wu(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function j1(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?_k(t[0]):t.every(o=>o<=31||o>=127&&o<=159||xk(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(Ek)?2:1}function _k(e){let t=Qa.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||xk(e)?r=0:r=Ek(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,Qa.size>=M1&&Qa.clear(),Qa.set(e,r),r}function xk(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 Ek(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||B1(e)}function B1(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 ei(e,t,r){if(t<=0)return e.split(`
|
|
116
117
|
`);let n=[];for(let o of e.split(`
|
|
117
|
-
`)){if(r==="truncate"||r==="truncate-end"){n.push(zs(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(zs(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(zs(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...EF(o,t))}return n}function EF(e,t){if(xe(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(xe(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),xe(o)<=t){n=o;continue}let i=vF(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function vF(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===ck){let l=Un(e,s);if(l){n+=l.value,s=l.end;continue}}let i=qn(e,s);if(!i)break;let a=xe(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 zs(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(xe(e)<=t)return e;if(t<xe(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=xe(l);return n==="start"?SF(e,t,l,d,i):n==="middle"?PF(e,t,l,d,i):TF(e,t,l,d,i)}function SF(e,t,r,n,o){let s=t-n,i=No(e,xe(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function TF(e,t,r,n,o){let s=t-n,i=No(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 PF(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=No(e,0,i),d=No(e,xe(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 No(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]===ck){let f=Un(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=Bu(e,l);if(!c){l++;continue}let u=xe(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 Ys(e,t){let r=e;for(let n=0;n<t.length;n++)r=dt(r,t.charCodeAt(n));return r}function Gu(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 Ys(dt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return Ys(dt(e,105),t.toString());case"string":return Ys(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=Gu(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=Ys(dt(n,107),i),n=dt(n,58),n=Gu(n,a,r),n=dt(n,59)))}return dt(n,125)}default:return Ys(dt(e,63),String(t))}}function Dt(e,t={}){return Gu(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as AF}from"node:async_hooks";var Ar=Symbol("tuiuiu.runtime-resource-dispose"),gk=new AF,Va=new Set,CF=1,Wo={id:0,resources:new Map};function hk(){let e={id:CF++,resources:new Map};return Va.add(e),e}function OF(e){Va.delete(e)}function mk(e){if(e!==null&&typeof e=="object"&&Ar in e)try{e[Ar]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function DF(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)mk(r)}function Ho(e){OF(e),DF(e)}function qe(e,t){return gk.run(e,t)}function Vr(e,t){return(...r)=>qe(e,()=>t(...r))}function Nu(){return gk.getStore()??null}function Ne(e){if(e)return e;let t=Nu();return t||(Va.size===1?Va.values().next().value??Wo:Wo)}function Cr(){return Wo}function De(e,t,r){let n=Ne(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function Ft(e,t){return Wo.resources.has(e)||Wo.resources.set(e,t()),Wo.resources.get(e)}function za(e,t){let r=Ne(t),n=r.resources.get(e);r.resources.delete(e),mk(n)}var Pe;(function(e){e[e.NONE=0]="NONE",e[e.CONTENT=1]="CONTENT",e[e.LAYOUT=2]="LAYOUT",e[e.STYLE=4]="STYLE",e[e.CHILDREN=8]="CHILDREN",e[e.FORCE_FULL=16]="FORCE_FULL"})(Pe||(Pe={}));function Wu(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function FF(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 Hu=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=Wu();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Pe.NONE,subtreeFlags:Pe.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=Wu()}registerNode(t,r){this.parents.set(t,r),this.getState(t)}bubbleDirtyFlags(t,r){let n=this.parents.get(t)??null,o=r,s=!1;for(;n;){s=!0;let i=this.getState(n);if(i.childrenDirty=!0,i.subtreeFlags|=o,o&Pe.LAYOUT&&FF(n)){this.diagnostics.absorbedLayoutDirtyCount++;break}n=this.parents.get(n)??null}!s&&this.rootNode&&t!==this.rootNode&&(this.diagnostics.invalidationEscalationCount++,this.forceFullFrame=!0)}markDirty(t,r=Pe.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Pe.FORCE_FULL&&(this.forceFullFrame=!0,this.diagnostics.forceFullCount++),this.bubbleDirtyFlags(t,r)}markClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags=Pe.NONE,r.subtreeFlags=Pe.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL),r.subtreeFlags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL)}markChildrenDirty(t,r=Pe.CHILDREN){let n=this.getState(t);n.childrenDirty=!0,n.subtreeFlags|=r,this.isDirty=!0}isDirtyNode(t){let r=this.states.get(t);return r?r.dirty:!0}needsRender(t){let r=this.states.get(t);return r?r.dirty||r.childrenDirty||r.flags!==Pe.NONE||r.subtreeFlags!==Pe.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Pe.NONE&&r.subtreeFlags===Pe.NONE:!0}hasChanges(){return this.isDirty||this.forceFullFrame}clearGlobalDirty(){this.isDirty=!1,this.forceFullFrame=!1}getGlobalVersion(){return this.globalVersion}getDiagnostics(){return{...this.diagnostics}}noteReuse(t){if(t==="layout"){this.diagnostics.layoutReuseCount++;return}this.diagnostics.drawReuseCount++}noteFresh(t){if(t==="layout"){this.diagnostics.layoutFreshCount++;return}this.diagnostics.drawFreshCount++}getCachedRender(t,r){let o=`${this.hashNode(t)}:${r}`,s=this.renderCache.get(o);if(s)return s.lastAccess=Date.now(),s}setCachedRender(t,r,n,o){let s=this.hashNode(t),i=`${s}:${r}`;this.renderCache.size>=this.maxCacheSize&&this.evictOldest(),this.renderCache.set(i,{output:n,width:r,height:o,hash:s,lastAccess:Date.now()})}hashNode(t){return Dt({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=Wu()}},IF=Symbol("tuiuiu.dirty-registry");function Or(e){return De(IF,()=>new Hu,e)}function bk(e){Or().beginFrame(e)}function yk(e,t){Or().registerNode(e,t)}function mn(e,t=Pe.CONTENT){Or().markDirty(e,t)}function kk(e){Or().markLayoutClean(e)}function Qs(e){Or().noteReuse(e)}function Kn(e){Or().noteFresh(e)}function Ja(e){return Or().canReuseSubtree(e)}function wk(){return Or().getDiagnostics()}function Xs(){Or().clearGlobalDirty()}function Uo(e){Or().markClean(e.node);for(let r of e.children)Uo(r)}var Rk=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 Ya(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 St=e=>e==="auto"?0:yt(e,"margin"),MF=new Set(["layoutRef","__scrollQuery"]),LF=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"]),jF=new Set(["children","wrap"]);function BF(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function qo(e){let t=e.props??{},r=e.type==="text"?jF:LF,n={};for(let o of r)o in t&&(n[o]=t[o]);return Dt(n,{ignoreKeys:MF})}function $F(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 GF(e,t){if(!Ja(e)){Kn("layout");return}let r=Rk.get(e);if(!r){Kn("layout");return}if(r.ctxKey!==t){mn(e,Pe.LAYOUT),Kn("layout");return}let n=qo(e);if(r.propsKey!==n||!$F(e,r.childRefs)){mn(e,r.propsKey!==n?Pe.LAYOUT:Pe.CHILDREN),Kn("layout");return}return Qs("layout"),r.layout}function Zs(e,t,r,n){Rk.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),kk(e)}function ht(e,t){let r=t.x??e.x,n=t.y??e.y,o=t.width??e.width,s=t.height??e.height;return r===e.x&&n===e.y&&o===e.width&&s===e.height?e:{x:r,y:n,width:o,height:s,node:e.node,children:e.children}}function _k(e,t,r){if(t<=e.height)return ht(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return ht(e,{height:t});let o=t-e.height,s=r.justifyContent??"flex-start",i=e.children;if(s==="center"||s==="flex-end"){let a=s==="center"?Math.floor(o/2):o;i=i.map(l=>ht(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>ht(a,{y:a.y+Math.floor(o*l/(i.length-1))}));else if(s==="space-around"){let a=o/(i.length*2);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(2*d+1))}))}else if(s==="space-evenly"){let a=o/(i.length+1);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function It(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function xk(e,t=0,r=0){let n=t+e.x,o=r+e.y;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)xk(u,d,c)}function Ek(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)),bk(e);let n=Dr(e,{x:0,y:0,width:t,height:r},null);return xk(n),n}function NF(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=Js(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>xe(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 WF(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 HF(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 Dr(e,t,r){yk(e,r);let n=BF(t),o=GF(e,n);if(o)return It(e,o),o;let s;if(e.type==="text")return s=NF(e,t),Zs(e,n,qo(e),s),s;if(e.type==="spacer")return s=WF(e,t),Zs(e,n,qo(e),s),s;if(e.type==="newline")return s=HF(e,t),Zs(e,n,qo(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),Zs(e,n,qo(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=St(i.marginTop??i.marginY??i.margin),p=St(i.marginBottom??i.marginY??i.margin),g=St(i.marginLeft??i.marginX??i.margin),f=St(i.marginRight??i.marginX??i.margin),k=i.borderStyle&&i.borderStyle!=="none"?1:0,b=ei(i.width,t.width),v=ei(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",$=i.height!==void 0&&i.height!=="auto",D=Math.max(0,(T?b:t.width)-d-c-k*2),L=Math.max(0,($?v:t.height)-a-l-k*2),W=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:L,K=[],H=i.flexDirection??"column",I=H==="row"||H==="row-reverse",N=H==="row-reverse"||H==="column-reverse",V=yt(I?i.columnGap??i.gap:i.rowGap??i.gap,"gap"),ge=[],fe=[];if(e.children.length>0){for(let oe of e.children)oe.props.position==="absolute"?ge.push(oe):fe.push(oe);let ce=N?[...fe].reverse():fe;I?K.push(...vk(ce,D,W,V,i,$,e)):K.push(...qF(ce,D,W,V,i,e))}let de=0,te=0;if(I)for(let ce of K){let oe=ce.node.props,_e=St(oe.marginRight??oe.marginX??oe.margin),Fe=St(oe.marginBottom??oe.marginY??oe.margin);de=Math.max(de,ce.x+ce.width+_e),te=Math.max(te,ce.y+ce.height+Fe)}else for(let ce of K){let oe=ce.node.props,_e=St(oe.marginBottom??oe.marginY??oe.margin);de=Math.max(de,ce.width),te=Math.max(te,ce.y+ce.height+_e)}let Oe=Ya(i.flexGrow,"flexGrow")>0||i.width==="fill",ve=de+d+c+k*2,ke=T?b:Oe?t.width:ve,J=$?v:te+a+l+k*2,ie=yt(i.minWidth,"minWidth"),Re=yt(i.minHeight,"minHeight");if(ke=Math.max(ke,ie),J=Math.max(J,Re),i.maxWidth!==void 0&&(ke=Math.min(ke,yt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(J=Math.min(J,yt(i.maxHeight,"maxHeight"))),I&&i.alignItems==="stretch"){let ce=Math.max(0,J-a-l-k*2);for(let oe=0;oe<K.length;oe++){let _e=K[oe],Fe=_e.node.props;Fe.height===void 0&&(K[oe]=_k(_e,Math.max(_e.height,ce),Fe),It(_e.node,K[oe]))}}let Ae=t.x+g,Ee=t.y+u,we=Math.max(0,Math.min(ke,Math.max(0,t.width-g-f))),Se=Math.max(0,Math.min(J,Math.max(0,t.height-u-p)));for(let ce of ge){let oe=ce.props,_e=Dr(ce,{x:0,y:0,width:D,height:W},e),Fe=Ae+d+k,it=Ee+a+k;oe.left!==void 0?Fe=Ae+d+k+oe.left:oe.right!==void 0&&(Fe=Ae+we-c-k-_e.width-oe.right),oe.top!==void 0?it=Ee+a+k+oe.top:oe.bottom!==void 0&&(it=Ee+Se-l-k-_e.height-oe.bottom);let $t=ht(_e,{x:Fe,y:it});It(ce,$t),K.push($t)}return s={x:Ae,y:Ee,width:we,height:Se,node:e,children:K},It(e,s),Zs(e,n,qo(e),s),s}function vk(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return UF(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let H of e){let I=H.props,N=I.flexGrow;N===void 0?N=I.width==="fill"||H.type==="spacer"?1:0:N=Ya(N,"flexGrow");let V=yt(I.minWidth,"minWidth"),ge=I.flexBasis==="content"?Dr(H,{x:0,y:0,width:t,height:r},i).width:I.flexBasis===void 0||I.flexBasis==="auto"?V:ei(I.flexBasis,t),fe=I.flexShrink===void 0?1:Ya(I.flexShrink,"flexShrink"),de=St(I.marginLeft??I.marginX??I.margin),te=St(I.marginRight??I.marginX??I.margin);if(N>0)c+=N,d+=ge+de+te,u.push({node:H,flex:N,minWidth:V,basis:ge,shrink:fe,marginLeft:de,marginRight:te});else{let Oe=I.width!==void 0&&I.width!=="auto"&&I.width!=="fill"?ei(I.width,t)+de+te:t,ve=Dr(H,{x:0,y:0,width:Oe,height:r},i);d+=ve.width+de+te,u.push({node:H,flex:0,minWidth:V,basis:ve.width,shrink:fe,marginLeft:de,marginRight:te,layout:ve,measuredCtxWidth:Oe})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let H=u.map(()=>0),I=Math.ceil(p);for(;I>0;){let N=u.map((te,me)=>{let Oe=Math.max(0,Math.floor(te.basis-te.minWidth)),ve=Math.max(0,Oe-H[me]);return{index:me,capacity:ve,maxReduction:Oe,weight:te.shrink*te.basis}}).filter(te=>te.capacity>0&&te.weight>0),V=N.reduce((te,me)=>te+me.weight,0);if(V<=0)break;let ge=N.map(te=>{let me=I*te.weight/V,Oe=Math.min(te.capacity,Math.floor(me));return{...te,exact:me,whole:Oe,fraction:me-Math.floor(me)}}),fe=0;for(let te of ge)te.whole>0&&(H[te.index]+=te.whole,fe+=te.whole);if(I-=fe,I<=0)break;ge.sort((te,me)=>me.fraction-te.fraction||me.weight-te.weight||me.capacity-te.capacity);let de=!1;for(let te of ge){if(I<=0)break;H[te.index]<te.maxReduction&&(H[te.index]+=1,I-=1,de=!0)}if(!de)break}if(H.some(N=>N>0)){for(let N=0;N<u.length;N++){let V=u[N];V.targetWidth=Math.max(V.minWidth,V.basis-H[N])}d=u.reduce((N,V)=>N+(V.targetWidth??V.basis)+V.marginLeft+V.marginRight,n*Math.max(0,e.length-1))}}let g=Math.max(0,t-d),f=c>0?g/c:0,k=0,b=o.justifyContent??"flex-start",v=d+(c>0?g:0),T=t-v,$=0,D=0;c===0&&u.length>0&&(b==="space-between"&&u.length>1?$=T/(u.length-1):b==="space-around"?(D=T/(u.length*2),k=D):b==="space-evenly"?($=T/(u.length+1),k=$):b==="flex-end"?k=T:b==="center"&&(k=T/2));let L=0,W=[];for(let H=0;H<u.length;H++){let I=u[H],V=(I.targetWidth??(I.flex>0?I.basis+Math.floor(f*I.flex):I.basis))+I.marginLeft+I.marginRight,ge=I.layout&&I.measuredCtxWidth===V?ht(I.layout,{x:I.layout.x+k}):Dr(I.node,{x:k,y:0,width:V,height:r},i),fe=I.node.props;L=Math.max(L,ge.height),W.push({layout:ge,style:fe}),k+=I.marginLeft+ge.width+I.marginRight,b==="space-between"&&H<u.length-1?k+=$:b==="space-around"?k+=D*2:b==="space-evenly"?k+=$:k+=n}let K=s?r:L;for(let H of W){let{style:I}=H,{layout:N}=H,V=I.alignSelf,ge=V!=="auto"&&V?V:o.alignItems??"flex-start",fe=N.y,de=N.height;ge==="stretch"?(I.height===void 0&&(de=Math.max(N.height,K)),fe=0):ge==="center"?fe=Math.floor((K-N.height)/2):ge==="flex-end"?fe=K-N.height:ge==="baseline"&&(fe=0),N=_k(N,de,I),N=ht(N,{y:fe}),It(N.node,N),a.push(N)}return a}function UF(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let D of e){let L=D.props,W=St(L.marginLeft??L.marginX??L.margin),K=St(L.marginRight??L.marginX??L.margin),H=Dr(D,{x:0,y:0,width:t,height:r},i),N=(L.flexBasis===void 0||L.flexBasis==="auto"||L.flexBasis==="content"?H.width:ei(L.flexBasis,t))+W+K,V=c+(d.length>0?n:0)+N;d.length>0&&V>t&&(l.push(d),d=[],c=0),d.push(D),c+=(d.length>1?n:0)+N}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=yt(o.rowGap??o.gap,"rowGap"),p=l.map(D=>{let L=vk(D,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),W=L.reduce((K,H)=>Math.max(K,H.y+H.height),0);return{layouts:L,height:W}}),g=p.reduce((D,L)=>D+L.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,k=o.alignContent??"flex-start",b=0,v=0;k==="flex-end"?b=f:k==="center"?b=Math.floor(f/2):k==="space-between"&&p.length>1?v=f/(p.length-1):k==="space-around"&&p.length>0?(v=f/p.length,b=Math.floor(v/2)):k==="stretch"&&p.length>0&&(v=f/p.length);let T=[],$=b;for(let D of p){for(let L of D.layouts){let W=ht(L,{y:L.y+Math.floor($)});It(W.node,W),T.push(W)}$+=D.height+u+v}return T}function qF(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,k=[];for(let b of e){let v=b.props,T=St(v.marginTop??v.marginY??v.margin),$=St(v.marginBottom??v.marginY??v.margin),D=v.flexGrow;D===void 0?D=v.height==="fill"||b.type==="spacer"?1:0:D=Ya(D,"flexGrow");let L=yt(v.minHeight,"minHeight"),W=v.maxHeight===void 0?void 0:yt(v.maxHeight,"maxHeight");if(D>0)f+=D,g+=T+$,k.push({node:b,flex:D,minHeight:L,maxHeight:W,marginTop:T,marginBottom:$});else{let K=Dr(b,{x:0,y:0,width:t,height:r},s);g+=K.height+T+$,k.push({node:b,flex:0,minHeight:L,maxHeight:W,marginTop:T,marginBottom:$,layout:K})}}if(g+=n*Math.max(0,e.length-1),f>0){let v=Math.max(0,r-g)/f,T=0;for(let $=0;$<k.length;$++){let D=k[$],W=D.node.props.alignSelf,K=W!=="auto"&&W?W:o.alignItems??"flex-start",H=D.layout;if(D.flex>0){let V=Math.floor(v*D.flex);V=Math.max(D.minHeight,V),D.maxHeight!==void 0&&(V=Math.min(D.maxHeight,V)),H=Dr(D.node,{x:0,y:T,width:t,height:V},s),H=ht(H,{height:V})}H||(H=Dr(D.node,{x:0,y:T,width:t,height:r},s));let I=H.x,N=H.width;K==="center"?I=Math.floor((t-H.width)/2):K==="flex-end"?I=t-H.width:K==="stretch"&&(N=t),H=ht(H,{x:I,y:T,width:N}),It(H.node,H),i.push(H),T+=D.marginTop+H.height+D.marginBottom,$<k.length-1&&(T+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],k=f.props,b=St(k.marginTop??k.marginY??k.margin),v=St(k.marginBottom??k.marginY??k.margin),T=Dr(f,{x:0,y:l,width:t,height:r-l},s),$=k.alignSelf,D=$!=="auto"&&$?$:o.alignItems??"flex-start",L=T.x,W=T.width;D==="center"?L=Math.floor((t-T.width)/2):D==="flex-end"?L=t-T.width:D==="stretch"&&(W=t);let K=ht(T,{x:L,width:W});It(K.node,K),i.push(K),l+=b+T.height+v,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 k=0;k<i.length;k++)i[k]=ht(i[k],{y:i[k].y+Math.floor(f*k)}),It(i[k].node,i[k]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let k=0;k<i.length;k++)i[k]=ht(i[k],{y:i[k].y+Math.floor(f*(2*k+1))}),It(i[k].node,i[k]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let k=0;k<i.length;k++)i[k]=ht(i[k],{y:i[k].y+Math.floor(f*(k+1))}),It(i[k].node,i[k]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=ht(i[f],{y:i[f].y+g}),It(i[f].node,i[f])}return i}function ei(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 Sk={background:0,normal:1,modal:2,critical:3};var Tk=new Set;function Ak(e,t){process.env.NODE_ENV==="production"||Tk.has(e)||(Tk.add(e),console.warn(`[tuiuiu] ${t}`))}var KF=Symbol("tuiuiu.hook-runtime-state"),Uu=new WeakMap;function VF(){return{appContext:null,focusManager:null,inputHandlers:[],handlerIdCounter:0,hookState:{state:[],effects:[]},hookIndex:0,isRendering:!1,lastMaxHookIndex:0,renderPhaseMode:"hooks",hookCleanups:new Map,mouseHandlers:[],mouseHandlerIdCounter:0,lastMouseClick:null,pasteHandlers:[],pasteHandlerIdCounter:0}}function Je(e){return De(KF,VF,e)}function qu(e){return Uu.get(e)??null}function Ck(e="hooks"){let t=Je();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function Ok(){let e=Je();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&Ak("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++){Ik(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(ti(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function Dk(){return Je().isRendering}function Fk(){return Je().renderPhaseMode}function ar(e){let t=Je();t.isRendering||Ak("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 lr(e,t){Je().hookState.state[e]=t}function Fr(e){return Je().hookState.state[e]}function Jt(){return Je().hookIndex-1}function Vn(e,t=Jt()){let r=Je(),n=r.hookCleanups.get(t);return n||(n=new Set,r.hookCleanups.set(t,n)),n.add(e),()=>{n?.delete(e),n?.size===0&&r.hookCleanups.delete(t)}}function Ik(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 Qa(e){let t=Ne(e),r=Je(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))Ik(n,r)});for(let n of r.hookState.effects)n&&n.dispose();r.hookState={state:[],effects:[]},r.hookIndex=0,r.lastMaxHookIndex=0,r.isRendering=!1}function zr(e){return Je(e).appContext}function Ku(e,t){let r=Ne(t),n=Je(r),o=n.appContext;n.appContext=e,o&&o!==e&&Uu.delete(o),e&&Uu.set(e,r)}function Xa(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=Je(),s=o.handlerIdCounter++,i={handler:e,priorityValue:Sk[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 ti(e){let t=Je(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function Mk(e,t,r){let o=[...Je().inputHandlers].sort((i,a)=>a.priorityValue!==i.priorityValue?a.priorityValue-i.priorityValue:i.id-a.id),s={input:e,key:t,isPasted:!1,...r};for(let i of o)try{let a=i.handler(e,t,s);if(i.stopPropagation&&a)break}catch(a){console.error("[tuiuiu] Error in input handler:",a)}}function Lk(e){let t=Je(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function Vu(e,t){Je(t).focusManager=e}function jk(e){let t=Je(),r=JF(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function Bk(e){let t=Je(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var zF=300,Pk=2;function JF(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<zF&&Math.abs(t.x-n.x)<=Pk&&Math.abs(t.y-n.y)<=Pk?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function $k(e,t){let r=[...Je().pasteHandlers].sort((o,s)=>s.priorityValue!==o.priorityValue?s.priorityValue-o.priorityValue:o.id-s.id),n={text:e,isBracketed:t};for(let o of r)try{let s=o.handler(n);if(o.stopPropagation&&s)break}catch(s){console.error("[tuiuiu] Error in paste handler:",s)}}function Gk(e){let t=Je(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var ri=[],el=!1,zu=!1,Za=0,ni=null,oi=null;function Nk(){if(!zu){zu=!0;for(let e=ri.length-1;e>=0;e--)try{ri[e]()}catch{}zu=!1}}function Jr(e){return ri.push(e),()=>{let t=ri.indexOf(e);t!==-1&&ri.splice(t,1)}}function Wk(){Za++,el||(el=!0,ni=()=>{Nk()},oi=()=>{Nk()},process.on("exit",ni),process.on("uncaughtExceptionMonitor",oi));let e=!1;return()=>{e||(e=!0,Za=Math.max(0,Za-1),Za===0&&YF())}}function YF(){el&&(ni&&process.off("exit",ni),oi&&process.off("uncaughtExceptionMonitor",oi),ni=null,oi=null,el=!1)}var Hk=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,Uk=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,qk=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,Kk=/^\x1b\[(\d+);(\d+);(\d+)M/;function dr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function tl(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 Vk(e){let t=Hk.exec(e);if(t){let s=dr(t[1]),i=dr(t[2]),a=dr(t[3]),l=dr(t[4]),d=dr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=tl(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=Uk.exec(e);if(r){let s=dr(r[1]),i=dr(r[2]),a=dr(r[3]);if(s===null||i===null||a===null)return null;let l=tl(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=qk.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=tl(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=Kk.exec(e);if(o){let s=dr(o[1]),i=dr(o[2]),a=dr(o[3]);if(s===null||i===null||a===null)return null;let l=tl(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function zk(e){return Hk.test(e)||Uk.test(e)||qk.test(e)||Kk.test(e)}var QF="\x1B[?1000h\x1B[?1002h\x1B[?1006h",Jk="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",XF=Symbol("tuiuiu.mouse-runtime-state");function si(e){return De(XF,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function Ju(e){return zr(e)?.stdout??process.stdout}function Yu(e){return"isTTY"in e&&!!e.isTTY}function ii(e){return Vk(e)}function Qu(e){return zk(e)}function Ko(e){let t=Ne(e),r=si(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,ZF(t);let n=Ju(t);r.outputStream=n,Yu(n)&&n.write(QF)}}function zn(e){let t=Ne(e),r=si(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Ju(t);Yu(n)&&n.write(Jk),r.outputStream=null}}function rl(e){let t=Ne(e),r=si(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Ju(t);Yu(n)&&n.write(Jk),r.outputStream=null}}function ZF(e){let t=si(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=Jr(Vr(e,()=>rl(e))))}function Yk(e){let t=si(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as rI}from"node:zlib";var We={synchronizedOutput:!1,styledUnderlines:!1,coloredUnderlines:!1,clipboard:!1,notifications:!1,cursorStyleControl:!1,windowTitle:!1,kittyKeyboard:!1,kittyGraphics:!1,sixel:!1,iterm2Graphics:!1,preferredGraphics:!1,hyperlinks:!1,trueColor:!1,mouse:!1,italic:!1,strikethrough:!1,focusEvents:!1,nerdFonts:!1},Ke={mouse:!0,italic:!0,strikethrough:!0},eI={kitty:{id:"kitty",name:"Kitty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},alacritty:{id:"alacritty",name:"Alacritty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},ghostty:{id:"ghostty",name:"Ghostty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},wezterm:{id:"wezterm",name:"WezTerm",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!1,sixel:!1,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},rio:{id:"rio",name:"Rio",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,iterm2Graphics:!0,sixel:!1,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},warp:{id:"warp",name:"Warp",gpuAccelerated:!0,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},foot:{id:"foot",name:"Foot",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!0,preferredGraphics:"sixel",hyperlinks:!0,trueColor:!0,focusEvents:!0}},contour:{id:"contour",name:"Contour",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},hyper:{id:"hyper",name:"Hyper",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},vscode:{id:"vscode",name:"VS Code Terminal",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},iterm2:{id:"iterm2",name:"iTerm2",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},"terminal-app":{id:"terminal-app",name:"Terminal.app",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},"windows-terminal":{id:"windows-terminal",name:"Windows Terminal",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},konsole:{id:"konsole",name:"Konsole",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},"gnome-terminal":{id:"gnome-terminal",name:"GNOME Terminal",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},tilix:{id:"tilix",name:"Tilix",gpuAccelerated:!1,knownCaps:{...We,...Ke,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},terminology:{id:"terminology",name:"Terminology",gpuAccelerated:!0,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!0}},mlterm:{id:"mlterm",name:"mlterm",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},"black-box":{id:"black-box",name:"Black Box",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},bobcat:{id:"bobcat",name:"Bobcat",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,sixel:!0,preferredGraphics:"iterm2",trueColor:!0}},st:{id:"st",name:"st (suckless)",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,preferredGraphics:!1,trueColor:!0}},"rxvt-unicode":{id:"rxvt-unicode",name:"rxvt-unicode",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},unknown:{id:"unknown",name:"Unknown",gpuAccelerated:!1,knownCaps:We}};function tI(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 Qk(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 nl(e=process.env){let t=tI(e),r=eI[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 nw=Symbol("tuiuiu.graphics-runtime-state");function ow(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:Ft(nw,()=>ow(Cr())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function tp(){let e=Ne();return De(nw,()=>ow(e),e)}var Xk={width:10,height:20};function ol(e){return{width:Math.max(1,Math.round(e?.width??Xk.width)),height:Math.max(1,Math.round(e?.height??Xk.height))}}function nI(){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 sw(){return nI()?"halfblock":"braille"}function Vo(e){return e==="none"?sw():e}function iw(e){let t=Vo(e);return t==="halfblock"||t==="braille"}function aw(e){let t=Vo(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function Zk(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 lw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&aI(e)?e:null}function dw(){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 cw(){return nl(process.env).knownCaps.preferredGraphics||null}function uw(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function oI(){let e=lw();if(e)return e;let t=dw();if(t)return t;let r=cw();return r||uw()}function sI(e){return lw()===e||dw()===e?"env":cw()===e?"profile":uw()===e?"env":"fallback"}function zo(){let e=tp();if(e.manualOverride)return Zk(e.manualOverride,"manual",ol(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=iI();return Zk(t,sI(t),ol())}function iI(){let e=tp();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=oI()??sw()),e.detectedProtocol)}function aI(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function pw(){let e=tp();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 lI(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 fw(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function li(e){return fw(e)?e:il(e)}function ew(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??zo().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:lI(e)}}function di(e,t={}){let r=fw(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=ew(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=ew(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)),k=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=k*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 Jo={transmit(e,t={}){let r=li(e),n=di(r,t),o=t.width??n.renderColumns,s=t.height??n.renderRows,i=Number.isInteger(t.imageId)&&t.imageId&&t.imageId>0?`,i=${t.imageId}`:"",a=gI(r),l=gw(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\\"}},dI={display(e,t={}){let{pixels:r}=li(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=gw(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`}},cI={encode(e,t={}){let r=li(e),n=di(r,t),o=t.width!==void 0||t.height!==void 0?hw({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=hI(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),k=Math.round(p/255*100),b=Math.round(g/255*100);d+=`#${c};2;${f};${k};${b}`}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 k=0;for(let b=0;b<6;b++){let v=c+b;if(v>=i)continue;let T=(v*s+f)*4,$=a[T],D=a[T+1],L=a[T+2];mI([$,D,L],l)===u&&(k|=1<<b,p=!0)}g+=String.fromCharCode(63+k)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function tw(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 Xu(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=li(e),n=di(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=hw(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=tw(i,u,l),g=tw(i,u,l+1),f=" ",k;p.a>0&&g.a>0?(f="\u2580",k=Xu(p,g)):p.a>0?(f="\u2580",k=Xu(p)):g.a>0&&(f="\u2584",k=Xu(g)),k!==c&&(c&&(d+="\x1B[0m"),k&&(d+=k),c=k),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
|
|
118
|
-
`)}},
|
|
118
|
+
`)){if(r==="truncate"||r==="truncate-end"){n.push(Zs(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(Zs(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(Zs(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...$1(o,t))}return n}function $1(e,t){if(xe(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(xe(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),xe(o)<=t){n=o;continue}let i=N1(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function N1(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===Rk){let l=Un(e,s);if(l){n+=l.value,s=l.end;continue}}let i=qn(e,s);if(!i)break;let a=xe(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 Zs(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(xe(e)<=t)return e;if(t<xe(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=xe(l);return n==="start"?G1(e,t,l,d,i):n==="middle"?H1(e,t,l,d,i):W1(e,t,l,d,i)}function G1(e,t,r,n,o){let s=t-n,i=Ho(e,xe(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function W1(e,t,r,n,o){let s=t-n,i=Ho(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 H1(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=Ho(e,0,i),d=Ho(e,xe(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 Ho(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]===Rk){let f=Un(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=Wu(e,l);if(!c){l++;continue}let u=xe(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 ti(e,t){let r=e;for(let n=0;n<t.length;n++)r=dt(r,t.charCodeAt(n));return r}function Uu(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 ti(dt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return ti(dt(e,105),t.toString());case"string":return ti(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=Uu(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=ti(dt(n,107),i),n=dt(n,58),n=Uu(n,a,r),n=dt(n,59)))}return dt(n,125)}default:return ti(dt(e,63),String(t))}}function Dt(e,t={}){return Uu(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as U1}from"node:async_hooks";var Cr=Symbol("tuiuiu.runtime-resource-dispose"),vk=new U1,Xa=new Set,q1=1,Uo={id:0,resources:new Map};function Sk(){let e={id:q1++,resources:new Map};return Xa.add(e),e}function K1(e){Xa.delete(e)}function Tk(e){if(e!==null&&typeof e=="object"&&Cr in e)try{e[Cr]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function V1(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)Tk(r)}function qo(e){K1(e),V1(e)}function qe(e,t){return vk.run(e,t)}function Jr(e,t){return(...r)=>qe(e,()=>t(...r))}function qu(){return vk.getStore()??null}function Ge(e){if(e)return e;let t=qu();return t||(Xa.size===1?Xa.values().next().value??Uo:Uo)}function Or(){return Uo}function De(e,t,r){let n=Ge(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function Ft(e,t){return Uo.resources.has(e)||Uo.resources.set(e,t()),Uo.resources.get(e)}function Za(e,t){let r=Ge(t),n=r.resources.get(e);r.resources.delete(e),Tk(n)}var Pe;(function(e){e[e.NONE=0]="NONE",e[e.CONTENT=1]="CONTENT",e[e.LAYOUT=2]="LAYOUT",e[e.STYLE=4]="STYLE",e[e.CHILDREN=8]="CHILDREN",e[e.FORCE_FULL=16]="FORCE_FULL"})(Pe||(Pe={}));function Ku(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function z1(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 Vu=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=Ku();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Pe.NONE,subtreeFlags:Pe.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=Ku()}registerNode(t,r){this.parents.set(t,r),this.getState(t)}bubbleDirtyFlags(t,r){let n=this.parents.get(t)??null,o=r,s=!1;for(;n;){s=!0;let i=this.getState(n);if(i.childrenDirty=!0,i.subtreeFlags|=o,o&Pe.LAYOUT&&z1(n)){this.diagnostics.absorbedLayoutDirtyCount++;break}n=this.parents.get(n)??null}!s&&this.rootNode&&t!==this.rootNode&&(this.diagnostics.invalidationEscalationCount++,this.forceFullFrame=!0)}markDirty(t,r=Pe.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Pe.FORCE_FULL&&(this.forceFullFrame=!0,this.diagnostics.forceFullCount++),this.bubbleDirtyFlags(t,r)}markClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags=Pe.NONE,r.subtreeFlags=Pe.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL),r.subtreeFlags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL)}markChildrenDirty(t,r=Pe.CHILDREN){let n=this.getState(t);n.childrenDirty=!0,n.subtreeFlags|=r,this.isDirty=!0}isDirtyNode(t){let r=this.states.get(t);return r?r.dirty:!0}needsRender(t){let r=this.states.get(t);return r?r.dirty||r.childrenDirty||r.flags!==Pe.NONE||r.subtreeFlags!==Pe.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Pe.NONE&&r.subtreeFlags===Pe.NONE:!0}hasChanges(){return this.isDirty||this.forceFullFrame}clearGlobalDirty(){this.isDirty=!1,this.forceFullFrame=!1}getGlobalVersion(){return this.globalVersion}getDiagnostics(){return{...this.diagnostics}}noteReuse(t){if(t==="layout"){this.diagnostics.layoutReuseCount++;return}this.diagnostics.drawReuseCount++}noteFresh(t){if(t==="layout"){this.diagnostics.layoutFreshCount++;return}this.diagnostics.drawFreshCount++}getCachedRender(t,r){let o=`${this.hashNode(t)}:${r}`,s=this.renderCache.get(o);if(s)return s.lastAccess=Date.now(),s}setCachedRender(t,r,n,o){let s=this.hashNode(t),i=`${s}:${r}`;this.renderCache.size>=this.maxCacheSize&&this.evictOldest(),this.renderCache.set(i,{output:n,width:r,height:o,hash:s,lastAccess:Date.now()})}hashNode(t){return Dt({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=Ku()}},J1=Symbol("tuiuiu.dirty-registry");function Dr(e){return De(J1,()=>new Vu,e)}function Pk(e){Dr().beginFrame(e)}function Ak(e,t){Dr().registerNode(e,t)}function bn(e,t=Pe.CONTENT){Dr().markDirty(e,t)}function Ck(e){Dr().markLayoutClean(e)}function ri(e){Dr().noteReuse(e)}function Kn(e){Dr().noteFresh(e)}function el(e){return Dr().canReuseSubtree(e)}function Ok(){return Dr().getDiagnostics()}function ni(){Dr().clearGlobalDirty()}function Ko(e){Dr().markClean(e.node);for(let r of e.children)Ko(r)}var Dk=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 tl(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 St=e=>e==="auto"?0:yt(e,"margin"),Y1=new Set(["layoutRef","__scrollQuery"]),Q1=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"]),X1=new Set(["children","wrap"]);function Z1(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function Vo(e){let t=e.props??{},r=e.type==="text"?X1:Q1,n={};for(let o of r)o in t&&(n[o]=t[o]);return Dt(n,{ignoreKeys:Y1})}function eI(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 tI(e,t){if(!el(e)){Kn("layout");return}let r=Dk.get(e);if(!r){Kn("layout");return}if(r.ctxKey!==t){bn(e,Pe.LAYOUT),Kn("layout");return}let n=Vo(e);if(r.propsKey!==n||!eI(e,r.childRefs)){bn(e,r.propsKey!==n?Pe.LAYOUT:Pe.CHILDREN),Kn("layout");return}return ri("layout"),r.layout}function oi(e,t,r,n){Dk.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),Ck(e)}function ht(e,t){let r=t.x??e.x,n=t.y??e.y,o=t.width??e.width,s=t.height??e.height;return r===e.x&&n===e.y&&o===e.width&&s===e.height?e:{x:r,y:n,width:o,height:s,node:e.node,children:e.children}}function Fk(e,t,r){if(t<=e.height)return ht(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return ht(e,{height:t});let o=t-e.height,s=r.justifyContent??"flex-start",i=e.children;if(s==="center"||s==="flex-end"){let a=s==="center"?Math.floor(o/2):o;i=i.map(l=>ht(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>ht(a,{y:a.y+Math.floor(o*l/(i.length-1))}));else if(s==="space-around"){let a=o/(i.length*2);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(2*d+1))}))}else if(s==="space-evenly"){let a=o/(i.length+1);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function It(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function Ik(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)Ik(u,d,c)}function Mk(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)),Pk(e);let n=Fr(e,{x:0,y:0,width:t,height:r},null);return Ik(n),n}function rI(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=ei(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>xe(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 nI(e,t){let r=typeof e.props.height=="number"?e.props.height:1;return{x:t.x,y:t.y,width:t.width,height:Math.min(r,t.height),node:e,children:[]}}function oI(e,t){let r=e.props.count??1,n=Number.isSafeInteger(r)&&r>=0?r:0;return{x:t.x,y:t.y,width:0,height:Math.min(n,t.height),node:e,children:[]}}function Fr(e,t,r){Ak(e,r);let n=Z1(t),o=tI(e,n);if(o)return It(e,o),o;let s;if(e.type==="text")return s=rI(e,t),oi(e,n,Vo(e),s),s;if(e.type==="spacer")return s=nI(e,t),oi(e,n,Vo(e),s),s;if(e.type==="newline")return s=oI(e,t),oi(e,n,Vo(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),oi(e,n,Vo(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=St(i.marginTop??i.marginY??i.margin),p=St(i.marginBottom??i.marginY??i.margin),g=St(i.marginLeft??i.marginX??i.margin),f=St(i.marginRight??i.marginX??i.margin),k=i.borderStyle&&i.borderStyle!=="none"?1:0,b=si(i.width,t.width),v=si(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",$=i.height!==void 0&&i.height!=="auto",D=Math.max(0,(T?b:t.width)-d-c-k*2),L=Math.max(0,($?v:t.height)-a-l-k*2),W=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:L,K=[],H=i.flexDirection??"column",I=H==="row"||H==="row-reverse",G=H==="row-reverse"||H==="column-reverse",V=yt(I?i.columnGap??i.gap:i.rowGap??i.gap,"gap"),ge=[],fe=[];if(e.children.length>0){for(let oe of e.children)oe.props.position==="absolute"?ge.push(oe):fe.push(oe);let ce=G?[...fe].reverse():fe;I?K.push(...Lk(ce,D,W,V,i,$,e)):K.push(...iI(ce,D,W,V,i,e))}let de=0,te=0;if(I)for(let ce of K){let oe=ce.node.props,_e=St(oe.marginRight??oe.marginX??oe.margin),Fe=St(oe.marginBottom??oe.marginY??oe.margin);de=Math.max(de,ce.x+ce.width+_e),te=Math.max(te,ce.y+ce.height+Fe)}else for(let ce of K){let oe=ce.node.props,_e=St(oe.marginBottom??oe.marginY??oe.margin);de=Math.max(de,ce.width),te=Math.max(te,ce.y+ce.height+_e)}let Oe=tl(i.flexGrow,"flexGrow")>0||i.width==="fill",ve=de+d+c+k*2,ke=T?b:Oe?t.width:ve,J=$?v:te+a+l+k*2,ie=yt(i.minWidth,"minWidth"),Re=yt(i.minHeight,"minHeight");if(ke=Math.max(ke,ie),J=Math.max(J,Re),i.maxWidth!==void 0&&(ke=Math.min(ke,yt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(J=Math.min(J,yt(i.maxHeight,"maxHeight"))),I&&i.alignItems==="stretch"){let ce=Math.max(0,J-a-l-k*2);for(let oe=0;oe<K.length;oe++){let _e=K[oe],Fe=_e.node.props;Fe.height===void 0&&(K[oe]=Fk(_e,Math.max(_e.height,ce),Fe),It(_e.node,K[oe]))}}let Ae=t.x+g,Ee=t.y+u,we=Math.max(0,Math.min(ke,Math.max(0,t.width-g-f))),Se=Math.max(0,Math.min(J,Math.max(0,t.height-u-p)));for(let ce of ge){let oe=ce.props,_e=Fr(ce,{x:0,y:0,width:D,height:W},e),Fe=Ae+d+k,at=Ee+a+k;oe.left!==void 0?Fe=Ae+d+k+oe.left:oe.right!==void 0&&(Fe=Ae+we-c-k-_e.width-oe.right),oe.top!==void 0?at=Ee+a+k+oe.top:oe.bottom!==void 0&&(at=Ee+Se-l-k-_e.height-oe.bottom);let $t=ht(_e,{x:Fe,y:at});It(ce,$t),K.push($t)}return s={x:Ae,y:Ee,width:we,height:Se,node:e,children:K},It(e,s),oi(e,n,Vo(e),s),s}function Lk(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return sI(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let H of e){let I=H.props,G=I.flexGrow;G===void 0?G=I.width==="fill"||H.type==="spacer"?1:0:G=tl(G,"flexGrow");let V=yt(I.minWidth,"minWidth"),ge=I.flexBasis==="content"?Fr(H,{x:0,y:0,width:t,height:r},i).width:I.flexBasis===void 0||I.flexBasis==="auto"?V:si(I.flexBasis,t),fe=I.flexShrink===void 0?1:tl(I.flexShrink,"flexShrink"),de=St(I.marginLeft??I.marginX??I.margin),te=St(I.marginRight??I.marginX??I.margin);if(G>0)c+=G,d+=ge+de+te,u.push({node:H,flex:G,minWidth:V,basis:ge,shrink:fe,marginLeft:de,marginRight:te});else{let Oe=I.width!==void 0&&I.width!=="auto"&&I.width!=="fill"?si(I.width,t)+de+te:t,ve=Fr(H,{x:0,y:0,width:Oe,height:r},i);d+=ve.width+de+te,u.push({node:H,flex:0,minWidth:V,basis:ve.width,shrink:fe,marginLeft:de,marginRight:te,layout:ve,measuredCtxWidth:Oe})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let H=u.map(()=>0),I=Math.ceil(p);for(;I>0;){let G=u.map((te,me)=>{let Oe=Math.max(0,Math.floor(te.basis-te.minWidth)),ve=Math.max(0,Oe-H[me]);return{index:me,capacity:ve,maxReduction:Oe,weight:te.shrink*te.basis}}).filter(te=>te.capacity>0&&te.weight>0),V=G.reduce((te,me)=>te+me.weight,0);if(V<=0)break;let ge=G.map(te=>{let me=I*te.weight/V,Oe=Math.min(te.capacity,Math.floor(me));return{...te,exact:me,whole:Oe,fraction:me-Math.floor(me)}}),fe=0;for(let te of ge)te.whole>0&&(H[te.index]+=te.whole,fe+=te.whole);if(I-=fe,I<=0)break;ge.sort((te,me)=>me.fraction-te.fraction||me.weight-te.weight||me.capacity-te.capacity);let de=!1;for(let te of ge){if(I<=0)break;H[te.index]<te.maxReduction&&(H[te.index]+=1,I-=1,de=!0)}if(!de)break}if(H.some(G=>G>0)){for(let G=0;G<u.length;G++){let V=u[G];V.targetWidth=Math.max(V.minWidth,V.basis-H[G])}d=u.reduce((G,V)=>G+(V.targetWidth??V.basis)+V.marginLeft+V.marginRight,n*Math.max(0,e.length-1))}}let g=Math.max(0,t-d),f=c>0?g/c:0,k=0,b=o.justifyContent??"flex-start",v=d+(c>0?g:0),T=t-v,$=0,D=0;c===0&&u.length>0&&(b==="space-between"&&u.length>1?$=T/(u.length-1):b==="space-around"?(D=T/(u.length*2),k=D):b==="space-evenly"?($=T/(u.length+1),k=$):b==="flex-end"?k=T:b==="center"&&(k=T/2));let L=0,W=[];for(let H=0;H<u.length;H++){let I=u[H],V=(I.targetWidth??(I.flex>0?I.basis+Math.floor(f*I.flex):I.basis))+I.marginLeft+I.marginRight,ge=I.layout&&I.measuredCtxWidth===V?ht(I.layout,{x:I.layout.x+k}):Fr(I.node,{x:k,y:0,width:V,height:r},i),fe=I.node.props;L=Math.max(L,ge.height),W.push({layout:ge,style:fe}),k+=I.marginLeft+ge.width+I.marginRight,b==="space-between"&&H<u.length-1?k+=$:b==="space-around"?k+=D*2:b==="space-evenly"?k+=$:k+=n}let K=s?r:L;for(let H of W){let{style:I}=H,{layout:G}=H,V=I.alignSelf,ge=V!=="auto"&&V?V:o.alignItems??"flex-start",fe=G.y,de=G.height;ge==="stretch"?(I.height===void 0&&(de=Math.max(G.height,K)),fe=0):ge==="center"?fe=Math.floor((K-G.height)/2):ge==="flex-end"?fe=K-G.height:ge==="baseline"&&(fe=0),G=Fk(G,de,I),G=ht(G,{y:fe}),It(G.node,G),a.push(G)}return a}function sI(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let D of e){let L=D.props,W=St(L.marginLeft??L.marginX??L.margin),K=St(L.marginRight??L.marginX??L.margin),H=Fr(D,{x:0,y:0,width:t,height:r},i),G=(L.flexBasis===void 0||L.flexBasis==="auto"||L.flexBasis==="content"?H.width:si(L.flexBasis,t))+W+K,V=c+(d.length>0?n:0)+G;d.length>0&&V>t&&(l.push(d),d=[],c=0),d.push(D),c+=(d.length>1?n:0)+G}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=yt(o.rowGap??o.gap,"rowGap"),p=l.map(D=>{let L=Lk(D,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),W=L.reduce((K,H)=>Math.max(K,H.y+H.height),0);return{layouts:L,height:W}}),g=p.reduce((D,L)=>D+L.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,k=o.alignContent??"flex-start",b=0,v=0;k==="flex-end"?b=f:k==="center"?b=Math.floor(f/2):k==="space-between"&&p.length>1?v=f/(p.length-1):k==="space-around"&&p.length>0?(v=f/p.length,b=Math.floor(v/2)):k==="stretch"&&p.length>0&&(v=f/p.length);let T=[],$=b;for(let D of p){for(let L of D.layouts){let W=ht(L,{y:L.y+Math.floor($)});It(W.node,W),T.push(W)}$+=D.height+u+v}return T}function iI(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,k=[];for(let b of e){let v=b.props,T=St(v.marginTop??v.marginY??v.margin),$=St(v.marginBottom??v.marginY??v.margin),D=v.flexGrow;D===void 0?D=v.height==="fill"||b.type==="spacer"?1:0:D=tl(D,"flexGrow");let L=yt(v.minHeight,"minHeight"),W=v.maxHeight===void 0?void 0:yt(v.maxHeight,"maxHeight");if(D>0)f+=D,g+=T+$,k.push({node:b,flex:D,minHeight:L,maxHeight:W,marginTop:T,marginBottom:$});else{let K=Fr(b,{x:0,y:0,width:t,height:r},s);g+=K.height+T+$,k.push({node:b,flex:0,minHeight:L,maxHeight:W,marginTop:T,marginBottom:$,layout:K})}}if(g+=n*Math.max(0,e.length-1),f>0){let v=Math.max(0,r-g)/f,T=0;for(let $=0;$<k.length;$++){let D=k[$],W=D.node.props.alignSelf,K=W!=="auto"&&W?W:o.alignItems??"flex-start",H=D.layout;if(D.flex>0){let V=Math.floor(v*D.flex);V=Math.max(D.minHeight,V),D.maxHeight!==void 0&&(V=Math.min(D.maxHeight,V)),H=Fr(D.node,{x:0,y:T,width:t,height:V},s),H=ht(H,{height:V})}H||(H=Fr(D.node,{x:0,y:T,width:t,height:r},s));let I=H.x,G=H.width;K==="center"?I=Math.floor((t-H.width)/2):K==="flex-end"?I=t-H.width:K==="stretch"&&(G=t),H=ht(H,{x:I,y:T,width:G}),It(H.node,H),i.push(H),T+=D.marginTop+H.height+D.marginBottom,$<k.length-1&&(T+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],k=f.props,b=St(k.marginTop??k.marginY??k.margin),v=St(k.marginBottom??k.marginY??k.margin),T=Fr(f,{x:0,y:l,width:t,height:r-l},s),$=k.alignSelf,D=$!=="auto"&&$?$:o.alignItems??"flex-start",L=T.x,W=T.width;D==="center"?L=Math.floor((t-T.width)/2):D==="flex-end"?L=t-T.width:D==="stretch"&&(W=t);let K=ht(T,{x:L,width:W});It(K.node,K),i.push(K),l+=b+T.height+v,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 k=0;k<i.length;k++)i[k]=ht(i[k],{y:i[k].y+Math.floor(f*k)}),It(i[k].node,i[k]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let k=0;k<i.length;k++)i[k]=ht(i[k],{y:i[k].y+Math.floor(f*(2*k+1))}),It(i[k].node,i[k]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let k=0;k<i.length;k++)i[k]=ht(i[k],{y:i[k].y+Math.floor(f*(k+1))}),It(i[k].node,i[k]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=ht(i[f],{y:i[f].y+g}),It(i[f].node,i[f])}return i}function si(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 jk={background:0,normal:1,modal:2,critical:3};var Bk=new Set;function Nk(e,t){process.env.NODE_ENV==="production"||Bk.has(e)||(Bk.add(e),console.warn(`[tuiuiu] ${t}`))}var aI=Symbol("tuiuiu.hook-runtime-state"),zu=new WeakMap;function lI(){return{appContext:null,focusManager:null,inputHandlers:[],handlerIdCounter:0,hookState:{state:[],effects:[]},hookIndex:0,isRendering:!1,lastMaxHookIndex:0,renderPhaseMode:"hooks",hookCleanups:new Map,mouseHandlers:[],mouseHandlerIdCounter:0,lastMouseClick:null,pasteHandlers:[],pasteHandlerIdCounter:0}}function Je(e){return De(aI,lI,e)}function Ju(e){return zu.get(e)??null}function Gk(e="hooks"){let t=Je();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function Wk(){let e=Je();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&Nk("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++){qk(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(ii(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function Hk(){return Je().isRendering}function Uk(){return Je().renderPhaseMode}function cr(e){let t=Je();t.isRendering||Nk("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 ur(e,t){Je().hookState.state[e]=t}function Ir(e){return Je().hookState.state[e]}function Qt(){return Je().hookIndex-1}function Vn(e,t=Qt()){let r=Je(),n=r.hookCleanups.get(t);return n||(n=new Set,r.hookCleanups.set(t,n)),n.add(e),()=>{n?.delete(e),n?.size===0&&r.hookCleanups.delete(t)}}function qk(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 rl(e){let t=Ge(e),r=Je(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))qk(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 Yr(e){return Je(e).appContext}function Yu(e,t){let r=Ge(t),n=Je(r),o=n.appContext;n.appContext=e,o&&o!==e&&zu.delete(o),e&&zu.set(e,r)}function nl(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=Je(),s=o.handlerIdCounter++,i={handler:e,priorityValue:jk[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 ii(e){let t=Je(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function Kk(e,t,r){let o=[...Je().inputHandlers].sort((i,a)=>a.priorityValue!==i.priorityValue?a.priorityValue-i.priorityValue:i.id-a.id),s={input:e,key:t,isPasted:!1,...r};for(let i of o)try{let a=i.handler(e,t,s);if(i.stopPropagation&&a)break}catch(a){console.error("[tuiuiu] Error in input handler:",a)}}function Vk(e){let t=Je(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function Qu(e,t){Je(t).focusManager=e}function zk(e){let t=Je(),r=cI(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function Jk(e){let t=Je(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var dI=300,$k=2;function cI(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<dI&&Math.abs(t.x-n.x)<=$k&&Math.abs(t.y-n.y)<=$k?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function Yk(e,t){let r=[...Je().pasteHandlers].sort((o,s)=>s.priorityValue!==o.priorityValue?s.priorityValue-o.priorityValue:o.id-s.id),n={text:e,isBracketed:t};for(let o of r)try{let s=o.handler(n);if(o.stopPropagation&&s)break}catch(s){console.error("[tuiuiu] Error in paste handler:",s)}}function Qk(e){let t=Je(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var ai=[],sl=!1,Xu=!1,ol=0,li=null,di=null;function Xk(){if(!Xu){Xu=!0;for(let e=ai.length-1;e>=0;e--)try{ai[e]()}catch{}Xu=!1}}function Qr(e){return ai.push(e),()=>{let t=ai.indexOf(e);t!==-1&&ai.splice(t,1)}}function Zk(){ol++,sl||(sl=!0,li=()=>{Xk()},di=()=>{Xk()},process.on("exit",li),process.on("uncaughtExceptionMonitor",di));let e=!1;return()=>{e||(e=!0,ol=Math.max(0,ol-1),ol===0&&uI())}}function uI(){sl&&(li&&process.off("exit",li),di&&process.off("uncaughtExceptionMonitor",di),li=null,di=null,sl=!1)}var ew=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,tw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,rw=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,nw=/^\x1b\[(\d+);(\d+);(\d+)M/;function pr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function il(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 ow(e){let t=ew.exec(e);if(t){let s=pr(t[1]),i=pr(t[2]),a=pr(t[3]),l=pr(t[4]),d=pr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=il(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=tw.exec(e);if(r){let s=pr(r[1]),i=pr(r[2]),a=pr(r[3]);if(s===null||i===null||a===null)return null;let l=il(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=rw.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=il(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=nw.exec(e);if(o){let s=pr(o[1]),i=pr(o[2]),a=pr(o[3]);if(s===null||i===null||a===null)return null;let l=il(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function sw(e){return ew.test(e)||tw.test(e)||rw.test(e)||nw.test(e)}var pI="\x1B[?1000h\x1B[?1002h\x1B[?1006h",iw="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",fI=Symbol("tuiuiu.mouse-runtime-state");function ci(e){return De(fI,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function Zu(e){return Yr(e)?.stdout??process.stdout}function ep(e){return"isTTY"in e&&!!e.isTTY}function ui(e){return ow(e)}function tp(e){return sw(e)}function zo(e){let t=Ge(e),r=ci(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,gI(t);let n=Zu(t);r.outputStream=n,ep(n)&&n.write(pI)}}function zn(e){let t=Ge(e),r=ci(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Zu(t);ep(n)&&n.write(iw),r.outputStream=null}}function al(e){let t=Ge(e),r=ci(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Zu(t);ep(n)&&n.write(iw),r.outputStream=null}}function gI(e){let t=ci(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=Qr(Jr(e,()=>al(e))))}function aw(e){let t=ci(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as bI}from"node:zlib";var We={synchronizedOutput:!1,styledUnderlines:!1,coloredUnderlines:!1,clipboard:!1,notifications:!1,cursorStyleControl:!1,windowTitle:!1,kittyKeyboard:!1,kittyGraphics:!1,sixel:!1,iterm2Graphics:!1,preferredGraphics:!1,hyperlinks:!1,trueColor:!1,mouse:!1,italic:!1,strikethrough:!1,focusEvents:!1,nerdFonts:!1},Ke={mouse:!0,italic:!0,strikethrough:!0},hI={kitty:{id:"kitty",name:"Kitty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},alacritty:{id:"alacritty",name:"Alacritty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},ghostty:{id:"ghostty",name:"Ghostty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},wezterm:{id:"wezterm",name:"WezTerm",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!1,sixel:!1,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},rio:{id:"rio",name:"Rio",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,iterm2Graphics:!0,sixel:!1,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},warp:{id:"warp",name:"Warp",gpuAccelerated:!0,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},foot:{id:"foot",name:"Foot",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!0,preferredGraphics:"sixel",hyperlinks:!0,trueColor:!0,focusEvents:!0}},contour:{id:"contour",name:"Contour",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},hyper:{id:"hyper",name:"Hyper",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},vscode:{id:"vscode",name:"VS Code Terminal",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},iterm2:{id:"iterm2",name:"iTerm2",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},"terminal-app":{id:"terminal-app",name:"Terminal.app",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},"windows-terminal":{id:"windows-terminal",name:"Windows Terminal",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},konsole:{id:"konsole",name:"Konsole",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},"gnome-terminal":{id:"gnome-terminal",name:"GNOME Terminal",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},tilix:{id:"tilix",name:"Tilix",gpuAccelerated:!1,knownCaps:{...We,...Ke,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},terminology:{id:"terminology",name:"Terminology",gpuAccelerated:!0,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!0}},mlterm:{id:"mlterm",name:"mlterm",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},"black-box":{id:"black-box",name:"Black Box",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},bobcat:{id:"bobcat",name:"Bobcat",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,sixel:!0,preferredGraphics:"iterm2",trueColor:!0}},st:{id:"st",name:"st (suckless)",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,preferredGraphics:!1,trueColor:!0}},"rxvt-unicode":{id:"rxvt-unicode",name:"rxvt-unicode",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},unknown:{id:"unknown",name:"Unknown",gpuAccelerated:!1,knownCaps:We}};function mI(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 lw(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 ll(e=process.env){let t=mI(e),r=hI[t],n;switch(t){case"iterm2":n=e.TERM_PROGRAM_VERSION;break;case"konsole":n=e.KONSOLE_VERSION;break;case"vscode":n=e.TERM_PROGRAM_VERSION;break;case"wezterm":n=e.TERM_PROGRAM_VERSION;break;default:n=void 0}return{...r,version:n}}var gw=Symbol("tuiuiu.graphics-runtime-state");function hw(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:Ft(gw,()=>hw(Or())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function sp(){let e=Ge();return De(gw,()=>hw(e),e)}var dw={width:10,height:20};function dl(e){return{width:Math.max(1,Math.round(e?.width??dw.width)),height:Math.max(1,Math.round(e?.height??dw.height))}}function yI(){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 mw(){return yI()?"halfblock":"braille"}function Jo(e){return e==="none"?mw():e}function bw(e){let t=Jo(e);return t==="halfblock"||t==="braille"}function yw(e){let t=Jo(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function cw(e,t,r){switch(e){case"kitty":return{protocol:"kitty",supportsTransparency:!0,supportsAnimation:!0,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!0,supportsClear:!0};case"iterm2":return{protocol:"iterm2",supportsTransparency:!0,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"sixel":return{protocol:"sixel",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!1,supportsClear:!1,maxWidth:1024,maxHeight:1024};case"halfblock":return{protocol:"halfblock",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"braille":return{protocol:"braille",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};default:return{protocol:"none",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1}}}function kw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&_I(e)?e:null}function ww(){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 Rw(){return ll(process.env).knownCaps.preferredGraphics||null}function _w(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function kI(){let e=kw();if(e)return e;let t=ww();if(t)return t;let r=Rw();return r||_w()}function wI(e){return kw()===e||ww()===e?"env":Rw()===e?"profile":_w()===e?"env":"fallback"}function Yo(){let e=sp();if(e.manualOverride)return cw(e.manualOverride,"manual",dl(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=RI();return cw(t,wI(t),dl())}function RI(){let e=sp();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=kI()??mw()),e.detectedProtocol)}function _I(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function xw(){let e=sp();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:dl(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 xI(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 Ew(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function fi(e){return Ew(e)?e:ul(e)}function uw(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function ul(e,t={}){let r=dl(t.cellSize??Yo().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:xI(e)}}function gi(e,t={}){let r=Ew(e)?e:ul(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=uw(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=uw(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)),k=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=k*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 Qo={transmit(e,t={}){let r=fi(e),n=gi(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=AI(r),l=vw(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\\"}},EI={display(e,t={}){let{pixels:r}=fi(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=vw(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`}},vI={encode(e,t={}){let r=fi(e),n=gi(r,t),o=t.width!==void 0||t.height!==void 0?Sw({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=CI(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),k=Math.round(p/255*100),b=Math.round(g/255*100);d+=`#${c};2;${f};${k};${b}`}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 k=0;for(let b=0;b<6;b++){let v=c+b;if(v>=i)continue;let T=(v*s+f)*4,$=a[T],D=a[T+1],L=a[T+2];OI([$,D,L],l)===u&&(k|=1<<b,p=!0)}g+=String.fromCharCode(63+k)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function pw(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 rp(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 fw={render(e,t={}){let r=fi(e),n=gi(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=Sw(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=pw(i,u,l),g=pw(i,u,l+1),f=" ",k;p.a>0&&g.a>0?(f="\u2580",k=rp(p,g)):p.a>0?(f="\u2580",k=rp(p)):g.a>0&&(f="\u2584",k=rp(g)),k!==c&&(c&&(d+="\x1B[0m"),k&&(d+=k),c=k),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
|
|
119
|
+
`)}},pi=10240,SI={render(e,t={}){let{width:r,height:n,pixels:o}=fi(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&&DI(d,r,n);let c=[];for(let u=0;u<l;u++){let p="";for(let g=0;g<a;g++){let f=0,k=[[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[b,v,T]of k){let $=g*2+b,D=u*4+v;if($<r&&D<n){let L=D*r+$;d[L]<s&&(f|=1<<T)}}p+=String.fromCharCode(pi+f)}c.push(p)}return c.join(`
|
|
119
120
|
`)},invert(e){let t="";for(let r of e){if(r===`
|
|
120
|
-
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=
|
|
121
|
+
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=pi&&n<pi+256){let o=pi+(255-(n-pi));t+=String.fromCharCode(o)}else t+=r}return t}};function pl(e,t,r={}){switch(Jo(e)){case"kitty":return Qo.transmit(t,r);case"iterm2":return EI.display(t,r);case"sixel":return vI.encode(t,r);case"halfblock":return fw.render(t,r);case"braille":return SI.render(t,r);default:return fw.render(t,r)}}function fl(e){switch(Jo(e)){case"kitty":return Qo.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var np=null;function TI(){if(np)return np;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 np=e,e}function PI(e){let t=TI(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function cl(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 op(e,t){let r=new Uint8Array(8+t.length+4);cl(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 cl(r,PI(n),8+t.length),r}function AI(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);cl(s,t,0),cl(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=op("IHDR",s),a=t*4,l=new Uint8Array((1+a)*r);for(let f=0;f<r;f++){let k=f*a,b=f*(1+a);l[b]=1;for(let v=0;v<a;v++){let T=n[k+v],$=v>=4?n[k+v-4]:0;l[b+1+v]=T-$&255}}let d=bI(Buffer.from(l)),c=op("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=op("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 vw(e){return Buffer.from(e).toString("base64")}function CI(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 OI(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 DI(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 Sw(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 ap(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 gl(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,k=s?Math.max(g,s.y):g,b=s?Math.min(p+d,s.x+s.width):p+d,v=s?Math.min(g+c,s.y+s.height):g+c;b>f&&v>k&&t(i,f,k,b-f,v-k,o);let T=i.props,$=T.paddingTop??T.paddingY??T.padding??0,D=T.paddingLeft??T.paddingX??T.padding??0,L=T.borderStyle&&T.borderStyle!=="none"?1:0,W=p+D+L,K=typeof T.__scrollOffsetY=="number"&&Number.isFinite(T.__scrollOffsetY)?Math.max(0,Math.floor(T.__scrollOffsetY)):0,H=g+$+L-K,I=T.overflow==="hidden"||T.overflowX==="hidden",G=T.overflow==="hidden"||T.overflowY==="hidden",V={x:I?p:s?.x??Number.MIN_SAFE_INTEGER,y:G?g:s?.y??Number.MIN_SAFE_INTEGER,width:I?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:G?c:s?.height??Number.MAX_SAFE_INTEGER*2},ge=I||G?FI(s,V):s;for(let fe of u)gl(fe,t,W,H,i,ge)}function FI(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 Tw(e){let t=[],r=0;return gl(e,(n,o,s,i,a)=>{ap(n)&&t.push({node:n,x:o,y:s,width:i,height:a,zIndex:r++})}),t}var ip=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),ap(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){gl(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=Yo().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=Yo().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,zo(),this.inputHandler=r=>{let n=ui(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]}},II=Symbol("tuiuiu.hit-test-registry");function Xo(e){return De(II,()=>new ip,e)}function lp(e,t=0){let r=Xo();if(r.clear(),t===0){r.registerFromLayout(e);return}gl(e,(n,o,s,i,a,l)=>{ap(n)&&r.register(n,o,s+t,i,a,l)})}import Xt from"node:path";import{fileURLToPath as Ow}from"node:url";var MI=[{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() {
|
|
121
122
|
const [count, setCount] = createSignal(0);
|
|
122
123
|
useHotkeys('up', () => setCount(c => c + 1));
|
|
123
124
|
return Text({}, \`Count: \${count()}\`);
|
|
@@ -187,47 +188,47 @@ useEffect(() => {
|
|
|
187
188
|
return Box({},
|
|
188
189
|
ComputedText(() => \`Score: \${score()}\`),
|
|
189
190
|
);
|
|
190
|
-
})`,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
|
|
191
|
-
`).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=kw(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function PI(e,t){!_w()||yw.has(e)||(yw.add(e),console.warn(`[tuiuiu] ${t}`))}function ci(e){cl++;try{return e()}finally{cl=Math.max(0,cl-1)}}function xw(e,t){if(!_w()||cl>0||!Dk()||Fk()!=="component")return;let r=TI(e,[t])[0];if(!r||vI(r.filePath))return;let n=SI(r);PI(`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(). ${bw("signals-inside-component-render")}`)}var bn=null,pi=new Set,ui=!1,ip=class{_value;_subs=null;constructor(t){this._value=t}get value(){return bn&&bn._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 yn){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 yn){let r=this._subs;ui?pi.add(r):r.notify();return}let t=[...this._subs];for(let r of t)ui?pi.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof yn){this._subs===t&&(this._subs=null);return}this._subs.delete(t),this._subs.size===1?this._subs=this._subs.values().next().value:this._subs.size===0&&(this._subs=null)}}},sp=null;var ap=!1,ul=new Set;function AI(e){ul.add(e),ap||(ap=!0,queueMicrotask(CI))}function CI(){ap=!1;let e=[...ul];ul.clear(),Ew(e,t=>t.run())}function Ew(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 yn=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?AI(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=sp;sp=this._cleanups;let r=bn;bn=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{bn=r,sp=t}let n=this.dependencies,o=this._nextDeps;if(this._nextDeps=null,!this._samesDeps(n,o)){for(let s of n)o.has(s)||s.unsubscribe(this);for(let s of o)n.has(s)||s._addSub(this);this.dependencies=o}}finally{this.running=!1}}}_samesDeps(t,r){if(t.size!==r.size)return!1;for(let n of t)if(!r.has(n))return!1;return!0}_runCleanups(){let t=[];this._returnCleanup&&(t.push(this._returnCleanup),this._returnCleanup=void 0),t.push(...this._cleanups.splice(0));let r=[];for(let n of t)try{n()}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive cleanups failed")}dispose(){if(this.disposed)return;this.disposed=!0,ul.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 cr(e){xw(new Error().stack,import.meta.url);let t=new ip(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function vw(e,t={}){let r=new yn(e,t);return()=>r.dispose()}function Bt(e){let t=ui;ui=!0;try{e()}finally{if(ui=t,!t){let r=[...pi];pi.clear(),Ew(r,n=>n.notify())}}}function Qo(e){let t=bn;bn=null;try{return e()}finally{bn=t}}var OI=Symbol("tuiuiu.terminal-focus-state");function DI(){let[e,t]=cr(!0);return{read:e,write:t,listeners:new Set}}function lp(e){return De(OI,DI,e)}function ur(e){return lp(e).read()}function dp(e,t){let r=lp(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function pl(e,t){let r=lp(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function cp(e){dp(!0,e)}var Jn={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},Tw=Symbol("tuiuiu.motion-runtime-state");function Pw(e){let t=e.id===0?null:Ft(Tw,()=>Pw(Cr())),r={config:{...t?.config??Jn},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,[Ar](){Cw(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function pp(){let e=Ne();return De(Tw,()=>Pw(e),e)}function fl(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function up(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function FI(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 Aw(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function II(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=pl(Vr(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}gl(e)})))}function fp(e,t=ur(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 Sw(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:ur(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function MI(e,t){let r=ur(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=fp(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 Cw(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function Ow(e){if(e.schedulerTimer||!Aw(e))return;II(e);let t=MI(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(Vr(e.scope,()=>LI(e)),t))}function LI(e){if(e.schedulerTimer=null,!Aw(e))return;let t=Date.now(),r=ur(e.scope),n=fp(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=Sw(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(Sw(e,t,n,Math.max(s.intervalMs,i))))}Ow(e)}function gl(e){Cw(e),Ow(e)}function Dw(e){let t=pp(),r=fl(e.targetFps??t.config.targetFps,Jn.targetFps),n=fl(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:fl(e.unfocusedFps??t.config.unfocusedFps,Jn.unfocusedFps),frameBudgetMs:up(e.frameBudgetMs??t.config.frameBudgetMs,Jn.frameBudgetMs),recoveryFrames:fl(e.recoveryFrames??t.config.recoveryFrames,Jn.recoveryFrames),elevatedFrameBudgetFactor:up(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,Jn.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:up(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,Jn.criticalFrameBudgetFactor)},gl(t)}function hl(){let e=pp();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:ur(e.scope),targetFrameMs:fp(e),recommendedPresentationIntervalMs:FI(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function jI(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function BI(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 Fw(e){let t=pp();if(!Number.isFinite(e.totalMs)||e.totalMs<0)return t.qualityTier;let r=e.overBudget??e.totalMs>t.config.frameBudgetMs,n=(e.phaseOverrunCount??0)>0;return r?(t.onBudgetStreak=0,t.qualityTier==="full"?t.qualityTier="reduced":t.qualityTier==="reduced"&&(t.qualityTier="skip"),gl(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?jI(t):BI(t),gl(t),t.qualityTier}function kn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function Iw(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function Mw(e){return e?Dt({key:e.key,transforms:e.transforms}):null}function fi(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 $I(e,t){let r=fi(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function GI(e,t){let r=kn(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=fi(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function NI(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 WI(e,t,r){let n=kn(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=fi(e);return a.clip=NI(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function HI(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 UI(e,t,r){if(e.type!=="text")return e;let n=kn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*kn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!HI(e,r,o,s))return e;let i=fi(e);return i.style={...i.style,bold:!0,inverse:!0},i}function qI(e,t,r){let n=kn(t.progress);if(n<=0)return null;if(n>=1)return e;let o=fi(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),L=Math.max($,g),W=Math.min(D,f);if(W<=L)return null;let K=Math.max(0,L-$),H=Math.max(K,W-$);return o.text=No(o.text,K,H),o.x=L,o.maxWidth=Math.max(0,W-L),o.maxWidth>0&&o.text.length>0?o:null}let k=o.x,b=o.x+Math.max(1,o.width),v=Math.max(k,g),T=Math.min(b,f);return T<=v?null:(o.x=v,o.width=Math.max(0,T-v),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 KI(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"&&kn(s.opacity)<=0||s.kind==="scale"&&kn(s.scale)<=0||s.kind==="reveal"&&kn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=$I(o,s);break;case"fade":o=GI(o,s);break;case"scale":o=WI(o,s,r);break;case"shimmer":o=UI(o,s,r);break;case"reveal":o=qI(o,s,r);break}}return o}function Lw(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=KI(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var VI=1,zI=Symbol("tuiuiu.frame-runtime-state");function hp(e){return De(zI,()=>({committedFrameSnapshot:null}),e)}var JI=new Set(["__terminalImage","__compositor"]),YI=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),QI=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),gp={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},ml=new WeakMap,Rn=new Map,$w=4096;function wn(){return typeof performance<"u"?performance.now():Date.now()}function XI(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 ZI(e){return{eagerHitTargets:e?.eagerHitTargets??gp.eagerHitTargets,eagerQueries:e?.eagerQueries??gp.eagerQueries,eagerWarnings:e?.eagerWarnings??gp.eagerWarnings}}function eM(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,k=typeof f.id=="string"?f.id:void 0;if(k&&k.length>0){let L=t.get(k)??[];L.push({id:k,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(k,L)}let b=f.paddingTop??f.paddingY??f.padding??0,v=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+v+T,D=g+b+T;for(let L of u)r(L,$,D)};return r(e),t}function tM(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 rM(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,k=typeof f.id=="string"?f.id:void 0;if(k&&k.length>0&&tM(f.__scrollQuery)){let L=t.get(k)??[];L.push({id:k,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(k,L)}let b=f.paddingTop??f.paddingY??f.padding??0,v=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+v+T,D=g+b+T;for(let L of u)r(L,$,D)};return r(e),t}function nM(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 Xo(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function jw(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 oM(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 sM(e,t,r,n,o){return{getElement:s=>{let i=jw(e,s);return i.status==="missing"?Xo(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"&&Xo(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=jw(e,s);return!i.found||!i.bounds?(i.status==="missing"?Xo(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"&&Xo(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=oM(t,s);return i.status==="missing"?Xo(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"&&Xo(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 iM(e,t,r,n=[],o){let s=n.length>0?Dt(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function aM(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function lM(e,t){let r=e.type==="text"?QI:YI,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Dt({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:JI})}function dM(e,t,r,n,o,s){return Dt([t,r,Mw(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function cM(e,t,r){if(!Ja(e.node))return;let n=ml.get(e);if(!n)return;if(n.cacheKey!==t){mn(e.node,Pe.LAYOUT);return}let o=r();if(n.fingerprint!==o){mn(e.node,Pe.CONTENT|Pe.STYLE);return}if(n.childRefs.length!==e.node.children.length){mn(e.node,Pe.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){mn(e.node,Pe.CHILDREN);return}return n}function Bw(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return ml.set(e,i),i}function uM(e){return e.map((t,r)=>({...t,order:r}))}function Gw(e,t){return t?`${e}|motion:${hl().qualityTier}`:e}function pM(){let e=Math.max(1,Math.ceil($w*.1)),t=Rn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;Rn.delete(n.value)}}function fM(e){return Rn.get(e)}function gM(e,t,r){let n=Rn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!Rn.has(e)&&Rn.size>=$w&&pM(),Rn.set(e,o),o}function hM(e,t,r){let n=Rn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function mM(e,t){for(let r of t)e.push(r)}function bM(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function yM(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function Nw(e){let t=e.props;return Iw(t?.__compositor)?t.__compositor:null}function Ww(e,t=new Map){let r=Nw(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)Ww(n,t);return t}function kM(e,t,r,n,o,s){if(!yM(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 k=s.__terminalImage,b=zo(),v=bM(k.source)?k.source:il(k.source,{cellSize:b.cellSize}),T=k.options?.protocol??b.protocol,$=Vo(T),D=di(v,{...k.options,width:k.options?.width??g,height:k.options?.height??f}),L=Math.max(0,Math.min(g,D.renderColumns)),W=Math.max(0,Math.min(f,D.renderRows));return L<=0||W<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:L,height:W,instanceKey:k.protocolState?.instanceKey,kittyImageId:k.protocolState?.kittyImageId,source:v,fit:D.fit,threshold:k.options?.threshold,dither:k.options?.dither,preserveAspectRatio:k.options?.preserveAspectRatio,protocol:$,cellRender:iw($),protocolState:k.protocolState}}function wM(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 Hw(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,k=Nw(i),b=k?[...o,k.key]:[...o],v=k!==null,T=kM(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=iM(t,r,n,b,s)+$,L,W=()=>(L===void 0&&(L=lM(i,T)),L),K=cM(e,D,W);if(K)return Qs("draw"),{commands:K.commands,hasCompositor:K.hasCompositor,subtreeSignature:K.subtreeSignature};let H=W(),I=typeof f.id=="string"?f.id:void 0,N=typeof f.backgroundColor=="string"?f.backgroundColor:void 0,V=[],ge=[],fe=f.paddingTop??f.paddingY??f.padding??0,de=f.paddingLeft??f.paddingX??f.padding??0,te=f.borderStyle&&f.borderStyle!=="none"?1:0,me=p+de+te,Oe=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,ve=g+fe+te-Oe,ke=N??n,J=f.overflow==="hidden"||f.overflowX==="hidden",ie=f.overflow==="hidden"||f.overflowY==="hidden",Re={x:J?p:s?.x??Number.MIN_SAFE_INTEGER,y:ie?g:s?.y??Number.MIN_SAFE_INTEGER,width:J?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:ie?c:s?.height??Number.MAX_SAFE_INTEGER*2},Ae=J||ie?aM(s,Re):s;for(let oe of u){let _e=Hw(oe,me,ve,ke,b,Ae);V.push(_e),v||=_e.hasCompositor,ge.push(_e.subtreeSignature)}let Ee=dM(e,D,H,k,b,ge),we=fM(Ee);if(we){Qs("draw");let oe=Bw(e,D,H,we.commands,we.hasCompositor,Ee),_e=Gw(Ee,we.hasCompositor);return we.materialized&&we.materializedSignature===_e&&(oe.materialized=we.materialized,oe.materializedSignature=_e),{commands:oe.commands,hasCompositor:oe.hasCompositor,subtreeSignature:Ee}}let Se=[];if(i.type==="box"&&(N||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let _e=f.borderTop!==void 0||f.borderBottom!==void 0||f.borderLeft!==void 0||f.borderRight!==void 0?{top:f.borderTop??!0,bottom:f.borderBottom??!0,left:f.borderLeft??!0,right:f.borderRight??!0}:void 0;Se.push({type:"box",id:I,nodeType:i.type,compositorKeys:b.length>0?[...b]:void 0,x:p,y:g,width:d,height:c,backgroundColor:N,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 oe=String(f.children??""),_e=Math.max(1,xe(oe)),Fe=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>oe),f.__splitDivider.bottom].join(`
|
|
191
|
+
})`,rightExample:"// Keep hooks at the top level of the component\nComputedText(() => `Score: ${score()}`),\nComputed(() => {\n // Only use plain VNode constructors inside Computed\n return Box({}, Text({}, `Lives: ${lives()}`));\n})"}];function LI(e){let t=MI.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function jI(e){return`docs/resources/common-mistakes.md#${LI(e).anchor}`}function Pw(e){return`See ${jI(e)} or tuiuiu://guide/common-mistakes.`}var Aw=new Set,Dw=Xt.normalize(Ow(import.meta.url)),BI=Xt.dirname(Xt.dirname(Dw)),$I=Xt.dirname(BI),hl=0;function Fw(){return process.env.NODE_ENV!=="production"}function Cw(e){return e.startsWith("file://")?Xt.normalize(Ow(e)):Xt.normalize(e)}function NI(e){let t=Xt.normalize(e);return t.startsWith($I)?t.includes(`${Xt.sep}src${Xt.sep}`)||t.includes(`${Xt.sep}dist${Xt.sep}`):!1}function GI(e){let t=Xt.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function WI(e,t=[]){if(!e)return[];let r=new Set([Dw,...t.map(Cw)]),n=e.split(`
|
|
192
|
+
`).slice(1),o=[];for(let s of n){let i=s.trim(),a=i.match(/\((.+):(\d+):(\d+)\)$/)??i.match(/(?:^|\s)at (.+):(\d+):(\d+)$/);if(!a)continue;let l=Cw(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function HI(e,t){!Fw()||Aw.has(e)||(Aw.add(e),console.warn(`[tuiuiu] ${t}`))}function hi(e){hl++;try{return e()}finally{hl=Math.max(0,hl-1)}}function Iw(e,t){if(!Fw()||hl>0||!Hk()||Uk()!=="component")return;let r=WI(e,[t])[0];if(!r||NI(r.filePath))return;let n=GI(r);HI(`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(). ${Pw("signals-inside-component-render")}`)}var yn=null,bi=new Set,mi=!1,cp=class{_value;_subs=null;constructor(t){this._value=t}get value(){return yn&&yn._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 kn){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 kn){let r=this._subs;mi?bi.add(r):r.notify();return}let t=[...this._subs];for(let r of t)mi?bi.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof kn){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)}}},dp=null;var up=!1,ml=new Set;function UI(e){ml.add(e),up||(up=!0,queueMicrotask(qI))}function qI(){up=!1;let e=[...ml];ml.clear(),Mw(e,t=>t.run())}function Mw(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 kn=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?UI(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=dp;dp=this._cleanups;let r=yn;yn=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{yn=r,dp=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,ml.delete(this),bi.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 fr(e){Iw(new Error().stack,import.meta.url);let t=new cp(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function Lw(e,t={}){let r=new kn(e,t);return()=>r.dispose()}function Bt(e){let t=mi;mi=!0;try{e()}finally{if(mi=t,!t){let r=[...bi];bi.clear(),Mw(r,n=>n.notify())}}}function Zo(e){let t=yn;yn=null;try{return e()}finally{yn=t}}var KI=Symbol("tuiuiu.terminal-focus-state");function VI(){let[e,t]=fr(!0);return{read:e,write:t,listeners:new Set}}function pp(e){return De(KI,VI,e)}function gr(e){return pp(e).read()}function fp(e,t){let r=pp(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function bl(e,t){let r=pp(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function gp(e){fp(!0,e)}var Jn={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},Bw=Symbol("tuiuiu.motion-runtime-state");function $w(e){let t=e.id===0?null:Ft(Bw,()=>$w(Or())),r={config:{...t?.config??Jn},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,[Cr](){Gw(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function mp(){let e=Ge();return De(Bw,()=>$w(e),e)}function yl(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function hp(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function zI(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 Nw(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function JI(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=bl(Jr(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}kl(e)})))}function bp(e,t=gr(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 jw(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:gr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function YI(e,t){let r=gr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=bp(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 Gw(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function Ww(e){if(e.schedulerTimer||!Nw(e))return;JI(e);let t=YI(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(Jr(e.scope,()=>QI(e)),t))}function QI(e){if(e.schedulerTimer=null,!Nw(e))return;let t=Date.now(),r=gr(e.scope),n=bp(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=jw(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(jw(e,t,n,Math.max(s.intervalMs,i))))}Ww(e)}function kl(e){Gw(e),Ww(e)}function Hw(e){let t=mp(),r=yl(e.targetFps??t.config.targetFps,Jn.targetFps),n=yl(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:yl(e.unfocusedFps??t.config.unfocusedFps,Jn.unfocusedFps),frameBudgetMs:hp(e.frameBudgetMs??t.config.frameBudgetMs,Jn.frameBudgetMs),recoveryFrames:yl(e.recoveryFrames??t.config.recoveryFrames,Jn.recoveryFrames),elevatedFrameBudgetFactor:hp(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,Jn.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:hp(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,Jn.criticalFrameBudgetFactor)},kl(t)}function wl(){let e=mp();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:gr(e.scope),targetFrameMs:bp(e),recommendedPresentationIntervalMs:zI(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function XI(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function ZI(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 Uw(e){let t=mp();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"),kl(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?XI(t):ZI(t),kl(t),t.qualityTier}function wn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function qw(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function Kw(e){return e?Dt({key:e.key,transforms:e.transforms}):null}function yi(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 eM(e,t){let r=yi(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function tM(e,t){let r=wn(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=yi(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function rM(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 nM(e,t,r){let n=wn(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=yi(e);return a.clip=rM(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function oM(e,t,r,n){let o=e.x;return(e.type==="text"?e.x+Math.max(1,e.maxWidth):e.x+Math.max(1,e.width))>r&&o<n&&e.y>=t.y&&e.y<t.y+t.height}function sM(e,t,r){if(e.type!=="text")return e;let n=wn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*wn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!oM(e,r,o,s))return e;let i=yi(e);return i.style={...i.style,bold:!0,inverse:!0},i}function iM(e,t,r){let n=wn(t.progress);if(n<=0)return null;if(n>=1)return e;let o=yi(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),L=Math.max($,g),W=Math.min(D,f);if(W<=L)return null;let K=Math.max(0,L-$),H=Math.max(K,W-$);return o.text=Ho(o.text,K,H),o.x=L,o.maxWidth=Math.max(0,W-L),o.maxWidth>0&&o.text.length>0?o:null}let k=o.x,b=o.x+Math.max(1,o.width),v=Math.max(k,g),T=Math.min(b,f);return T<=v?null:(o.x=v,o.width=Math.max(0,T-v),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 aM(e,t,r){let n=wl().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&wn(s.opacity)<=0||s.kind==="scale"&&wn(s.scale)<=0||s.kind==="reveal"&&wn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=eM(o,s);break;case"fade":o=tM(o,s);break;case"scale":o=nM(o,s,r);break;case"shimmer":o=sM(o,s,r);break;case"reveal":o=iM(o,s,r);break}}return o}function Vw(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=aM(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var lM=1,dM=Symbol("tuiuiu.frame-runtime-state");function kp(e){return De(dM,()=>({committedFrameSnapshot:null}),e)}var cM=new Set(["__terminalImage","__compositor"]),uM=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),pM=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),yp={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},Rl=new WeakMap,_n=new Map,Yw=4096;function Rn(){return typeof performance<"u"?performance.now():Date.now()}function fM(e){return{width:e.width,height:e.height,pointer:e.pointer?{...e.pointer}:void 0,scrollDelta:e.scrollDelta?{...e.scrollDelta}:void 0,deltaTimeMs:e.deltaTimeMs}}function gM(e){return{eagerHitTargets:e?.eagerHitTargets??yp.eagerHitTargets,eagerQueries:e?.eagerQueries??yp.eagerQueries,eagerWarnings:e?.eagerWarnings??yp.eagerWarnings}}function hM(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,k=typeof f.id=="string"?f.id:void 0;if(k&&k.length>0){let L=t.get(k)??[];L.push({id:k,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(k,L)}let b=f.paddingTop??f.paddingY??f.padding??0,v=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+v+T,D=g+b+T;for(let L of u)r(L,$,D)};return r(e),t}function mM(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 bM(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,k=typeof f.id=="string"?f.id:void 0;if(k&&k.length>0&&mM(f.__scrollQuery)){let L=t.get(k)??[];L.push({id:k,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(k,L)}let b=f.paddingTop??f.paddingY??f.padding??0,v=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+v+T,D=g+b+T;for(let L of u)r(L,$,D)};return r(e),t}function yM(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 es(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function zw(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r;return{id:t,status:"found",found:!0,ambiguous:!1,bounds:n.bounds,nodeType:n.nodeType}}function kM(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r,o=n.metadata.getViewport(),s=n.metadata.getContent(),i=n.metadata.getOffset(),a=n.metadata.getMaxOffset();return{id:t,status:"found",found:!0,ambiguous:!1,nodeType:n.nodeType,viewport:{width:o.width??n.bounds.width,height:o.height??n.bounds.height},content:{width:s.width??o.width??n.bounds.width,height:s.height??o.height??n.bounds.height},offset:i,maxOffset:a,controls:{scrollTo:l=>n.metadata.scrollTo(l),scrollBy:l=>n.metadata.scrollBy(l),scrollToStart:()=>n.metadata.scrollToStart(),scrollToEnd:()=>n.metadata.scrollToEnd()}}}function wM(e,t,r,n,o){return{getElement:s=>{let i=zw(e,s);return i.status==="missing"?es(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"&&es(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=zw(e,s);return!i.found||!i.bounds?(i.status==="missing"?es(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"&&es(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" matched multiple committed elements in the current frame.`}),!1):r.pointer.x>=i.bounds.x&&r.pointer.x<i.bounds.x+i.bounds.width&&r.pointer.y>=i.bounds.y&&r.pointer.y<i.bounds.y+i.bounds.height},getScrollContainer:s=>{let i=kM(t,s);return i.status==="missing"?es(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"&&es(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 RM(e,t,r,n=[],o){let s=n.length>0?Dt(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function _M(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function xM(e,t){let r=e.type==="text"?pM:uM,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Dt({type:e.type,props:o,image:t?{protocol:t.protocol,hash:t.source.hash,width:t.width,height:t.height,instanceKey:t.instanceKey,kittyImageId:t.kittyImageId,fit:t.fit,threshold:t.threshold,dither:t.dither,preserveAspectRatio:t.preserveAspectRatio}:null},{ignoreKeys:cM})}function EM(e,t,r,n,o,s){return Dt([t,r,Kw(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function vM(e,t,r){if(!el(e.node))return;let n=Rl.get(e);if(!n)return;if(n.cacheKey!==t){bn(e.node,Pe.LAYOUT);return}let o=r();if(n.fingerprint!==o){bn(e.node,Pe.CONTENT|Pe.STYLE);return}if(n.childRefs.length!==e.node.children.length){bn(e.node,Pe.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){bn(e.node,Pe.CHILDREN);return}return n}function Jw(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return Rl.set(e,i),i}function SM(e){return e.map((t,r)=>({...t,order:r}))}function Qw(e,t){return t?`${e}|motion:${wl().qualityTier}`:e}function TM(){let e=Math.max(1,Math.ceil(Yw*.1)),t=_n.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;_n.delete(n.value)}}function PM(e){return _n.get(e)}function AM(e,t,r){let n=_n.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!_n.has(e)&&_n.size>=Yw&&TM(),_n.set(e,o),o}function CM(e,t,r){let n=_n.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function OM(e,t){for(let r of t)e.push(r)}function DM(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function FM(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function Xw(e){let t=e.props;return qw(t?.__compositor)?t.__compositor:null}function Zw(e,t=new Map){let r=Xw(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)Zw(n,t);return t}function IM(e,t,r,n,o,s){if(!FM(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 k=s.__terminalImage,b=Yo(),v=DM(k.source)?k.source:ul(k.source,{cellSize:b.cellSize}),T=k.options?.protocol??b.protocol,$=Jo(T),D=gi(v,{...k.options,width:k.options?.width??g,height:k.options?.height??f}),L=Math.max(0,Math.min(g,D.renderColumns)),W=Math.max(0,Math.min(f,D.renderRows));return L<=0||W<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:L,height:W,instanceKey:k.protocolState?.instanceKey,kittyImageId:k.protocolState?.kittyImageId,source:v,fit:D.fit,threshold:k.options?.threshold,dither:k.options?.dither,preserveAspectRatio:k.options?.preserveAspectRatio,protocol:$,cellRender:bw($),protocolState:k.protocolState}}function MM(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 eR(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,k=Xw(i),b=k?[...o,k.key]:[...o],v=k!==null,T=IM(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=RM(t,r,n,b,s)+$,L,W=()=>(L===void 0&&(L=xM(i,T)),L),K=vM(e,D,W);if(K)return ri("draw"),{commands:K.commands,hasCompositor:K.hasCompositor,subtreeSignature:K.subtreeSignature};let H=W(),I=typeof f.id=="string"?f.id:void 0,G=typeof f.backgroundColor=="string"?f.backgroundColor:void 0,V=[],ge=[],fe=f.paddingTop??f.paddingY??f.padding??0,de=f.paddingLeft??f.paddingX??f.padding??0,te=f.borderStyle&&f.borderStyle!=="none"?1:0,me=p+de+te,Oe=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,ve=g+fe+te-Oe,ke=G??n,J=f.overflow==="hidden"||f.overflowX==="hidden",ie=f.overflow==="hidden"||f.overflowY==="hidden",Re={x:J?p:s?.x??Number.MIN_SAFE_INTEGER,y:ie?g:s?.y??Number.MIN_SAFE_INTEGER,width:J?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:ie?c:s?.height??Number.MAX_SAFE_INTEGER*2},Ae=J||ie?_M(s,Re):s;for(let oe of u){let _e=eR(oe,me,ve,ke,b,Ae);V.push(_e),v||=_e.hasCompositor,ge.push(_e.subtreeSignature)}let Ee=EM(e,D,H,k,b,ge),we=PM(Ee);if(we){ri("draw");let oe=Jw(e,D,H,we.commands,we.hasCompositor,Ee),_e=Qw(Ee,we.hasCompositor);return we.materialized&&we.materializedSignature===_e&&(oe.materialized=we.materialized,oe.materializedSignature=_e),{commands:oe.commands,hasCompositor:oe.hasCompositor,subtreeSignature:Ee}}let Se=[];if(i.type==="box"&&(G||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let _e=f.borderTop!==void 0||f.borderBottom!==void 0||f.borderLeft!==void 0||f.borderRight!==void 0?{top:f.borderTop??!0,bottom:f.borderBottom??!0,left:f.borderLeft??!0,right:f.borderRight??!0}:void 0;Se.push({type:"box",id:I,nodeType:i.type,compositorKeys:b.length>0?[...b]:void 0,x:p,y:g,width:d,height:c,backgroundColor:G,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 oe=String(f.children??""),_e=Math.max(1,xe(oe)),Fe=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>oe),f.__splitDivider.bottom].join(`
|
|
192
193
|
`):f.__divider==="horizontal"?oe.repeat(Math.ceil(d/_e)):f.__divider==="vertical"?Array.from({length:Math.max(0,Math.floor(c))},()=>oe).join(`
|
|
193
|
-
`):oe;Se.push({type:"text",id:I,nodeType:i.type,compositorKeys:b.length>0?[...b]:void 0,x:p,y:f.__splitDivider?g-1:g,maxWidth:d,text:Fe,style:{color:f.color,backgroundColor:f.backgroundColor,bold:f.bold,dim:f.dim,italic:f.italic,underline:f.underline,strikethrough:f.strikethrough,inverse:f.inverse,wrap:f.wrap},inheritedBackgroundColor:n,clip:s,...f.__prebuiltAnsi?{prebuiltAnsi:!0}:void 0})}T&&Se.push({...T,compositorKeys:b.length>0?[...b]:void 0,clip:s});for(let oe of V)mM(Se,oe.commands);Kn("draw");let ce=Bw(e,D,H,Se,v,Ee);return gM(Ee,ce.commands,v),{commands:ce.commands,hasCompositor:v,subtreeSignature:Ee}}function RM(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 _M(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=RM(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function xM(e){let t=Hw(e),r=ml.get(e),n=Gw(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=uM(t.commands),s=t.hasCompositor?Lw(o,Ww(e)):o,i=_M(s),a=ml.get(e);return a&&(a.materialized=i,a.materializedSignature=n),hM(t.subtreeSignature,i,n),i}function Uw(e,t,r={}){let n=ZI(r),o=XI(t),s=Date.now(),i=wn(),a=wn(),l=Ek(e,o.width,o.height),d=wn()-a,c=wn(),u=xM(l),p=wM(u),g=wn()-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}},k=wk();f.structural.layoutReuseCount=k.layoutReuseCount,f.structural.layoutFreshCount=k.layoutFreshCount,f.structural.drawReuseCount=k.drawReuseCount,f.structural.drawFreshCount=k.drawFreshCount,f.structural.invalidationEscalationCount=k.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=k.absorbedLayoutDirtyCount;let b,v,T,$=[],D=!1,L=()=>(b||(b=eM(l)),b),W=()=>(v||(v=rM(l)),v),K=()=>{if(!T){let fe=wn();T=mw(l),f.phases.hitTargetRegistrationMs=wn()-fe,f.structural.hitTargetCount=T.length}return T},H=()=>(D||($.push(...nM(L())),D=!0,f.structural.warningCount=$.length),$);n.eagerQueries&&(L(),W()),n.eagerWarnings&&H(),n.eagerHitTargets&&K();let I=sM(L,W,o,$,f),N=Date.now(),V=wn()-i;return f.frameEndAt=N,f.totalFrameMs=V,{info:{frameId:VI++,committedAt:N,viewport:{width:o.width,height:o.height}},input:o,root:e,layout:l,drawCommands:u,reservedRegions:p,queries:I,metrics:f,get hitTargets(){return K()},get warnings(){return H()}}}function qw(e,t){hp(t).committedFrameSnapshot=e}function Kw(e){return hp(e).committedFrameSnapshot}function Vw(e){hp(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 Tt(e,t,r){e.metrics.structural[t]=r}function zw(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 Yw=Symbol("tuiuiu.progressive-runtime-state");function Jw(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function EM(e){if(e.id===0)return Jw();let t=Ft(Yw,Jw);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function mp(){let e=Ne();return De(Yw,()=>EM(e),e)}function Qw(){return mp().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function Xw(){return mp().capabilityOverrides}function bp(){return mp().progressiveVersion}function vM(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=nl(t),a=Qk(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",k=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",b=l.strikethrough||k,v=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,L=Qw(),W={unicode:u,colors:p,mouse:g,trueColor:f,italic:k,strikethrough:b,hyperlinks:v,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:L},K=Xw();return K&&Object.assign(W,K),W}var Zw=Symbol("tuiuiu.capability-runtime-state");function eR(e){let t=e.id===0?"auto":Qo(Ft(Zw,()=>eR(Cr())).renderModeSignal),[r,n]=cr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Ar](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function gi(e){let t=Ne(e);return De(Zw,()=>eR(t),t)}function tR(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function SM(e){return vM({env:e.source.env,stdout:e.source.stdout??process.stdout})}function bl(e){return e.cachedCapabilities=SM(e),e.cachedProgressiveVersion=bp(),e.cachedCapabilities}function rR(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{bl(e);let r=tR(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function nR(e){let t=gi(),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,rR(t)}function Ir(){let e=gi(),t=bp();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&bl(e),e.cachedCapabilities??bl(e)}function oR(){return bl(gi())}function sR(){return tR(gi())}function iR(e){let t=gi();return t.resizeHandlers.add(e),rR(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var aR={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},TM={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},PM=512,Yn=new Map,lR=4e6;function Mr(){return{char:" ",attrs:{}}}function kp(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 AM(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&&kp(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function dR(e,t){return e.char===t.char&&kp(e.fg,t.fg)&&kp(e.bg,t.bg)&&AM(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function yl(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var Lr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>lR)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${lR} 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(Mr());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||xe(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=Mr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,xe(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=Mr(),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]=Mr(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&xe(s.char)>1&&(this.cells[r][t-1]=Mr(),this.addDamage(t-1,r,1,1))}return}let o=xe(n.char);if(!(o<=1)){this.cells[r][t]=Mr(),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]=Mr(),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=xe(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=qn(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
|
|
194
|
-
`)continue;if(a>=this.width)break;let c=xe(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(xe(o)!==1){let c=xe(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(xe(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]=
|
|
195
|
-
`)}function Rp(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=pR(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+(MM(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function wl(e,t){let r=t??Ir().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 LM="\x1B[?2026h",jM="\x1B[?2026l";function fR(e){let t=e??Ir();return t.synchronizedOutput?wl(LM,t.multiplexer):""}function gR(e){let t=e??Ir();return t.synchronizedOutput?wl(jM,t.multiplexer):""}var _p={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 mR="\x1B[?25h",BM="\x1B[?25l",Rl=!1,hR=!1,$M=null,xp=null;function Ep(e){return"isTTY"in e&&!!e.isTTY}function GM(){let e=xp??process.stdout;Ep(e)&&Rl&&(e.write(mR),Rl=!1)}function NM(){hR||(hR=!0,$M=Jr(GM))}function Zo(e=process.stdout){Ep(e)&&(xp=e,Rl=!1,e.write(mR))}function es(e=process.stdout){Ep(e)&&(xp=e,NM(),Rl=!0,e.write(BM))}var WM="#ffffff",HM="#000000",UM="transparent",y={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},qM={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},KM={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},h={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},He={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},ae={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},VM={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},ue={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},zM={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},JM={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},pe={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},YM={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},QM={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"},XM={50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},ee={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},ZM={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},eL={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},tL={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},rL={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},nL={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},oL={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},bR={white:WM,black:HM,transparent:UM,slate:y,gray:qM,zinc:KM,neutral:h,stone:He,red:ae,orange:VM,amber:ue,yellow:zM,lime:JM,green:pe,emerald:YM,teal:QM,cyan:Xe,sky:XM,blue:ee,indigo:ZM,violet:eL,purple:tL,fuchsia:rL,pink:nL,rose:oL};var Z={primary:{50:ee[50],100:ee[100],200:ee[200],300:ee[300],400:ee[400],500:ee[500],600:ee[600],700:ee[700],800:ee[800],900:ee[900]},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},warning:{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]},danger:{50:ae[50],100:ae[100],200:ae[200],300:ae[300],400:ae[400],500:ae[500],600:ae[600],700:ae[700],800:ae[800],900:ae[900]},neutral:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]}},vp={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:Z,background:{lowest:y[950],base:y[900],subtle:y[800],surface:y[700],raised:y[600],elevated:y[500],popover:y[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:y[50],secondary:y[200],muted:y[400],disabled:y[500],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.6)",subtle:"rgba(255, 255, 255, 0.35)"}},accents:{positive:Z.success[500],warning:Z.warning[500],critical:Z.danger[500],info:Xe[500],highlight:Z.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:Z.primary[400],ring:{color:Z.primary[500],width:2}},disabled:{opacity:.4,bg:y[800],fg:y[500]},selected:{bg:Z.primary[700],fg:"#ffffff"}},borders:{default:y[700],subtle:y[800],strong:y[500],accent:Z.primary[500],danger:Z.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Z.primary[500],fg:"#ffffff",hoverBg:Z.primary[400],activeBg:Z.primary[600],border:"transparent"},secondary:{bg:y[700],fg:y[50],hoverBg:y[600],activeBg:y[800],border:"transparent"},outline:{bg:"transparent",fg:Z.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:Z.primary[500]},ghost:{bg:"transparent",fg:y[50],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:"transparent"}},panel:{bg:y[800],headerBg:y[700],footerBg:y[700],border:y[700]},menu:{bg:y[800],border:y[700],item:{fg:y[50],hoverBg:y[700],activeBg:Z.primary[700],selectedBg:Z.primary[600],disabledFg:y[500]}},tabs:{bg:y[800],border:y[700],tab:{fg:y[400],activeFg:y[50],activeBg:y[700],hoverFg:y[200],indicator:Z.primary[500]}},dropdown:{bg:y[800],border:y[700],item:{fg:y[50],hoverBg:y[700],selectedBg:Z.primary[700]}},input:{bg:y[800],fg:y[50],placeholder:y[500],border:y[700],focusBorder:Z.primary[500],invalidBorder:Z.danger[500]},checkbox:{bg:y[800],border:y[600],checkColor:"#ffffff",checkedBg:Z.primary[500]},radio:{bg:y[800],dotColor:Z.primary[500],border:y[600],checkedBorder:Z.primary[500]},tooltip:{bg:y[700],fg:y[50]},modal:{bg:y[800],border:y[700],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:y[700],fg:y[50]},success:{bg:Z.success[500],fg:"#ffffff"},warning:{bg:Z.warning[500],fg:y[900]},danger:{bg:Z.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:y[800],selectedBg:Z.primary[700],fg:y[50]}},header:{default:{bg:y[800],fg:y[50],titleFg:y[50],subtitleFg:y[400],border:y[700]},primary:{bg:Z.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Z.primary[700]},secondary:{bg:y[700],fg:y[50],titleFg:y[50],subtitleFg:y[400],border:y[600]},success:{bg:Z.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Z.success[700]},warning:{bg:Z.warning[500],fg:y[900],titleFg:y[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Z.warning[600]},danger:{bg:Z.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Z.danger[700]}},statusbar:{default:{bg:y[800],fg:y[400]},primary:{bg:Z.primary[600],fg:"#ffffff"},info:{bg:Xe[600],fg:"#ffffff"},success:{bg:Z.success[600],fg:"#ffffff"},warning:{bg:Z.warning[500],fg:y[900]},danger:{bg:Z.danger[600],fg:"#ffffff"}},page:{default:{bg:y[900],titleFg:y[50],subtitleFg:y[400],border:y[700]},primary:{bg:y[900],titleFg:Z.primary[400],subtitleFg:y[400],border:Z.primary[700]},secondary:{bg:y[900],titleFg:y[200],subtitleFg:y[500],border:y[700]}},appshell:{bg:y[950],dividerFg:y[700],sidebarBg:y[900],asideBg:y[900]},collapsible:{default:{headerBg:y[800],headerFg:y[50],contentBg:y[900],border:y[700],iconFg:y[400]},primary:{headerBg:Z.primary[700],headerFg:"#ffffff",contentBg:y[900],border:Z.primary[600],iconFg:"rgba(255, 255, 255, 0.8)"},secondary:{headerBg:y[700],headerFg:y[50],contentBg:y[800],border:y[600],iconFg:y[400]}},commandPalette:{bg:y[800],border:y[700],inputBg:y[900],inputFg:y[50],inputPlaceholder:y[500],itemFg:y[50],itemHoverBg:y[700],itemSelectedBg:Z.primary[700],itemSelectedFg:"#ffffff",highlightFg:Z.primary[400],categoryFg:y[500]},splitPanel:{bg:y[900],dividerBg:y[700],dividerHoverBg:y[600],dividerActiveBg:Z.primary[500],border:y[700],titleFg:y[400]},toast:{success:{bg:Z.success[900],fg:Z.success[100],border:Z.success[600],iconFg:Z.success[400]},error:{bg:Z.danger[900],fg:Z.danger[100],border:Z.danger[600],iconFg:Z.danger[400]},warning:{bg:Z.warning[900],fg:Z.warning[100],border:Z.warning[500],iconFg:Z.warning[400]},info:{bg:Xe[900],fg:Xe[100],border:Xe[600],iconFg:Xe[400]}},window:{default:{bg:y[900],fg:y[100],titleBarBg:y[800],titleBarFg:y[100],border:y[700],buttonFg:y[400],closeFg:Z.danger[500]},primary:{bg:y[900],fg:y[100],titleBarBg:Z.primary[600],titleBarFg:"#ffffff",border:Z.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:y[900],fg:y[100],titleBarBg:Z.success[600],titleBarFg:"#ffffff",border:Z.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:y[900],fg:y[100],titleBarBg:Z.warning[500],titleBarFg:y[900],border:Z.warning[600],buttonFg:y[700],closeFg:y[900]},danger:{bg:y[900],fg:y[100],titleBarBg:Z.danger[600],titleBarFg:"#ffffff",border:Z.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Y={primary:{50:ee[50],100:ee[100],200:ee[200],300:ee[300],400:ee[400],500:ee[500],600:ee[600],700:ee[700],800:ee[800],900:ee[900]},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},warning:{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]},danger:{50:ae[50],100:ae[100],200:ae[200],300:ae[300],400:ae[400],500:ae[500],600:ae[600],700:ae[700],800:ae[800],900:ae[900]},neutral:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]}},yR={name:"light",mode:"light",meta:{version:"1.0.0",author:"tuiuiu",description:"Light background theme with blue primary and slate neutrals"},palette:Y,background:{lowest:y[100],base:"#ffffff",subtle:y[50],surface:"#ffffff",raised:y[100],elevated:y[200],popover:"#ffffff",overlay:"rgba(0, 0, 0, 0.5)"},foreground:{primary:y[950],secondary:y[700],muted:y[500],disabled:y[400],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.8)",subtle:"rgba(255, 255, 255, 0.6)"}},accents:{positive:pe[600],warning:ue[600],critical:ae[600],info:Xe[600],highlight:Y.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Y.primary[600],ring:{color:Y.primary[600],width:2}},disabled:{opacity:.4,bg:y[100],fg:y[400]},selected:{bg:Y.primary[100],fg:Y.primary[900]}},borders:{default:y[200],subtle:y[100],strong:y[300],accent:Y.primary[600],danger:Y.danger[600]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Y.primary[600],fg:"#ffffff",hoverBg:Y.primary[700],activeBg:Y.primary[800],border:"transparent"},secondary:{bg:y[100],fg:y[900],hoverBg:y[200],activeBg:y[300],border:"transparent"},outline:{bg:"transparent",fg:Y.primary[600],hoverBg:Y.primary[50],activeBg:Y.primary[100],border:Y.primary[600]},ghost:{bg:"transparent",fg:y[900],hoverBg:"rgba(0, 0, 0, 0.05)",activeBg:"rgba(0, 0, 0, 0.1)",border:"transparent"}},panel:{bg:"#ffffff",headerBg:y[50],footerBg:y[50],border:y[200]},menu:{bg:"#ffffff",border:y[200],item:{fg:y[900],hoverBg:y[100],activeBg:Y.primary[100],selectedBg:Y.primary[50],disabledFg:y[400]}},tabs:{bg:"#ffffff",border:y[200],tab:{fg:y[600],activeFg:y[900],activeBg:"#ffffff",hoverFg:y[900],indicator:Y.primary[600]}},dropdown:{bg:"#ffffff",border:y[200],item:{fg:y[900],hoverBg:y[100],selectedBg:Y.primary[100]}},input:{bg:"#ffffff",fg:y[900],placeholder:y[400],border:y[300],focusBorder:Y.primary[600],invalidBorder:Y.danger[600]},checkbox:{bg:"#ffffff",border:y[300],checkColor:"#ffffff",checkedBg:Y.primary[600]},radio:{bg:"#ffffff",dotColor:Y.primary[600],border:y[300],checkedBorder:Y.primary[600]},tooltip:{bg:y[900],fg:y[50]},modal:{bg:"#ffffff",border:y[200],overlay:"rgba(0, 0, 0, 0.5)"},badge:{default:{bg:y[100],fg:y[700]},success:{bg:Y.success[100],fg:Y.success[800]},warning:{bg:Y.warning[100],fg:Y.warning[800]},danger:{bg:Y.danger[100],fg:Y.danger[800]}},list:{item:{bg:"transparent",hoverBg:y[50],selectedBg:Y.primary[100],fg:y[900]}},header:{default:{bg:y[100],fg:y[900],titleFg:y[900],subtitleFg:y[600],border:y[200]},primary:{bg:Y.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.primary[700]},secondary:{bg:y[200],fg:y[800],titleFg:y[800],subtitleFg:y[600],border:y[300]},success:{bg:Y.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.success[700]},warning:{bg:Y.warning[500],fg:y[900],titleFg:y[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Y.warning[600]},danger:{bg:Y.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.danger[700]}},statusbar:{default:{bg:y[100],fg:y[600]},primary:{bg:Y.primary[600],fg:"#ffffff"},info:{bg:Xe[600],fg:"#ffffff"},success:{bg:Y.success[600],fg:"#ffffff"},warning:{bg:Y.warning[500],fg:y[900]},danger:{bg:Y.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:y[900],subtitleFg:y[600],border:y[200]},primary:{bg:"#ffffff",titleFg:Y.primary[700],subtitleFg:y[600],border:Y.primary[200]},secondary:{bg:y[50],titleFg:y[700],subtitleFg:y[500],border:y[200]}},appshell:{bg:y[100],dividerFg:y[300],sidebarBg:"#ffffff",asideBg:"#ffffff"},collapsible:{default:{headerBg:y[100],headerFg:y[900],contentBg:"#ffffff",border:y[200],iconFg:y[600]},primary:{headerBg:Y.primary[100],headerFg:Y.primary[900],contentBg:"#ffffff",border:Y.primary[200],iconFg:Y.primary[600]},secondary:{headerBg:y[200],headerFg:y[800],contentBg:y[50],border:y[300],iconFg:y[600]}},commandPalette:{bg:"#ffffff",border:y[200],inputBg:y[50],inputFg:y[900],inputPlaceholder:y[400],itemFg:y[900],itemHoverBg:y[100],itemSelectedBg:Y.primary[100],itemSelectedFg:Y.primary[900],highlightFg:Y.primary[600],categoryFg:y[500]},splitPanel:{bg:"#ffffff",dividerBg:y[200],dividerHoverBg:y[300],dividerActiveBg:Y.primary[500],border:y[200],titleFg:y[600]},toast:{success:{bg:Y.success[50],fg:Y.success[900],border:Y.success[200],iconFg:Y.success[600]},error:{bg:Y.danger[50],fg:Y.danger[900],border:Y.danger[200],iconFg:Y.danger[600]},warning:{bg:Y.warning[50],fg:Y.warning[900],border:Y.warning[200],iconFg:Y.warning[600]},info:{bg:Xe[50],fg:Xe[900],border:Xe[200],iconFg:Xe[600]}},window:{default:{bg:"#ffffff",fg:y[900],titleBarBg:y[100],titleBarFg:y[900],border:y[200],buttonFg:y[600],closeFg:Y.danger[500]},primary:{bg:"#ffffff",fg:y[900],titleBarBg:Y.primary[600],titleBarFg:"#ffffff",border:Y.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:y[900],titleBarBg:Y.success[600],titleBarFg:"#ffffff",border:Y.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:y[900],titleBarBg:Y.warning[500],titleBarFg:y[900],border:Y.warning[200],buttonFg:y[700],closeFg:y[900]},danger:{bg:"#ffffff",fg:y[900],titleBarBg:Y.danger[600],titleBarFg:"#ffffff",border:Y.danger[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var O={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},Qn={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#E6DB74",500:"#E6DB74",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:"#F92672",500:"#F92672",600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#FAFAF9",100:"#F5F5F4",200:"#E7E5E4",300:"#D6D3D1",400:"#A8A29E",500:"#78716C",600:"#57534E",700:"#44403C",800:"#292524",900:"#1C1917"}},kR={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:Qn,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:Qn.success[900],fg:Qn.success[100],border:O.green,iconFg:O.green},error:{bg:Qn.danger[900],fg:Qn.danger[100],border:O.pink,iconFg:O.pink},warning:{bg:Qn.warning[900],fg:Qn.warning[100],border:O.yellow,iconFg:O.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:O.cyan,iconFg:O.cyan}},window:{default:{bg:O.background,fg:O.foreground,titleBarBg:O.backgroundLight,titleBarFg:O.foreground,border:"#49483E",buttonFg:O.comment,closeFg:O.pink},primary:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},success:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},warning:{bg:O.background,fg:O.foreground,titleBarBg:O.yellow,titleBarFg:O.background,border:O.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},danger:{bg:O.background,fg:O.foreground,titleBarBg:O.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var P={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},Xn={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:"#BD93F9",500:"#BD93F9",600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:"#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"}},wR={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:Xn,background:{lowest:"#21222C",base:P.background,subtle:P.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:P.comment,popover:P.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:P.foreground,secondary:"#E8E8E2",muted:P.comment,disabled:"#565869",inverse:{base:P.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:P.green,warning:P.yellow,critical:P.red,info:P.cyan,highlight:P.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:P.purple,ring:{color:P.purple,width:2}},disabled:{opacity:.4,bg:P.currentLine,fg:"#565869"},selected:{bg:P.currentLine,fg:P.foreground}},borders:{default:P.comment,subtle:P.currentLine,strong:P.purple,accent:P.purple,danger:P.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:P.purple,fg:P.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:P.currentLine,fg:P.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:P.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:P.purple},ghost:{bg:"transparent",fg:P.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:P.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:P.comment},menu:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:P.currentLine,border:P.comment,tab:{fg:P.comment,activeFg:P.foreground,activeBg:P.background,hoverFg:"#E8E8E2",indicator:P.purple}},dropdown:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:P.currentLine,fg:P.foreground,placeholder:P.comment,border:P.comment,focusBorder:P.purple,invalidBorder:P.red},checkbox:{bg:P.currentLine,border:P.comment,checkColor:P.foreground,checkedBg:P.purple},radio:{bg:P.currentLine,dotColor:P.purple,border:P.comment,checkedBorder:P.purple},tooltip:{bg:"#4D4F5F",fg:P.foreground},modal:{bg:P.currentLine,border:P.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:P.comment,fg:P.foreground},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:P.currentLine,selectedBg:"#4D4F5F",fg:P.foreground}},header:{default:{bg:P.currentLine,fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.purple,fg:P.foreground,titleFg:P.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:"#565869"},success:{bg:P.green,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:P.yellow,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:P.orange},danger:{bg:P.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:P.currentLine,fg:P.comment},primary:{bg:P.purple,fg:P.foreground},info:{bg:P.cyan,fg:P.background},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},page:{default:{bg:P.background,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.background,titleFg:P.purple,subtitleFg:P.comment,border:P.purple},secondary:{bg:P.background,titleFg:"#E8E8E2",subtitleFg:P.comment,border:P.currentLine}},appshell:{bg:"#21222C",dividerFg:P.comment,sidebarBg:P.background,asideBg:P.background},collapsible:{default:{headerBg:P.currentLine,headerFg:P.foreground,contentBg:P.background,border:P.comment,iconFg:P.comment},primary:{headerBg:"#4D4F5F",headerFg:P.purple,contentBg:P.background,border:P.purple,iconFg:P.purple},secondary:{headerBg:"#4D4F5F",headerFg:P.foreground,contentBg:P.currentLine,border:"#565869",iconFg:P.comment}},commandPalette:{bg:P.currentLine,border:P.comment,inputBg:P.background,inputFg:P.foreground,inputPlaceholder:P.comment,itemFg:P.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:P.foreground,highlightFg:P.purple,categoryFg:P.comment},splitPanel:{bg:P.background,dividerBg:P.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:P.purple,border:P.comment,titleFg:P.comment},toast:{success:{bg:Xn.success[900],fg:Xn.success[100],border:P.green,iconFg:P.green},error:{bg:Xn.danger[900],fg:Xn.danger[100],border:P.red,iconFg:P.red},warning:{bg:Xn.warning[900],fg:Xn.warning[100],border:P.yellow,iconFg:P.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:P.cyan,iconFg:P.cyan}},window:{default:{bg:P.background,fg:P.foreground,titleBarBg:P.currentLine,titleBarFg:P.foreground,border:P.comment,buttonFg:P.comment,closeFg:P.red},primary:{bg:P.background,fg:P.foreground,titleBarBg:P.purple,titleBarFg:P.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:P.foreground},success:{bg:P.background,fg:P.foreground,titleBarBg:P.green,titleBarFg:P.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},warning:{bg:P.background,fg:P.foreground,titleBarBg:P.yellow,titleBarFg:P.background,border:P.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},danger:{bg:P.background,fg:P.foreground,titleBarBg:P.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var x={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"},Zn={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:x.nord8,400:x.nord8,500:x.nord8,600:x.nord9,700:x.nord10,800:"#1E40AF",900:"#1E3A8A"},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:x.nord14,500:x.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:x.nord13,400:x.nord13,500:x.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:x.nord11,500:x.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:x.nord6,100:x.nord5,200:x.nord4,300:"#A3ADB8",400:"#7A8694",500:x.nord3,600:x.nord2,700:x.nord1,800:x.nord0,900:"#242933"}},RR={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:Zn,background:{lowest:"#242933",base:x.nord0,subtle:x.nord1,surface:x.nord2,raised:x.nord3,elevated:"#5E6779",popover:x.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:x.nord6,secondary:x.nord5,muted:x.nord4,disabled:x.nord3,inverse:{base:x.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:x.nord14,warning:x.nord13,critical:x.nord11,info:x.nord9,highlight:x.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:x.nord8,ring:{color:x.nord8,width:2}},disabled:{opacity:.4,bg:x.nord1,fg:x.nord3},selected:{bg:x.nord1,fg:x.nord6}},borders:{default:x.nord3,subtle:x.nord1,strong:x.nord4,accent:x.nord8,danger:x.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:x.nord8,fg:x.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:x.nord2,fg:x.nord6,hoverBg:x.nord3,activeBg:x.nord1,border:"transparent"},outline:{bg:"transparent",fg:x.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:x.nord8},ghost:{bg:"transparent",fg:x.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:x.nord1,headerBg:x.nord2,footerBg:x.nord2,border:x.nord3},menu:{bg:x.nord1,border:x.nord3,item:{fg:x.nord6,hoverBg:x.nord2,activeBg:x.nord3,selectedBg:x.nord2,disabledFg:x.nord3}},tabs:{bg:x.nord1,border:x.nord3,tab:{fg:x.nord4,activeFg:x.nord6,activeBg:x.nord0,hoverFg:x.nord5,indicator:x.nord8}},dropdown:{bg:x.nord1,border:x.nord3,item:{fg:x.nord6,hoverBg:x.nord2,selectedBg:x.nord3}},input:{bg:x.nord1,fg:x.nord6,placeholder:x.nord4,border:x.nord3,focusBorder:x.nord8,invalidBorder:x.nord11},checkbox:{bg:x.nord1,border:x.nord3,checkColor:x.nord0,checkedBg:x.nord8},radio:{bg:x.nord1,dotColor:x.nord8,border:x.nord3,checkedBorder:x.nord8},tooltip:{bg:x.nord2,fg:x.nord6},modal:{bg:x.nord1,border:x.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:x.nord3,fg:x.nord6},success:{bg:x.nord14,fg:x.nord0},warning:{bg:x.nord13,fg:x.nord0},danger:{bg:x.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:x.nord1,selectedBg:x.nord2,fg:x.nord6}},header:{default:{bg:x.nord1,fg:x.nord6,titleFg:x.nord6,subtitleFg:x.nord4,border:x.nord3},primary:{bg:x.nord8,fg:x.nord0,titleFg:x.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:x.nord9},secondary:{bg:x.nord2,fg:x.nord6,titleFg:x.nord6,subtitleFg:x.nord4,border:x.nord3},success:{bg:x.nord14,fg:x.nord0,titleFg:x.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:x.nord13,fg:x.nord0,titleFg:x.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:x.nord12},danger:{bg:x.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:x.nord1,fg:x.nord4},primary:{bg:x.nord8,fg:x.nord0},info:{bg:x.nord9,fg:"#ffffff"},success:{bg:x.nord14,fg:x.nord0},warning:{bg:x.nord13,fg:x.nord0},danger:{bg:x.nord11,fg:"#ffffff"}},page:{default:{bg:x.nord0,titleFg:x.nord6,subtitleFg:x.nord4,border:x.nord3},primary:{bg:x.nord0,titleFg:x.nord8,subtitleFg:x.nord4,border:x.nord8},secondary:{bg:x.nord0,titleFg:x.nord5,subtitleFg:x.nord4,border:x.nord1}},appshell:{bg:"#242933",dividerFg:x.nord3,sidebarBg:x.nord0,asideBg:x.nord0},collapsible:{default:{headerBg:x.nord1,headerFg:x.nord6,contentBg:x.nord0,border:x.nord3,iconFg:x.nord4},primary:{headerBg:x.nord2,headerFg:x.nord8,contentBg:x.nord0,border:x.nord8,iconFg:x.nord8},secondary:{headerBg:x.nord2,headerFg:x.nord6,contentBg:x.nord1,border:x.nord3,iconFg:x.nord4}},commandPalette:{bg:x.nord1,border:x.nord3,inputBg:x.nord0,inputFg:x.nord6,inputPlaceholder:x.nord4,itemFg:x.nord6,itemHoverBg:x.nord2,itemSelectedBg:x.nord3,itemSelectedFg:x.nord6,highlightFg:x.nord8,categoryFg:x.nord4},splitPanel:{bg:x.nord0,dividerBg:x.nord3,dividerHoverBg:x.nord2,dividerActiveBg:x.nord8,border:x.nord3,titleFg:x.nord4},toast:{success:{bg:Zn.success[900],fg:Zn.success[100],border:x.nord14,iconFg:x.nord14},error:{bg:Zn.danger[900],fg:Zn.danger[100],border:x.nord11,iconFg:x.nord11},warning:{bg:Zn.warning[900],fg:Zn.warning[100],border:x.nord13,iconFg:x.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:x.nord9,iconFg:x.nord9}},window:{default:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord1,titleBarFg:x.nord6,border:x.nord3,buttonFg:x.nord4,closeFg:x.nord11},primary:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord8,titleBarFg:x.nord0,border:x.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:x.nord0},success:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord14,titleBarFg:x.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:x.nord0},warning:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord13,titleBarFg:x.nord0,border:x.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:x.nord0},danger:{bg:x.nord0,fg:x.nord6,titleBarBg:x.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"},eo={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:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:"#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"}},_R={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:eo,background:{lowest:"#001E26",base: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:eo.success[900],fg:eo.success[100],border:S.green,iconFg:S.green},error:{bg:eo.danger[900],fg:eo.danger[100],border:S.red,iconFg:S.red},warning:{bg:eo.warning[900],fg:eo.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 R={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"},to={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:R.green,500:R.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:R.green,500:R.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:R.yellow,500:R.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:R.red,500:R.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:R.fg0,100:R.fg1,200:R.fg2,300:R.fg3,400:R.fg4,500:R.gray,600:R.bg4,700:R.bg3,800:R.bg2,900:R.bg1}},xR={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:to,background:{lowest:R.bg0_h,base:R.bg0,subtle:R.bg1,surface:R.bg2,raised:R.bg3,elevated:R.bg4,popover:R.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:R.fg1,secondary:R.fg2,muted:R.gray,disabled:R.bg3,inverse:{base:R.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:R.green,warning:R.yellow,critical:R.red,info:R.blue,highlight:R.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:R.green,ring:{color:R.green,width:2}},disabled:{opacity:.4,bg:R.bg1,fg:R.bg3},selected:{bg:R.bg2,fg:R.fg1}},borders:{default:R.bg3,subtle:R.bg2,strong:R.gray,accent:R.green,danger:R.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:R.green,fg:R.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:R.bg2,fg:R.fg1,hoverBg:R.bg3,activeBg:R.bg1,border:"transparent"},outline:{bg:"transparent",fg:R.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:R.green},ghost:{bg:"transparent",fg:R.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:R.bg1,headerBg:R.bg2,footerBg:R.bg2,border:R.bg3},menu:{bg:R.bg1,border:R.bg3,item:{fg:R.fg1,hoverBg:R.bg2,activeBg:R.bg3,selectedBg:R.bg2,disabledFg:R.bg3}},tabs:{bg:R.bg1,border:R.bg3,tab:{fg:R.gray,activeFg:R.fg1,activeBg:R.bg0,hoverFg:R.fg2,indicator:R.green}},dropdown:{bg:R.bg1,border:R.bg3,item:{fg:R.fg1,hoverBg:R.bg2,selectedBg:R.bg3}},input:{bg:R.bg1,fg:R.fg1,placeholder:R.gray,border:R.bg3,focusBorder:R.green,invalidBorder:R.red},checkbox:{bg:R.bg1,border:R.bg3,checkColor:R.bg0,checkedBg:R.green},radio:{bg:R.bg1,dotColor:R.green,border:R.bg3,checkedBorder:R.green},tooltip:{bg:R.bg2,fg:R.fg1},modal:{bg:R.bg1,border:R.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:R.bg3,fg:R.fg1},success:{bg:R.green,fg:R.bg0},warning:{bg:R.yellow,fg:R.bg0},danger:{bg:R.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:R.bg1,selectedBg:R.bg2,fg:R.fg1}},header:{default:{bg:R.bg1,fg:R.fg1,titleFg:R.fg1,subtitleFg:R.gray,border:R.bg3},primary:{bg:R.green,fg:R.bg0,titleFg:R.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:R.bg2,fg:R.fg1,titleFg:R.fg1,subtitleFg:R.gray,border:R.bg3},success:{bg:R.green,fg:R.bg0,titleFg:R.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:R.yellow,fg:R.bg0,titleFg:R.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:R.orange},danger:{bg:R.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:R.bg1,fg:R.gray},primary:{bg:R.green,fg:R.bg0},info:{bg:R.blue,fg:R.bg0},success:{bg:R.green,fg:R.bg0},warning:{bg:R.yellow,fg:R.bg0},danger:{bg:R.red,fg:"#ffffff"}},page:{default:{bg:R.bg0,titleFg:R.fg1,subtitleFg:R.gray,border:R.bg3},primary:{bg:R.bg0,titleFg:R.green,subtitleFg:R.gray,border:R.green},secondary:{bg:R.bg0,titleFg:R.fg2,subtitleFg:R.gray,border:R.bg2}},appshell:{bg:R.bg0_h,dividerFg:R.bg3,sidebarBg:R.bg0,asideBg:R.bg0},collapsible:{default:{headerBg:R.bg1,headerFg:R.fg1,contentBg:R.bg0,border:R.bg3,iconFg:R.gray},primary:{headerBg:R.bg2,headerFg:R.green,contentBg:R.bg0,border:R.green,iconFg:R.green},secondary:{headerBg:R.bg2,headerFg:R.fg1,contentBg:R.bg1,border:R.bg3,iconFg:R.gray}},commandPalette:{bg:R.bg1,border:R.bg3,inputBg:R.bg0,inputFg:R.fg1,inputPlaceholder:R.gray,itemFg:R.fg1,itemHoverBg:R.bg2,itemSelectedBg:R.bg3,itemSelectedFg:R.fg1,highlightFg:R.green,categoryFg:R.gray},splitPanel:{bg:R.bg0,dividerBg:R.bg3,dividerHoverBg:R.bg2,dividerActiveBg:R.green,border:R.bg3,titleFg:R.gray},toast:{success:{bg:to.success[900],fg:to.success[100],border:R.green,iconFg:R.green},error:{bg:to.danger[900],fg:to.danger[100],border:R.red,iconFg:R.red},warning:{bg:to.warning[900],fg:to.warning[100],border:R.yellow,iconFg:R.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:R.blue,iconFg:R.blue}},window:{default:{bg:R.bg0,fg:R.fg1,titleBarBg:R.bg1,titleBarFg:R.fg1,border:R.bg3,buttonFg:R.gray,closeFg:R.red},primary:{bg:R.bg0,fg:R.fg1,titleBarBg:R.green,titleBarFg:R.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:R.bg0},success:{bg:R.bg0,fg:R.fg1,titleBarBg:R.green,titleBarFg:R.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:R.bg0},warning:{bg:R.bg0,fg:R.fg1,titleBarBg:R.yellow,titleBarFg:R.bg0,border:R.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:R.bg0},danger:{bg:R.bg0,fg:R.fg1,titleBarBg:R.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={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"},ro={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:E.blue,500:E.blue,600:"#2563EB",700:"#1D4ED8",800:"#1E40AF",900:"#1E3A8A"},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:E.green,500:E.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:E.yellow,500:E.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:E.red,500:E.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},ER={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:ro,background:{lowest:E.bgDark,base:E.bg,subtle:E.bgHighlight,surface:E.bgPopup,raised:E.dark3,elevated:E.comment,popover:E.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:E.fg,secondary:E.fgDark,muted:E.comment,disabled:E.dark3,inverse:{base:E.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 0.6)"}},accents:{positive:E.green,warning:E.yellow,critical:E.red,info:E.cyan,highlight:E.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.blue,ring:{color:E.blue,width:2}},disabled:{opacity:.4,bg:E.bgHighlight,fg:E.dark3},selected:{bg:E.bgHighlight,fg:E.fg}},borders:{default:E.dark3,subtle:E.bgHighlight,strong:E.comment,accent:E.blue,danger:E.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:E.blue,fg:E.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:E.bgHighlight,fg:E.fg,hoverBg:E.bgPopup,activeBg:E.dark3,border:"transparent"},outline:{bg:"transparent",fg:E.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:E.blue},ghost:{bg:"transparent",fg:E.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.bgHighlight,headerBg:E.bgPopup,footerBg:E.bgPopup,border:E.dark3},menu:{bg:E.bgHighlight,border:E.dark3,item:{fg:E.fg,hoverBg:E.bgPopup,activeBg:E.dark3,selectedBg:E.bgPopup,disabledFg:E.dark3}},tabs:{bg:E.bgHighlight,border:E.dark3,tab:{fg:E.comment,activeFg:E.fg,activeBg:E.bg,hoverFg:E.fgDark,indicator:E.blue}},dropdown:{bg:E.bgHighlight,border:E.dark3,item:{fg:E.fg,hoverBg:E.bgPopup,selectedBg:E.dark3}},input:{bg:E.bgHighlight,fg:E.fg,placeholder:E.comment,border:E.dark3,focusBorder:E.blue,invalidBorder:E.red},checkbox:{bg:E.bgHighlight,border:E.dark3,checkColor:E.bg,checkedBg:E.blue},radio:{bg:E.bgHighlight,dotColor:E.blue,border:E.dark3,checkedBorder:E.blue},tooltip:{bg:E.bgPopup,fg:E.fg},modal:{bg:E.bgHighlight,border:E.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:E.dark3,fg:E.fg},success:{bg:E.green,fg:E.bg},warning:{bg:E.yellow,fg:E.bg},danger:{bg:E.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.bgHighlight,selectedBg:E.bgPopup,fg:E.fg}},header:{default:{bg:E.bgHighlight,fg:E.fg,titleFg:E.fg,subtitleFg:E.comment,border:E.dark3},primary:{bg:E.blue,fg:E.bg,titleFg:E.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:E.bgPopup,fg:E.fg,titleFg:E.fg,subtitleFg:E.comment,border:E.dark3},success:{bg:E.green,fg:E.bg,titleFg:E.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:E.yellow,fg:E.bg,titleFg:E.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:E.orange},danger:{bg:E.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:E.bgHighlight,fg:E.comment},primary:{bg:E.blue,fg:E.bg},info:{bg:E.cyan,fg:E.bg},success:{bg:E.green,fg:E.bg},warning:{bg:E.yellow,fg:E.bg},danger:{bg:E.red,fg:"#ffffff"}},page:{default:{bg:E.bg,titleFg:E.fg,subtitleFg:E.comment,border:E.dark3},primary:{bg:E.bg,titleFg:E.blue,subtitleFg:E.comment,border:E.blue},secondary:{bg:E.bg,titleFg:E.fgDark,subtitleFg:E.comment,border:E.bgHighlight}},appshell:{bg:E.bgDark,dividerFg:E.dark3,sidebarBg:E.bg,asideBg:E.bg},collapsible:{default:{headerBg:E.bgHighlight,headerFg:E.fg,contentBg:E.bg,border:E.dark3,iconFg:E.comment},primary:{headerBg:E.bgPopup,headerFg:E.blue,contentBg:E.bg,border:E.blue,iconFg:E.blue},secondary:{headerBg:E.bgPopup,headerFg:E.fg,contentBg:E.bgHighlight,border:E.dark3,iconFg:E.comment}},commandPalette:{bg:E.bgHighlight,border:E.dark3,inputBg:E.bg,inputFg:E.fg,inputPlaceholder:E.comment,itemFg:E.fg,itemHoverBg:E.bgPopup,itemSelectedBg:E.dark3,itemSelectedFg:E.fg,highlightFg:E.blue,categoryFg:E.comment},splitPanel:{bg:E.bg,dividerBg:E.dark3,dividerHoverBg:E.bgPopup,dividerActiveBg:E.blue,border:E.dark3,titleFg:E.comment},toast:{success:{bg:ro.success[900],fg:ro.success[100],border:E.green,iconFg:E.green},error:{bg:ro.danger[900],fg:ro.danger[100],border:E.red,iconFg:E.red},warning:{bg:ro.warning[900],fg:ro.warning[100],border:E.yellow,iconFg:E.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.cyan,iconFg:E.cyan}},window:{default:{bg:E.bg,fg:E.fg,titleBarBg:E.bgHighlight,titleBarFg:E.fg,border:E.dark3,buttonFg:E.comment,closeFg:E.red},primary:{bg:E.bg,fg:E.fg,titleBarBg:E.blue,titleBarFg:E.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:E.bg},success:{bg:E.bg,fg:E.fg,titleBarBg:E.green,titleBarFg:E.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:E.bg},warning:{bg:E.bg,fg:E.fg,titleBarBg:E.yellow,titleBarFg:E.bg,border:E.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:E.bg},danger:{bg:E.bg,fg:E.fg,titleBarBg:E.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var _={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"},no={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:_.mauve,500:_.mauve,600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:_.green,500:_.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:_.yellow,500:_.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:_.red,500:_.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:_.text,100:_.subtext1,200:_.subtext0,300:_.overlay2,400:_.overlay1,500:_.overlay0,600:_.surface2,700:_.surface1,800:_.surface0,900:_.base}},vR={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:no,background:{lowest:_.crust,base:_.base,subtle:_.surface0,surface:_.surface1,raised:_.surface2,elevated:_.overlay0,popover:_.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:_.text,secondary:_.subtext1,muted:_.overlay0,disabled:_.surface2,inverse:{base:_.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:_.green,warning:_.yellow,critical:_.red,info:_.sky,highlight:_.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:_.mauve,ring:{color:_.mauve,width:2}},disabled:{opacity:.4,bg:_.surface0,fg:_.surface2},selected:{bg:_.surface0,fg:_.text}},borders:{default:_.overlay0,subtle:_.surface1,strong:_.subtext1,accent:_.mauve,danger:_.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:_.mauve,fg:_.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:_.surface0,fg:_.text,hoverBg:_.surface1,activeBg:_.surface2,border:"transparent"},outline:{bg:"transparent",fg:_.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:_.mauve},ghost:{bg:"transparent",fg:_.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:_.surface0,headerBg:_.surface1,footerBg:_.surface1,border:_.overlay0},menu:{bg:_.surface0,border:_.overlay0,item:{fg:_.text,hoverBg:_.surface1,activeBg:_.surface2,selectedBg:_.surface1,disabledFg:_.surface2}},tabs:{bg:_.surface0,border:_.overlay0,tab:{fg:_.overlay0,activeFg:_.text,activeBg:_.base,hoverFg:_.subtext1,indicator:_.mauve}},dropdown:{bg:_.surface0,border:_.overlay0,item:{fg:_.text,hoverBg:_.surface1,selectedBg:_.surface2}},input:{bg:_.surface0,fg:_.text,placeholder:_.overlay0,border:_.overlay0,focusBorder:_.mauve,invalidBorder:_.red},checkbox:{bg:_.surface0,border:_.overlay0,checkColor:_.base,checkedBg:_.mauve},radio:{bg:_.surface0,dotColor:_.mauve,border:_.overlay0,checkedBorder:_.mauve},tooltip:{bg:_.surface1,fg:_.text},modal:{bg:_.surface0,border:_.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:_.surface2,fg:_.text},success:{bg:_.green,fg:_.base},warning:{bg:_.yellow,fg:_.base},danger:{bg:_.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:_.surface0,selectedBg:_.surface1,fg:_.text}},header:{default:{bg:_.surface0,fg:_.text,titleFg:_.text,subtitleFg:_.overlay0,border:_.overlay0},primary:{bg:_.mauve,fg:_.base,titleFg:_.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:_.surface1,fg:_.text,titleFg:_.text,subtitleFg:_.overlay0,border:_.surface2},success:{bg:_.green,fg:_.base,titleFg:_.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:_.yellow,fg:_.base,titleFg:_.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:_.peach},danger:{bg:_.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:_.surface0,fg:_.overlay0},primary:{bg:_.mauve,fg:_.base},info:{bg:_.sky,fg:_.base},success:{bg:_.green,fg:_.base},warning:{bg:_.yellow,fg:_.base},danger:{bg:_.red,fg:"#ffffff"}},page:{default:{bg:_.base,titleFg:_.text,subtitleFg:_.overlay0,border:_.overlay0},primary:{bg:_.base,titleFg:_.mauve,subtitleFg:_.overlay0,border:_.mauve},secondary:{bg:_.base,titleFg:_.subtext1,subtitleFg:_.overlay0,border:_.surface0}},appshell:{bg:_.crust,dividerFg:_.overlay0,sidebarBg:_.base,asideBg:_.base},collapsible:{default:{headerBg:_.surface0,headerFg:_.text,contentBg:_.base,border:_.overlay0,iconFg:_.overlay0},primary:{headerBg:_.surface1,headerFg:_.mauve,contentBg:_.base,border:_.mauve,iconFg:_.mauve},secondary:{headerBg:_.surface1,headerFg:_.text,contentBg:_.surface0,border:_.surface2,iconFg:_.overlay0}},commandPalette:{bg:_.surface0,border:_.overlay0,inputBg:_.base,inputFg:_.text,inputPlaceholder:_.overlay0,itemFg:_.text,itemHoverBg:_.surface1,itemSelectedBg:_.surface2,itemSelectedFg:_.text,highlightFg:_.mauve,categoryFg:_.overlay0},splitPanel:{bg:_.base,dividerBg:_.overlay0,dividerHoverBg:_.surface1,dividerActiveBg:_.mauve,border:_.overlay0,titleFg:_.overlay0},toast:{success:{bg:no.success[900],fg:no.success[100],border:_.green,iconFg:_.green},error:{bg:no.danger[900],fg:no.danger[100],border:_.red,iconFg:_.red},warning:{bg:no.warning[900],fg:no.warning[100],border:_.yellow,iconFg:_.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:_.sky,iconFg:_.sky}},window:{default:{bg:_.base,fg:_.text,titleBarBg:_.surface0,titleBarFg:_.text,border:_.overlay0,buttonFg:_.overlay0,closeFg:_.red},primary:{bg:_.base,fg:_.text,titleBarBg:_.mauve,titleBarFg:_.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:_.base},success:{bg:_.base,fg:_.text,titleBarBg:_.green,titleBarFg:_.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:_.base},warning:{bg:_.base,fg:_.text,titleBarBg:_.yellow,titleBarFg:_.base,border:_.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:_.base},danger:{bg:_.base,fg:_.text,titleBarBg:_.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var oo={primary:{50:ee[50],100:ee[100],200:ee[200],300:ee[300],400:ee[400],500:ee[500],600:ee[600],700:ee[700],800:ee[800],900:ee[900]},secondary:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},success:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},warning:{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]},danger:{50:ae[50],100:ae[100],200:ae[200],300:ae[300],400:ae[400],500:ae[500],600:ae[600],700:ae[700],800:ae[800],900:ae[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]}},SR={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:oo,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:pe[400],warning:ue[400],critical:ae[400],info:Xe[400],highlight:ee[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:ee[400],ring:{color:ee[400],width:3}},disabled:{opacity:.5,bg:h[900],fg:h[500]},selected:{bg:ee[800],fg:"#ffffff"}},borders:{default:h[500],subtle:h[700],strong:h[300],accent:ee[400],danger:ae[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:ee[500],fg:"#ffffff",hoverBg:ee[400],activeBg:ee[600],border:ee[300]},secondary:{bg:h[800],fg:"#ffffff",hoverBg:h[700],activeBg:h[900],border:h[500]},outline:{bg:"transparent",fg:ee[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:ee[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:h[950],headerBg:h[900],footerBg:h[900],border:h[500]},menu:{bg:h[950],border:h[500],item:{fg:"#ffffff",hoverBg:h[800],activeBg:ee[800],selectedBg:ee[900],disabledFg:h[500]}},tabs:{bg:h[950],border:h[500],tab:{fg:h[300],activeFg:"#ffffff",activeBg:h[800],hoverFg:h[100],indicator:ee[400]}},dropdown:{bg:h[950],border:h[500],item:{fg:"#ffffff",hoverBg:h[800],selectedBg:ee[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:h[400],border:h[500],focusBorder:ee[400],invalidBorder:ae[400]},checkbox:{bg:"#000000",border:h[400],checkColor:"#000000",checkedBg:ee[400]},radio:{bg:"#000000",dotColor:ee[400],border:h[400],checkedBorder:ee[400]},tooltip:{bg:h[800],fg:"#ffffff"},modal:{bg:h[950],border:h[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:h[700],fg:"#ffffff"},success:{bg:pe[500],fg:"#000000"},warning:{bg:ue[400],fg:"#000000"},danger:{bg:ae[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:h[900],selectedBg:ee[800],fg:"#ffffff"}},header:{default:{bg:h[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},primary:{bg:ee[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee[300]},secondary:{bg:h[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},success:{bg:pe[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:pe[300]},warning:{bg:ue[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ue[600]},danger:{bg:ae[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ae[300]}},statusbar:{default:{bg:h[950],fg:h[300]},primary:{bg:ee[500],fg:"#ffffff"},info:{bg:Xe[500],fg:"#000000"},success:{bg:pe[500],fg:"#000000"},warning:{bg:ue[400],fg:"#000000"},danger:{bg:ae[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},primary:{bg:"#000000",titleFg:ee[400],subtitleFg:h[300],border:ee[400]},secondary:{bg:"#000000",titleFg:h[100],subtitleFg:h[400],border:h[700]}},appshell:{bg:"#000000",dividerFg:h[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:h[950],headerFg:"#ffffff",contentBg:"#000000",border:h[500],iconFg:h[300]},primary:{headerBg:h[900],headerFg:ee[400],contentBg:"#000000",border:ee[400],iconFg:ee[400]},secondary:{headerBg:h[900],headerFg:"#ffffff",contentBg:h[950],border:h[500],iconFg:h[300]}},commandPalette:{bg:h[950],border:h[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:h[400],itemFg:"#ffffff",itemHoverBg:h[800],itemSelectedBg:ee[800],itemSelectedFg:"#ffffff",highlightFg:ee[400],categoryFg:h[400]},splitPanel:{bg:"#000000",dividerBg:h[500],dividerHoverBg:h[400],dividerActiveBg:ee[400],border:h[500],titleFg:h[300]},toast:{success:{bg:oo.success[900],fg:oo.success[100],border:pe[400],iconFg:pe[400]},error:{bg:oo.danger[900],fg:oo.danger[100],border:ae[400],iconFg:ae[400]},warning:{bg:oo.warning[900],fg:oo.warning[100],border:ue[400],iconFg:ue[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:ae[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:ee[500],titleBarFg:"#ffffff",border:ee[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:pe[500],titleBarFg:"#000000",border:pe[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:ue[400],titleBarFg:"#000000",border:ue[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ae[500],titleBarFg:"#ffffff",border:ae[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var sL={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]}},TR={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:sL,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 AR=Symbol("tuiuiu.theme-runtime-state");function PR(){let[e,t]=cr(vp);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function iL(e){if(e.id===0)return PR();let t=Ft(AR,PR),[r,n]=cr(Qo(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function CR(){let e=Ne();return De(AR,()=>iL(e),e)}function OR(){return Qo(CR().currentTheme)}var aL={dark:vp,light:yR,monokai:kR,dracula:wR,nord:RR,solarizedDark:_R,gruvbox:xR,tokyoNight:ER,catppuccin:vR,highContrastDark:SR,monochrome:TR},g8=Object.keys(aL);function lL(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("#")&&lL(e)>.4?"black":"white"}function dL(e,t=500){let r=bR[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var cL={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 DR(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=Qo(CR().currentTheme),r=cL[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return dL(o,i)}return e}var uL={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},FR=Symbol("tuiuiu.perf-inspector-runtime-state");function pL(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function IR(e){let t=e.id===0?null:Ft(FR,()=>IR(Cr())),r=pL(t?.config??uL);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function MR(){let e=Ne();return De(FR,()=>IR(e),e)}function fL(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function gL(e,t){let r=bL().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 hL(e,t){e.ring.length!==e.config.maxFrames&&gL(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 mL(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 LR(e,t={}){let r=MR(),n=fL(e),o=Math.max(0,n-r.config.budget.frameMs),s=mL(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;Fw({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(hL(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function bL(){let e=MR(),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 yL={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function so(e,t){return Uw(e,t,yL)}function Sp(e){qw(e)}function _n(e,t){zw(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),LR(e,{renderer:t.renderer})}var kL=.4,wL=64;function io(){return typeof performance<"u"?performance.now():Date.now()}var jR=new WeakMap;function RL(){let e=OR(),t=jR.get(e);return t||(t=new Map,jR.set(e,t)),t}function _L(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&&xL(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 xL(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 GR(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 NR(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 EL(e,t,r){let n=e.map(s=>NR(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(!(GR(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 vL(e,t,r){let n=new Map;for(let i of e){let a=NR(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 WR(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 hi(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,k=0;function b(I){K(t.columns||80,t.rows||24);let N=so(I,{width:s,height:i});v(N)}function v(I){K(I.info.viewport.width,I.info.viewport.height),H(I),Uo(I.layout),Xs(),c=I.root,u=I}function T(){l=!0,c?b(c):u&&H(u)}function $(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new hi(s,i),l=!0}function D(){!r&&d&&(Zo(t),d=!1)}function L(){let I=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:k,totalCells:I,updatePercentage:I>0?k/I*100:0}}function W(I,N){s=I,i=N,a.resize(s,i),l=!0}function K(I,N){!r&&!d&&(es(t),d=!0),(I!==s||N!==i)&&W(I,N)}function H(I){let N=io(),V=0,ge=0,fe=a.getFrontBuffer(),de=a.getBackBuffer();p++;let te=s*i,me=ML(u,I),Oe=Ir(),ve=fR(Oe),ke=gR(Oe),J=Re=>{let Ae=io();t.write(Re),V+=io()-Ae,ge+=typeof Re=="string"?Buffer.byteLength(Re):Re.byteLength};if(!l&&n&&u){let{renderRects:Re,diffRects:Ae}=TL(u.drawCommands,I.drawCommands,s,i);if(Tt(I,"dirtyRectCount",Re.length),Tt(I,"diffRectCount",Ae.length),Re.length===0){me&&J(me),k=0,Tt(I,"patchCount",0),Tt(I,"outputByteCount",ge),st(I,"outputWriteMs",V),st(I,"deltaRenderMs",Math.max(0,io()-N-V)),_n(I,{renderer:"delta"});return}let Ee=PL(Re);if(!(Re.length>wL||Ee>te*kL)){ve&&J(ve),AL(de,Re),OL(I.drawCommands,Re,de,I.reservedRegions);let Se=fe.diffRects(de,Ae);if(fe.applyPatches(Se),de.clearDamage(),k=Se.length,Tt(I,"patchCount",Se.length),o&&console.error(`[delta-render] dirty-rects: ${Re.length}, patches: ${Se.length}, cells: ${te}`),me&&J(me),Se.length>0){let ce=Rp(Se,s,!0);J(ce),g++}ke&&J(ke),Tt(I,"outputByteCount",ge),st(I,"outputWriteMs",V),st(I,"deltaRenderMs",Math.max(0,io()-N-V)),_n(I,{renderer:"delta"});return}}ve&&J(ve),de.clear(),qR(I.drawCommands,de,I.reservedRegions);let ie=a.swap();if(k=ie.length,Tt(I,"patchCount",ie.length),o&&console.error(`[delta-render] patches: ${ie.length}, cells: ${te}`),l||!n||ie.length>te*.5){let Re=kl(a.getFrontBuffer());me&&J(me),J("\x1B[H"),J(Re),f++,l=!1,ke&&J(ke),Tt(I,"outputByteCount",ge),st(I,"outputWriteMs",V),st(I,"deltaRenderMs",Math.max(0,io()-N-V)),_n(I,{renderer:"delta"});return}if(me&&J(me),ie.length>0){let Re=Rp(ie,s,!0);J(Re),g++}l=!1,ke&&J(ke),Tt(I,"outputByteCount",ge),st(I,"outputWriteMs",V),st(I,"deltaRenderMs",Math.max(0,io()-N-V)),_n(I,{renderer:"delta"})}return{render:b,renderFrame:v,fullRedraw:T,clear:$,cleanup:D,stats:L,resize:W}}function SL(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=Js(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,xe(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 Tp(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:SL(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 TL(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&&_L(a,l)||(a&&o.push(Tp(a)),l&&o.push(Tp(l)))}return{renderRects:EL(o,r,n),diffRects:vL(o,r,n)}}function PL(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function AL(e,t){let r=Mr();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function HR(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function fr(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,xe(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)||HR(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function CL(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)&&!HR(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function UR(e,t,r){switch(e.type){case"box":DL(e,t,r);break;case"text":YR(e,t,r);break;case"terminal-image":FL(e,t);break}}function OL(e,t,r,n){for(let o of e){let s=Tp(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(GR(s,i)){UR(o,r,n);break}}}}function qR(e,t,r){for(let n of e)UR(n,t,r)}function KR(e,t=new Lr(e.info.viewport.width,e.info.viewport.height)){return qR(e.drawCommands,t,e.reservedRegions),t}function DL(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:k,clip:b}=e,v=a?ao(a):void 0,T=c?ao(c):void 0,$=f?ao(f):T;if(v||l!==" "){let D=d&&d!=="none"?1:0,L=n+D,W=o+D,K=Math.max(0,s-D*2),H=Math.max(0,i-D*2);for(let I=0;I<H;I++)CL(t,r,L,W+I,K,l,void 0,v,{},b)}if(d&&d!=="none"){let D=_p[d]??_p.single,L={},W=u?.top!==!1,K=u?.bottom!==!1,H=u?.left!==!1,I=u?.right!==!1;if(W){let N=H?D.topLeft:D.top;fr(t,r,n,o,N,T,void 0,L,b);for(let V=1;V<s-1;V++)fr(t,r,n+V,o,D.top,T,void 0,L,b);if(s>1){let V=I?D.topRight:D.top;fr(t,r,n+s-1,o,V,T,void 0,L,b)}if(p&&s>4){let V=s-4,fe=` ${zs(lk(p),V,{truncationCharacter:""})} `,de=xe(fe),te=g??"center",me=te==="left"?n+1:te==="right"?n+Math.max(1,s-1-de):n+Math.max(1,Math.floor((s-de)/2)),Oe=0,ve=me;for(;Oe<fe.length&&ve<n+s-1;){let ke=qn(fe,Oe);if(!ke)break;Oe=ke.nextIndex;let J=xe(ke.symbol);J<=0||ve+J>n+s-1||(fr(t,r,ve,o,ke.symbol,$,void 0,k?{...L,bold:!0}:L,b),ve+=J)}}}for(let N=1;N<i-1;N++)H&&fr(t,r,n,o+N,D.left,T,void 0,L,b),I&&s>1&&fr(t,r,n+s-1,o+N,D.right,T,void 0,L,b);if(K&&i>1){let N=H?D.bottomLeft:D.bottom;fr(t,r,n,o+i-1,N,T,void 0,L,b);for(let V=1;V<s-1;V++)fr(t,r,n+V,o+i-1,D.bottom,T,void 0,L,b);if(s>1){let V=I?D.bottomRight:D.bottom;fr(t,r,n+s-1,o+i-1,V,T,void 0,L,b)}}}}function FL(e,t){e.cellRender&&YR({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:JR(e),style:{},clip:e.clip},t,[])}function VR(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 zR(e){let t=VR(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}:${zR(e)}:${e.x}:${e.y}`)}function ts(e){return[mi(e),e.x,e.y,zR(e)].join(":")}function JR(e){let t=VR(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:al(e.protocol,e.source,t)}function BR(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 IL(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||ts(s)!==ts(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=Jo.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${ll("kitty")}\x1B8`}}return o}function ML(e,t){let r=BR(e),n=BR(t),o=r.map(ts).join("|"),s=n.map(ts).join("|");if(e&&o===s)return"";let i=IL(r,n),a=new Map(r.map(l=>[mi(l),l]));for(let l of n){let d=a.get(mi(l));d&&ts(d)===ts(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=JR(l),i+="\x1B8")}return i}function rs(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 LL(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=rs(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(rs);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function jL(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=rs(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[rs(e[t+2]),rs(e[t+3]),rs(e[t+4])];return{color:n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]},consumed:4}}return{color:null,consumed:0}}var $R={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function BL(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=Un(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 k=p[g].split(":"),b=Number(k[0]||0);if(k.length>1){if(b===4){let v=Number(k[1]||0);v in $R&&(a.underline=$R[v])}else if(b===38||b===48||b===58){let v=LL(k);v&&(b===38?s=v:b===48?i=v:a.underlineColor=v)}continue}if(b===0)s=t,i=r,a={...n};else if(b===1)a.bold=!0;else if(b===2)a.dim=!0;else if(b===3)a.italic=!0;else if(b===4)a.underline=!0;else if(b===5)a.blink=!0;else if(b===7)a.inverse=!0;else if(b===8)a.hidden=!0;else if(b===9)a.strikethrough=!0;else if(b===21)a.underline="double";else if(b===22)a.bold=!1,a.dim=!1;else if(b===23)a.italic=!1;else if(b===24)a.underline=!1;else if(b===25)a.blink=!1;else if(b===27)a.inverse=!1;else if(b===28)a.hidden=!1;else if(b===29)a.strikethrough=!1;else if(b>=30&&b<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][b-30];else if(b===39)s=t;else if(b>=40&&b<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][b-40];else if(b===49)i=r;else if(b===59)a.underlineColor=n.underlineColor;else if(b>=90&&b<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][b-90];else if(b>=100&&b<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][b-100];else if(b===38||b===48||b===58){let{color:v,consumed:T}=jL(p,g);v&&(b===38?s=v:b===48?i=v:a.underlineColor=v),g+=T}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function YR(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?ao(a.color):void 0,u=d?void 0:a.backgroundColor?ao(a.backgroundColor):l?ao(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?ao(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=Js(i,s,a.wrap);if(g){let k=BL(f.join(`
|
|
194
|
+
`):oe;Se.push({type:"text",id:I,nodeType:i.type,compositorKeys:b.length>0?[...b]:void 0,x:p,y:f.__splitDivider?g-1:g,maxWidth:d,text:Fe,style:{color:f.color,backgroundColor:f.backgroundColor,bold:f.bold,dim:f.dim,italic:f.italic,underline:f.underline,strikethrough:f.strikethrough,inverse:f.inverse,wrap:f.wrap},inheritedBackgroundColor:n,clip:s,...f.__prebuiltAnsi?{prebuiltAnsi:!0}:void 0})}T&&Se.push({...T,compositorKeys:b.length>0?[...b]:void 0,clip:s});for(let oe of V)OM(Se,oe.commands);Kn("draw");let ce=Jw(e,D,H,Se,v,Ee);return AM(Ee,ce.commands,v),{commands:ce.commands,hasCompositor:v,subtreeSignature:Ee}}function LM(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 jM(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=LM(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function BM(e){let t=eR(e),r=Rl.get(e),n=Qw(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=SM(t.commands),s=t.hasCompositor?Vw(o,Zw(e)):o,i=jM(s),a=Rl.get(e);return a&&(a.materialized=i,a.materializedSignature=n),CM(t.subtreeSignature,i,n),i}function tR(e,t,r={}){let n=gM(r),o=fM(t),s=Date.now(),i=Rn(),a=Rn(),l=Mk(e,o.width,o.height),d=Rn()-a,c=Rn(),u=BM(l),p=MM(u),g=Rn()-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}},k=Ok();f.structural.layoutReuseCount=k.layoutReuseCount,f.structural.layoutFreshCount=k.layoutFreshCount,f.structural.drawReuseCount=k.drawReuseCount,f.structural.drawFreshCount=k.drawFreshCount,f.structural.invalidationEscalationCount=k.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=k.absorbedLayoutDirtyCount;let b,v,T,$=[],D=!1,L=()=>(b||(b=hM(l)),b),W=()=>(v||(v=bM(l)),v),K=()=>{if(!T){let fe=Rn();T=Tw(l),f.phases.hitTargetRegistrationMs=Rn()-fe,f.structural.hitTargetCount=T.length}return T},H=()=>(D||($.push(...yM(L())),D=!0,f.structural.warningCount=$.length),$);n.eagerQueries&&(L(),W()),n.eagerWarnings&&H(),n.eagerHitTargets&&K();let I=wM(L,W,o,$,f),G=Date.now(),V=Rn()-i;return f.frameEndAt=G,f.totalFrameMs=V,{info:{frameId:lM++,committedAt:G,viewport:{width:o.width,height:o.height}},input:o,root:e,layout:l,drawCommands:u,reservedRegions:p,queries:I,metrics:f,get hitTargets(){return K()},get warnings(){return H()}}}function rR(e,t){kp(t).committedFrameSnapshot=e}function nR(e){return kp(e).committedFrameSnapshot}function oR(e){kp(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 Tt(e,t,r){e.metrics.structural[t]=r}function sR(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 aR=Symbol("tuiuiu.progressive-runtime-state");function iR(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function $M(e){if(e.id===0)return iR();let t=Ft(aR,iR);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function wp(){let e=Ge();return De(aR,()=>$M(e),e)}function lR(){return wp().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function dR(){return wp().capabilityOverrides}function Rp(){return wp().progressiveVersion}function NM(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=ll(t),a=lw(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",k=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",b=l.strikethrough||k,v=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,L=lR(),W={unicode:u,colors:p,mouse:g,trueColor:f,italic:k,strikethrough:b,hyperlinks:v,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:L},K=dR();return K&&Object.assign(W,K),W}var cR=Symbol("tuiuiu.capability-runtime-state");function uR(e){let t=e.id===0?"auto":Zo(Ft(cR,()=>uR(Or())).renderModeSignal),[r,n]=fr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Cr](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function ki(e){let t=Ge(e);return De(cR,()=>uR(t),t)}function pR(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function GM(e){return NM({env:e.source.env,stdout:e.source.stdout??process.stdout})}function _l(e){return e.cachedCapabilities=GM(e),e.cachedProgressiveVersion=Rp(),e.cachedCapabilities}function fR(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{_l(e);let r=pR(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function gR(e){let t=ki(),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,fR(t)}function Mr(){let e=ki(),t=Rp();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&_l(e),e.cachedCapabilities??_l(e)}function hR(){return _l(ki())}function mR(){return pR(ki())}function bR(e){let t=ki();return t.resizeHandlers.add(e),fR(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var yR={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},WM={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},HM=512,Yn=new Map,kR=4e6;function Lr(){return{char:" ",attrs:{}}}function xp(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 UM(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&&xp(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function wR(e,t){return e.char===t.char&&xp(e.fg,t.fg)&&xp(e.bg,t.bg)&&UM(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function xl(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var jr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>kR)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${kR} cells`);this.width=t,this.height=r,this.cells=[],this.rowSignatures=new Array(r).fill(null);for(let n=0;n<r;n++){let o=[];for(let s=0;s<t;s++)o.push(Lr());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||xe(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=Lr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,xe(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=Lr(),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]=Lr(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&xe(s.char)>1&&(this.cells[r][t-1]=Lr(),this.addDamage(t-1,r,1,1))}return}let o=xe(n.char);if(!(o<=1)){this.cells[r][t]=Lr(),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]=Lr(),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=xe(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=qn(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
|
|
195
|
+
`)continue;if(a>=this.width)break;let c=xe(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(xe(o)!==1){let c=xe(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(xe(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]=Lr();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,xl(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];wR(a,l)||r.push({x:i,y:s,cell:xl(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=qM(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];wR(d,c)||n.push({x:l,y:i.y,cell:xl(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,xl(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}${_R(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function qM(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||KM(o)?RR(s,i,o):VM(s,i,o)}function KM(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 RR(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 VM(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 wi=class{front;back;width;height;constructor(t,r){this.width=t,this.height=r,this.front=new jr(t,r),this.back=new jr(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 jr(t,r),this.back=new jr(t,r)}};function Ep(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(yR[e]!==void 0){let n=t?40:30,o=yR[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 zM(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(WM[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=JM(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 JM(e){let t=Ep(e,!1);if(!t)return"";if(t.startsWith("38;"))return`58;${t.slice(3)}`;let r=Number.parseInt(t,10);return Number.isNaN(r)?"":r>=30&&r<=37?`58;5;${r-30}`:r>=90&&r<=97?`58;5;${r-82}`:""}function _p(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function _R(e,t,r){return[r.bold?"1":"0",r.dim?"1":"0",r.italic?"1":"0",r.underline===void 0||r.underline===!1?"0":String(r.underline),_p(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",_p(e),_p(t)].join("|")}function xR(e,t,r){let n=_R(e,t,r),o=Yn.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(...zM(r));let i=Ep(e,!1),a=Ep(t,!0);i&&s.push(i),a&&s.push(a);let l=s.length>0?s.join(";"):"";if(Yn.has(n))Yn.delete(n);else if(Yn.size>=HM){let d=Yn.keys().next();d.done||Yn.delete(d.value)}return Yn.set(n,l),l===""?null:l}function YM(e){return e.length===1&&e.charCodeAt(0)<=127?1:xe(e)}function El(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=xR(l.fg,l.bg,l.attrs);d!==i&&(a(),i!==null&&o.push("\x1B[0m"),d!==null&&o.push(`\x1B[${d}m`),i=d),s+=l.char}a(),i!==null&&o.push("\x1B[0m"),r.push(o.join("").trimEnd())}if(!t)for(;r.length>0&&r[r.length-1]==="";)r.pop();return r.join(`
|
|
196
|
+
`)}function vp(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=xR(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+(YM(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function vl(e,t){let r=t??Mr().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 QM="\x1B[?2026h",XM="\x1B[?2026l";function ER(e){let t=e??Mr();return t.synchronizedOutput?vl(QM,t.multiplexer):""}function vR(e){let t=e??Mr();return t.synchronizedOutput?vl(XM,t.multiplexer):""}var Sp={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 TR="\x1B[?25h",ZM="\x1B[?25l",Sl=!1,SR=!1,eL=null,Tp=null;function Pp(e){return"isTTY"in e&&!!e.isTTY}function tL(){let e=Tp??process.stdout;Pp(e)&&Sl&&(e.write(TR),Sl=!1)}function rL(){SR||(SR=!0,eL=Qr(tL))}function ts(e=process.stdout){Pp(e)&&(Tp=e,Sl=!1,e.write(TR))}function rs(e=process.stdout){Pp(e)&&(Tp=e,rL(),Sl=!0,e.write(ZM))}var nL="#ffffff",oL="#000000",sL="transparent",y={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},iL={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},aL={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},h={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},He={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},ae={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},lL={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},ue={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},dL={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},cL={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},pe={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},uL={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},pL={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},Ze={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},fL={50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},ee={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},gL={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},hL={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},mL={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},bL={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},yL={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},kL={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},PR={white:nL,black:oL,transparent:sL,slate:y,gray:iL,zinc:aL,neutral:h,stone:He,red:ae,orange:lL,amber:ue,yellow:dL,lime:cL,green:pe,emerald:uL,teal:pL,cyan:Ze,sky:fL,blue:ee,indigo:gL,violet:hL,purple:mL,fuchsia:bL,pink:yL,rose:kL};var Z={primary:{50:ee[50],100:ee[100],200:ee[200],300:ee[300],400:ee[400],500:ee[500],600:ee[600],700:ee[700],800:ee[800],900:ee[900]},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},warning:{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]},danger:{50:ae[50],100:ae[100],200:ae[200],300:ae[300],400:ae[400],500:ae[500],600:ae[600],700:ae[700],800:ae[800],900:ae[900]},neutral:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]}},Ap={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:Z,background:{lowest:y[950],base:y[900],subtle:y[800],surface:y[700],raised:y[600],elevated:y[500],popover:y[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:y[50],secondary:y[200],muted:y[400],disabled:y[500],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.6)",subtle:"rgba(255, 255, 255, 0.35)"}},accents:{positive:Z.success[500],warning:Z.warning[500],critical:Z.danger[500],info:Ze[500],highlight:Z.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:Z.primary[400],ring:{color:Z.primary[500],width:2}},disabled:{opacity:.4,bg:y[800],fg:y[500]},selected:{bg:Z.primary[700],fg:"#ffffff"}},borders:{default:y[700],subtle:y[800],strong:y[500],accent:Z.primary[500],danger:Z.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Z.primary[500],fg:"#ffffff",hoverBg:Z.primary[400],activeBg:Z.primary[600],border:"transparent"},secondary:{bg:y[700],fg:y[50],hoverBg:y[600],activeBg:y[800],border:"transparent"},outline:{bg:"transparent",fg:Z.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:Z.primary[500]},ghost:{bg:"transparent",fg:y[50],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:"transparent"}},panel:{bg:y[800],headerBg:y[700],footerBg:y[700],border:y[700]},menu:{bg:y[800],border:y[700],item:{fg:y[50],hoverBg:y[700],activeBg:Z.primary[700],selectedBg:Z.primary[600],disabledFg:y[500]}},tabs:{bg:y[800],border:y[700],tab:{fg:y[400],activeFg:y[50],activeBg:y[700],hoverFg:y[200],indicator:Z.primary[500]}},dropdown:{bg:y[800],border:y[700],item:{fg:y[50],hoverBg:y[700],selectedBg:Z.primary[700]}},input:{bg:y[800],fg:y[50],placeholder:y[500],border:y[700],focusBorder:Z.primary[500],invalidBorder:Z.danger[500]},checkbox:{bg:y[800],border:y[600],checkColor:"#ffffff",checkedBg:Z.primary[500]},radio:{bg:y[800],dotColor:Z.primary[500],border:y[600],checkedBorder:Z.primary[500]},tooltip:{bg:y[700],fg:y[50]},modal:{bg:y[800],border:y[700],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:y[700],fg:y[50]},success:{bg:Z.success[500],fg:"#ffffff"},warning:{bg:Z.warning[500],fg:y[900]},danger:{bg:Z.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:y[800],selectedBg:Z.primary[700],fg:y[50]}},header:{default:{bg:y[800],fg:y[50],titleFg:y[50],subtitleFg:y[400],border:y[700]},primary:{bg:Z.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Z.primary[700]},secondary:{bg:y[700],fg:y[50],titleFg:y[50],subtitleFg:y[400],border:y[600]},success:{bg:Z.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Z.success[700]},warning:{bg:Z.warning[500],fg:y[900],titleFg:y[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Z.warning[600]},danger:{bg:Z.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Z.danger[700]}},statusbar:{default:{bg:y[800],fg:y[400]},primary:{bg:Z.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:Z.success[600],fg:"#ffffff"},warning:{bg:Z.warning[500],fg:y[900]},danger:{bg:Z.danger[600],fg:"#ffffff"}},page:{default:{bg:y[900],titleFg:y[50],subtitleFg:y[400],border:y[700]},primary:{bg:y[900],titleFg:Z.primary[400],subtitleFg:y[400],border:Z.primary[700]},secondary:{bg:y[900],titleFg:y[200],subtitleFg:y[500],border:y[700]}},appshell:{bg:y[950],dividerFg:y[700],sidebarBg:y[900],asideBg:y[900]},collapsible:{default:{headerBg:y[800],headerFg:y[50],contentBg:y[900],border:y[700],iconFg:y[400]},primary:{headerBg:Z.primary[700],headerFg:"#ffffff",contentBg:y[900],border:Z.primary[600],iconFg:"rgba(255, 255, 255, 0.8)"},secondary:{headerBg:y[700],headerFg:y[50],contentBg:y[800],border:y[600],iconFg:y[400]}},commandPalette:{bg:y[800],border:y[700],inputBg:y[900],inputFg:y[50],inputPlaceholder:y[500],itemFg:y[50],itemHoverBg:y[700],itemSelectedBg:Z.primary[700],itemSelectedFg:"#ffffff",highlightFg:Z.primary[400],categoryFg:y[500]},splitPanel:{bg:y[900],dividerBg:y[700],dividerHoverBg:y[600],dividerActiveBg:Z.primary[500],border:y[700],titleFg:y[400]},toast:{success:{bg:Z.success[900],fg:Z.success[100],border:Z.success[600],iconFg:Z.success[400]},error:{bg:Z.danger[900],fg:Z.danger[100],border:Z.danger[600],iconFg:Z.danger[400]},warning:{bg:Z.warning[900],fg:Z.warning[100],border:Z.warning[500],iconFg:Z.warning[400]},info:{bg:Ze[900],fg:Ze[100],border:Ze[600],iconFg:Ze[400]}},window:{default:{bg:y[900],fg:y[100],titleBarBg:y[800],titleBarFg:y[100],border:y[700],buttonFg:y[400],closeFg:Z.danger[500]},primary:{bg:y[900],fg:y[100],titleBarBg:Z.primary[600],titleBarFg:"#ffffff",border:Z.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:y[900],fg:y[100],titleBarBg:Z.success[600],titleBarFg:"#ffffff",border:Z.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:y[900],fg:y[100],titleBarBg:Z.warning[500],titleBarFg:y[900],border:Z.warning[600],buttonFg:y[700],closeFg:y[900]},danger:{bg:y[900],fg:y[100],titleBarBg:Z.danger[600],titleBarFg:"#ffffff",border:Z.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Y={primary:{50:ee[50],100:ee[100],200:ee[200],300:ee[300],400:ee[400],500:ee[500],600:ee[600],700:ee[700],800:ee[800],900:ee[900]},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},warning:{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]},danger:{50:ae[50],100:ae[100],200:ae[200],300:ae[300],400:ae[400],500:ae[500],600:ae[600],700:ae[700],800:ae[800],900:ae[900]},neutral:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]}},AR={name:"light",mode:"light",meta:{version:"1.0.0",author:"tuiuiu",description:"Light background theme with blue primary and slate neutrals"},palette:Y,background:{lowest:y[100],base:"#ffffff",subtle:y[50],surface:"#ffffff",raised:y[100],elevated:y[200],popover:"#ffffff",overlay:"rgba(0, 0, 0, 0.5)"},foreground:{primary:y[950],secondary:y[700],muted:y[500],disabled:y[400],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.8)",subtle:"rgba(255, 255, 255, 0.6)"}},accents:{positive:pe[600],warning:ue[600],critical:ae[600],info:Ze[600],highlight:Y.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Y.primary[600],ring:{color:Y.primary[600],width:2}},disabled:{opacity:.4,bg:y[100],fg:y[400]},selected:{bg:Y.primary[100],fg:Y.primary[900]}},borders:{default:y[200],subtle:y[100],strong:y[300],accent:Y.primary[600],danger:Y.danger[600]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Y.primary[600],fg:"#ffffff",hoverBg:Y.primary[700],activeBg:Y.primary[800],border:"transparent"},secondary:{bg:y[100],fg:y[900],hoverBg:y[200],activeBg:y[300],border:"transparent"},outline:{bg:"transparent",fg:Y.primary[600],hoverBg:Y.primary[50],activeBg:Y.primary[100],border:Y.primary[600]},ghost:{bg:"transparent",fg:y[900],hoverBg:"rgba(0, 0, 0, 0.05)",activeBg:"rgba(0, 0, 0, 0.1)",border:"transparent"}},panel:{bg:"#ffffff",headerBg:y[50],footerBg:y[50],border:y[200]},menu:{bg:"#ffffff",border:y[200],item:{fg:y[900],hoverBg:y[100],activeBg:Y.primary[100],selectedBg:Y.primary[50],disabledFg:y[400]}},tabs:{bg:"#ffffff",border:y[200],tab:{fg:y[600],activeFg:y[900],activeBg:"#ffffff",hoverFg:y[900],indicator:Y.primary[600]}},dropdown:{bg:"#ffffff",border:y[200],item:{fg:y[900],hoverBg:y[100],selectedBg:Y.primary[100]}},input:{bg:"#ffffff",fg:y[900],placeholder:y[400],border:y[300],focusBorder:Y.primary[600],invalidBorder:Y.danger[600]},checkbox:{bg:"#ffffff",border:y[300],checkColor:"#ffffff",checkedBg:Y.primary[600]},radio:{bg:"#ffffff",dotColor:Y.primary[600],border:y[300],checkedBorder:Y.primary[600]},tooltip:{bg:y[900],fg:y[50]},modal:{bg:"#ffffff",border:y[200],overlay:"rgba(0, 0, 0, 0.5)"},badge:{default:{bg:y[100],fg:y[700]},success:{bg:Y.success[100],fg:Y.success[800]},warning:{bg:Y.warning[100],fg:Y.warning[800]},danger:{bg:Y.danger[100],fg:Y.danger[800]}},list:{item:{bg:"transparent",hoverBg:y[50],selectedBg:Y.primary[100],fg:y[900]}},header:{default:{bg:y[100],fg:y[900],titleFg:y[900],subtitleFg:y[600],border:y[200]},primary:{bg:Y.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.primary[700]},secondary:{bg:y[200],fg:y[800],titleFg:y[800],subtitleFg:y[600],border:y[300]},success:{bg:Y.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.success[700]},warning:{bg:Y.warning[500],fg:y[900],titleFg:y[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Y.warning[600]},danger:{bg:Y.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.danger[700]}},statusbar:{default:{bg:y[100],fg:y[600]},primary:{bg:Y.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:Y.success[600],fg:"#ffffff"},warning:{bg:Y.warning[500],fg:y[900]},danger:{bg:Y.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:y[900],subtitleFg:y[600],border:y[200]},primary:{bg:"#ffffff",titleFg:Y.primary[700],subtitleFg:y[600],border:Y.primary[200]},secondary:{bg:y[50],titleFg:y[700],subtitleFg:y[500],border:y[200]}},appshell:{bg:y[100],dividerFg:y[300],sidebarBg:"#ffffff",asideBg:"#ffffff"},collapsible:{default:{headerBg:y[100],headerFg:y[900],contentBg:"#ffffff",border:y[200],iconFg:y[600]},primary:{headerBg:Y.primary[100],headerFg:Y.primary[900],contentBg:"#ffffff",border:Y.primary[200],iconFg:Y.primary[600]},secondary:{headerBg:y[200],headerFg:y[800],contentBg:y[50],border:y[300],iconFg:y[600]}},commandPalette:{bg:"#ffffff",border:y[200],inputBg:y[50],inputFg:y[900],inputPlaceholder:y[400],itemFg:y[900],itemHoverBg:y[100],itemSelectedBg:Y.primary[100],itemSelectedFg:Y.primary[900],highlightFg:Y.primary[600],categoryFg:y[500]},splitPanel:{bg:"#ffffff",dividerBg:y[200],dividerHoverBg:y[300],dividerActiveBg:Y.primary[500],border:y[200],titleFg:y[600]},toast:{success:{bg:Y.success[50],fg:Y.success[900],border:Y.success[200],iconFg:Y.success[600]},error:{bg:Y.danger[50],fg:Y.danger[900],border:Y.danger[200],iconFg:Y.danger[600]},warning:{bg:Y.warning[50],fg:Y.warning[900],border:Y.warning[200],iconFg:Y.warning[600]},info:{bg:Ze[50],fg:Ze[900],border:Ze[200],iconFg:Ze[600]}},window:{default:{bg:"#ffffff",fg:y[900],titleBarBg:y[100],titleBarFg:y[900],border:y[200],buttonFg:y[600],closeFg:Y.danger[500]},primary:{bg:"#ffffff",fg:y[900],titleBarBg:Y.primary[600],titleBarFg:"#ffffff",border:Y.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:y[900],titleBarBg:Y.success[600],titleBarFg:"#ffffff",border:Y.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:y[900],titleBarBg:Y.warning[500],titleBarFg:y[900],border:Y.warning[200],buttonFg:y[700],closeFg:y[900]},danger:{bg:"#ffffff",fg:y[900],titleBarBg:Y.danger[600],titleBarFg:"#ffffff",border:Y.danger[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var O={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},Qn={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#E6DB74",500:"#E6DB74",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:"#F92672",500:"#F92672",600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#FAFAF9",100:"#F5F5F4",200:"#E7E5E4",300:"#D6D3D1",400:"#A8A29E",500:"#78716C",600:"#57534E",700:"#44403C",800:"#292524",900:"#1C1917"}},CR={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:Qn,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:Qn.success[900],fg:Qn.success[100],border:O.green,iconFg:O.green},error:{bg:Qn.danger[900],fg:Qn.danger[100],border:O.pink,iconFg:O.pink},warning:{bg:Qn.warning[900],fg:Qn.warning[100],border:O.yellow,iconFg:O.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:O.cyan,iconFg:O.cyan}},window:{default:{bg:O.background,fg:O.foreground,titleBarBg:O.backgroundLight,titleBarFg:O.foreground,border:"#49483E",buttonFg:O.comment,closeFg:O.pink},primary:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},success:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},warning:{bg:O.background,fg:O.foreground,titleBarBg:O.yellow,titleBarFg:O.background,border:O.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},danger:{bg:O.background,fg:O.foreground,titleBarBg:O.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var P={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},Xn={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:"#BD93F9",500:"#BD93F9",600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:"#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"}},OR={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:Xn,background:{lowest:"#21222C",base:P.background,subtle:P.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:P.comment,popover:P.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:P.foreground,secondary:"#E8E8E2",muted:P.comment,disabled:"#565869",inverse:{base:P.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:P.green,warning:P.yellow,critical:P.red,info:P.cyan,highlight:P.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:P.purple,ring:{color:P.purple,width:2}},disabled:{opacity:.4,bg:P.currentLine,fg:"#565869"},selected:{bg:P.currentLine,fg:P.foreground}},borders:{default:P.comment,subtle:P.currentLine,strong:P.purple,accent:P.purple,danger:P.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:P.purple,fg:P.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:P.currentLine,fg:P.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:P.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:P.purple},ghost:{bg:"transparent",fg:P.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:P.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:P.comment},menu:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:P.currentLine,border:P.comment,tab:{fg:P.comment,activeFg:P.foreground,activeBg:P.background,hoverFg:"#E8E8E2",indicator:P.purple}},dropdown:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:P.currentLine,fg:P.foreground,placeholder:P.comment,border:P.comment,focusBorder:P.purple,invalidBorder:P.red},checkbox:{bg:P.currentLine,border:P.comment,checkColor:P.foreground,checkedBg:P.purple},radio:{bg:P.currentLine,dotColor:P.purple,border:P.comment,checkedBorder:P.purple},tooltip:{bg:"#4D4F5F",fg:P.foreground},modal:{bg:P.currentLine,border:P.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:P.comment,fg:P.foreground},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:P.currentLine,selectedBg:"#4D4F5F",fg:P.foreground}},header:{default:{bg:P.currentLine,fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.purple,fg:P.foreground,titleFg:P.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:"#565869"},success:{bg:P.green,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:P.yellow,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:P.orange},danger:{bg:P.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:P.currentLine,fg:P.comment},primary:{bg:P.purple,fg:P.foreground},info:{bg:P.cyan,fg:P.background},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},page:{default:{bg:P.background,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.background,titleFg:P.purple,subtitleFg:P.comment,border:P.purple},secondary:{bg:P.background,titleFg:"#E8E8E2",subtitleFg:P.comment,border:P.currentLine}},appshell:{bg:"#21222C",dividerFg:P.comment,sidebarBg:P.background,asideBg:P.background},collapsible:{default:{headerBg:P.currentLine,headerFg:P.foreground,contentBg:P.background,border:P.comment,iconFg:P.comment},primary:{headerBg:"#4D4F5F",headerFg:P.purple,contentBg:P.background,border:P.purple,iconFg:P.purple},secondary:{headerBg:"#4D4F5F",headerFg:P.foreground,contentBg:P.currentLine,border:"#565869",iconFg:P.comment}},commandPalette:{bg:P.currentLine,border:P.comment,inputBg:P.background,inputFg:P.foreground,inputPlaceholder:P.comment,itemFg:P.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:P.foreground,highlightFg:P.purple,categoryFg:P.comment},splitPanel:{bg:P.background,dividerBg:P.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:P.purple,border:P.comment,titleFg:P.comment},toast:{success:{bg:Xn.success[900],fg:Xn.success[100],border:P.green,iconFg:P.green},error:{bg:Xn.danger[900],fg:Xn.danger[100],border:P.red,iconFg:P.red},warning:{bg:Xn.warning[900],fg:Xn.warning[100],border:P.yellow,iconFg:P.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:P.cyan,iconFg:P.cyan}},window:{default:{bg:P.background,fg:P.foreground,titleBarBg:P.currentLine,titleBarFg:P.foreground,border:P.comment,buttonFg:P.comment,closeFg:P.red},primary:{bg:P.background,fg:P.foreground,titleBarBg:P.purple,titleBarFg:P.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:P.foreground},success:{bg:P.background,fg:P.foreground,titleBarBg:P.green,titleBarFg:P.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},warning:{bg:P.background,fg:P.foreground,titleBarBg:P.yellow,titleBarFg:P.background,border:P.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},danger:{bg:P.background,fg:P.foreground,titleBarBg:P.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var x={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"},Zn={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:x.nord8,400:x.nord8,500:x.nord8,600:x.nord9,700:x.nord10,800:"#1E40AF",900:"#1E3A8A"},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:x.nord14,500:x.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:x.nord13,400:x.nord13,500:x.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:x.nord11,500:x.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:x.nord6,100:x.nord5,200:x.nord4,300:"#A3ADB8",400:"#7A8694",500:x.nord3,600:x.nord2,700:x.nord1,800:x.nord0,900:"#242933"}},DR={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:Zn,background:{lowest:"#242933",base:x.nord0,subtle:x.nord1,surface:x.nord2,raised:x.nord3,elevated:"#5E6779",popover:x.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:x.nord6,secondary:x.nord5,muted:x.nord4,disabled:x.nord3,inverse:{base:x.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:x.nord14,warning:x.nord13,critical:x.nord11,info:x.nord9,highlight:x.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:x.nord8,ring:{color:x.nord8,width:2}},disabled:{opacity:.4,bg:x.nord1,fg:x.nord3},selected:{bg:x.nord1,fg:x.nord6}},borders:{default:x.nord3,subtle:x.nord1,strong:x.nord4,accent:x.nord8,danger:x.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:x.nord8,fg:x.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:x.nord2,fg:x.nord6,hoverBg:x.nord3,activeBg:x.nord1,border:"transparent"},outline:{bg:"transparent",fg:x.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:x.nord8},ghost:{bg:"transparent",fg:x.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:x.nord1,headerBg:x.nord2,footerBg:x.nord2,border:x.nord3},menu:{bg:x.nord1,border:x.nord3,item:{fg:x.nord6,hoverBg:x.nord2,activeBg:x.nord3,selectedBg:x.nord2,disabledFg:x.nord3}},tabs:{bg:x.nord1,border:x.nord3,tab:{fg:x.nord4,activeFg:x.nord6,activeBg:x.nord0,hoverFg:x.nord5,indicator:x.nord8}},dropdown:{bg:x.nord1,border:x.nord3,item:{fg:x.nord6,hoverBg:x.nord2,selectedBg:x.nord3}},input:{bg:x.nord1,fg:x.nord6,placeholder:x.nord4,border:x.nord3,focusBorder:x.nord8,invalidBorder:x.nord11},checkbox:{bg:x.nord1,border:x.nord3,checkColor:x.nord0,checkedBg:x.nord8},radio:{bg:x.nord1,dotColor:x.nord8,border:x.nord3,checkedBorder:x.nord8},tooltip:{bg:x.nord2,fg:x.nord6},modal:{bg:x.nord1,border:x.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:x.nord3,fg:x.nord6},success:{bg:x.nord14,fg:x.nord0},warning:{bg:x.nord13,fg:x.nord0},danger:{bg:x.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:x.nord1,selectedBg:x.nord2,fg:x.nord6}},header:{default:{bg:x.nord1,fg:x.nord6,titleFg:x.nord6,subtitleFg:x.nord4,border:x.nord3},primary:{bg:x.nord8,fg:x.nord0,titleFg:x.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:x.nord9},secondary:{bg:x.nord2,fg:x.nord6,titleFg:x.nord6,subtitleFg:x.nord4,border:x.nord3},success:{bg:x.nord14,fg:x.nord0,titleFg:x.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:x.nord13,fg:x.nord0,titleFg:x.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:x.nord12},danger:{bg:x.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:x.nord1,fg:x.nord4},primary:{bg:x.nord8,fg:x.nord0},info:{bg:x.nord9,fg:"#ffffff"},success:{bg:x.nord14,fg:x.nord0},warning:{bg:x.nord13,fg:x.nord0},danger:{bg:x.nord11,fg:"#ffffff"}},page:{default:{bg:x.nord0,titleFg:x.nord6,subtitleFg:x.nord4,border:x.nord3},primary:{bg:x.nord0,titleFg:x.nord8,subtitleFg:x.nord4,border:x.nord8},secondary:{bg:x.nord0,titleFg:x.nord5,subtitleFg:x.nord4,border:x.nord1}},appshell:{bg:"#242933",dividerFg:x.nord3,sidebarBg:x.nord0,asideBg:x.nord0},collapsible:{default:{headerBg:x.nord1,headerFg:x.nord6,contentBg:x.nord0,border:x.nord3,iconFg:x.nord4},primary:{headerBg:x.nord2,headerFg:x.nord8,contentBg:x.nord0,border:x.nord8,iconFg:x.nord8},secondary:{headerBg:x.nord2,headerFg:x.nord6,contentBg:x.nord1,border:x.nord3,iconFg:x.nord4}},commandPalette:{bg:x.nord1,border:x.nord3,inputBg:x.nord0,inputFg:x.nord6,inputPlaceholder:x.nord4,itemFg:x.nord6,itemHoverBg:x.nord2,itemSelectedBg:x.nord3,itemSelectedFg:x.nord6,highlightFg:x.nord8,categoryFg:x.nord4},splitPanel:{bg:x.nord0,dividerBg:x.nord3,dividerHoverBg:x.nord2,dividerActiveBg:x.nord8,border:x.nord3,titleFg:x.nord4},toast:{success:{bg:Zn.success[900],fg:Zn.success[100],border:x.nord14,iconFg:x.nord14},error:{bg:Zn.danger[900],fg:Zn.danger[100],border:x.nord11,iconFg:x.nord11},warning:{bg:Zn.warning[900],fg:Zn.warning[100],border:x.nord13,iconFg:x.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:x.nord9,iconFg:x.nord9}},window:{default:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord1,titleBarFg:x.nord6,border:x.nord3,buttonFg:x.nord4,closeFg:x.nord11},primary:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord8,titleBarFg:x.nord0,border:x.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:x.nord0},success:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord14,titleBarFg:x.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:x.nord0},warning:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord13,titleBarFg:x.nord0,border:x.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:x.nord0},danger:{bg:x.nord0,fg:x.nord6,titleBarBg:x.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"},eo={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:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:"#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"}},FR={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:eo,background:{lowest:"#001E26",base: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:eo.success[900],fg:eo.success[100],border:S.green,iconFg:S.green},error:{bg:eo.danger[900],fg:eo.danger[100],border:S.red,iconFg:S.red},warning:{bg:eo.warning[900],fg:eo.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 R={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"},to={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:R.green,500:R.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:R.green,500:R.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:R.yellow,500:R.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:R.red,500:R.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:R.fg0,100:R.fg1,200:R.fg2,300:R.fg3,400:R.fg4,500:R.gray,600:R.bg4,700:R.bg3,800:R.bg2,900:R.bg1}},IR={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:to,background:{lowest:R.bg0_h,base:R.bg0,subtle:R.bg1,surface:R.bg2,raised:R.bg3,elevated:R.bg4,popover:R.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:R.fg1,secondary:R.fg2,muted:R.gray,disabled:R.bg3,inverse:{base:R.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:R.green,warning:R.yellow,critical:R.red,info:R.blue,highlight:R.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:R.green,ring:{color:R.green,width:2}},disabled:{opacity:.4,bg:R.bg1,fg:R.bg3},selected:{bg:R.bg2,fg:R.fg1}},borders:{default:R.bg3,subtle:R.bg2,strong:R.gray,accent:R.green,danger:R.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:R.green,fg:R.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:R.bg2,fg:R.fg1,hoverBg:R.bg3,activeBg:R.bg1,border:"transparent"},outline:{bg:"transparent",fg:R.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:R.green},ghost:{bg:"transparent",fg:R.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:R.bg1,headerBg:R.bg2,footerBg:R.bg2,border:R.bg3},menu:{bg:R.bg1,border:R.bg3,item:{fg:R.fg1,hoverBg:R.bg2,activeBg:R.bg3,selectedBg:R.bg2,disabledFg:R.bg3}},tabs:{bg:R.bg1,border:R.bg3,tab:{fg:R.gray,activeFg:R.fg1,activeBg:R.bg0,hoverFg:R.fg2,indicator:R.green}},dropdown:{bg:R.bg1,border:R.bg3,item:{fg:R.fg1,hoverBg:R.bg2,selectedBg:R.bg3}},input:{bg:R.bg1,fg:R.fg1,placeholder:R.gray,border:R.bg3,focusBorder:R.green,invalidBorder:R.red},checkbox:{bg:R.bg1,border:R.bg3,checkColor:R.bg0,checkedBg:R.green},radio:{bg:R.bg1,dotColor:R.green,border:R.bg3,checkedBorder:R.green},tooltip:{bg:R.bg2,fg:R.fg1},modal:{bg:R.bg1,border:R.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:R.bg3,fg:R.fg1},success:{bg:R.green,fg:R.bg0},warning:{bg:R.yellow,fg:R.bg0},danger:{bg:R.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:R.bg1,selectedBg:R.bg2,fg:R.fg1}},header:{default:{bg:R.bg1,fg:R.fg1,titleFg:R.fg1,subtitleFg:R.gray,border:R.bg3},primary:{bg:R.green,fg:R.bg0,titleFg:R.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:R.bg2,fg:R.fg1,titleFg:R.fg1,subtitleFg:R.gray,border:R.bg3},success:{bg:R.green,fg:R.bg0,titleFg:R.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:R.yellow,fg:R.bg0,titleFg:R.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:R.orange},danger:{bg:R.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:R.bg1,fg:R.gray},primary:{bg:R.green,fg:R.bg0},info:{bg:R.blue,fg:R.bg0},success:{bg:R.green,fg:R.bg0},warning:{bg:R.yellow,fg:R.bg0},danger:{bg:R.red,fg:"#ffffff"}},page:{default:{bg:R.bg0,titleFg:R.fg1,subtitleFg:R.gray,border:R.bg3},primary:{bg:R.bg0,titleFg:R.green,subtitleFg:R.gray,border:R.green},secondary:{bg:R.bg0,titleFg:R.fg2,subtitleFg:R.gray,border:R.bg2}},appshell:{bg:R.bg0_h,dividerFg:R.bg3,sidebarBg:R.bg0,asideBg:R.bg0},collapsible:{default:{headerBg:R.bg1,headerFg:R.fg1,contentBg:R.bg0,border:R.bg3,iconFg:R.gray},primary:{headerBg:R.bg2,headerFg:R.green,contentBg:R.bg0,border:R.green,iconFg:R.green},secondary:{headerBg:R.bg2,headerFg:R.fg1,contentBg:R.bg1,border:R.bg3,iconFg:R.gray}},commandPalette:{bg:R.bg1,border:R.bg3,inputBg:R.bg0,inputFg:R.fg1,inputPlaceholder:R.gray,itemFg:R.fg1,itemHoverBg:R.bg2,itemSelectedBg:R.bg3,itemSelectedFg:R.fg1,highlightFg:R.green,categoryFg:R.gray},splitPanel:{bg:R.bg0,dividerBg:R.bg3,dividerHoverBg:R.bg2,dividerActiveBg:R.green,border:R.bg3,titleFg:R.gray},toast:{success:{bg:to.success[900],fg:to.success[100],border:R.green,iconFg:R.green},error:{bg:to.danger[900],fg:to.danger[100],border:R.red,iconFg:R.red},warning:{bg:to.warning[900],fg:to.warning[100],border:R.yellow,iconFg:R.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:R.blue,iconFg:R.blue}},window:{default:{bg:R.bg0,fg:R.fg1,titleBarBg:R.bg1,titleBarFg:R.fg1,border:R.bg3,buttonFg:R.gray,closeFg:R.red},primary:{bg:R.bg0,fg:R.fg1,titleBarBg:R.green,titleBarFg:R.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:R.bg0},success:{bg:R.bg0,fg:R.fg1,titleBarBg:R.green,titleBarFg:R.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:R.bg0},warning:{bg:R.bg0,fg:R.fg1,titleBarBg:R.yellow,titleBarFg:R.bg0,border:R.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:R.bg0},danger:{bg:R.bg0,fg:R.fg1,titleBarBg:R.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={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"},ro={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:E.blue,500:E.blue,600:"#2563EB",700:"#1D4ED8",800:"#1E40AF",900:"#1E3A8A"},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:E.green,500:E.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:E.yellow,500:E.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:E.red,500:E.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},MR={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:ro,background:{lowest:E.bgDark,base:E.bg,subtle:E.bgHighlight,surface:E.bgPopup,raised:E.dark3,elevated:E.comment,popover:E.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:E.fg,secondary:E.fgDark,muted:E.comment,disabled:E.dark3,inverse:{base:E.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 0.6)"}},accents:{positive:E.green,warning:E.yellow,critical:E.red,info:E.cyan,highlight:E.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.blue,ring:{color:E.blue,width:2}},disabled:{opacity:.4,bg:E.bgHighlight,fg:E.dark3},selected:{bg:E.bgHighlight,fg:E.fg}},borders:{default:E.dark3,subtle:E.bgHighlight,strong:E.comment,accent:E.blue,danger:E.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:E.blue,fg:E.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:E.bgHighlight,fg:E.fg,hoverBg:E.bgPopup,activeBg:E.dark3,border:"transparent"},outline:{bg:"transparent",fg:E.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:E.blue},ghost:{bg:"transparent",fg:E.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.bgHighlight,headerBg:E.bgPopup,footerBg:E.bgPopup,border:E.dark3},menu:{bg:E.bgHighlight,border:E.dark3,item:{fg:E.fg,hoverBg:E.bgPopup,activeBg:E.dark3,selectedBg:E.bgPopup,disabledFg:E.dark3}},tabs:{bg:E.bgHighlight,border:E.dark3,tab:{fg:E.comment,activeFg:E.fg,activeBg:E.bg,hoverFg:E.fgDark,indicator:E.blue}},dropdown:{bg:E.bgHighlight,border:E.dark3,item:{fg:E.fg,hoverBg:E.bgPopup,selectedBg:E.dark3}},input:{bg:E.bgHighlight,fg:E.fg,placeholder:E.comment,border:E.dark3,focusBorder:E.blue,invalidBorder:E.red},checkbox:{bg:E.bgHighlight,border:E.dark3,checkColor:E.bg,checkedBg:E.blue},radio:{bg:E.bgHighlight,dotColor:E.blue,border:E.dark3,checkedBorder:E.blue},tooltip:{bg:E.bgPopup,fg:E.fg},modal:{bg:E.bgHighlight,border:E.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:E.dark3,fg:E.fg},success:{bg:E.green,fg:E.bg},warning:{bg:E.yellow,fg:E.bg},danger:{bg:E.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.bgHighlight,selectedBg:E.bgPopup,fg:E.fg}},header:{default:{bg:E.bgHighlight,fg:E.fg,titleFg:E.fg,subtitleFg:E.comment,border:E.dark3},primary:{bg:E.blue,fg:E.bg,titleFg:E.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:E.bgPopup,fg:E.fg,titleFg:E.fg,subtitleFg:E.comment,border:E.dark3},success:{bg:E.green,fg:E.bg,titleFg:E.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:E.yellow,fg:E.bg,titleFg:E.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:E.orange},danger:{bg:E.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:E.bgHighlight,fg:E.comment},primary:{bg:E.blue,fg:E.bg},info:{bg:E.cyan,fg:E.bg},success:{bg:E.green,fg:E.bg},warning:{bg:E.yellow,fg:E.bg},danger:{bg:E.red,fg:"#ffffff"}},page:{default:{bg:E.bg,titleFg:E.fg,subtitleFg:E.comment,border:E.dark3},primary:{bg:E.bg,titleFg:E.blue,subtitleFg:E.comment,border:E.blue},secondary:{bg:E.bg,titleFg:E.fgDark,subtitleFg:E.comment,border:E.bgHighlight}},appshell:{bg:E.bgDark,dividerFg:E.dark3,sidebarBg:E.bg,asideBg:E.bg},collapsible:{default:{headerBg:E.bgHighlight,headerFg:E.fg,contentBg:E.bg,border:E.dark3,iconFg:E.comment},primary:{headerBg:E.bgPopup,headerFg:E.blue,contentBg:E.bg,border:E.blue,iconFg:E.blue},secondary:{headerBg:E.bgPopup,headerFg:E.fg,contentBg:E.bgHighlight,border:E.dark3,iconFg:E.comment}},commandPalette:{bg:E.bgHighlight,border:E.dark3,inputBg:E.bg,inputFg:E.fg,inputPlaceholder:E.comment,itemFg:E.fg,itemHoverBg:E.bgPopup,itemSelectedBg:E.dark3,itemSelectedFg:E.fg,highlightFg:E.blue,categoryFg:E.comment},splitPanel:{bg:E.bg,dividerBg:E.dark3,dividerHoverBg:E.bgPopup,dividerActiveBg:E.blue,border:E.dark3,titleFg:E.comment},toast:{success:{bg:ro.success[900],fg:ro.success[100],border:E.green,iconFg:E.green},error:{bg:ro.danger[900],fg:ro.danger[100],border:E.red,iconFg:E.red},warning:{bg:ro.warning[900],fg:ro.warning[100],border:E.yellow,iconFg:E.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.cyan,iconFg:E.cyan}},window:{default:{bg:E.bg,fg:E.fg,titleBarBg:E.bgHighlight,titleBarFg:E.fg,border:E.dark3,buttonFg:E.comment,closeFg:E.red},primary:{bg:E.bg,fg:E.fg,titleBarBg:E.blue,titleBarFg:E.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:E.bg},success:{bg:E.bg,fg:E.fg,titleBarBg:E.green,titleBarFg:E.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:E.bg},warning:{bg:E.bg,fg:E.fg,titleBarBg:E.yellow,titleBarFg:E.bg,border:E.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:E.bg},danger:{bg:E.bg,fg:E.fg,titleBarBg:E.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var _={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"},no={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:_.mauve,500:_.mauve,600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:_.green,500:_.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:_.yellow,500:_.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:_.red,500:_.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:_.text,100:_.subtext1,200:_.subtext0,300:_.overlay2,400:_.overlay1,500:_.overlay0,600:_.surface2,700:_.surface1,800:_.surface0,900:_.base}},LR={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:no,background:{lowest:_.crust,base:_.base,subtle:_.surface0,surface:_.surface1,raised:_.surface2,elevated:_.overlay0,popover:_.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:_.text,secondary:_.subtext1,muted:_.overlay0,disabled:_.surface2,inverse:{base:_.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:_.green,warning:_.yellow,critical:_.red,info:_.sky,highlight:_.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:_.mauve,ring:{color:_.mauve,width:2}},disabled:{opacity:.4,bg:_.surface0,fg:_.surface2},selected:{bg:_.surface0,fg:_.text}},borders:{default:_.overlay0,subtle:_.surface1,strong:_.subtext1,accent:_.mauve,danger:_.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:_.mauve,fg:_.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:_.surface0,fg:_.text,hoverBg:_.surface1,activeBg:_.surface2,border:"transparent"},outline:{bg:"transparent",fg:_.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:_.mauve},ghost:{bg:"transparent",fg:_.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:_.surface0,headerBg:_.surface1,footerBg:_.surface1,border:_.overlay0},menu:{bg:_.surface0,border:_.overlay0,item:{fg:_.text,hoverBg:_.surface1,activeBg:_.surface2,selectedBg:_.surface1,disabledFg:_.surface2}},tabs:{bg:_.surface0,border:_.overlay0,tab:{fg:_.overlay0,activeFg:_.text,activeBg:_.base,hoverFg:_.subtext1,indicator:_.mauve}},dropdown:{bg:_.surface0,border:_.overlay0,item:{fg:_.text,hoverBg:_.surface1,selectedBg:_.surface2}},input:{bg:_.surface0,fg:_.text,placeholder:_.overlay0,border:_.overlay0,focusBorder:_.mauve,invalidBorder:_.red},checkbox:{bg:_.surface0,border:_.overlay0,checkColor:_.base,checkedBg:_.mauve},radio:{bg:_.surface0,dotColor:_.mauve,border:_.overlay0,checkedBorder:_.mauve},tooltip:{bg:_.surface1,fg:_.text},modal:{bg:_.surface0,border:_.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:_.surface2,fg:_.text},success:{bg:_.green,fg:_.base},warning:{bg:_.yellow,fg:_.base},danger:{bg:_.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:_.surface0,selectedBg:_.surface1,fg:_.text}},header:{default:{bg:_.surface0,fg:_.text,titleFg:_.text,subtitleFg:_.overlay0,border:_.overlay0},primary:{bg:_.mauve,fg:_.base,titleFg:_.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:_.surface1,fg:_.text,titleFg:_.text,subtitleFg:_.overlay0,border:_.surface2},success:{bg:_.green,fg:_.base,titleFg:_.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:_.yellow,fg:_.base,titleFg:_.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:_.peach},danger:{bg:_.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:_.surface0,fg:_.overlay0},primary:{bg:_.mauve,fg:_.base},info:{bg:_.sky,fg:_.base},success:{bg:_.green,fg:_.base},warning:{bg:_.yellow,fg:_.base},danger:{bg:_.red,fg:"#ffffff"}},page:{default:{bg:_.base,titleFg:_.text,subtitleFg:_.overlay0,border:_.overlay0},primary:{bg:_.base,titleFg:_.mauve,subtitleFg:_.overlay0,border:_.mauve},secondary:{bg:_.base,titleFg:_.subtext1,subtitleFg:_.overlay0,border:_.surface0}},appshell:{bg:_.crust,dividerFg:_.overlay0,sidebarBg:_.base,asideBg:_.base},collapsible:{default:{headerBg:_.surface0,headerFg:_.text,contentBg:_.base,border:_.overlay0,iconFg:_.overlay0},primary:{headerBg:_.surface1,headerFg:_.mauve,contentBg:_.base,border:_.mauve,iconFg:_.mauve},secondary:{headerBg:_.surface1,headerFg:_.text,contentBg:_.surface0,border:_.surface2,iconFg:_.overlay0}},commandPalette:{bg:_.surface0,border:_.overlay0,inputBg:_.base,inputFg:_.text,inputPlaceholder:_.overlay0,itemFg:_.text,itemHoverBg:_.surface1,itemSelectedBg:_.surface2,itemSelectedFg:_.text,highlightFg:_.mauve,categoryFg:_.overlay0},splitPanel:{bg:_.base,dividerBg:_.overlay0,dividerHoverBg:_.surface1,dividerActiveBg:_.mauve,border:_.overlay0,titleFg:_.overlay0},toast:{success:{bg:no.success[900],fg:no.success[100],border:_.green,iconFg:_.green},error:{bg:no.danger[900],fg:no.danger[100],border:_.red,iconFg:_.red},warning:{bg:no.warning[900],fg:no.warning[100],border:_.yellow,iconFg:_.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:_.sky,iconFg:_.sky}},window:{default:{bg:_.base,fg:_.text,titleBarBg:_.surface0,titleBarFg:_.text,border:_.overlay0,buttonFg:_.overlay0,closeFg:_.red},primary:{bg:_.base,fg:_.text,titleBarBg:_.mauve,titleBarFg:_.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:_.base},success:{bg:_.base,fg:_.text,titleBarBg:_.green,titleBarFg:_.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:_.base},warning:{bg:_.base,fg:_.text,titleBarBg:_.yellow,titleBarFg:_.base,border:_.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:_.base},danger:{bg:_.base,fg:_.text,titleBarBg:_.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var oo={primary:{50:ee[50],100:ee[100],200:ee[200],300:ee[300],400:ee[400],500:ee[500],600:ee[600],700:ee[700],800:ee[800],900:ee[900]},secondary:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},success:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},warning:{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]},danger:{50:ae[50],100:ae[100],200:ae[200],300:ae[300],400:ae[400],500:ae[500],600:ae[600],700:ae[700],800:ae[800],900:ae[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]}},jR={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:oo,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:pe[400],warning:ue[400],critical:ae[400],info:Ze[400],highlight:ee[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:ee[400],ring:{color:ee[400],width:3}},disabled:{opacity:.5,bg:h[900],fg:h[500]},selected:{bg:ee[800],fg:"#ffffff"}},borders:{default:h[500],subtle:h[700],strong:h[300],accent:ee[400],danger:ae[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:ee[500],fg:"#ffffff",hoverBg:ee[400],activeBg:ee[600],border:ee[300]},secondary:{bg:h[800],fg:"#ffffff",hoverBg:h[700],activeBg:h[900],border:h[500]},outline:{bg:"transparent",fg:ee[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:ee[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:h[950],headerBg:h[900],footerBg:h[900],border:h[500]},menu:{bg:h[950],border:h[500],item:{fg:"#ffffff",hoverBg:h[800],activeBg:ee[800],selectedBg:ee[900],disabledFg:h[500]}},tabs:{bg:h[950],border:h[500],tab:{fg:h[300],activeFg:"#ffffff",activeBg:h[800],hoverFg:h[100],indicator:ee[400]}},dropdown:{bg:h[950],border:h[500],item:{fg:"#ffffff",hoverBg:h[800],selectedBg:ee[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:h[400],border:h[500],focusBorder:ee[400],invalidBorder:ae[400]},checkbox:{bg:"#000000",border:h[400],checkColor:"#000000",checkedBg:ee[400]},radio:{bg:"#000000",dotColor:ee[400],border:h[400],checkedBorder:ee[400]},tooltip:{bg:h[800],fg:"#ffffff"},modal:{bg:h[950],border:h[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:h[700],fg:"#ffffff"},success:{bg:pe[500],fg:"#000000"},warning:{bg:ue[400],fg:"#000000"},danger:{bg:ae[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:h[900],selectedBg:ee[800],fg:"#ffffff"}},header:{default:{bg:h[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},primary:{bg:ee[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee[300]},secondary:{bg:h[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},success:{bg:pe[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:pe[300]},warning:{bg:ue[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ue[600]},danger:{bg:ae[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ae[300]}},statusbar:{default:{bg:h[950],fg:h[300]},primary:{bg:ee[500],fg:"#ffffff"},info:{bg:Ze[500],fg:"#000000"},success:{bg:pe[500],fg:"#000000"},warning:{bg:ue[400],fg:"#000000"},danger:{bg:ae[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},primary:{bg:"#000000",titleFg:ee[400],subtitleFg:h[300],border:ee[400]},secondary:{bg:"#000000",titleFg:h[100],subtitleFg:h[400],border:h[700]}},appshell:{bg:"#000000",dividerFg:h[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:h[950],headerFg:"#ffffff",contentBg:"#000000",border:h[500],iconFg:h[300]},primary:{headerBg:h[900],headerFg:ee[400],contentBg:"#000000",border:ee[400],iconFg:ee[400]},secondary:{headerBg:h[900],headerFg:"#ffffff",contentBg:h[950],border:h[500],iconFg:h[300]}},commandPalette:{bg:h[950],border:h[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:h[400],itemFg:"#ffffff",itemHoverBg:h[800],itemSelectedBg:ee[800],itemSelectedFg:"#ffffff",highlightFg:ee[400],categoryFg:h[400]},splitPanel:{bg:"#000000",dividerBg:h[500],dividerHoverBg:h[400],dividerActiveBg:ee[400],border:h[500],titleFg:h[300]},toast:{success:{bg:oo.success[900],fg:oo.success[100],border:pe[400],iconFg:pe[400]},error:{bg:oo.danger[900],fg:oo.danger[100],border:ae[400],iconFg:ae[400]},warning:{bg:oo.warning[900],fg:oo.warning[100],border:ue[400],iconFg:ue[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:Ze[400],iconFg:Ze[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:h[950],titleBarFg:"#ffffff",border:h[500],buttonFg:h[300],closeFg:ae[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:ee[500],titleBarFg:"#ffffff",border:ee[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:pe[500],titleBarFg:"#000000",border:pe[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:ue[400],titleBarFg:"#000000",border:ue[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ae[500],titleBarFg:"#ffffff",border:ae[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var wL={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]}},BR={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:wL,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 NR=Symbol("tuiuiu.theme-runtime-state");function $R(){let[e,t]=fr(Ap);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function RL(e){if(e.id===0)return $R();let t=Ft(NR,$R),[r,n]=fr(Zo(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function GR(){let e=Ge();return De(NR,()=>RL(e),e)}function WR(){return Zo(GR().currentTheme)}var _L={dark:Ap,light:AR,monokai:CR,dracula:OR,nord:DR,solarizedDark:FR,gruvbox:IR,tokyoNight:MR,catppuccin:LR,highContrastDark:jR,monochrome:BR},$8=Object.keys(_L);function xL(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("#")&&xL(e)>.4?"black":"white"}function EL(e,t=500){let r=PR[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var vL={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 HR(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=Zo(GR().currentTheme),r=vL[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return EL(o,i)}return e}var SL={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},UR=Symbol("tuiuiu.perf-inspector-runtime-state");function TL(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function qR(e){let t=e.id===0?null:Ft(UR,()=>qR(Or())),r=TL(t?.config??SL);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function KR(){let e=Ge();return De(UR,()=>qR(e),e)}function PL(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function AL(e,t){let r=DL().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 CL(e,t){e.ring.length!==e.config.maxFrames&&AL(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 OL(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 VR(e,t={}){let r=KR(),n=PL(e),o=Math.max(0,n-r.config.budget.frameMs),s=OL(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;Uw({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(CL(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function DL(){let e=KR(),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 FL={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function so(e,t){return tR(e,t,FL)}function Cp(e){rR(e)}function xn(e,t){sR(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),VR(e,{renderer:t.renderer})}var IL=.4,ML=64;function io(){return typeof performance<"u"?performance.now():Date.now()}var zR=new WeakMap;function LL(){let e=WR(),t=zR.get(e);return t||(t=new Map,zR.set(e,t)),t}function jL(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&&BL(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 BL(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 QR(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 XR(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 $L(e,t,r){let n=e.map(s=>XR(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(!(QR(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 NL(e,t,r){let n=new Map;for(let i of e){let a=XR(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 ZR(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 wi(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,k=0;function b(I){K(t.columns||80,t.rows||24);let G=so(I,{width:s,height:i});v(G)}function v(I){K(I.info.viewport.width,I.info.viewport.height),H(I),Ko(I.layout),ni(),c=I.root,u=I}function T(){l=!0,c?b(c):u&&H(u)}function $(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new wi(s,i),l=!0}function D(){!r&&d&&(ts(t),d=!1)}function L(){let I=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:k,totalCells:I,updatePercentage:I>0?k/I*100:0}}function W(I,G){s=I,i=G,a.resize(s,i),l=!0}function K(I,G){!r&&!d&&(rs(t),d=!0),(I!==s||G!==i)&&W(I,G)}function H(I){let G=io(),V=0,ge=0,fe=a.getFrontBuffer(),de=a.getBackBuffer();p++;let te=s*i,me=YL(u,I),Oe=Mr(),ve=ER(Oe),ke=vR(Oe),J=Re=>{let Ae=io();t.write(Re),V+=io()-Ae,ge+=typeof Re=="string"?Buffer.byteLength(Re):Re.byteLength};if(!l&&n&&u){let{renderRects:Re,diffRects:Ae}=WL(u.drawCommands,I.drawCommands,s,i);if(Tt(I,"dirtyRectCount",Re.length),Tt(I,"diffRectCount",Ae.length),Re.length===0){me&&J(me),k=0,Tt(I,"patchCount",0),Tt(I,"outputByteCount",ge),it(I,"outputWriteMs",V),it(I,"deltaRenderMs",Math.max(0,io()-G-V)),xn(I,{renderer:"delta"});return}let Ee=HL(Re);if(!(Re.length>ML||Ee>te*IL)){ve&&J(ve),UL(de,Re),KL(I.drawCommands,Re,de,I.reservedRegions);let Se=fe.diffRects(de,Ae);if(fe.applyPatches(Se),de.clearDamage(),k=Se.length,Tt(I,"patchCount",Se.length),o&&console.error(`[delta-render] dirty-rects: ${Re.length}, patches: ${Se.length}, cells: ${te}`),me&&J(me),Se.length>0){let ce=vp(Se,s,!0);J(ce),g++}ke&&J(ke),Tt(I,"outputByteCount",ge),it(I,"outputWriteMs",V),it(I,"deltaRenderMs",Math.max(0,io()-G-V)),xn(I,{renderer:"delta"});return}}ve&&J(ve),de.clear(),r_(I.drawCommands,de,I.reservedRegions);let ie=a.swap();if(k=ie.length,Tt(I,"patchCount",ie.length),o&&console.error(`[delta-render] patches: ${ie.length}, cells: ${te}`),l||!n||ie.length>te*.5){let Re=El(a.getFrontBuffer());me&&J(me),J("\x1B[H"),J(Re),f++,l=!1,ke&&J(ke),Tt(I,"outputByteCount",ge),it(I,"outputWriteMs",V),it(I,"deltaRenderMs",Math.max(0,io()-G-V)),xn(I,{renderer:"delta"});return}if(me&&J(me),ie.length>0){let Re=vp(ie,s,!0);J(Re),g++}l=!1,ke&&J(ke),Tt(I,"outputByteCount",ge),it(I,"outputWriteMs",V),it(I,"deltaRenderMs",Math.max(0,io()-G-V)),xn(I,{renderer:"delta"})}return{render:b,renderFrame:v,fullRedraw:T,clear:$,cleanup:D,stats:L,resize:W}}function GL(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=ei(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,xe(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 Op(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:GL(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 WL(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&&jL(a,l)||(a&&o.push(Op(a)),l&&o.push(Op(l)))}return{renderRects:$L(o,r,n),diffRects:NL(o,r,n)}}function HL(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function UL(e,t){let r=Lr();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function e_(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,xe(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)||e_(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function qL(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)&&!e_(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function t_(e,t,r){switch(e.type){case"box":VL(e,t,r);break;case"text":a_(e,t,r);break;case"terminal-image":zL(e,t);break}}function KL(e,t,r,n){for(let o of e){let s=Op(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(QR(s,i)){t_(o,r,n);break}}}}function r_(e,t,r){for(let n of e)t_(n,t,r)}function n_(e,t=new jr(e.info.viewport.width,e.info.viewport.height)){return r_(e.drawCommands,t,e.reservedRegions),t}function VL(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:k,clip:b}=e,v=a?ao(a):void 0,T=c?ao(c):void 0,$=f?ao(f):T;if(v||l!==" "){let D=d&&d!=="none"?1:0,L=n+D,W=o+D,K=Math.max(0,s-D*2),H=Math.max(0,i-D*2);for(let I=0;I<H;I++)qL(t,r,L,W+I,K,l,void 0,v,{},b)}if(d&&d!=="none"){let D=Sp[d]??Sp.single,L={},W=u?.top!==!1,K=u?.bottom!==!1,H=u?.left!==!1,I=u?.right!==!1;if(W){let G=H?D.topLeft:D.top;mr(t,r,n,o,G,T,void 0,L,b);for(let V=1;V<s-1;V++)mr(t,r,n+V,o,D.top,T,void 0,L,b);if(s>1){let V=I?D.topRight:D.top;mr(t,r,n+s-1,o,V,T,void 0,L,b)}if(p&&s>4){let V=s-4,fe=` ${Zs(kk(p),V,{truncationCharacter:""})} `,de=xe(fe),te=g??"center",me=te==="left"?n+1:te==="right"?n+Math.max(1,s-1-de):n+Math.max(1,Math.floor((s-de)/2)),Oe=0,ve=me;for(;Oe<fe.length&&ve<n+s-1;){let ke=qn(fe,Oe);if(!ke)break;Oe=ke.nextIndex;let J=xe(ke.symbol);J<=0||ve+J>n+s-1||(mr(t,r,ve,o,ke.symbol,$,void 0,k?{...L,bold:!0}:L,b),ve+=J)}}}for(let G=1;G<i-1;G++)H&&mr(t,r,n,o+G,D.left,T,void 0,L,b),I&&s>1&&mr(t,r,n+s-1,o+G,D.right,T,void 0,L,b);if(K&&i>1){let G=H?D.bottomLeft:D.bottom;mr(t,r,n,o+i-1,G,T,void 0,L,b);for(let V=1;V<s-1;V++)mr(t,r,n+V,o+i-1,D.bottom,T,void 0,L,b);if(s>1){let V=I?D.bottomRight:D.bottom;mr(t,r,n+s-1,o+i-1,V,T,void 0,L,b)}}}}function zL(e,t){e.cellRender&&a_({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:i_(e),style:{},clip:e.clip},t,[])}function o_(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 s_(e){let t=o_(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 Ri(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${s_(e)}:${e.x}:${e.y}`)}function ns(e){return[Ri(e),e.x,e.y,s_(e)].join(":")}function i_(e){let t=o_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:pl(e.protocol,e.source,t)}function JR(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 JL(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Ri(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Ri(s));if(!i||ns(s)!==ns(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=Qo.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${fl("kitty")}\x1B8`}}return o}function YL(e,t){let r=JR(e),n=JR(t),o=r.map(ns).join("|"),s=n.map(ns).join("|");if(e&&o===s)return"";let i=JL(r,n),a=new Map(r.map(l=>[Ri(l),l]));for(let l of n){let d=a.get(Ri(l));d&&ns(d)===ns(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=i_(l),i+="\x1B8")}return i}function os(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 QL(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=os(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(os);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function XL(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=os(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[os(e[t+2]),os(e[t+3]),os(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 YR={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function ZL(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=Un(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 k=p[g].split(":"),b=Number(k[0]||0);if(k.length>1){if(b===4){let v=Number(k[1]||0);v in YR&&(a.underline=YR[v])}else if(b===38||b===48||b===58){let v=QL(k);v&&(b===38?s=v:b===48?i=v:a.underlineColor=v)}continue}if(b===0)s=t,i=r,a={...n};else if(b===1)a.bold=!0;else if(b===2)a.dim=!0;else if(b===3)a.italic=!0;else if(b===4)a.underline=!0;else if(b===5)a.blink=!0;else if(b===7)a.inverse=!0;else if(b===8)a.hidden=!0;else if(b===9)a.strikethrough=!0;else if(b===21)a.underline="double";else if(b===22)a.bold=!1,a.dim=!1;else if(b===23)a.italic=!1;else if(b===24)a.underline=!1;else if(b===25)a.blink=!1;else if(b===27)a.inverse=!1;else if(b===28)a.hidden=!1;else if(b===29)a.strikethrough=!1;else if(b>=30&&b<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][b-30];else if(b===39)s=t;else if(b>=40&&b<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][b-40];else if(b===49)i=r;else if(b===59)a.underlineColor=n.underlineColor;else if(b>=90&&b<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][b-90];else if(b>=100&&b<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][b-100];else if(b===38||b===48||b===58){let{color:v,consumed:T}=XL(p,g);v&&(b===38?s=v:b===48?i=v:a.underlineColor=v),g+=T}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function a_(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?ao(a.color):void 0,u=d?void 0:a.backgroundColor?ao(a.backgroundColor):l?ao(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?ao(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=ei(i,s,a.wrap);if(g){let k=ZL(f.join(`
|
|
196
197
|
`),c,u,p),b=0,v=0;for(let T of k){let $=0;for(;$<T.text.length;){let D=qn(T.text,$);if(!D)break;let L=D.symbol;if(L===`
|
|
197
|
-
`){v++,b=0,$=D.nextIndex;continue}let W=xe(L);W>0&&(
|
|
198
|
+
`){v++,b=0,$=D.nextIndex;continue}let W=xe(L);W>0&&(mr(t,r,n+b,o+v,L,T.fg,T.bg,T.attrs,e.clip),b+=W),$=D.nextIndex}}}else for(let k=0;k<f.length;k++){let b=0,v=0;for(;v<f[k].length;){let T=qn(f[k],v);if(!T)break;let $=T.symbol;if(b>=s)break;let D=xe($);D>0&&(mr(t,r,n+b,o+k,$,c,u,p,e.clip),b+=D),v=T.nextIndex}}}function ao(e){let t=LL(),r=t.get(e);if(r)return r;let n=HR(e);return t.set(e,n),n}var s9=Symbol("tuiuiu.delta-renderer-state");function l_(){return typeof performance<"u"?performance.now():Date.now()}function c_(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=c_(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function ej(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 Fp(e,t={}){let r=l_(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=c_(s).maxY+(typeof a=="number"?a:0),c=e.info.viewport.height,u=n&&c<1e3?c:d,p=new jr(e.info.viewport.width,u);n_(e,p);let g=El(p,n),f=nj(e,o);return it(e,"ansiRenderMs",l_()-r),f+g}function u_(e,t,r){let n=ej(t,r),s=!(typeof t=="object"?t.height!==void 0:r!==void 0)&&e.props.height==="fill"?process.stdout.rows??24:n.height,i=so(e,{width:n.width,height:s});return Fp(i,{fullHeight:n.fullHeight})}function p_(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 f_(e){let t=p_(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 _i(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${f_(e)}:${e.x}:${e.y}`)}function ss(e){return[_i(e),e.x,e.y,f_(e)].join(":")}function tj(e){let t=p_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:pl(e.protocol,e.source,t)}function d_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function Dp(e,t){if(!yw(t))return e;let r=Mr();return r.multiplexer?vl(e,r.multiplexer):e}function rj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[_i(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(_i(s));if(!i||ss(s)!==ss(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=Dp(`\x1B7\x1B[H${Qo.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return Dp(`\x1B7\x1B[H${fl("kitty")}\x1B8`,"kitty")}}return o}function nj(e,t){let r=d_(e);if(r.length===0&&!t)return"";let n=d_(t),o=n.map(ss).join("|"),s=r.map(ss).join("|");if(t&&o===s)return"";let i=rj(n,r),a=new Map(n.map(l=>[_i(l),l]));for(let l of r){let d=a.get(_i(l));if(d&&ss(d)===ss(l))continue;let c=tj(l);i+=Dp(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function Tl(e){let{value:t,isNew:r}=cr(null);if(r||t===null){let n=hi(()=>fr(e)),o=Qt();return ur(o,n),n}return t}function g_(e){let{value:t,isNew:r}=cr(null);if(r||t===null){let n=hi(e);return ur(Qt(),n),n}return t}function xi(e){let{value:t,isNew:r}=cr(null);if(r||t===null){let n=Qt(),o={effect:null,fn:e,dispose:null};ur(n,o);let s=new kn(()=>{let a=Ir(n);if(a)return a.fn()}),i=()=>s.dispose();return o.effect=s,o.dispose=i,Vn(i,n),i}else return t.fn=e,t.dispose}var v9=Symbol("tuiuiu.keyboard-protocol-runtime-state");function h_(e){let t=e.match(/^\x1b\[(?:(\d+)(?::(\d+))?(?::(\d+))?)?(?:;(\d+)(?::(\d+))?)?(?:;(.+))?u$/);if(!t)return null;let r=(f,k)=>{if(f===void 0)return k??null;if(!/^\d+$/u.test(f))return null;let b=Number(f);return Number.isSafeInteger(b)?b: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(k=>r(k));if(f.length===0||f.some(k=>k===null||!n(k)))return null;g=f.map(k=>String.fromCodePoint(k)).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 Ip="\x1B[200~",is="\x1B[201~",oj="\x1B[I",sj="\x1B[O";function m_(){return"\x1B[?2004h"}function b_(){return"\x1B[?2004l"}function y_(){return"\x1B[?1004h"}function k_(){return"\x1B[?1004l"}function w_(e){return e===oj?{focused:!0}:e===sj?{focused:!1}:null}function R_(){return"\x1B[?1049h"}function Mp(){return"\x1B[?1049l"}var ij={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},aj=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),lj=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),dj=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,cj=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,uj=/^\x1b\[27;(\d+);(\d+)~/;function pj(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 x_(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function __(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!x_(t)||t>=57344&&t<=63743?"":r||String.fromCodePoint(t)}function fj(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 Lp(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===`
|
|
198
199
|
`)return r.return=!0,{input:n,key:r,length:1};if(t==="\x1B\r"||t===`\x1B
|
|
199
|
-
`)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=JL.exec(t);if(o){let d=o_(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=u_(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=YL.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(QL(r,d)&&p_(c))return n=u_(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=zL.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=qL[c];return p&&XL(r,p),KL.has(c)&&(r.shift=!0),VL.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 Fp(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=ar(null);if(i||s===null){let c=function(){return Fr(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=Jt();lr(d,l),r&&(l.handlerId=Xa(a,{priority:n,stopPropagation:o})),Vn(()=>{l.handlerId!==null&&(ti(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=Xa(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(ti(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&ti(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=Xa(s.wrapper,{priority:n,stopPropagation:o}))}}function f_(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(f_):typeof e=="string"||typeof e=="number"?[ki({children:String(e)})]:[e]}function Ip(e,...t){return{type:"box",props:{...e},children:f_(t.length>0?t:e.children)}}function ki(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:[]}}function Mp(e={}){let{flex:t=1,minSize:r=0,x:n,y:o}=e;return{type:"spacer",props:{flexGrow:n!==void 0||o!==void 0?0:t,flexShrink:0,minWidth:n??r,minHeight:o??r,width:n,height:o},children:[]}}var ZL=0,g_=Symbol("tuiuiu.focus-zone-manager"),Lp=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 De(g_,()=>new e)}static reset(){za(g_)}[Ar](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${ZL++}`,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 h_(){return Lp.getInstance()}var wi=class{zoneManager=h_();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 ej}from"node:string_decoder";function m_(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function tj(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function rj(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 nj(e){let t=rj(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function oj(e){let t=Math.min(e.length,os.length-1);for(let r=t;r>0;r--)if(e.endsWith(os.slice(0,r)))return r;return 0}var jp=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new ej("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,m_(this.maxPasteBytes,"maxPasteBytes"),m_(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),tj(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}=nj(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&&os.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(os);if(o===-1){let s=oj(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+os.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(Cp);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+Cp.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 b_(e={}){return new jp(e)}function y_(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=k=>{typeof r.write=="function"&&r.write(k)},p=k=>{if(!(d||!t.isTTY||!t.setRawMode)){if(k){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(a_()),a&&o&&u(s_()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let k,b=v=>{try{v()}catch(T){k??=T}};if(c=0,b(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),b(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&b(()=>u(l_())),a&&o&&b(()=>u(i_())),k)throw k}}}function vl(){let e=zr();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var xl=new WeakSet,El=new WeakSet;function Bp(e,t,r={}){let n=Nu();if(n&&zr(n))throw new Error("[tuiuiu] Cannot initialize a nested app inside an active render runtime.");let{autoTabNavigation:o=!0,exitOnCtrlC:s=!0,exitProcess:i=!1,maxPasteBytes:a=1024*1024,maxPendingEscapeBytes:l=4096,escapeSequenceTimeoutMs:d=25,pasteTimeoutMs:c=3e4}=r;if(!Number.isSafeInteger(a)||a<1)throw new Error("[tuiuiu] maxPasteBytes must be a positive safe integer");if(!Number.isSafeInteger(l)||l<1)throw new Error("[tuiuiu] maxPendingEscapeBytes must be a positive safe integer");if(!Number.isFinite(d)||d<0)throw new Error("[tuiuiu] escapeSequenceTimeoutMs must be a non-negative number");if(!Number.isFinite(c)||c<0)throw new Error("[tuiuiu] pasteTimeoutMs must be a non-negative number");if(xl.has(e)||El.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=hk();xl.add(e),El.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,k,b=!1,v=o,T,$=qe(u,()=>(nR({stdout:t}),!!(e.isTTY&&p&&Ir().focusEvents))),D=y_({stdin:e,stdout:t,focusEvents:$,bracketedPaste:!0}),L=D.setRawMode,W=D.isRawModeEnabled;try{D.start()}catch(J){xl.delete(e),El.delete(t);try{D.dispose()}finally{Ho(u)}throw J}cp(u);let K=qe(u,()=>new wi);Vu(K,u);let H=b_({maxPasteBytes:a,maxPendingEscapeBytes:l}),I=null,N=null,V=()=>{I&&(clearTimeout(I),I=null)},ge=()=>{V(),I=setTimeout(()=>{H.abortPaste(),I=null},Math.max(0,c))},fe=J=>{let ie=J;for(;ie.length>0;){let Re=d_(ie.slice(0,3));if(Re){Bt(()=>{dp(Re.focused)}),ie=ie.slice(3);continue}if(Qu(ie)){let ce=ii(ie);if(ce){Bt(()=>{Yo().handleMouseEvent(ce.event),jk(ce.event)}),ie=ie.slice(ce.length);continue}}let{input:Ae,key:Ee,length:we}=Dp(ie),Se=we>0?we:1;if(ie=ie.slice(Se),s&&Ee.ctrl&&Ae==="c"){ke();return}if(v){if(Ee.tab&&!Ee.shift){Bt(()=>{K.focusNext()});continue}if(Ee.tab&&Ee.shift){Bt(()=>{K.focusPrevious()});continue}if(Ee.escape&&K.getActiveId()!==void 0){Bt(()=>{K.blur()});continue}}Bt(()=>{Mk(Ae,Ee)})}},de=J=>{for(let ie of J){if(b)return;ie.type==="paste"?Bt(()=>{$k(ie.text,ie.bracketed)}):fe(ie.input)}},te=()=>{b||(N&&(clearTimeout(N),N=null),H.status.pendingEscapeBytes>0&&(N=setTimeout(me,Math.max(0,d))),H.status.pasteActive?ge():V())},me=()=>{N=null,!b&&(de(H.flushPendingInput()),te())},Oe=Vr(u,J=>{b||(de(H.push(J)),te())});e.on("data",Oe);let ve=()=>{if(b)return;b=!0;let J=ie=>{try{ie()}catch(Re){console.error("[tuiuiu] Error while disposing app state:",Re)}};try{J(()=>e.off("data",Oe)),N&&(clearTimeout(N),N=null),V(),J(()=>H.dispose()),J(()=>D.dispose()),J(()=>Qa(u)),J(()=>cp(u)),J(()=>Lk(u)),J(()=>Gk(u)),J(()=>Bk(u)),J(()=>rl(u)),J(()=>Yk(u)),J(()=>Vu(null,u)),J(()=>{zr(u)===T&&Ku(null,u)})}finally{xl.delete(e),El.delete(t),g.clear(),Ho(u)}},ke=J=>{if(f)return;f=!0,k=J;let ie=[...g];g.clear(),ve();for(let Re of ie)try{Re(J)}catch(Ae){console.error("[tuiuiu] Error in app exit callback:",Ae)}J&&console.error(J),i&&process.exit(J?1:0)};return T={exit:ke,dispose:ve,stdin:e,stdout:t,writeLine:J=>{let ie=Go(String(J)).replace(/\r\n?/g,`
|
|
200
|
+
`)return r.return=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B\r")return r.return=!0,r.meta=!0,r.ctrl=!0,{input:n,key:r,length:2};if(t===" ")return r.tab=!0,{input:n,key:r,length:1};if(t==="\x7F"||t==="\b")return r.backspace=!0,{input:n,key:r,length:1};if(t==="\x1B\x7F"||t==="\x1B\b")return r.backspace=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B")return r.escape=!0,{input:n,key:r,length:1};if(t==="\x1B\x1B")return r.escape=!0,r.meta=!0,{input:n,key:r,length:2};if(t===" ")return n=" ",{input:n,key:r,length:1};if(t==="\x1B ")return r.meta=!0,n=" ",{input:n,key:r,length:2};if(t.length>=1&&t.charCodeAt(0)<=26)return r.ctrl=!0,n=String.fromCharCode(t.charCodeAt(0)+97-1),{input:n,key:r,length:1};let o=cj.exec(t);if(o){let d=h_(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=__(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=uj.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(pj(r,d)&&x_(c))return n=__(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=dj.exec(t);if(i&&i.index===0){let d=[...t];d[0]==="\x1B"&&d[1]==="\x1B"&&(r.option=!0);let c=[i[1],i[2],i[4],i[6]].filter(Boolean).join(""),u=(i[3]||i[5]||1)-1;r.ctrl=!!(u&4),r.meta=!!(u&10),r.shift=!!(u&1);let p=ij[c];return p&&fj(r,p),aj.has(c)&&(r.shift=!0),lj.has(c)&&(r.ctrl=!0),{input:n,key:r,length:i[0].length}}let a=/^(?:)([a-zA-Z0-9])/.exec(t);if(a)return r.meta=!0,r.shift=/^[A-Z]$/.test(a[1]),n=a[1].toLowerCase(),{input:n,key:r,length:2};let l=/^[^\x00-\x1f\x7f]+/u.exec(t);if(l){let d=l[0];return d.length===1&&d>="A"&&d<="Z"?(r.shift=!0,n=d.toLowerCase(),{input:n,key:r,length:1}):(n=d,{input:n,key:r,length:d.length})}return{input:n,key:r,length:t.length}}function jp(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=cr(null);if(i||s===null){let c=function(){return Ir(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=Qt();ur(d,l),r&&(l.handlerId=nl(a,{priority:n,stopPropagation:o})),Vn(()=>{l.handlerId!==null&&(ii(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=nl(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(ii(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&ii(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=nl(s.wrapper,{priority:n,stopPropagation:o}))}}function E_(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(E_):typeof e=="string"||typeof e=="number"?[Ei({children:String(e)})]:[e]}function Bp(e,...t){return{type:"box",props:{...e},children:E_(t.length>0?t:e.children)}}function Ei(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:[]}}function $p(e={}){let{flex:t=1,minSize:r=0,x:n,y:o}=e;return{type:"spacer",props:{flexGrow:n!==void 0||o!==void 0?0:t,flexShrink:0,minWidth:n??r,minHeight:o??r,width:n,height:o},children:[]}}var gj=0,v_=Symbol("tuiuiu.focus-zone-manager"),Np=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 De(v_,()=>new e)}static reset(){Za(v_)}[Cr](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${gj++}`,n={id:r,elements:new Map,order:[],activeId:null,previousActiveId:null,options:{trap:!1,autoFocus:!0,wrap:!0,direction:"vertical",disabled:!1,restoreFocus:!0,...t},parentId:this.activeZoneId,isActive:!1};return this.zones.set(r,n),r}destroyZone(t){t===this.rootZoneId||!this.zones.get(t)||(this.activeZoneId===t&&this.deactivateZone(t),this.stack=this.stack.filter(n=>n.zoneId!==t),this.zones.delete(t))}activateZone(t){let r=this.zones.get(t);if(!r||r.options.disabled)return;let o=this.getActiveZone()?.activeId??null;this.stack.length>=this.maxStackDepth&&console.warn(`Focus stack overflow: ${this.stack.length} zones stacked`),this.activeZoneId&&this.activeZoneId!==t&&this.stack.push({zoneId:this.activeZoneId,previousFocusId:o,previousZoneId:this.activeZoneId,timestamp:Date.now()}),this.activeZoneId=t,r.isActive=!0,r.options.autoFocus&&r.order.length>0&&this.focusElement(r.order[0],t)}deactivateZone(t){let r=this.zones.get(t);if(!r)return;r.isActive=!1;let n=this.stack.pop();n?(this.activeZoneId=n.previousZoneId,r.options.restoreFocus&&n.previousFocusId&&this.zones.get(n.previousZoneId)&&this.focusElement(n.previousFocusId,n.previousZoneId)):this.activeZoneId=this.rootZoneId}getActiveZone(){return this.activeZoneId?this.zones.get(this.activeZoneId)??null:null}getZone(t){return this.zones.get(t)??null}registerElement(t,r=this.activeZoneId||"__root__",n={}){let o=this.zones.get(r);if(!o)return;let s={id:t,order:n.order??o.order.length,isActive:n.isActive??!0,tabIndex:n.tabIndex,onFocus:n.onFocus,node:n.node,group:n.group};o.elements.set(t,s),this.updateOrder(o)}unregisterElement(t,r){let n=r?[this.zones.get(r)]:Array.from(this.zones.values());for(let o of n)if(o&&o.elements.has(t)){o.activeId===t&&this.focusNextInZone(o.id),o.elements.delete(t),this.updateOrder(o);return}}updateElement(t,r,n){let o=n?[this.zones.get(n)]:Array.from(this.zones.values());for(let s of o){if(!s)continue;let i=s.elements.get(t);if(i){Object.assign(i,r),r.order!==void 0&&this.updateOrder(s);return}}}updateOrder(t){let r=Array.from(t.elements.entries()).filter(([,n])=>n.isActive&&n.tabIndex!==-1).sort((n,o)=>n[1].order-o[1].order);t.order=r.map(([n])=>n)}focusElement(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;let o=n.elements.get(t);if(!o||!o.isActive)return!1;let s=n.activeId;return s&&s!==t&&n.elements.get(s)?.onFocus?.(!1),n.previousActiveId=s,n.activeId=t,o.onFocus?.(!0),this.notifyFocusChange({elementId:t,previousElementId:s,zoneId:n.id,isInitial:s===null}),!0}focusNext(){let t=this.getActiveZone();return t?this.focusNextInZone(t.id):!1}focusPrevious(){let t=this.getActiveZone();return t?this.focusPreviousInZone(t.id):!1}focusNextInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):-1)+1;if(o>=r.order.length)if(r.options.wrap)o=0;else return r.options.trap?!1:r.parentId?this.focusNextInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusPreviousInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):r.order.length)-1;if(o<0)if(r.options.wrap)o=r.order.length-1;else return r.options.trap?!1:r.parentId?this.focusPreviousInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusFirst(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[0],r.id)}focusLast(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[r.order.length-1],r.id)}blur(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r||!r.activeId)return;r.elements.get(r.activeId)?.onFocus?.(!1),r.previousActiveId=r.activeId,r.activeId=null,this.notifyFocusChange({elementId:null,previousElementId:r.previousActiveId,zoneId:r.id,isInitial:!1})}getActiveId(t){return(t?this.zones.get(t):this.getActiveZone())?.activeId??null}getActiveElement(t){let r=t?this.zones.get(t):this.getActiveZone();return r?.activeId?r.elements.get(r.activeId)??null:null}isFocused(t,r){return(r?this.zones.get(r):this.getActiveZone())?.activeId===t}getFocusOrder(t){return(t?this.zones.get(t):this.getActiveZone())?.order??[]}getStackDepth(){return this.stack.length}onFocusChange(t){return this.listeners.add(t),()=>this.listeners.delete(t)}notifyFocusChange(t){for(let r of this.listeners)try{r(t)}catch(n){console.error("Error in focus change listener:",n)}}focusGroup(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;for(let o of n.order)if(n.elements.get(o)?.group===t)return this.focusElement(o,n.id);return!1}focusNextGroup(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r)return!1;let o=(r.activeId?r.elements.get(r.activeId):null)?.group,s=r.activeId?r.order.indexOf(r.activeId):-1;for(let i=s+1;i<r.order.length;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id);if(r.options.wrap){for(let i=0;i<=s;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id)}return!1}};function S_(){return Np.getInstance()}var vi=class{zoneManager=S_();zoneId;constructor(t="__root__"){this.zoneId=t}register(t,r){this.zoneManager.registerElement(t,this.zoneId,{onFocus:r})}unregister(t){this.zoneManager.unregisterElement(t,this.zoneId)}focus(t){this.zoneManager.focusElement(t,this.zoneId)}focusNext(){this.zoneManager.focusNextInZone(this.zoneId)}focusPrevious(){this.zoneManager.focusPreviousInZone(this.zoneId)}blur(){this.zoneManager.blur(this.zoneId)}getActiveId(){return this.zoneManager.getActiveId(this.zoneId)??void 0}};import{StringDecoder as hj}from"node:string_decoder";function T_(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function mj(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function bj(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 yj(e){let t=bj(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function kj(e){let t=Math.min(e.length,is.length-1);for(let r=t;r>0;r--)if(e.endsWith(is.slice(0,r)))return r;return 0}var Gp=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new hj("utf8");pendingInput="";pasteBuffer=null;pasteBufferBytes=0;pasteOverflowed=!1;pasteTerminatorPrefix="";disposed=!1;constructor(t={}){this.maxPasteBytes=t.maxPasteBytes??1024*1024,this.maxPendingEscapeBytes=t.maxPendingEscapeBytes??4096,this.pasteHeuristicThreshold=t.pasteHeuristicThreshold??32,T_(this.maxPasteBytes,"maxPasteBytes"),T_(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),mj(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}=yj(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&&is.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(is);if(o===-1){let s=kj(n),i=n.length-s;return this.appendPaste(n.slice(0,i)),this.pasteTerminatorPrefix=n.slice(i),null}return this.appendPaste(n.slice(0,o)),!this.pasteOverflowed&&this.pasteBuffer!==null&&r.push({type:"paste",text:this.pasteBuffer,bracketed:!0}),this.abortPaste(),n.slice(o+is.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(Ip);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+Ip.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 P_(e={}){return new Gp(e)}function A_(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=k=>{typeof r.write=="function"&&r.write(k)},p=k=>{if(!(d||!t.isTTY||!t.setRawMode)){if(k){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(y_()),a&&o&&u(m_()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let k,b=v=>{try{v()}catch(T){k??=T}};if(c=0,b(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),b(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&b(()=>u(k_())),a&&o&&b(()=>u(b_())),k)throw k}}}function Cl(){let e=Yr();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Pl=new WeakSet,Al=new WeakSet;function Wp(e,t,r={}){let n=qu();if(n&&Yr(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(Pl.has(e)||Al.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=Sk();Pl.add(e),Al.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,k,b=!1,v=o,T,$=qe(u,()=>(gR({stdout:t}),!!(e.isTTY&&p&&Mr().focusEvents))),D=A_({stdin:e,stdout:t,focusEvents:$,bracketedPaste:!0}),L=D.setRawMode,W=D.isRawModeEnabled;try{D.start()}catch(J){Pl.delete(e),Al.delete(t);try{D.dispose()}finally{qo(u)}throw J}gp(u);let K=qe(u,()=>new vi);Qu(K,u);let H=P_({maxPasteBytes:a,maxPendingEscapeBytes:l}),I=null,G=null,V=()=>{I&&(clearTimeout(I),I=null)},ge=()=>{V(),I=setTimeout(()=>{H.abortPaste(),I=null},Math.max(0,c))},fe=J=>{let ie=J;for(;ie.length>0;){let Re=w_(ie.slice(0,3));if(Re){Bt(()=>{fp(Re.focused)}),ie=ie.slice(3);continue}if(tp(ie)){let ce=ui(ie);if(ce){Bt(()=>{Xo().handleMouseEvent(ce.event),zk(ce.event)}),ie=ie.slice(ce.length);continue}}let{input:Ae,key:Ee,length:we}=Lp(ie),Se=we>0?we:1;if(ie=ie.slice(Se),s&&Ee.ctrl&&Ae==="c"){ke();return}if(v){if(Ee.tab&&!Ee.shift){Bt(()=>{K.focusNext()});continue}if(Ee.tab&&Ee.shift){Bt(()=>{K.focusPrevious()});continue}if(Ee.escape&&K.getActiveId()!==void 0){Bt(()=>{K.blur()});continue}}Bt(()=>{Kk(Ae,Ee)})}},de=J=>{for(let ie of J){if(b)return;ie.type==="paste"?Bt(()=>{Yk(ie.text,ie.bracketed)}):fe(ie.input)}},te=()=>{b||(G&&(clearTimeout(G),G=null),H.status.pendingEscapeBytes>0&&(G=setTimeout(me,Math.max(0,d))),H.status.pasteActive?ge():V())},me=()=>{G=null,!b&&(de(H.flushPendingInput()),te())},Oe=Jr(u,J=>{b||(de(H.push(J)),te())});e.on("data",Oe);let ve=()=>{if(b)return;b=!0;let J=ie=>{try{ie()}catch(Re){console.error("[tuiuiu] Error while disposing app state:",Re)}};try{J(()=>e.off("data",Oe)),G&&(clearTimeout(G),G=null),V(),J(()=>H.dispose()),J(()=>D.dispose()),J(()=>rl(u)),J(()=>gp(u)),J(()=>Vk(u)),J(()=>Qk(u)),J(()=>Jk(u)),J(()=>al(u)),J(()=>aw(u)),J(()=>Qu(null,u)),J(()=>{Yr(u)===T&&Yu(null,u)})}finally{Pl.delete(e),Al.delete(t),g.clear(),qo(u)}},ke=J=>{if(f)return;f=!0,k=J;let ie=[...g];g.clear(),ve();for(let Re of ie)try{Re(J)}catch(Ae){console.error("[tuiuiu] Error in app exit callback:",Ae)}J&&console.error(J),i&&process.exit(J?1:0)};return T={exit:ke,dispose:ve,stdin:e,stdout:t,writeLine:J=>{let ie=Wo(String(J)).replace(/\r\n?/g,`
|
|
200
201
|
`);t.write(`${ie.replace(/\n+$/u,"")}
|
|
201
|
-
`)},onExit:J=>{if(f){try{J(k)}catch(ie){console.error("[tuiuiu] Error in app exit callback:",ie)}return()=>{}}return g.add(J),()=>{g.delete(J)}},autoTabNavigation:v,setAutoTabNavigation:J=>{v=J},setRawMode:L,get rawModeEnabledCount(){return D.rawModeEnabledCount},isRawModeEnabled:W,isTerminalFocused:()=>
|
|
202
|
+
`)},onExit:J=>{if(f){try{J(k)}catch(ie){console.error("[tuiuiu] Error in app exit callback:",ie)}return()=>{}}return g.add(J),()=>{g.delete(J)}},autoTabNavigation:v,setAutoTabNavigation:J=>{v=J},setRawMode:L,get rawModeEnabledCount(){return D.rawModeEnabledCount},isRawModeEnabled:W,isTerminalFocused:()=>gr(u),enqueueExternalUpdate:J=>{Bt(()=>{J()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},Yu(T,u),T}function Hp(e){let t=Yr();t&&(t.clearScreen=e)}function Ol(e){let t=Yr();t&&(t.writeLine=e??(r=>{let n=Wo(String(r)).replace(/\r\n?/g,`
|
|
202
203
|
`);t.stdout.write(`${n.replace(/\n+$/u,"")}
|
|
203
|
-
`)}))}function
|
|
204
|
+
`)}))}function Dl(e){let t=Yr();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 Up(){let[e,t]=g_(()=>fr(mR()));return xi(()=>bR(n=>{t(n)})),e()}function qp(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=cr(null);if(i||s===null){let a=Qt(),l={timerId:null,callback:e,delay:t,enabled:n,running:!1,start:()=>{let d=Ir(a);d&&!d.running&&(d.running=!0,d.timerId=setInterval(()=>{let c=Ir(a);c&&c.callback()},d.delay))},stop:()=>{let d=Ir(a);d&&d.running&&(d.timerId!==null&&(clearInterval(d.timerId),d.timerId=null),d.running=!1)},isRunning:()=>Ir(a)?.running??!1};return ur(a,l),Vn(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[",Kp=`${br}H`,Si=`${br}J`,Fl=`${br}K`,C_=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},O_=e=>e>0?`${br}${e}A`:"",wj=`${br}1E`,Rj=`${br}2K`;function _j(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${br}${n+1}H`:Kp,d=c=>{!r&&!a&&(rs(e),a=!0);let u=c+`
|
|
204
205
|
`;if(u===o)return;let p=c.split(`
|
|
205
|
-
`),g=p.map(T=>xe(T)),f=p.length,k=[];for(let T=0;T<p.length;T++){let $=p[T],D=g[T],L=i[T]??0;D<L?k.push($+
|
|
206
|
-
`+
|
|
206
|
+
`),g=p.map(T=>xe(T)),f=p.length,k=[];for(let T=0;T<p.length;T++){let $=p[T],D=g[T],L=i[T]??0;D<L?k.push($+Fl):k.push($)}let b=s-f,v="";if(b>0)for(let T=0;T<b;T++)v+=`
|
|
207
|
+
`+Fl;o=u,s=f,i=g,e.write(l+k.join(`
|
|
207
208
|
`)+v+`
|
|
208
|
-
`+
|
|
209
|
+
`+Si)};return d.clear=()=>{e.write(l+Si),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(ts(e),a=!1)},d.sync=c=>{let u=c.split(`
|
|
209
210
|
`);o=c+`
|
|
210
|
-
`,s=u.length,i=u.map(p=>xe(p))},d}function
|
|
211
|
+
`,s=u.length,i=u.map(p=>xe(p))},d}function xj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${br}${n+1}H`:Kp,l=d=>{!r&&!i&&(rs(e),i=!0);let c=d+`
|
|
211
212
|
`;if(c===s)return;let u=o.length,p=c.split(`
|
|
212
213
|
`),g=p.length,f=g-1;if(c===`
|
|
213
|
-
`||s.length===0){e.write(a+
|
|
214
|
-
`)}e.write(k.join("")),s=c,o=p};return l.clear=()=>{e.write(a+
|
|
214
|
+
`||s.length===0){e.write(a+C_(u)+c),s=c,o=p;return}let k=[];g<u?k.push(C_(u-g+1),O_(f)):k.push(O_(u-1));for(let b=0;b<f;b++){if(p[b]===o[b]){k.push(wj);continue}k.push(Rj+p[b]+`
|
|
215
|
+
`)}e.write(k.join("")),s=c,o=p};return l.clear=()=>{e.write(a+Si),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(ts(e),i=!1)},l.sync=d=>{let c=d+`
|
|
215
216
|
`;s=c,o=c.split(`
|
|
216
|
-
`)},l}function
|
|
217
|
-
`),p=u.length,g=c;if(g=u.map(k=>k+
|
|
217
|
+
`)},l}function Ej(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${br}${n+1}H`:Kp,l=d=>{!r&&!i&&(rs(e),i=!0);let c=d;if(c===o)return;let u=c.split(`
|
|
218
|
+
`),p=u.length,g=c;if(g=u.map(k=>k+Fl).join(`
|
|
218
219
|
`),s>p){let k=s-p;for(let b=0;b<k;b++)g+=`
|
|
219
|
-
`+
|
|
220
|
-
`).length},l}function
|
|
221
|
-
`),
|
|
222
|
-
`).length,$t()};qe(W,()
|
|
223
|
-
`).replace(/\n+$/u,"");Se.push(ye),X(
|
|
224
|
-
`))}
|
|
225
|
-
`):ie(
|
|
226
|
-
`),oe()}),waitUntilExit:()=>ce,clear:()=>qe(W,()=>{s||(
|
|
227
|
-
`);let a=t.paths??
|
|
220
|
+
`+Fl}e.write(a+g+Si),o=c,s=p};return l.clear=()=>{e.write(a+Si),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(ts(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
|
|
221
|
+
`).length},l}function Vp(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?Ej(e,t):r?xj(e,t):_j(e,t)}function D_(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 F_=Symbol("tuiuiu.overlay-runtime-state");function vj(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function I_(e){let t=e.id===0?null:Ft(F_,()=>I_(Or())),r={layers:new Map,nextZIndex:100,terminalSize:{width:t?.terminalSize.width??80,height:t?.terminalSize.height??24},idCounter:0,toastQueue:[],activeTooltip:null,tooltipTimer:null,[Cr](){vj(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function Sj(){let e=Ge();return De(F_,()=>I_(e),e)}function zp(e,t){let r=Sj();r.terminalSize={width:e,height:t}}function M_(e){return"__reactive"in e}function Tj(e){let t=e.__reactive(),r=Dt(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function L_(e){let t=0,r=n=>{M_(n)&&Tj(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function j_(e){let t=new Set,r=n=>{M_(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function Pj(e){return!!e.props.__static}function Aj(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${Dt(e.children??[])}`}function Cj(e){let t=[];function r(o){if(Pj(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 Jp={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},Oj={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function Yp(e,t={}){let r=t.screenMode?Oj[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:k=!0,fixedStep:b}=t,v=t.clearOnStart??r?.clearOnStart??!0,T=t.fullHeight??r?.fullHeight??!1,$=t.alternateScreen??r?.alternateScreen??!0;if(!Number.isFinite(p)||p<0)throw new Error("[tuiuiu] maxFps must be a finite non-negative number");if(b){if(!Number.isFinite(b.updateFps)||b.updateFps<=0)throw new Error("[tuiuiu] fixedStep.updateFps must be a finite positive number");if(b.maxCatchUpUpdates!==void 0&&(!Number.isSafeInteger(b.maxCatchUpUpdates)||b.maxCatchUpUpdates<1))throw new Error("[tuiuiu] fixedStep.maxCatchUpUpdates must be a positive safe integer")}let D=Wp(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),L=Ju(D);if(!L)throw D.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let W=L,K=()=>{},H=[];try{K=Zk(),H.push(Qr(()=>{o.isTTY&&o.setRawMode&&o.setRawMode(!1)})),H.push(Qr(()=>{n.write("\x1B[?1004l")})),H.push(Qr(()=>{n.write("\x1B[?2004l")})),$&&(n.write(R_()),H.push(Qr(()=>{n.write(Mp())})))}catch(re){for(let ye of H.splice(0))try{ye()}catch{}try{K()}catch{}throw D.dispose(),qo(W),re}let I=typeof e=="function"?e:()=>e,G=!1,V=0,ge=0,fe=0,de,te,me=()=>{G=!1,be()},Oe=()=>{V++,V===1&&(ge=0,fe=0)},ve=()=>V===0?{bytes:0,writeMs:0}:(V--,V===0?{bytes:ge,writeMs:fe}:{bytes:0,writeMs:0}),ke=re=>{let ye=V>0?performance.now():0,Ie=n.write(re);return V>0&&(fe+=performance.now()-ye,ge+=typeof re=="string"?Buffer.byteLength(re):re.byteLength),!Ie&&!G&&!we&&(G=!0,n.once("drain",me)),Ie},J={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)},ie=Vp(J,{showCursor:g,incremental:!1,fullScreen:T,topOffset:0}),Re=0,Ae=null,Ee="",we=!1,Se=[],ce,oe,_e,Fe=new Set,at=0,$t=()=>{Re=at,ie=Vp(J,{showCursor:g,incremental:!1,fullScreen:T,topOffset:Re}),Ee=""},Xr=()=>{ie.clear(),ke(Jp.clearTerminal),Ee="",Fe.clear(),at=0,Se=[],$t()},Zr=re=>{ie.clear(),ke(`${re}
|
|
222
|
+
`),at+=re.split(`
|
|
223
|
+
`).length,$t()};qe(W,()=>Hp(Xr)),ce=new Promise((re,ye)=>{oe=re,_e=ye});let lo=D.dispose;D.dispose=()=>{if(we){lo();return}Pt(),oe()};let le=p>0?Math.ceil(1e3/p):0;qe(W,()=>{Hw({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:le>0?le:16.67}),zp(n.columns||80,n.rows||24)});let Nt=0,ct=!1,et=null,wt=null,lt=null,ut=0,Rt=0,_t=0,Br=0,Ce=null,Le=[],Q=!1,C=null;k&&(C=ZR({stdout:J,showCursor:g,useDelta:!0})),v&&!s&&ke(Jp.clearTerminal);let w=le>0?le:16,M=D_(()=>{Le.length!==0&&Bt(()=>{for(;Le.length>0;){let re=Le;Le=[];for(let ye of re)ye()}})},w);qe(W,()=>Dl({enqueue(re){we||(Le.push(re),M.schedule())},flush(){we||M.flush()},isPending(){return Le.length>0||M.isPending()}}));let B=()=>{let re=performance.now();te=Date.now(),Gk("component");try{Ae=I(),L_(Ae)}finally{Wk(),de=performance.now()-re}},U=()=>qe(W,()=>{B(),kr()});function X(re){we||(wt=re,!G&&be())}function be(){if(ct||we||G||!wt)return;let ye=Date.now()-Nt,Ie=Nt===0||ye>=le?0:le-ye,Gt=()=>{let At=wt;if(wt=null,ct=!1,et=null,!we)try{At?.()}catch(Wt){D.exit(Wt instanceof Error?Wt:new Error(String(Wt)))}};if(ct=!0,Ie===0){queueMicrotask(Gt);return}et=setTimeout(Gt,Ie)}let je=re=>qe(W,()=>{if(we)return;let ye=Wo(String(re)).replace(/\r\n?/g,`
|
|
224
|
+
`).replace(/\n+$/u,"");Se.push(ye),X(kr)});qe(W,()=>Ol(je));function Be(){if(!b||we||(b.pauseWhenUnfocused??!0)&&!gr())return;let ye=1e3/Math.max(1,b.updateFps),Ie=Math.max(0,Math.ceil(ye-ut));lt=setTimeout(Zt,Ie)}function Zt(){if(!(!b||we))try{if((b.pauseWhenUnfocused??!0)&&!gr()){lt=null,ut=0,Rt=Date.now();return}let ye=1e3/b.updateFps,Ie=b.maxCatchUpUpdates??5,Gt=Date.now();ut+=Gt-Rt,Rt=Gt;let At=0;for(;ut>=ye&&At<Ie;)ut-=ye,_t++,Br+=ye,Bt(()=>{b.onUpdate({deltaTimeMs:ye,step:_t,elapsedMs:Br})}),At++;ut>=ye&&(ut%=ye),Be()}catch(re){lt=null,D.exit(re instanceof Error?re:new Error(String(re)))}}let yr=Jr(W,()=>{we||(hR(),zp(n.columns||80,n.rows||24),xw(),X(U))});n.on("resize",yr);let Ve=()=>{};D.onExit(re=>qe(W,()=>{Pt(),Ve(),re?_e(re):oe()}));function kr(){if(we||!Ae)return;Nt=Date.now();let re=te??Date.now(),ye=n.columns||80,Ie=n.rows||24,Gt=Cj(Ae),At=()=>{C&&(C.cleanup(),C=null,ke(Jp.clearTerminal),Fe.clear(),at=0,$t())};if(Se.length>0){At();let $e=Se;Se=[],Zr($e.join(`
|
|
225
|
+
`))}Gt.staticNodes.length>0&&At();let Wt=Math.max(1,Ie-at);if(C&&!s){let $e=so(Ae,{width:ye,height:Wt});$e.metrics.runtimeStartAt=re,de!==void 0&&it($e,"vnodeEvalMs",de);let Pn=performance.now();Cp($e),lp($e.layout,at);let Nr=Xo();Nr.hasClickableElements()&&!Q?(zo(),Q=!0):!Nr.hasClickableElements()&&Q&&(zn(),Q=!1),it($e,"frameCommitMs",performance.now()-Pn),Tt($e,"reservedRegionCount",$e.reservedRegions.length),C.renderFrame($e),de=void 0,te=void 0;return}let{staticNodes:en,interactiveNode:En}=Gt,vn=performance.now();Oe();for(let $e=0;$e<en.length;$e++){let Pn=en[$e],Nr=Aj(Pn,$e);if(!Fe.has(Nr)){let Gr=u_(Pn,ye);Gr.trim()&&(Zr(Gr),Fe.add(Nr))}}let Sn=nR(),Ue=so(En,{width:ye,height:Wt});Ue.metrics.runtimeStartAt=re,de!==void 0&&it(Ue,"vnodeEvalMs",de);let Tn=performance.now()-vn;it(Ue,"staticRenderMs",Tn);let tn=performance.now();Cp(Ue),lp(Ue.layout,at);let $r=Xo();$r.hasClickableElements()&&!Q?(zo(),Q=!0):!$r.hasClickableElements()&&Q&&(zn(),Q=!1),it(Ue,"frameCommitMs",performance.now()-tn),Tt(Ue,"reservedRegionCount",Ue.reservedRegions.length);let tt=Fp(Ue,{fullHeight:T,previousFrame:Sn});if(tt===Ee&&!s){let $e=ve();it(Ue,"outputWriteMs",$e.writeMs),Tt(Ue,"outputByteCount",$e.bytes),xn(Ue,{renderer:"ansi",runtimeStartAt:re}),Ko(Ue.layout),ni(),de=void 0,te=void 0;return}s?ke(tt+`
|
|
226
|
+
`):ie(tt);let co=ve();it(Ue,"outputWriteMs",co.writeMs),Tt(Ue,"outputByteCount",co.bytes),xn(Ue,{renderer:"ansi",runtimeStartAt:re}),Ko(Ue.layout),ni(),Ee=tt,de=void 0,te=void 0}function Pt(){return qe(W,er)}function er(){if(we)return;we=!0;let re=ye=>{try{ye()}catch(Ie){console.error("[tuiuiu] Error while cleaning up the render loop:",Ie)}};et&&(clearTimeout(et),et=null),lt&&(clearTimeout(lt),lt=null),Ce?.(),Ce=null,G=!1,re(()=>n.off("drain",me)),wt=null,ct=!1,M.cancel(),Le=[],Dl(null),Ol(null),Q&&(re(()=>zn()),Q=!1),re(()=>n.off("resize",yr)),re(C?()=>C?.cleanup():()=>ie.done()),$&&re(()=>{n.write(Mp())}),G=!1,re(()=>n.off("drain",me)),re(()=>rl(W)),Ae&&re(()=>j_(Ae)),re(()=>D.dispose());for(let ye of H.splice(0))re(ye);re(K),re(()=>oR()),re(()=>qo(W))}try{Ve=qe(W,()=>Lw(()=>{U()},{scheduler:X})),qe(W,()=>{b&&(Rt=Date.now(),(b.pauseWhenUnfocused??!0)&&(Ce=bl(re=>{if(!(we||!b)){if(!re){lt&&(clearTimeout(lt),lt=null),ut=0,Rt=Date.now();return}ut=0,Rt=Date.now(),lt||Be()}})),Be())})}catch(re){try{Ve()}catch(ye){console.error("[tuiuiu] Error while rolling back the render effect:",ye)}throw Pt(),re}return{rerender:re=>qe(W,()=>{I=()=>re,X(U)}),unmount:()=>qe(W,()=>{Pt(),Ve(),s||ke(`
|
|
227
|
+
`),oe()}),waitUntilExit:()=>ce,clear:()=>qe(W,()=>{s||(et&&(clearTimeout(et),et=null),wt=null,ct=!1,Xr(),G?X(()=>{kr()}):kr())}),writeLine:je}}function Dj(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`;return Bp({flexDirection:"column",width:t,height:r,overflow:"hidden"},...e.lines.slice(0,n).map((s,i)=>Ei({key:i,wrap:"truncate-end"},s)),$p({flex:1}),Ei({dim:e.noColor!==!0,wrap:"truncate-end"},o))}async function B_(e){let t=!1;function r(){let o=Cl(),s=Up(),[i,a]=Tl(["redskilled \xB7 connecting to host\u2026"]),[l,d]=Tl(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([`redskilled dashboard failed \u2014 ${u instanceof Error?u.message:String(u)}`])}).finally(()=>{t=!1}))};return xi(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),qp(c,e.refreshMs??1e3),jp((u,p)=>{let g=u.toLowerCase();if(g==="q"||p.escape){o.exit();return}if(g==="r"){c();return}g==="v"&&(d(f=>!f),setTimeout(c,0))}),Dj({lines:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await Yp(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as Wj}from"node:child_process";import{readFileSync as Hj}from"node:fs";import{dirname as U_,join as Uj}from"node:path";import{createHash as Fj}from"node:crypto";var Ij="project.name";function N_(e){let t=$o(e,Ij)?.trim();return t===void 0||t===""?void 0:t}var Mj=8,G_="project";function W_(e){let t=Nj(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:Lj(e.remoteUrl)??{name:jj(e.checkoutPath,t),source:"basename"},o=$j(t??Qp(e.checkoutPath));return{name:n.name,slug:`${Bj(n.name)}-${o}`,hash:o,source:n.source}}function H_(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 Lj(e){let t=H_(e);return t===void 0?void 0:{name:t,source:"remote"}}function jj(e,t){let r=t===void 0?"":$_(Gj(t));if(r!=="")return r;let n=$_(Qp(e));return n===""?G_:n}function Bj(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?G_:r}function $j(e){return Fj("sha256").update(e).digest("hex").slice(0,Mj)}function Nj(e){let t=Qp(e??"");return t===""?void 0:t}function Qp(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function $_(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function Gj(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var qj=2e3;function q_(e){return Kj(e).name}function Kj(e){let t=Zp(e),r=Xp(e,["rev-parse","--absolute-git-dir"])??Xp(e,["rev-parse","--git-common-dir"]),n=Xp(e,["remote","get-url","origin"]);return W_({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function Zp(e){let t=H0(e,Uj(".red","config.yaml"));if(t==null)return{};let r;try{r=Hj(t,"utf8")}catch{return{}}let n=N_(r),o=U_(U_(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function Xp(e,t){try{let r=Wj("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:qj}).trim();return r===""?void 0:r}catch{return}}function Il(e){let t=Zp(e);return t.configText==null?{label:null}:{configText:t.configText,label:q_(e)}}async function ef(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=Va(e),s=Il(t.cwd??process.cwd()),i=za({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let g of[...i.warnings,...o.warnings])n(`redskilled dashboard: ignoring ${g.key}=${g.value} \u2014 ${g.reason}
|
|
228
|
+
`);let a=t.paths??dr(),l=t.readDashboard??$0,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 k=await l(a,g,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}});return c?k.lines.map(Ca):k.lines}catch(k){let b=k instanceof Error?k.message:String(k);return f&&n(`redskilled dashboard: ${b}
|
|
228
229
|
`),[`redskilled unreachable \u2014 ${b}`]}};if(!d){let g=await p({...u,...i.options.maxWidth==null?{}:{maxWidth:i.options.maxWidth}});return r(`${g.join(`
|
|
229
230
|
`)}
|
|
230
|
-
`),0}return await(t.runTui??
|
|
231
|
+
`),0}return await(t.runTui??B_)({initialShowDeathDetails:i.options.verbose,noColor:c,readFrame:async({columns:g,rows:f,showDeathDetails:k})=>{let b=Math.max(1,Math.min(i.options.maxWidth??g,g)),v=Math.max(1,f);return await p({...u,maxWidth:b,maxHeight:v,maxRows:Math.max(0,v-5),showDeathDetails:k},!1)}}),0}var zj=`Usage: redskilled <command> [options]
|
|
231
232
|
|
|
232
233
|
Commands:
|
|
233
234
|
host-state (default) print the host's state as JSON
|
|
@@ -241,7 +242,7 @@ Commands:
|
|
|
241
242
|
|
|
242
243
|
Run \`redskilled <command> --help\` for a command's own usage.
|
|
243
244
|
\`--version\` (\`-v\`) prints the build stamp; both answer offline.
|
|
244
|
-
`,
|
|
245
|
+
`,Jj={serve:`Usage: redskilled serve [options]
|
|
245
246
|
|
|
246
247
|
Runs the daemon in this process. Every path is a flag and none is derived
|
|
247
248
|
(ADR 0130 rule 3); what is absent falls back to the session derivation.
|
|
@@ -328,23 +329,23 @@ Reports every session runtime dir it looked at and why it kept or removed it.
|
|
|
328
329
|
|
|
329
330
|
--dry-run the same report with nothing removed
|
|
330
331
|
--grace-ms <n> how long a dir must be idle before it is reclaimed
|
|
331
|
-
`};function
|
|
332
|
-
`:`${
|
|
333
|
-
`),0}if(
|
|
334
|
-
`);let p=
|
|
335
|
-
`),0}var
|
|
336
|
-
`),0}function
|
|
337
|
-
`),o.running&&!o.stopped?1:0}async function
|
|
338
|
-
`),0;if(o==="install"){let s=await
|
|
339
|
-
`),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await
|
|
340
|
-
`),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}async function
|
|
341
|
-
`);let a;try{a=await
|
|
342
|
-
`),a=
|
|
332
|
+
`};function Yj(e){return e==="--help"||e==="-h"||e==="help"}var Qj={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)}},V_="REDSKILLED_HOST_TOKEN";function Pi(){try{let t=Vj("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function z_(e=process.env,t=Pi){let r=(e[V_]??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 Xj(e,t=process.env,r=Pi,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...K_(e,t,r,n),armTransport:()=>K_(e,t,r,n)}}function Zj(e,t=process.env,r=Pi){let n=z_(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:Nc({token:n.token,...o?{origin:o}:{}})}}function K_(e,t=process.env,r=Pi,n){let o=z_(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${V_}, 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:Bb({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function eB(e){if(e[0]==="--version"||e[0]==="-v"){let o=dd("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
|
|
333
|
+
`:`${lg(o)}
|
|
334
|
+
`),0}if(Yj(e[0]))return process.stdout.write(zj),0;let{command:t,args:r}=pg(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(Jj[t]),0;if(t==="serve"){let{values:o}=nn(r,Qj),s=await G0(Ti()),i=W0({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=Ml(or(Ti()),"state"),l=fa({path:Ml(a,"github","spend.toonl")}),d=Xj(o,process.env,Pi,l),c=Zj(o),u=Dg({stateRoot:a});process.stderr.write(`${Fg(u)}
|
|
335
|
+
`);let p=Tg({lanePath:hs(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),g=await S0({paths:fB(o),idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??dd("redskilled").version,deaths:u.attributions,queueDiscovery:d,...c==null?{}:{githubBalance:c},...o["demand-ms"]==null?{}:{demandMs:o["demand-ms"]}});for(let f of["SIGTERM","SIGINT"])process.once(f,()=>void g.stop({reason:"signal",signal:f}).catch(()=>{}));return await g.closed,p.phase("closed"),0}if(t==="stop")return await sB(r);if(t==="statusline")return await aB(r);if(t==="dashboard")return await ef(r);if(t==="github-spend")return await rB(r);if(t==="unit")return await iB(r);if(t==="provision")return await dB(r);if(t==="reclaim")return await uB(r);let n=await L0(dr());return process.stdout.write(`${JSON.stringify(n,null,2)}
|
|
336
|
+
`),0}var tB={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function rB(e,t={}){let{values:r}=nn(e,tB,{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:nB(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??fa({path:Ml(or(t.homeDir??Ti()),"state","github","spend.toonl")})).report({from:l,to:i,...s===void 0?{}:{pool:s}});return(t.write??(u=>process.stdout.write(u)))(`${ot({version:c.version,origin:c.origin,window:{from:c.window.from,to:c.window.to},pool:c.pool,total_count:c.total_count,total_cost:c.total_cost,operations:c.operations.map(u=>({operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:u.count,cost:u.cost})),unreadable_records:c.unreadable_records})}
|
|
337
|
+
`),0}function nB(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 oB={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function sB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=nn(e,oB),o=await M0(t.paths??dr(),{...n.reason==null?{}:{detail:n.reason},...Number.isFinite(n["settle-timeout-ms"])?{settleTimeoutMs:n["settle-timeout-ms"]}:{}},t.client??{});return r(`${ot({running:o.running,stopped:o.stopped,reason:o.reason,socket:o.socket_path,daemon_version:o.daemon_version,pid:o.pid,holding:{workers:o.holding.workers.length,projects:[...o.holding.projects]},surviving:[...o.surviving],workers:o.holding.workers.map(s=>({worker_id:s.worker_id,project_label:s.project_label,pid:s.pid,unit:s.unit,isolated:s.isolated,survives:s.survives})),detail:o.detail})}
|
|
338
|
+
`),o.running&&!o.stopped?1:0}async function iB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??dr(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(Zy(t.unitIO??{}),null,2)}
|
|
339
|
+
`),0;if(o==="install"){let s=await Qy(Ky(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
|
|
340
|
+
`),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await Xy(t.unitIO??{}),null,2)}
|
|
341
|
+
`),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}async function aB(e,t={}){let r=t.write??(l=>process.stdout.write(l)),n=t.warn??(l=>process.stderr.write(l)),o=Va(e),s=Il(t.cwd??process.cwd()),i=za({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let l of[...i.warnings,...o.warnings])n(`redskilled statusline: ignoring ${l.key}=${l.value} \u2014 ${l.reason}
|
|
342
|
+
`);let a;try{a=await B0(t.paths??dr(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(l){n(`redskilled statusline: ${l instanceof Error?l.message:String(l)}
|
|
343
|
+
`),a=cu({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}return r(`${a.lines.join(`
|
|
343
344
|
`)}
|
|
344
|
-
`),0}var
|
|
345
|
-
`),u.verdict==="ok"?0:1}var
|
|
346
|
-
`),o.entries.some(s=>s.verdict==="failed")?1:0}function
|
|
347
|
-
`),process.exitCode=1})}export{
|
|
345
|
+
`),0}var lB={"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 dB(e,t={}){let r=t.write??(p=>process.stdout.write(p)),{values:n}=nn(e,lB),o=t.paths??dr(),s=t.homeDir??Ti(),i=await Bu({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await rk(s),l;if(!n.check&&!n["no-start"])try{await Fu(o,t.client??{})}catch(p){l=p instanceof Error?p.message:String(p)}let d=await sk({paths:o,homeNeed:i,...t.homeDir==null?{}:{homeDir:t.homeDir},...t.configHome==null?{}:{configHome:t.configHome},...t.client?.serverCommand==null?{}:{entryOverride:{serverCommand:t.client.serverCommand,serverArgs:t.client.serverArgs}}}),c=n["install-unit"]&&vr(d.entry)?await lk({configHome:t.configHome??pB(),unit:ak({command:[d.entry.command,...d.entry.args].join(" "),socketPath:o.socketPath})}):void 0,u=ok(d);return r(`${ot({verdict:u.verdict,home:{path:a?.path??d.homePath,created:a?.created??!1,tightened:a?.tightened??!1,needed:i.needed,needed_by:i.declaredBy},socket:d.socketPath,...l==null?{}:{start_error:l},...c==null?{}:{unit:{path:c.path,status:c.status}},checks:u.rows.map(p=>({check:p.check,verdict:p.verdict,evidence:p.evidence})),fixes:u.findings.map(p=>({check:p.check,fix:p.fix}))})}
|
|
346
|
+
`),u.verdict==="ok"?0:1}var cB={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}};async function uB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=nn(e,cB),o=await uk({...t.options??{},dryRun:n["dry-run"]===!0,...Number.isFinite(n["grace-ms"])?{graceMs:n["grace-ms"]}:{}});return r(`${ot({roots:[...o.roots],scanned:o.scanned,reclaimed:o.reclaimed,dry_run:o.dryRun,entries:o.entries.map(s=>({dir:s.dir,verdict:s.verdict,reason:s.reason,removed:[...s.removed]}))})}
|
|
347
|
+
`),o.entries.some(s=>s.verdict==="failed")?1:0}function pB(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:Ml(Ti(),".config")}function fB(e){let t=dr();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 gB=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(gB){let e=process.argv.slice(2);eB(e).then(t=>{e[0]==="serve"&&process.exit(t),process.exitCode=t},t=>{process.stderr.write(`redskilled: ${t instanceof Error?t.message:String(t)}
|
|
348
|
+
`),process.exitCode=1})}export{V_ as REDSKILLED_HOST_TOKEN_ENV,zj as REDSKILLED_USAGE,K_ as armRedskilledQueueTransport,z_ as resolveRedskilledHostToken,Zj as resolveServeGithubBalance,Xj as resolveServeQueueDiscovery,ef as runDashboard,rB as runGithubSpend,dB as runProvision,uB as runReclaim,eB as runRedskilledCli,aB as runStatusline,sB as runStop,iB as runUnit};
|
|
348
349
|
/*! Bundled license information:
|
|
349
350
|
|
|
350
351
|
content-type/dist/index.js:
|