@reddb-io/red-skills 4.2.2 → 4.2.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/code-nav.bundle.min.mjs +1 -1
- package/dist/opencode-host.bundle.min.mjs +1 -1
- package/dist/redskilled-mcp.bundle.min.mjs +1 -1
- package/dist/redskilled.bundle.min.mjs +2 -2
- package/dist/release.bundle.min.mjs +1 -1
- package/dist/rsp-core.bundle.min.mjs +1 -1
- package/dist/rsp.bundle.min.mjs +1 -1
- package/dist/statusline.bundle.min.mjs +1 -1
- package/package.json +1 -1
|
@@ -50,7 +50,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
50
50
|
`:`[${n[c]}\r
|
|
51
51
|
]`;continue}o+=n[c],n[c]==="\\"?i=!0:s&&n[c]==="]"?s=!1:!s&&n[c]==="["&&(s=!0)}try{new RegExp(o)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return o}function Qa(e,t){if(t.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),t.target==="openApi3"&&e.keyType?._def.typeName===E.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((n,o)=>({...n,[o]:W(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",o]})??je(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let r={type:"object",additionalProperties:W(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if(t.target==="openApi3")return r;if(e.keyType?._def.typeName===E.ZodString&&e.keyType._def.checks?.length){let{type:n,...o}=Ya(e.keyType._def,t);return{...r,propertyNames:o}}else{if(e.keyType?._def.typeName===E.ZodEnum)return{...r,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===E.ZodBranded&&e.keyType._def.type._def.typeName===E.ZodString&&e.keyType._def.type._def.checks?.length){let{type:n,...o}=Xa(e.keyType._def,t);return{...r,propertyNames:o}}}return r}function Qv(e,t){if(t.mapStrategy==="record")return Qa(e,t);let r=W(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||je(t),n=W(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||je(t);return{type:"array",maxItems:125,items:{type:"array",items:[r,n],minItems:2,maxItems:2}}}function eb(e){let t=e.values,n=Object.keys(e.values).filter(i=>typeof t[t[i]]!="number").map(i=>t[i]),o=Array.from(new Set(n.map(i=>typeof i)));return{type:o.length===1?o[0]==="string"?"string":"number":["string","number"],enum:n}}function tb(e){return e.target==="openAi"?void 0:{not:je({...e,currentPath:[...e.currentPath,"not"]})}}function rb(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var Qi={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function ob(e,t){if(t.target==="openApi3")return nb(e,t);let r=e.options instanceof Map?Array.from(e.options.values()):e.options;if(r.every(n=>n._def.typeName in Qi&&(!n._def.checks||!n._def.checks.length))){let n=r.reduce((o,i)=>{let s=Qi[i._def.typeName];return s&&!o.includes(s)?[...o,s]:o},[]);return{type:n.length>1?n:n[0]}}else if(r.every(n=>n._def.typeName==="ZodLiteral"&&!n.description)){let n=r.reduce((o,i)=>{let s=typeof i._def.value;switch(s){case"string":case"number":case"boolean":return[...o,s];case"bigint":return[...o,"integer"];case"object":if(i._def.value===null)return[...o,"null"];default:return o}},[]);if(n.length===r.length){let o=n.filter((i,s,a)=>a.indexOf(i)===s);return{type:o.length>1?o:o[0],enum:r.reduce((i,s)=>i.includes(s._def.value)?i:[...i,s._def.value],[])}}}else if(r.every(n=>n._def.typeName==="ZodEnum"))return{type:"string",enum:r.reduce((n,o)=>[...n,...o._def.values.filter(i=>!n.includes(i))],[])};return nb(e,t)}var nb=(e,t)=>{let r=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((n,o)=>W(n._def,{...t,currentPath:[...t.currentPath,"anyOf",`${o}`]})).filter(n=>!!n&&(!t.strictUnions||typeof n=="object"&&Object.keys(n).length>0));return r.length?{anyOf:r}:void 0};function ib(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target==="openApi3"?{type:Qi[e.innerType._def.typeName],nullable:!0}:{type:[Qi[e.innerType._def.typeName],"null"]};if(t.target==="openApi3"){let n=W(e.innerType._def,{...t,currentPath:[...t.currentPath]});return n&&"$ref"in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let r=W(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return r&&{anyOf:[r,{type:"null"}]}}function sb(e,t){let r={type:"number"};if(!e.checks)return r;for(let n of e.checks)switch(n.kind){case"int":r.type="integer",lf(r,"type",n.message,t);break;case"min":t.target==="jsonSchema7"?n.inclusive?ie(r,"minimum",n.value,n.message,t):ie(r,"exclusiveMinimum",n.value,n.message,t):(n.inclusive||(r.exclusiveMinimum=!0),ie(r,"minimum",n.value,n.message,t));break;case"max":t.target==="jsonSchema7"?n.inclusive?ie(r,"maximum",n.value,n.message,t):ie(r,"exclusiveMaximum",n.value,n.message,t):(n.inclusive||(r.exclusiveMaximum=!0),ie(r,"maximum",n.value,n.message,t));break;case"multipleOf":ie(r,"multipleOf",n.value,n.message,t);break}return r}function ab(e,t){let r=t.target==="openAi",n={type:"object",properties:{}},o=[],i=e.shape();for(let a in i){let c=i[a];if(c===void 0||c._def===void 0)continue;let u=vO(c);u&&r&&(c._def.typeName==="ZodOptional"&&(c=c._def.innerType),c.isNullable()||(c=c.nullable()),u=!1);let l=W(c._def,{...t,currentPath:[...t.currentPath,"properties",a],propertyPath:[...t.currentPath,"properties",a]});l!==void 0&&(n.properties[a]=l,u||o.push(a))}o.length&&(n.required=o);let s=_O(e,t);return s!==void 0&&(n.additionalProperties=s),n}function _O(e,t){if(e.catchall._def.typeName!=="ZodNever")return W(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return t.removeAdditionalStrategy==="strict"?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function vO(e){try{return e.isOptional()}catch{return!0}}var cb=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return W(e.innerType._def,t);let r=W(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return r?{anyOf:[{not:je(t)},r]}:je(t)};var ub=(e,t)=>{if(t.pipeStrategy==="input")return W(e.in._def,t);if(t.pipeStrategy==="output")return W(e.out._def,t);let r=W(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),n=W(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",r?"1":"0"]});return{allOf:[r,n].filter(o=>o!==void 0)}};function lb(e,t){return W(e.type._def,t)}function db(e,t){let n={type:"array",uniqueItems:!0,items:W(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&ie(n,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&ie(n,"maxItems",e.maxSize.value,e.maxSize.message,t),n}function fb(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((r,n)=>W(r._def,{...t,currentPath:[...t.currentPath,"items",`${n}`]})).reduce((r,n)=>n===void 0?r:[...r,n],[]),additionalItems:W(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((r,n)=>W(r._def,{...t,currentPath:[...t.currentPath,"items",`${n}`]})).reduce((r,n)=>n===void 0?r:[...r,n],[])}}function pb(e){return{not:je(e)}}function mb(e){return je(e)}var hb=(e,t)=>W(e.innerType._def,t);var gb=(e,t,r)=>{switch(t){case E.ZodString:return Ya(e,r);case E.ZodNumber:return sb(e,r);case E.ZodObject:return ab(e,r);case E.ZodBigInt:return Vv(e,r);case E.ZodBoolean:return Hv();case E.ZodDate:return df(e,r);case E.ZodUndefined:return pb(r);case E.ZodNull:return rb(r);case E.ZodArray:return Uv(e,r);case E.ZodUnion:case E.ZodDiscriminatedUnion:return ob(e,r);case E.ZodIntersection:return Kv(e,r);case E.ZodTuple:return fb(e,r);case E.ZodRecord:return Qa(e,r);case E.ZodLiteral:return Xv(e,r);case E.ZodEnum:return Gv(e);case E.ZodNativeEnum:return eb(e);case E.ZodNullable:return ib(e,r);case E.ZodOptional:return cb(e,r);case E.ZodMap:return Qv(e,r);case E.ZodSet:return db(e,r);case E.ZodLazy:return()=>e.getter()._def;case E.ZodPromise:return lb(e,r);case E.ZodNaN:case E.ZodNever:return tb(r);case E.ZodEffects:return Jv(e,r);case E.ZodAny:return je(r);case E.ZodUnknown:return mb(r);case E.ZodDefault:return Wv(e,r);case E.ZodBranded:return Xa(e,r);case E.ZodReadonly:return hb(e,r);case E.ZodCatch:return Bv(e,r);case E.ZodPipeline:return ub(e,r);case E.ZodFunction:case E.ZodVoid:case E.ZodSymbol:return;default:return(n=>{})(t)}};function W(e,t,r=!1){let n=t.seen.get(e);if(t.override){let a=t.override?.(e,t,n,r);if(a!==Zv)return a}if(n&&!r){let a=bO(n,t);if(a!==void 0)return a}let o={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,o);let i=gb(e,e.typeName,t),s=typeof i=="function"?W(i(),t):i;if(s&&wO(e,t,s),t.postProcess){let a=t.postProcess(s,e,t);return o.jsonSchema=s,a}return o.jsonSchema=s,s}var bO=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:Ka(t.currentPath,e.path)};case"none":case"seen":return e.path.length<t.currentPath.length&&e.path.every((r,n)=>t.currentPath[n]===r)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),je(t)):t.$refStrategy==="seen"?je(t):void 0}},wO=(e,t,r)=>(e.description&&(r.description=e.description,t.markdownDescription&&(r.markdownDescription=e.description)),r);var mf=(e,t)=>{let r=Fv(t),n=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((c,[u,l])=>({...c,[u]:W(l._def,{...r,currentPath:[...r.basePath,r.definitionPath,u]},!0)??je(r)}),{}):void 0,o=typeof t=="string"?t:t?.nameStrategy==="title"?void 0:t?.name,i=W(e._def,o===void 0?r:{...r,currentPath:[...r.basePath,r.definitionPath,o]},!1)??je(r),s=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;s!==void 0&&(i.title=s),r.flags.hasReferencedOpenAiAnyType&&(n||(n={}),n[r.openAiAnyTypeName]||(n[r.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:r.$refStrategy==="relative"?"1":[...r.basePath,r.definitionPath,r.openAiAnyTypeName].join("/")}}));let a=o===void 0?n?{...i,[r.definitionPath]:n}:i:{$ref:[...r.$refStrategy==="relative"?[]:r.basePath,r.definitionPath,o].join("/"),[r.definitionPath]:{...n,[o]:i}};return r.target==="jsonSchema7"?a.$schema="http://json-schema.org/draft-07/schema#":(r.target==="jsonSchema2019-09"||r.target==="openAi")&&(a.$schema="https://json-schema.org/draft/2019-09/schema#"),r.target==="openAi"&&("anyOf"in a||"oneOf"in a||"allOf"in a||"type"in a&&Array.isArray(a.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),a};function xO(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function hf(e,t){return At(e)?Md(e,{target:xO(t?.target),io:t?.pipeStrategy??"input"}):mf(e,{strictUnions:t?.strictUnions??!0,pipeStrategy:t?.pipeStrategy??"input"})}function gf(e){let r=Jr(e)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Pa(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function yf(e,t){let r=Wr(e,t);if(!r.success)throw r.error;return r.data}var $O=6e4,ec=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(ja,r=>{this._oncancel(r)}),this.setNotificationHandler(Ia,r=>{this._onprogress(r)}),this.setRequestHandler(Na,r=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Ma,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new Z(U.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(Aa,async(r,n)=>{let o=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),a.type==="response")l(c);else{let d=c,h=new Z(d.error.code,d.error.message,d.error.data);l(h)}else{let d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:n.requestId})}}let s=await this._taskStore.getTask(i,n.sessionId);if(!s)throw new Z(U.InvalidParams,`Task not found: ${i}`);if(!Kr(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Kr(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[Gr]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(qa,async(r,n)=>{try{let{tasks:o,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:o,nextCursor:i,_meta:{}}}catch(o){throw new Z(U.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(La,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new Z(U.InvalidParams,`Task not found: ${r.params.taskId}`);if(Kr(o.status))throw new Z(U.InvalidParams,`Cannot cancel task in terminal status: ${o.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new Z(U.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof Z?o:new Z(U.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,r,n,o,i=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:o})}_resetTimeout(t){let r=this._timeoutInfo.get(t);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(t),Z.fromError(U.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(t){let r=this._timeoutInfo.get(t);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let o=this._transport?.onmessage;this._transport.onmessage=(i,s)=>{o?.(i,s),Vi(i)||Rv(i)?this._onresponse(i):Gd(i)?this._onrequest(i,s):Tv(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=Z.fromError(U.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of t.values())n(r)}_onerror(t){this.onerror?.(t)}_onnotification(t){let r=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(t)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(t,r){let n=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,o=this._transport,i=t.params?._meta?.[Gr]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:U.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},o?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):o?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let s=new AbortController;this._requestHandlerAbortControllers.set(t.id,s);let a=Sv(t.params)?t.params.task:void 0,c=this._taskStore?this.requestTaskStore(t,o?.sessionId):void 0,u={signal:s.signal,sessionId:o?.sessionId,_meta:t.params?._meta,sendNotification:async l=>{if(s.signal.aborted)return;let d={relatedRequestId:t.id};i&&(d.relatedTask={taskId:i}),await this.notification(l,d)},sendRequest:async(l,d,h)=>{if(s.signal.aborted)throw new Z(U.ConnectionClosed,"Request was cancelled");let m={...h,relatedRequestId:t.id};i&&!m.relatedTask&&(m.relatedTask={taskId:i});let p=m.relatedTask?.taskId??i;return p&&c&&await c.updateTaskStatus(p,"input_required"),await this.request(l,d,m)},authInfo:r?.authInfo,requestId:t.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(t.method)}).then(()=>n(t,u)).then(async l=>{if(s.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:t.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:d,timestamp:Date.now()},o?.sessionId):await o?.send(d)},async l=>{if(s.signal.aborted)return;let d={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(l.code)?l.code:U.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:d,timestamp:Date.now()},o?.sessionId):await o?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.get(t.id)===s&&this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:r,...n}=t.params,o=Number(r),i=this._progressHandlers.get(o);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let s=this._responseHandlers.get(o),a=this._timeoutInfo.get(o);if(a&&s&&a.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),s(c);return}i(n)}_onresponse(t){let r=Number(t.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),Vi(t))n(t);else{let s=new Z(t.error.code,t.error.message,t.error.data);n(s)}return}let o=this._responseHandlers.get(r);if(o===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(Vi(t)&&t.result&&typeof t.result=="object"){let s=t.result;if(s.task&&typeof s.task=="object"){let a=s.task;typeof a.taskId=="string"&&(i=!0,this._taskProgressTokens.set(a.taskId,r))}}if(i||this._progressHandlers.delete(r),Vi(t))o(t);else{let s=Z.fromError(t.error.code,t.error.message,t.error.data);o(s)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(t,r,n)}}catch(s){yield{type:"error",error:s instanceof Z?s:new Z(U.InternalError,String(s))}}return}let i;try{let s=await this.request(t,zo,n);if(s.task)i=s.task.taskId,yield{type:"taskCreated",task:s.task};else throw new Z(U.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:a},Kr(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:a.status==="failed"?yield{type:"error",error:new Z(U.InternalError,`Task ${i} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new Z(U.InternalError,`Task ${i} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(s){yield{type:"error",error:s instanceof Z?s:new Z(U.InternalError,String(s))}}}request(t,r,n){let{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s,task:a,relatedTask:c}=n??{};return new Promise((u,l)=>{let d=T=>{l(T)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(T){d(T);return}n?.signal?.throwIfAborted();let h=this._requestMessageId++,m={...t,jsonrpc:"2.0",id:h};n?.onprogress&&(this._progressHandlers.set(h,n.onprogress),m.params={...t.params,_meta:{...t.params?._meta||{},progressToken:h}}),a&&(m.params={...m.params,task:a}),c&&(m.params={...m.params,_meta:{...m.params?._meta||{},[Gr]:c}});let p=T=>{this._responseHandlers.delete(h),this._progressHandlers.delete(h),this._cleanupTimeout(h),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:h,reason:String(T)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(M=>this._onerror(new Error(`Failed to send cancellation: ${M}`)));let z=T instanceof Z?T:new Z(U.RequestTimeout,String(T));l(z)};this._responseHandlers.set(h,T=>{if(!n?.signal?.aborted){if(T instanceof Error)return l(T);try{let z=Wr(r,T.result);z.success?u(z.data):l(z.error)}catch(z){l(z)}}}),n?.signal?.addEventListener("abort",()=>{p(n?.signal?.reason)});let y=n?.timeout??$O,v=()=>p(Z.fromError(U.RequestTimeout,"Request timed out",{timeout:y}));this._setupTimeout(h,y,n?.maxTotalTimeout,v,n?.resetTimeoutOnProgress??!1);let P=c?.taskId;if(P){let T=z=>{let M=this._responseHandlers.get(h);M?M(z):this._onerror(new Error(`Response handler missing for side-channeled request ${h}`))};this._requestResolvers.set(h,T),this._enqueueTaskMessage(P,{type:"request",message:m,timestamp:Date.now()}).catch(z=>{this._cleanupTimeout(h),l(z)})}else this._transport.send(m,{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(T=>{this._cleanupTimeout(h),l(T)})})}async getTask(t,r){return this.request({method:"tasks/get",params:t},Da,r)}async getTaskResult(t,r,n){return this.request({method:"tasks/result",params:t},r,n)}async listTasks(t,r){return this.request({method:"tasks/list",params:t},Za,r)}async cancelTask(t,r){return this.request({method:"tasks/cancel",params:t},Ov,r)}async notification(t,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let n=r?.relatedTask?.taskId;if(n){let a={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[Gr]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let a={...t,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[Gr]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let s={...t,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[Gr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(t,r){let n=gf(t);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=yf(t,o);return Promise.resolve(r(s,i))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,r){let n=gf(t);this._notificationHandlers.set(n,o=>{let i=yf(t,o);return Promise.resolve(r(i))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let r=this._taskProgressTokens.get(t);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,r,n,o)}async _clearTaskQueue(t,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(t,r);for(let o of n)if(o.type==="request"&&Gd(o.message)){let i=o.message.id,s=this._requestResolvers.get(i);s?(s(new Z(U.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let o=await this._taskStore?.getTask(t);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,i)=>{if(r.aborted){i(new Z(U.InvalidRequest,"Request cancelled"));return}let s=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(s),i(new Z(U.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!t)throw new Error("No request provided");return await n.createTask(o,t.id,{method:t.method,params:t.params},r)},getTask:async o=>{let i=await n.getTask(o,r);if(!i)throw new Z(U.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(o,i,s)=>{await n.storeTaskResult(o,i,s,r);let a=await n.getTask(o,r);if(a){let c=Gi.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Kr(a.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>n.getTaskResult(o,r),updateTaskStatus:async(o,i,s)=>{let a=await n.getTask(o,r);if(!a)throw new Z(U.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(Kr(a.status))throw new Z(U.InvalidParams,`Cannot update task "${o}" from terminal status "${a.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(o,i,s,r);let c=await n.getTask(o,r);if(c){let u=Gi.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Kr(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function yb(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function _b(e,t){let r={...e};for(let n in t){let o=n,i=t[o];if(i===void 0)continue;let s=r[o];yb(s)&&yb(i)?r[o]={...s,...i}:r[o]=i}return r}var u$=ea(nm(),1),l$=ea(c$(),1);function P1(){let e=new u$.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,l$.default)(e),e}var Ic=class{constructor(t){this._ajv=t??P1()}getValidator(t){let r="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var Mc=class{constructor(t){this._server=t}requestStream(t,r,n){return this._server.requestStream(t,r,n)}createMessageStream(t,r){let n=this._server.getClientCapabilities();if((t.tools||t.toolChoice)&&!n?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let o=t.messages[t.messages.length-1],i=Array.isArray(o.content)?o.content:[o.content],s=i.some(l=>l.type==="tool_result"),a=t.messages.length>1?t.messages[t.messages.length-2]:void 0,c=a?Array.isArray(a.content)?a.content:[a.content]:[],u=c.some(l=>l.type==="tool_use");if(s){if(i.some(l=>l.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!u)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(u){let l=new Set(c.filter(h=>h.type==="tool_use").map(h=>h.id)),d=new Set(i.filter(h=>h.type==="tool_result").map(h=>h.toolUseId));if(l.size!==d.size||![...l].every(h=>d.has(h)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:t},Yi,r)}elicitInputStream(t,r){let n=this._server.getClientCapabilities(),o=t.mode??"form";switch(o){case"url":{if(!n?.elicitation?.url)throw new Error("Client does not support url elicitation.");break}case"form":{if(!n?.elicitation?.form)throw new Error("Client does not support form elicitation.");break}}let i=o==="form"&&t.mode===void 0?{...t,mode:"form"}:t;return this.requestStream({method:"elicitation/create",params:i},Co,r)}async getTask(t,r){return this._server.getTask({taskId:t},r)}async getTaskResult(t,r,n){return this._server.getTaskResult({taskId:t},r,n)}async listTasks(t,r){return this._server.listTasks(t?{cursor:t}:void 0,r)}async cancelTask(t,r){return this._server.cancelTask({taskId:t},r)}};function d$(e,t,r){if(!e)throw new Error(`${r} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!e.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${t})`);break;default:break}}function f$(e,t,r){if(!e)throw new Error(`${r} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!e.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!e.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var Dc=class extends ec{constructor(t,r){super(r),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(Xi.options.map((n,o)=>[n,o])),this.isMessageIgnored=(n,o)=>{let i=this._loggingLevels.get(o);return i?this.LOG_LEVEL_SEVERITY.get(n)<this.LOG_LEVEL_SEVERITY.get(i):!1},this._capabilities=r?.capabilities??{},this._instructions=r?.instructions,this._jsonSchemaValidator=r?.jsonSchemaValidator??new Ic,this.setRequestHandler(Yd,n=>this._oninitialize(n)),this.setNotificationHandler(Qd,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(af,async(n,o)=>{let i=o.sessionId||o.requestInfo?.headers["mcp-session-id"]||void 0,{level:s}=n.params,a=Xi.safeParse(s);return a.success&&this._loggingLevels.set(i,a.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new Mc(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=_b(this._capabilities,t)}setRequestHandler(t,r){let o=Jr(t)?.method;if(!o)throw new Error("Schema is missing a method literal");let i;if(At(o)){let a=o;i=a._zod?.def?.value??a.value}else{let a=o;i=a._def?.value??a.value}if(typeof i!="string")throw new Error("Schema method literal must be a string");if(i==="tools/call"){let a=async(c,u)=>{let l=Wr(Oo,c);if(!l.success){let p=l.error instanceof Error?l.error.message:String(l.error);throw new Z(U.InvalidParams,`Invalid tools/call request: ${p}`)}let{params:d}=l.data,h=await Promise.resolve(r(c,u));if(d.task){let p=Wr(zo,h);if(!p.success){let y=p.error instanceof Error?p.error.message:String(p.error);throw new Z(U.InvalidParams,`Invalid task creation result: ${y}`)}return p.data}let m=Wr(Ja,h);if(!m.success){let p=m.error instanceof Error?m.error.message:String(m.error);throw new Z(U.InvalidParams,`Invalid tools/call result: ${p}`)}return m.data};return super.setRequestHandler(t,a)}return super.setRequestHandler(t,r)}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){f$(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&d$(this._capabilities.tasks?.requests,t,"Server")}async _oninitialize(t){let r=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:wv.includes(r)?r:Wd,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},Ca)}async createMessage(t,r){if((t.tools||t.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let n=t.messages[t.messages.length-1],o=Array.isArray(n.content)?n.content:[n.content],i=o.some(u=>u.type==="tool_result"),s=t.messages.length>1?t.messages[t.messages.length-2]:void 0,a=s?Array.isArray(s.content)?s.content:[s.content]:[],c=a.some(u=>u.type==="tool_use");if(i){if(o.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!c)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(c){let u=new Set(a.filter(d=>d.type==="tool_use").map(d=>d.id)),l=new Set(o.filter(d=>d.type==="tool_result").map(d=>d.toolUseId));if(u.size!==l.size||![...u].every(d=>l.has(d)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},cf,r):this.request({method:"sampling/createMessage",params:t},Yi,r)}async elicitInput(t,r){switch(t.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let o=t;return this.request({method:"elicitation/create",params:o},Co,r)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let o=t.mode==="form"?t:{...t,mode:"form"},i=await this.request({method:"elicitation/create",params:o},Co,r);if(i.action==="accept"&&i.content&&o.requestedSchema)try{let a=this._jsonSchemaValidator.getValidator(o.requestedSchema)(i.content);if(!a.valid)throw new Z(U.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(s){throw s instanceof Z?s:new Z(U.InternalError,`Error validating elicitation response: ${s instanceof Error?s.message:String(s)}`)}return i}}}createElicitationCompletionNotifier(t,r){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},r)}async listRoots(t,r){return this.request({method:"roots/list",params:t},uf,r)}async sendLoggingMessage(t,r){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,r))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};var m$=Symbol.for("mcp.completable");function dm(e){return!!e&&typeof e=="object"&&m$ in e}function h$(e){return e[m$]?.complete}var p$;(function(e){e.Completable="McpCompletable"})(p$||(p$={}));var T1=/^[A-Za-z0-9._-]{1,128}$/;function R1(e){let t=[];if(e.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(e.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${e.length})`]};if(e.includes(" ")&&t.push("Tool name contains spaces, which may cause parsing issues"),e.includes(",")&&t.push("Tool name contains commas, which may cause parsing issues"),(e.startsWith("-")||e.endsWith("-"))&&t.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"),(e.startsWith(".")||e.endsWith("."))&&t.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"),!T1.test(e)){let r=e.split("").filter(n=>!/[A-Za-z0-9._-]/.test(n)).filter((n,o,i)=>i.indexOf(n)===o);return t.push(`Tool name contains invalid characters: ${r.map(n=>`"${n}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:t}}return{isValid:!0,warnings:t}}function z1(e,t){if(t.length>0){console.warn(`Tool name validation warning for "${e}":`);for(let r of t)console.warn(` - ${r}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}}function fm(e){let t=R1(e);return z1(e,t.warnings),t.isValid}var Ac=class{constructor(t){this._mcpServer=t}registerToolTask(t,r,n){let o={taskSupport:"required",...r.execution};if(o.taskSupport==="forbidden")throw new Error(`Cannot register task-based tool '${t}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(t,r.title,r.description,r.inputSchema,r.outputSchema,r.annotations,o,r._meta,n)}};var qc=class{constructor(t,r){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new Dc(t,r)}get experimental(){return this._experimental||(this._experimental={tasks:new Ac(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(sn(Wa)),this.server.assertCanSetRequestHandler(sn(Oo)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(Wa,()=>({tools:Object.entries(this._registeredTools).filter(([,t])=>t.enabled).map(([t,r])=>{let n={name:t,title:r.title,description:r.description,inputSchema:(()=>{let o=To(r.inputSchema);return o?hf(o,{strictUnions:!0,pipeStrategy:"input"}):E1})(),annotations:r.annotations,execution:r.execution,_meta:r._meta};if(r.outputSchema){let o=To(r.outputSchema);o&&(n.outputSchema=hf(o,{strictUnions:!0,pipeStrategy:"output"}))}return n})})),this.server.setRequestHandler(Oo,async(t,r)=>{try{let n=this._registeredTools[t.params.name];if(!n)throw new Z(U.InvalidParams,`Tool ${t.params.name} not found`);if(!n.enabled)throw new Z(U.InvalidParams,`Tool ${t.params.name} disabled`);let o=!!t.params.task,i=n.execution?.taskSupport,s="createTask"in n.handler;if((i==="required"||i==="optional")&&!s)throw new Z(U.InternalError,`Tool ${t.params.name} has taskSupport '${i}' but was not registered with registerToolTask`);if(i==="required"&&!o)throw new Z(U.MethodNotFound,`Tool ${t.params.name} requires task augmentation (taskSupport: 'required')`);if(i==="optional"&&!o&&s)return await this.handleAutomaticTaskPolling(n,t,r);let a=await this.validateToolInput(n,t.params.arguments,t.params.name),c=await this.executeToolHandler(n,a,r);return o||await this.validateToolOutput(n,c,t.params.name),c}catch(n){if(n instanceof Z&&n.code===U.UrlElicitationRequired)throw n;return this.createToolError(n instanceof Error?n.message:String(n))}}),this._toolHandlersInitialized=!0)}createToolError(t){return{content:[{type:"text",text:t}],isError:!0}}async validateToolInput(t,r,n){if(!t.inputSchema)return;let i=To(t.inputSchema)??t.inputSchema,s=await Sa(i,r);if(!s.success){let a="error"in s?s.error:"Unknown error",c=ka(a);throw new Z(U.InvalidParams,`Input validation error: Invalid arguments for tool ${n}: ${c}`)}return s.data}async validateToolOutput(t,r,n){if(!t.outputSchema||!("content"in r)||r.isError)return;if(!r.structuredContent)throw new Z(U.InvalidParams,`Output validation error: Tool ${n} has an output schema but no structured content was provided`);let o=To(t.outputSchema),i=await Sa(o,r.structuredContent);if(!i.success){let s="error"in i?i.error:"Unknown error",a=ka(s);throw new Z(U.InvalidParams,`Output validation error: Invalid structured content for tool ${n}: ${a}`)}}async executeToolHandler(t,r,n){let o=t.handler;if("createTask"in o){if(!n.taskStore)throw new Error("No task store provided.");let s={...n,taskStore:n.taskStore};if(t.inputSchema){let a=o;return await Promise.resolve(a.createTask(r,s))}else{let a=o;return await Promise.resolve(a.createTask(s))}}if(t.inputSchema){let s=o;return await Promise.resolve(s(r,n))}else{let s=o;return await Promise.resolve(s(n))}}async handleAutomaticTaskPolling(t,r,n){if(!n.taskStore)throw new Error("No task store provided for task-capable tool.");let o=await this.validateToolInput(t,r.params.arguments,r.params.name),i=t.handler,s={...n,taskStore:n.taskStore},a=o?await Promise.resolve(i.createTask(o,s)):await Promise.resolve(i.createTask(s)),c=a.task.taskId,u=a.task,l=u.pollInterval??5e3;for(;u.status!=="completed"&&u.status!=="failed"&&u.status!=="cancelled";){await new Promise(h=>setTimeout(h,l));let d=await n.taskStore.getTask(c);if(!d)throw new Z(U.InternalError,`Task ${c} not found during polling`);u=d}return await n.taskStore.getTaskResult(c)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler(sn(Ga)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(Ga,async t=>{switch(t.params.ref.type){case"ref/prompt":return Dv(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return Av(t),this.handleResourceCompletion(t,t.params.ref);default:throw new Z(U.InvalidParams,`Invalid completion reference: ${t.params.ref}`)}}),this._completionHandlerInitialized=!0)}async handlePromptCompletion(t,r){let n=this._registeredPrompts[r.name];if(!n)throw new Z(U.InvalidParams,`Prompt ${r.name} not found`);if(!n.enabled)throw new Z(U.InvalidParams,`Prompt ${r.name} disabled`);if(!n.argsSchema)return zs;let i=Jr(n.argsSchema)?.[t.params.argument.name];if(!dm(i))return zs;let s=h$(i);if(!s)return zs;let a=await s(t.params.argument.value,t.params.context);return y$(a)}async handleResourceCompletion(t,r){let n=Object.values(this._registeredResourceTemplates).find(s=>s.resourceTemplate.uriTemplate.toString()===r.uri);if(!n){if(this._registeredResources[r.uri])return zs;throw new Z(U.InvalidParams,`Resource template ${t.params.ref.uri} not found`)}let o=n.resourceTemplate.completeCallback(t.params.argument.name);if(!o)return zs;let i=await o(t.params.argument.value,t.params.context);return y$(i)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(sn(Fa)),this.server.assertCanSetRequestHandler(sn(Ua)),this.server.assertCanSetRequestHandler(sn(Va)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(Fa,async(t,r)=>{let n=Object.entries(this._registeredResources).filter(([i,s])=>s.enabled).map(([i,s])=>({uri:i,name:s.name,...s.metadata})),o=[];for(let i of Object.values(this._registeredResourceTemplates)){if(!i.resourceTemplate.listCallback)continue;let s=await i.resourceTemplate.listCallback(r);for(let a of s.resources)o.push({...i.metadata,...a})}return{resources:[...n,...o]}}),this.server.setRequestHandler(Ua,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([r,n])=>({name:r,uriTemplate:n.resourceTemplate.uriTemplate.toString(),...n.metadata}))})),this.server.setRequestHandler(Va,async(t,r)=>{let n=new URL(t.params.uri),o=this._registeredResources[n.toString()];if(o){if(!o.enabled)throw new Z(U.InvalidParams,`Resource ${n} disabled`);return o.readCallback(n,r)}for(let i of Object.values(this._registeredResourceTemplates)){let s=i.resourceTemplate.uriTemplate.match(n.toString());if(s)return i.readCallback(n,s,r)}throw new Z(U.InvalidParams,`Resource ${n} not found`)}),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler(sn(Ha)),this.server.assertCanSetRequestHandler(sn(Ba)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(Ha,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,r])=>({name:t,title:r.title,description:r.description,arguments:r.argsSchema?O1(r.argsSchema):void 0}))})),this.server.setRequestHandler(Ba,async(t,r)=>{let n=this._registeredPrompts[t.params.name];if(!n)throw new Z(U.InvalidParams,`Prompt ${t.params.name} not found`);if(!n.enabled)throw new Z(U.InvalidParams,`Prompt ${t.params.name} disabled`);if(n.argsSchema){let o=To(n.argsSchema),i=await Sa(o,t.params.arguments);if(!i.success){let c="error"in i?i.error:"Unknown error",u=ka(c);throw new Z(U.InvalidParams,`Invalid arguments for prompt ${t.params.name}: ${u}`)}let s=i.data,a=n.callback;return await Promise.resolve(a(s,r))}else{let o=n.callback;return await Promise.resolve(o(r))}}),this._promptHandlersInitialized=!0)}resource(t,r,...n){let o;typeof n[0]=="object"&&(o=n.shift());let i=n[0];if(typeof r=="string"){if(this._registeredResources[r])throw new Error(`Resource ${r} is already registered`);let s=this._createRegisteredResource(t,void 0,r,o,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}else{if(this._registeredResourceTemplates[t])throw new Error(`Resource template ${t} is already registered`);let s=this._createRegisteredResourceTemplate(t,void 0,r,o,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}}registerResource(t,r,n,o){if(typeof r=="string"){if(this._registeredResources[r])throw new Error(`Resource ${r} is already registered`);let i=this._createRegisteredResource(t,n.title,r,n,o);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}else{if(this._registeredResourceTemplates[t])throw new Error(`Resource template ${t} is already registered`);let i=this._createRegisteredResourceTemplate(t,n.title,r,n,o);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}}_createRegisteredResource(t,r,n,o,i){let s={name:t,title:r,metadata:o,readCallback:i,enabled:!0,disable:()=>s.update({enabled:!1}),enable:()=>s.update({enabled:!0}),remove:()=>s.update({uri:null}),update:a=>{typeof a.uri<"u"&&a.uri!==n&&(delete this._registeredResources[n],a.uri&&(this._registeredResources[a.uri]=s)),typeof a.name<"u"&&(s.name=a.name),typeof a.title<"u"&&(s.title=a.title),typeof a.metadata<"u"&&(s.metadata=a.metadata),typeof a.callback<"u"&&(s.readCallback=a.callback),typeof a.enabled<"u"&&(s.enabled=a.enabled),this.sendResourceListChanged()}};return this._registeredResources[n]=s,s}_createRegisteredResourceTemplate(t,r,n,o,i){let s={resourceTemplate:n,title:r,metadata:o,readCallback:i,enabled:!0,disable:()=>s.update({enabled:!1}),enable:()=>s.update({enabled:!0}),remove:()=>s.update({name:null}),update:u=>{typeof u.name<"u"&&u.name!==t&&(delete this._registeredResourceTemplates[t],u.name&&(this._registeredResourceTemplates[u.name]=s)),typeof u.title<"u"&&(s.title=u.title),typeof u.template<"u"&&(s.resourceTemplate=u.template),typeof u.metadata<"u"&&(s.metadata=u.metadata),typeof u.callback<"u"&&(s.readCallback=u.callback),typeof u.enabled<"u"&&(s.enabled=u.enabled),this.sendResourceListChanged()}};this._registeredResourceTemplates[t]=s;let a=n.uriTemplate.variableNames;return Array.isArray(a)&&a.some(u=>!!n.completeCallback(u))&&this.setCompletionRequestHandler(),s}_createRegisteredPrompt(t,r,n,o,i){let s={title:r,description:n,argsSchema:o===void 0?void 0:Hn(o),callback:i,enabled:!0,disable:()=>s.update({enabled:!1}),enable:()=>s.update({enabled:!0}),remove:()=>s.update({name:null}),update:a=>{typeof a.name<"u"&&a.name!==t&&(delete this._registeredPrompts[t],a.name&&(this._registeredPrompts[a.name]=s)),typeof a.title<"u"&&(s.title=a.title),typeof a.description<"u"&&(s.description=a.description),typeof a.argsSchema<"u"&&(s.argsSchema=Hn(a.argsSchema)),typeof a.callback<"u"&&(s.callback=a.callback),typeof a.enabled<"u"&&(s.enabled=a.enabled),this.sendPromptListChanged()}};return this._registeredPrompts[t]=s,o&&Object.values(o).some(c=>{let u=c instanceof bt?c._def?.innerType:c;return dm(u)})&&this.setCompletionRequestHandler(),s}_createRegisteredTool(t,r,n,o,i,s,a,c,u){fm(t);let l={title:r,description:n,inputSchema:g$(o),outputSchema:g$(i),annotations:s,execution:a,_meta:c,handler:u,enabled:!0,disable:()=>l.update({enabled:!1}),enable:()=>l.update({enabled:!0}),remove:()=>l.update({name:null}),update:d=>{typeof d.name<"u"&&d.name!==t&&(typeof d.name=="string"&&fm(d.name),delete this._registeredTools[t],d.name&&(this._registeredTools[d.name]=l)),typeof d.title<"u"&&(l.title=d.title),typeof d.description<"u"&&(l.description=d.description),typeof d.paramsSchema<"u"&&(l.inputSchema=Hn(d.paramsSchema)),typeof d.outputSchema<"u"&&(l.outputSchema=Hn(d.outputSchema)),typeof d.callback<"u"&&(l.handler=d.callback),typeof d.annotations<"u"&&(l.annotations=d.annotations),typeof d._meta<"u"&&(l._meta=d._meta),typeof d.enabled<"u"&&(l.enabled=d.enabled),this.sendToolListChanged()}};return this._registeredTools[t]=l,this.setToolRequestHandlers(),this.sendToolListChanged(),l}tool(t,...r){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let n,o,i,s;if(typeof r[0]=="string"&&(n=r.shift()),r.length>1){let c=r[0];if(pm(c))o=r.shift(),r.length>1&&typeof r[0]=="object"&&r[0]!==null&&!pm(r[0])&&(s=r.shift());else if(typeof c=="object"&&c!==null){if(Object.values(c).some(u=>typeof u=="object"&&u!==null))throw new Error(`Tool ${t} expected a Zod schema or ToolAnnotations, but received an unrecognized object`);s=r.shift()}}let a=r[0];return this._createRegisteredTool(t,void 0,n,o,i,s,{taskSupport:"forbidden"},void 0,a)}registerTool(t,r,n){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let{title:o,description:i,inputSchema:s,outputSchema:a,annotations:c,_meta:u}=r;return this._createRegisteredTool(t,o,i,s,a,c,{taskSupport:"forbidden"},u,n)}prompt(t,...r){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let n;typeof r[0]=="string"&&(n=r.shift());let o;r.length>1&&(o=r.shift());let i=r[0],s=this._createRegisteredPrompt(t,void 0,n,o,i);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),s}registerPrompt(t,r,n){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let{title:o,description:i,argsSchema:s}=r,a=this._createRegisteredPrompt(t,o,i,s,n);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),a}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(t,r){return this.server.sendLoggingMessage(t,r)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}};var E1={type:"object",properties:{}};function _$(e){return e!==null&&typeof e=="object"&&"parse"in e&&typeof e.parse=="function"&&"safeParse"in e&&typeof e.safeParse=="function"}function v$(e){return"_def"in e||"_zod"in e||_$(e)}function pm(e){return typeof e!="object"||e===null||v$(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(_$)}function g$(e){if(e){if(pm(e))return Hn(e);if(!v$(e))throw new Error("inputSchema must be a Zod schema or raw shape, received an unrecognized object");return e}}function O1(e){let t=Jr(e);return t?Object.entries(t).map(([r,n])=>{let o=X_(n),i=Y_(n);return{name:r,description:o,required:!i}}):[]}function sn(e){let r=Jr(e)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Pa(r);if(typeof n=="string")return n;throw new Error("Schema method literal must be a string")}function y$(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}var zs={completion:{values:[],hasMore:!1}};import w$ from"node:process";var Zc=class{append(t){this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(`
|
|
52
52
|
`);if(t===-1)return null;let r=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),C1(r)}clear(){this._buffer=void 0}};function C1(e){return zv.parse(JSON.parse(e))}function b$(e){return JSON.stringify(e)+`
|
|
53
|
-
`}var Lc=class{constructor(t=w$.stdin,r=w$.stdout){this._stdin=t,this._stdout=r,this._readBuffer=new Zc,this._started=!1,this._ondata=n=>{this._readBuffer.append(n),this.processReadBuffer()},this._onerror=n=>{this.onerror?.(n)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(r=>{let n=b$(t);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};function mm(e){let t={app:e,version:j1(Xo("__RED_BUILD_VERSION__",()=>"4.2.
|
|
53
|
+
`}var Lc=class{constructor(t=w$.stdin,r=w$.stdout){this._stdin=t,this._stdout=r,this._readBuffer=new Zc,this._started=!1,this._ondata=n=>{this._readBuffer.append(n),this.processReadBuffer()},this._onerror=n=>{this.onerror?.(n)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(r=>{let n=b$(t);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};function mm(e){let t={app:e,version:j1(Xo("__RED_BUILD_VERSION__",()=>"4.2.3")??"0.0.0-dev"),gitSha:Xo("__RED_BUILD_GIT_SHA__",()=>"f2b79c64ba689d72a716a967bb82ab75cd2963f2")??"unknown",buildTime:Xo("__RED_BUILD_TIME__",()=>"2026-08-24T03:26:05-03:00")??"unknown",bundleAsset:Xo("__RED_BUNDLE_ASSET__",()=>"code-nav.bundle.min.mjs")??"unknown"},r=Xo("__REDDB_SDK_VERSION__",()=>""),n=Xo("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function j1(e){return e.startsWith("v")?e.slice(1):e}function x$(e){return`${e.app} ${e.version} ${e.gitSha}`}function Xo(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var $$={"=":"data",":=":{to:"data",typed:!0},":":"meta"},N1=/^[a-z][a-z0-9+.-]*:\/\//i;function I1(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 M1(e=$$){return Object.entries(e).map(([t,r])=>I1(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function D1(e){return/^-\d+(\.\d+)?$/.test(e)}function Es(e){return!(!e||e.startsWith("-")&&!D1(e))}function Fc(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 S$(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=>S$(r.trim())):e}function no(e,t){switch(t){case"boolean":return A1(e);case"number":return q1(e);case"array":return e.split(",").map(r=>Fc(r.trim()));default:return e}}function A1(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function q1(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let t=Number(e);if(Number.isNaN(t))throw new TypeError(`Cannot convert "${e}" to number`);return t}function an(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function Z1(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function $e(e,t){return{type:e,value:t}}function L1(e){let t=[],r=U1(e);if(t.push($e("section-header","Usage:"),$e("text"," "),$e("usage-text",r),$e("newline",`
|
|
54
54
|
`),$e("newline",`
|
|
55
55
|
`)),e.positional&&e.positional.length>0){t.push($e("section-header","Arguments:"),$e("newline",`
|
|
56
56
|
`));for(let n of e.positional)if(n.description){let o=n.variadic?`${n.name}...`:n.name;t.push($e("indent"," "),$e("positional-name",`<${o}>`)),n.required||t.push($e("positional-optional"," (optional)")),t.push($e("newline",`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
-
import{mkdirSync as Pe,readFileSync as nn,writeFileSync as on}from"node:fs";import{dirname as sn,resolve as V}from"node:path";function W(e){let t={app:e,version:Ce(b("__RED_BUILD_VERSION__",()=>"4.2.
|
|
2
|
+
import{mkdirSync as Pe,readFileSync as nn,writeFileSync as on}from"node:fs";import{dirname as sn,resolve as V}from"node:path";function W(e){let t={app:e,version:Ce(b("__RED_BUILD_VERSION__",()=>"4.2.3")??"0.0.0-dev"),gitSha:b("__RED_BUILD_GIT_SHA__",()=>"f2b79c64ba689d72a716a967bb82ab75cd2963f2")??"unknown",buildTime:b("__RED_BUILD_TIME__",()=>"2026-08-24T03:26:05-03:00")??"unknown",bundleAsset:b("__RED_BUNDLE_ASSET__",()=>"opencode-host.bundle.min.mjs")??"unknown"},n=b("__REDDB_SDK_VERSION__",()=>""),s=b("__REDDB_BINARY_TAG__",()=>"");return n&&(t.reddbSdkVersion=n),s&&(t.reddbBinaryTag=s),t}function Ce(e){return e.startsWith("v")?e.slice(1):e}function G(e){return`${e.app} ${e.version} ${e.gitSha}`}function b(e,t){try{let n=t();return typeof n=="string"&&n.length>0?n:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var ne={"=":"data",":=":{to:"data",typed:!0},":":"meta"},Te=/^[a-z][a-z0-9+.-]*:\/\//i;function Ie(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 je(e=ne){return Object.entries(e).map(([t,n])=>Ie(t,n)).sort((t,n)=>n.separator.length-t.separator.length)}function Fe(e){return/^-\d+(\.\d+)?$/.test(e)}function $(e){return!(!e||e.startsWith("-")&&!Fe(e))}function A(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 oe(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(n=>oe(n.trim())):e}function k(e,t){switch(t){case"boolean":return Ne(e);case"number":return De(e);case"array":return e.split(",").map(n=>A(n.trim()));case"string":default:return e}}function Ne(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function De(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 _(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function Me(e,t={}){return e.map(n=>{let s=t[n.type];return s?s(n.value):n.value}).join("")}function g(e,t){return{type:e,value:t}}function Le(e){let t=[],n=Ve(e);if(t.push(g("section-header","Usage:"),g("text"," "),g("usage-text",n),g("newline",`
|
|
3
3
|
`),g("newline",`
|
|
4
4
|
`)),e.positional&&e.positional.length>0){t.push(g("section-header","Arguments:"),g("newline",`
|
|
5
5
|
`));for(let s of e.positional)if(s.description){let o=s.variadic?`${s.name}...`:s.name;t.push(g("indent"," "),g("positional-name",`<${o}>`)),s.required||t.push(g("positional-optional"," (optional)")),t.push(g("newline",`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
3
|
-
var gft=Object.create;var w4=Object.defineProperty;var yft=Object.getOwnPropertyDescriptor;var bft=Object.getOwnPropertyNames;var xft=Object.getPrototypeOf,Sft=Object.prototype.hasOwnProperty;var $n=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var ee=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Kn=(e,t)=>{for(var r in t)w4(e,r,{get:t[r],enumerable:!0})},_ft=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of bft(t))!Sft.call(e,o)&&o!==r&&w4(e,o,{get:()=>t[o],enumerable:!(n=yft(t,o))||n.enumerable});return e};var Lp=(e,t,r)=>(r=e!=null?gft(xft(e)):{},_ft(t||!e||!e.__esModule?w4(r,"default",{value:e,enumerable:!0}):r,e));function v4(e){let t={app:e,version:kft(w_("__RED_BUILD_VERSION__",()=>"4.2.2")??"0.0.0-dev"),gitSha:w_("__RED_BUILD_GIT_SHA__",()=>"7987571cbdf0bcff8c6055b1e039dbacce845e94")??"unknown",buildTime:w_("__RED_BUILD_TIME__",()=>"2026-08-24T02:55:09-03:00")??"unknown",bundleAsset:w_("__RED_BUNDLE_ASSET__",()=>"redskilled-mcp.bundle.min.mjs")??"unknown"},r=w_("__REDDB_SDK_VERSION__",()=>""),n=w_("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function kft(e){return e.startsWith("v")?e.slice(1):e}function KSe(e){return`${e.app} ${e.version} ${e.gitSha}`}function w_(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var E4=p(()=>{});var Me,sr,R4,T4=p(()=>{Me={initialize:"initialize",authenticate:"authenticate",providers_list:"providers/list",providers_set:"providers/set",providers_disable:"providers/disable",session_new:"session/new",session_load:"session/load",session_set_mode:"session/set_mode",session_set_config_option:"session/set_config_option",session_prompt:"session/prompt",session_cancel:"session/cancel",mcp_message:"mcp/message",session_list:"session/list",session_delete:"session/delete",session_fork:"session/fork",session_resume:"session/resume",session_close:"session/close",logout:"logout",nes_start:"nes/start",nes_suggest:"nes/suggest",nes_accept:"nes/accept",nes_reject:"nes/reject",nes_close:"nes/close",document_did_open:"document/didOpen",document_did_change:"document/didChange",document_did_close:"document/didClose",document_did_save:"document/didSave",document_did_focus:"document/didFocus"},sr={session_request_permission:"session/request_permission",session_update:"session/update",fs_write_text_file:"fs/write_text_file",fs_read_text_file:"fs/read_text_file",terminal_create:"terminal/create",terminal_output:"terminal/output",terminal_release:"terminal/release",terminal_wait_for_exit:"terminal/wait_for_exit",terminal_kill:"terminal/kill",mcp_connect:"mcp/connect",mcp_message:"mcp/message",mcp_disconnect:"mcp/disconnect",elicitation_create:"elicitation/create",elicitation_complete:"elicitation/complete"},R4={cancel_request:"$/cancel_request"}});function K(e,t,r){function n(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);let l=s.prototype,u=Object.keys(l);for(let d=0;d<u.length;d++){let f=u[d];f in a||(a[f]=l[f].bind(a))}}let o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function s(a){var c;let l=r?.Parent?new i:this;n(l,a),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}function xo(e){return e&&Object.assign(Zy,e),Zy}var ZSe,C4,P4,Yl,Jm,Zy,Jy=p(()=>{C4=Object.freeze({status:"aborted"});P4=Symbol("zod_brand"),Yl=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Jm=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}};(ZSe=globalThis).__zod_globalConfig??(ZSe.__zod_globalConfig={});Zy=globalThis.__zod_globalConfig});var Re={};Kn(Re,{BIGINT_FORMAT_RANGES:()=>F4,Class:()=>A4,NUMBER_FORMAT_RANGES:()=>z4,aborted:()=>eh,allowsEval:()=>M4,assert:()=>Cft,assertEqual:()=>vft,assertIs:()=>Rft,assertNever:()=>Tft,assertNotEqual:()=>Eft,assignProp:()=>Qm,base64ToUint8Array:()=>YSe,base64urlToUint8Array:()=>Bft,cached:()=>E_,captureStackTrace:()=>F$,cleanEnum:()=>Gft,cleanRegex:()=>jR,clone:()=>$s,cloneDef:()=>Ift,createTransparentProxy:()=>Nft,defineLazy:()=>Qt,esc:()=>z$,escapeRegex:()=>jc,explicitlyAborted:()=>j4,extend:()=>Fft,finalizeIssue:()=>Ms,floatSafeRemainder:()=>O4,getElementAtPath:()=>Aft,getEnumValues:()=>FR,getLengthableOrigin:()=>qR,getParsedType:()=>Dft,getSizableOrigin:()=>HR,hexToUint8Array:()=>Vft,isObject:()=>Yy,isPlainObject:()=>Xm,issue:()=>R_,joinValues:()=>ne,jsonStringifyReplacer:()=>v_,merge:()=>Uft,mergeDefs:()=>zp,normalizeParams:()=>Ie,nullish:()=>Ym,numKeys:()=>Mft,objectClone:()=>Pft,omit:()=>zft,optionalKeys:()=>L4,parsedType:()=>Ee,partial:()=>Hft,pick:()=>Lft,prefixIssues:()=>fa,primitiveTypes:()=>N4,promiseAllObject:()=>Oft,propertyKeyTypes:()=>UR,randomString:()=>$ft,required:()=>qft,safeExtend:()=>jft,shallowClone:()=>D4,slugify:()=>$4,stringifyPrimitive:()=>ve,uint8ArrayToBase64:()=>QSe,uint8ArrayToBase64url:()=>Wft,uint8ArrayToHex:()=>Kft,unwrapMessage:()=>zR});function vft(e){return e}function Eft(e){return e}function Rft(e){}function Tft(e){throw new Error("Unexpected value in exhaustive check")}function Cft(e){}function FR(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function ne(e,t="|"){return e.map(r=>ve(r)).join(t)}function v_(e,t){return typeof t=="bigint"?t.toString():t}function E_(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Ym(e){return e==null}function jR(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function O4(e,t){let r=e/t,n=Math.round(r),o=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n)<o?0:r-n}function Qt(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==JSe)return n===void 0&&(n=JSe,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function Pft(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Qm(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function zp(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function Ift(e){return zp(e._zod.def)}function Aft(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function Oft(e){let t=Object.keys(e),r=t.map(n=>e[n]);return Promise.all(r).then(n=>{let o={};for(let i=0;i<t.length;i++)o[t[i]]=n[i];return o})}function $ft(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<e;n++)r+=t[Math.floor(Math.random()*t.length)];return r}function z$(e){return JSON.stringify(e)}function $4(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Yy(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Xm(e){if(Yy(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(Yy(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function D4(e){return Xm(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function Mft(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function jc(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function $s(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function Ie(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Nft(e){let t;return new Proxy({},{get(r,n,o){return t??(t=e()),Reflect.get(t,n,o)},set(r,n,o,i){return t??(t=e()),Reflect.set(t,n,o,i)},has(r,n){return t??(t=e()),Reflect.has(t,n)},deleteProperty(r,n){return t??(t=e()),Reflect.deleteProperty(t,n)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,n){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,n)},defineProperty(r,n,o){return t??(t=e()),Reflect.defineProperty(t,n,o)}})}function ve(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function L4(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Lft(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=zp(e._zod.def,{get shape(){let s={};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(s[a]=r.shape[a])}return Qm(this,"shape",s),s},checks:[]});return $s(e,i)}function zft(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=zp(e._zod.def,{get shape(){let s={...e._zod.def.shape};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete s[a]}return Qm(this,"shape",s),s},checks:[]});return $s(e,i)}function Fft(e,t){if(!Xm(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let i=e._zod.def.shape;for(let s in t)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=zp(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t};return Qm(this,"shape",i),i}});return $s(e,o)}function jft(e,t){if(!Xm(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=zp(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Qm(this,"shape",n),n}});return $s(e,r)}function Uft(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=zp(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Qm(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return $s(e,r)}function Hft(e,t,r){let o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=zp(t._zod.def,{get shape(){let a=t._zod.def.shape,c={...a};if(r)for(let l in r){if(!(l in a))throw new Error(`Unrecognized key: "${l}"`);r[l]&&(c[l]=e?new e({type:"optional",innerType:a[l]}):a[l])}else for(let l in a)c[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return Qm(this,"shape",c),c},checks:[]});return $s(t,s)}function qft(e,t,r){let n=zp(t._zod.def,{get shape(){let o=t._zod.def.shape,i={...o};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new e({type:"nonoptional",innerType:o[s]}))}else for(let s in o)i[s]=new e({type:"nonoptional",innerType:o[s]});return Qm(this,"shape",i),i}});return $s(t,n)}function eh(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function j4(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function fa(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function zR(e){return typeof e=="string"?e:e?.message}function Ms(e,t,r){let n=e.message?e.message:zR(e.inst?._zod.def?.error?.(e))??zR(t?.error?.(e))??zR(r.customError?.(e))??zR(r.localeError?.(e))??"Invalid input",{inst:o,continue:i,input:s,...a}=e;return a.path??(a.path=[]),a.message=n,t?.reportInput&&(a.input=s),a}function HR(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function qR(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Ee(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function R_(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function Gft(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function YSe(e){let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function QSe(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function Bft(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return YSe(t+r)}function Wft(e){return QSe(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Vft(e){let t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)r[n/2]=Number.parseInt(t.slice(n,n+2),16);return r}function Kft(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var JSe,F$,M4,Dft,UR,N4,z4,F4,A4,ot=p(()=>{Jy();JSe=Symbol("evaluating");F$="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};M4=E_(()=>{if(Zy.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Dft=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},UR=new Set(["string","number","symbol"]),N4=new Set(["string","number","bigint","boolean","symbol","undefined"]);z4={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},F4={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};A4=class{constructor(...t){}}});function BR(e,t=r=>r.message){let r={},n=[];for(let o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function WR(e,t=r=>r.message){let r={_errors:[]},n=(o,i=[])=>{for(let s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(a=>n({issues:a},[...i,...s.path]));else if(s.code==="invalid_key")n({issues:s.issues},[...i,...s.path]);else if(s.code==="invalid_element")n({issues:s.issues},[...i,...s.path]);else{let a=[...i,...s.path];if(a.length===0)r._errors.push(t(s));else{let c=r,l=0;for(;l<a.length;){let u=a[l];l===a.length-1?(c[u]=c[u]||{_errors:[]},c[u]._errors.push(t(s))):c[u]=c[u]||{_errors:[]},c=c[u],l++}}}};return n(e),r}function U4(e,t=r=>r.message){let r={errors:[]},n=(o,i=[])=>{var s,a;for(let c of o.issues)if(c.code==="invalid_union"&&c.errors.length)c.errors.map(l=>n({issues:l},[...i,...c.path]));else if(c.code==="invalid_key")n({issues:c.issues},[...i,...c.path]);else if(c.code==="invalid_element")n({issues:c.issues},[...i,...c.path]);else{let l=[...i,...c.path];if(l.length===0){r.errors.push(t(c));continue}let u=r,d=0;for(;d<l.length;){let f=l[d],m=d===l.length-1;typeof f=="string"?(u.properties??(u.properties={}),(s=u.properties)[f]??(s[f]={errors:[]}),u=u.properties[f]):(u.items??(u.items=[]),(a=u.items)[f]??(a[f]={errors:[]}),u=u.items[f]),m&&u.errors.push(t(c)),d++}}};return n(e),r}function e_e(e){let t=[],r=e.map(n=>typeof n=="object"?n.key:n);for(let n of r)typeof n=="number"?t.push(`[${n}]`):typeof n=="symbol"?t.push(`[${JSON.stringify(String(n))}]`):/[^\w$]/.test(n)?t.push(`[${JSON.stringify(n)}]`):(t.length&&t.push("."),t.push(n));return t.join("")}function H4(e){let t=[],r=[...e.issues].sort((n,o)=>(n.path??[]).length-(o.path??[]).length);for(let n of r)t.push(`\u2716 ${n.message}`),n.path?.length&&t.push(` \u2192 at ${e_e(n.path)}`);return t.join(`
|
|
3
|
+
var gft=Object.create;var w4=Object.defineProperty;var yft=Object.getOwnPropertyDescriptor;var bft=Object.getOwnPropertyNames;var xft=Object.getPrototypeOf,Sft=Object.prototype.hasOwnProperty;var $n=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var ee=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Kn=(e,t)=>{for(var r in t)w4(e,r,{get:t[r],enumerable:!0})},_ft=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of bft(t))!Sft.call(e,o)&&o!==r&&w4(e,o,{get:()=>t[o],enumerable:!(n=yft(t,o))||n.enumerable});return e};var Lp=(e,t,r)=>(r=e!=null?gft(xft(e)):{},_ft(t||!e||!e.__esModule?w4(r,"default",{value:e,enumerable:!0}):r,e));function v4(e){let t={app:e,version:kft(w_("__RED_BUILD_VERSION__",()=>"4.2.3")??"0.0.0-dev"),gitSha:w_("__RED_BUILD_GIT_SHA__",()=>"f2b79c64ba689d72a716a967bb82ab75cd2963f2")??"unknown",buildTime:w_("__RED_BUILD_TIME__",()=>"2026-08-24T03:26:05-03:00")??"unknown",bundleAsset:w_("__RED_BUNDLE_ASSET__",()=>"redskilled-mcp.bundle.min.mjs")??"unknown"},r=w_("__REDDB_SDK_VERSION__",()=>""),n=w_("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function kft(e){return e.startsWith("v")?e.slice(1):e}function KSe(e){return`${e.app} ${e.version} ${e.gitSha}`}function w_(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var E4=p(()=>{});var Me,sr,R4,T4=p(()=>{Me={initialize:"initialize",authenticate:"authenticate",providers_list:"providers/list",providers_set:"providers/set",providers_disable:"providers/disable",session_new:"session/new",session_load:"session/load",session_set_mode:"session/set_mode",session_set_config_option:"session/set_config_option",session_prompt:"session/prompt",session_cancel:"session/cancel",mcp_message:"mcp/message",session_list:"session/list",session_delete:"session/delete",session_fork:"session/fork",session_resume:"session/resume",session_close:"session/close",logout:"logout",nes_start:"nes/start",nes_suggest:"nes/suggest",nes_accept:"nes/accept",nes_reject:"nes/reject",nes_close:"nes/close",document_did_open:"document/didOpen",document_did_change:"document/didChange",document_did_close:"document/didClose",document_did_save:"document/didSave",document_did_focus:"document/didFocus"},sr={session_request_permission:"session/request_permission",session_update:"session/update",fs_write_text_file:"fs/write_text_file",fs_read_text_file:"fs/read_text_file",terminal_create:"terminal/create",terminal_output:"terminal/output",terminal_release:"terminal/release",terminal_wait_for_exit:"terminal/wait_for_exit",terminal_kill:"terminal/kill",mcp_connect:"mcp/connect",mcp_message:"mcp/message",mcp_disconnect:"mcp/disconnect",elicitation_create:"elicitation/create",elicitation_complete:"elicitation/complete"},R4={cancel_request:"$/cancel_request"}});function K(e,t,r){function n(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);let l=s.prototype,u=Object.keys(l);for(let d=0;d<u.length;d++){let f=u[d];f in a||(a[f]=l[f].bind(a))}}let o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function s(a){var c;let l=r?.Parent?new i:this;n(l,a),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}function xo(e){return e&&Object.assign(Zy,e),Zy}var ZSe,C4,P4,Yl,Jm,Zy,Jy=p(()=>{C4=Object.freeze({status:"aborted"});P4=Symbol("zod_brand"),Yl=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Jm=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}};(ZSe=globalThis).__zod_globalConfig??(ZSe.__zod_globalConfig={});Zy=globalThis.__zod_globalConfig});var Re={};Kn(Re,{BIGINT_FORMAT_RANGES:()=>F4,Class:()=>A4,NUMBER_FORMAT_RANGES:()=>z4,aborted:()=>eh,allowsEval:()=>M4,assert:()=>Cft,assertEqual:()=>vft,assertIs:()=>Rft,assertNever:()=>Tft,assertNotEqual:()=>Eft,assignProp:()=>Qm,base64ToUint8Array:()=>YSe,base64urlToUint8Array:()=>Bft,cached:()=>E_,captureStackTrace:()=>F$,cleanEnum:()=>Gft,cleanRegex:()=>jR,clone:()=>$s,cloneDef:()=>Ift,createTransparentProxy:()=>Nft,defineLazy:()=>Qt,esc:()=>z$,escapeRegex:()=>jc,explicitlyAborted:()=>j4,extend:()=>Fft,finalizeIssue:()=>Ms,floatSafeRemainder:()=>O4,getElementAtPath:()=>Aft,getEnumValues:()=>FR,getLengthableOrigin:()=>qR,getParsedType:()=>Dft,getSizableOrigin:()=>HR,hexToUint8Array:()=>Vft,isObject:()=>Yy,isPlainObject:()=>Xm,issue:()=>R_,joinValues:()=>ne,jsonStringifyReplacer:()=>v_,merge:()=>Uft,mergeDefs:()=>zp,normalizeParams:()=>Ie,nullish:()=>Ym,numKeys:()=>Mft,objectClone:()=>Pft,omit:()=>zft,optionalKeys:()=>L4,parsedType:()=>Ee,partial:()=>Hft,pick:()=>Lft,prefixIssues:()=>fa,primitiveTypes:()=>N4,promiseAllObject:()=>Oft,propertyKeyTypes:()=>UR,randomString:()=>$ft,required:()=>qft,safeExtend:()=>jft,shallowClone:()=>D4,slugify:()=>$4,stringifyPrimitive:()=>ve,uint8ArrayToBase64:()=>QSe,uint8ArrayToBase64url:()=>Wft,uint8ArrayToHex:()=>Kft,unwrapMessage:()=>zR});function vft(e){return e}function Eft(e){return e}function Rft(e){}function Tft(e){throw new Error("Unexpected value in exhaustive check")}function Cft(e){}function FR(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function ne(e,t="|"){return e.map(r=>ve(r)).join(t)}function v_(e,t){return typeof t=="bigint"?t.toString():t}function E_(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Ym(e){return e==null}function jR(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function O4(e,t){let r=e/t,n=Math.round(r),o=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n)<o?0:r-n}function Qt(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==JSe)return n===void 0&&(n=JSe,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function Pft(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Qm(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function zp(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function Ift(e){return zp(e._zod.def)}function Aft(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function Oft(e){let t=Object.keys(e),r=t.map(n=>e[n]);return Promise.all(r).then(n=>{let o={};for(let i=0;i<t.length;i++)o[t[i]]=n[i];return o})}function $ft(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<e;n++)r+=t[Math.floor(Math.random()*t.length)];return r}function z$(e){return JSON.stringify(e)}function $4(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Yy(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Xm(e){if(Yy(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(Yy(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function D4(e){return Xm(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function Mft(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function jc(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function $s(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function Ie(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Nft(e){let t;return new Proxy({},{get(r,n,o){return t??(t=e()),Reflect.get(t,n,o)},set(r,n,o,i){return t??(t=e()),Reflect.set(t,n,o,i)},has(r,n){return t??(t=e()),Reflect.has(t,n)},deleteProperty(r,n){return t??(t=e()),Reflect.deleteProperty(t,n)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,n){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,n)},defineProperty(r,n,o){return t??(t=e()),Reflect.defineProperty(t,n,o)}})}function ve(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function L4(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Lft(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=zp(e._zod.def,{get shape(){let s={};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(s[a]=r.shape[a])}return Qm(this,"shape",s),s},checks:[]});return $s(e,i)}function zft(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=zp(e._zod.def,{get shape(){let s={...e._zod.def.shape};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete s[a]}return Qm(this,"shape",s),s},checks:[]});return $s(e,i)}function Fft(e,t){if(!Xm(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let i=e._zod.def.shape;for(let s in t)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=zp(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t};return Qm(this,"shape",i),i}});return $s(e,o)}function jft(e,t){if(!Xm(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=zp(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Qm(this,"shape",n),n}});return $s(e,r)}function Uft(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=zp(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Qm(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return $s(e,r)}function Hft(e,t,r){let o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=zp(t._zod.def,{get shape(){let a=t._zod.def.shape,c={...a};if(r)for(let l in r){if(!(l in a))throw new Error(`Unrecognized key: "${l}"`);r[l]&&(c[l]=e?new e({type:"optional",innerType:a[l]}):a[l])}else for(let l in a)c[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return Qm(this,"shape",c),c},checks:[]});return $s(t,s)}function qft(e,t,r){let n=zp(t._zod.def,{get shape(){let o=t._zod.def.shape,i={...o};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new e({type:"nonoptional",innerType:o[s]}))}else for(let s in o)i[s]=new e({type:"nonoptional",innerType:o[s]});return Qm(this,"shape",i),i}});return $s(t,n)}function eh(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function j4(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function fa(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function zR(e){return typeof e=="string"?e:e?.message}function Ms(e,t,r){let n=e.message?e.message:zR(e.inst?._zod.def?.error?.(e))??zR(t?.error?.(e))??zR(r.customError?.(e))??zR(r.localeError?.(e))??"Invalid input",{inst:o,continue:i,input:s,...a}=e;return a.path??(a.path=[]),a.message=n,t?.reportInput&&(a.input=s),a}function HR(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function qR(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Ee(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function R_(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function Gft(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function YSe(e){let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function QSe(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function Bft(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return YSe(t+r)}function Wft(e){return QSe(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Vft(e){let t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)r[n/2]=Number.parseInt(t.slice(n,n+2),16);return r}function Kft(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var JSe,F$,M4,Dft,UR,N4,z4,F4,A4,ot=p(()=>{Jy();JSe=Symbol("evaluating");F$="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};M4=E_(()=>{if(Zy.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Dft=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},UR=new Set(["string","number","symbol"]),N4=new Set(["string","number","bigint","boolean","symbol","undefined"]);z4={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},F4={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};A4=class{constructor(...t){}}});function BR(e,t=r=>r.message){let r={},n=[];for(let o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function WR(e,t=r=>r.message){let r={_errors:[]},n=(o,i=[])=>{for(let s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(a=>n({issues:a},[...i,...s.path]));else if(s.code==="invalid_key")n({issues:s.issues},[...i,...s.path]);else if(s.code==="invalid_element")n({issues:s.issues},[...i,...s.path]);else{let a=[...i,...s.path];if(a.length===0)r._errors.push(t(s));else{let c=r,l=0;for(;l<a.length;){let u=a[l];l===a.length-1?(c[u]=c[u]||{_errors:[]},c[u]._errors.push(t(s))):c[u]=c[u]||{_errors:[]},c=c[u],l++}}}};return n(e),r}function U4(e,t=r=>r.message){let r={errors:[]},n=(o,i=[])=>{var s,a;for(let c of o.issues)if(c.code==="invalid_union"&&c.errors.length)c.errors.map(l=>n({issues:l},[...i,...c.path]));else if(c.code==="invalid_key")n({issues:c.issues},[...i,...c.path]);else if(c.code==="invalid_element")n({issues:c.issues},[...i,...c.path]);else{let l=[...i,...c.path];if(l.length===0){r.errors.push(t(c));continue}let u=r,d=0;for(;d<l.length;){let f=l[d],m=d===l.length-1;typeof f=="string"?(u.properties??(u.properties={}),(s=u.properties)[f]??(s[f]={errors:[]}),u=u.properties[f]):(u.items??(u.items=[]),(a=u.items)[f]??(a[f]={errors:[]}),u=u.items[f]),m&&u.errors.push(t(c)),d++}}};return n(e),r}function e_e(e){let t=[],r=e.map(n=>typeof n=="object"?n.key:n);for(let n of r)typeof n=="number"?t.push(`[${n}]`):typeof n=="symbol"?t.push(`[${JSON.stringify(String(n))}]`):/[^\w$]/.test(n)?t.push(`[${JSON.stringify(n)}]`):(t.length&&t.push("."),t.push(n));return t.join("")}function H4(e){let t=[],r=[...e.issues].sort((n,o)=>(n.path??[]).length-(o.path??[]).length);for(let n of r)t.push(`\u2716 ${n.message}`),n.path?.length&&t.push(` \u2192 at ${e_e(n.path)}`);return t.join(`
|
|
4
4
|
`)}var XSe,GR,ma,q4=p(()=>{Jy();ot();XSe=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,v_,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},GR=K("$ZodError",XSe),ma=K("$ZodError",XSe,{Parent:Error})});var T_,j$,C_,U$,P_,G4,I_,B4,H$,Jft,q$,Yft,G$,Qft,B$,Xft,W$,emt,V$,tmt,K$,rmt,Z$,nmt,W4=p(()=>{Jy();q4();ot();T_=e=>(t,r,n,o)=>{let i=n?{...n,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new Yl;if(s.issues.length){let a=new(o?.Err??e)(s.issues.map(c=>Ms(c,i,xo())));throw F$(a,o?.callee),a}return s.value},j$=T_(ma),C_=e=>async(t,r,n,o)=>{let i=n?{...n,async:!0}:{async:!0},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let a=new(o?.Err??e)(s.issues.map(c=>Ms(c,i,xo())));throw F$(a,o?.callee),a}return s.value},U$=C_(ma),P_=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new Yl;return i.issues.length?{success:!1,error:new(e??GR)(i.issues.map(s=>Ms(s,o,xo())))}:{success:!0,data:i.value}},G4=P_(ma),I_=e=>async(t,r,n)=>{let o=n?{...n,async:!0}:{async:!0},i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(s=>Ms(s,o,xo())))}:{success:!0,data:i.value}},B4=I_(ma),H$=e=>(t,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return T_(e)(t,r,o)},Jft=H$(ma),q$=e=>(t,r,n)=>T_(e)(t,r,n),Yft=q$(ma),G$=e=>async(t,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return C_(e)(t,r,o)},Qft=G$(ma),B$=e=>async(t,r,n)=>C_(e)(t,r,n),Xft=B$(ma),W$=e=>(t,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return P_(e)(t,r,o)},emt=W$(ma),V$=e=>(t,r,n)=>P_(e)(t,r,n),tmt=V$(ma),K$=e=>async(t,r,n)=>{let o=n?{...n,direction:"backward"}:{direction:"backward"};return I_(e)(t,r,o)},rmt=K$(ma),Z$=e=>async(t,r,n)=>I_(e)(t,r,n),nmt=Z$(ma)});var Xa={};Kn(Xa,{base64:()=>cV,base64url:()=>J$,bigint:()=>hV,boolean:()=>yV,browserEmail:()=>dmt,cidrv4:()=>sV,cidrv6:()=>aV,cuid:()=>V4,cuid2:()=>K4,date:()=>dV,datetime:()=>fV,domain:()=>mmt,duration:()=>X4,e164:()=>uV,email:()=>tV,emoji:()=>rV,extendedDuration:()=>omt,guid:()=>eV,hex:()=>hmt,hostname:()=>fmt,html5Email:()=>cmt,httpProtocol:()=>lV,idnEmail:()=>umt,integer:()=>gV,ipv4:()=>nV,ipv6:()=>oV,ksuid:()=>Y4,lowercase:()=>SV,mac:()=>iV,md5_base64:()=>ymt,md5_base64url:()=>bmt,md5_hex:()=>gmt,nanoid:()=>Q4,null:()=>bV,number:()=>Y$,rfc5322Email:()=>lmt,sha1_base64:()=>Smt,sha1_base64url:()=>_mt,sha1_hex:()=>xmt,sha256_base64:()=>wmt,sha256_base64url:()=>vmt,sha256_hex:()=>kmt,sha384_base64:()=>Rmt,sha384_base64url:()=>Tmt,sha384_hex:()=>Emt,sha512_base64:()=>Pmt,sha512_base64url:()=>Imt,sha512_hex:()=>Cmt,string:()=>mV,time:()=>pV,ulid:()=>Z4,undefined:()=>xV,unicodeEmail:()=>t_e,uppercase:()=>_V,uuid:()=>Qy,uuid4:()=>imt,uuid6:()=>smt,uuid7:()=>amt,xid:()=>J4});function rV(){return new RegExp(pmt,"u")}function n_e(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function pV(e){return new RegExp(`^${n_e(e)}$`)}function fV(e){let t=n_e({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${t}(?:${r.join("|")})`;return new RegExp(`^${r_e}T(?:${n})$`)}function VR(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function KR(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var V4,K4,Z4,J4,Y4,Q4,X4,omt,eV,Qy,imt,smt,amt,tV,cmt,lmt,t_e,umt,dmt,pmt,nV,oV,iV,sV,aV,cV,J$,fmt,mmt,lV,uV,r_e,dV,mV,hV,gV,Y$,yV,bV,xV,SV,_V,hmt,gmt,ymt,bmt,xmt,Smt,_mt,kmt,wmt,vmt,Emt,Rmt,Tmt,Cmt,Pmt,Imt,Q$=p(()=>{ot();V4=/^[cC][0-9a-z]{6,}$/,K4=/^[0-9a-z]+$/,Z4=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,J4=/^[0-9a-vA-V]{20}$/,Y4=/^[A-Za-z0-9]{27}$/,Q4=/^[a-zA-Z0-9_-]{21}$/,X4=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,omt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,eV=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Qy=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,imt=Qy(4),smt=Qy(6),amt=Qy(7),tV=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,cmt=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,lmt=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,t_e=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,umt=t_e,dmt=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,pmt="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";nV=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,oV=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,iV=e=>{let t=jc(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},sV=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,aV=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,cV=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,J$=/^[A-Za-z0-9_-]*$/,fmt=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,mmt=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,lV=/^https?$/,uV=/^\+[1-9]\d{6,14}$/,r_e="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",dV=new RegExp(`^${r_e}$`);mV=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},hV=/^-?\d+n?$/,gV=/^-?\d+$/,Y$=/^-?\d+(?:\.\d+)?$/,yV=/^(?:true|false)$/i,bV=/^null$/i,xV=/^undefined$/i,SV=/^[^A-Z]*$/,_V=/^[^a-z]*$/,hmt=/^[0-9a-fA-F]*$/;gmt=/^[0-9a-fA-F]{32}$/,ymt=VR(22,"=="),bmt=KR(22),xmt=/^[0-9a-fA-F]{40}$/,Smt=VR(27,"="),_mt=KR(27),kmt=/^[0-9a-fA-F]{64}$/,wmt=VR(43,"="),vmt=KR(43),Emt=/^[0-9a-fA-F]{96}$/,Rmt=VR(64,""),Tmt=KR(64),Cmt=/^[0-9a-fA-F]{128}$/,Pmt=VR(86,"=="),Imt=KR(86)});function o_e(e,t,r){e.issues.length&&t.issues.push(...fa(r,e.issues))}var dn,i_e,X$,eM,kV,wV,vV,EV,RV,TV,CV,PV,IV,A_,AV,OV,$V,MV,DV,NV,LV,zV,FV,tM=p(()=>{Jy();Q$();ot();dn=K("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),i_e={number:"number",bigint:"bigint",object:"date"},X$=K("$ZodCheckLessThan",(e,t)=>{dn.init(e,t);let r=i_e[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),eM=K("$ZodCheckGreaterThan",(e,t)=>{dn.init(e,t);let r=i_e[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),kV=K("$ZodCheckMultipleOf",(e,t)=>{dn.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):O4(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),wV=K("$ZodCheckNumberFormat",(e,t)=>{dn.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[o,i]=z4[t.format];e._zod.onattach.push(s=>{let a=s._zod.bag;a.format=t.format,a.minimum=o,a.maximum=i,r&&(a.pattern=gV)}),e._zod.check=s=>{let a=s.value;if(r){if(!Number.isInteger(a)){s.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}a<o&&s.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),a>i&&s.issues.push({origin:"number",input:a,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),vV=K("$ZodCheckBigIntFormat",(e,t)=>{dn.init(e,t);let[r,n]=F4[t.format];e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,i.minimum=r,i.maximum=n}),e._zod.check=o=>{let i=o.value;i<r&&o.issues.push({origin:"bigint",input:i,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),i>n&&o.issues.push({origin:"bigint",input:i,code:"too_big",maximum:n,inclusive:!0,inst:e,continue:!t.abort})}}),EV=K("$ZodCheckMaxSize",(e,t)=>{var r;dn.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Ym(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;o.size<=t.maximum||n.issues.push({origin:HR(o),code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),RV=K("$ZodCheckMinSize",(e,t)=>{var r;dn.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Ym(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;o.size>=t.minimum||n.issues.push({origin:HR(o),code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),TV=K("$ZodCheckSizeEquals",(e,t)=>{var r;dn.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Ym(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.size,o.maximum=t.size,o.size=t.size}),e._zod.check=n=>{let o=n.value,i=o.size;if(i===t.size)return;let s=i>t.size;n.issues.push({origin:HR(o),...s?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),CV=K("$ZodCheckMaxLength",(e,t)=>{var r;dn.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Ym(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;if(o.length<=t.maximum)return;let s=qR(o);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),PV=K("$ZodCheckMinLength",(e,t)=>{var r;dn.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Ym(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;if(o.length>=t.minimum)return;let s=qR(o);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),IV=K("$ZodCheckLengthEquals",(e,t)=>{var r;dn.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Ym(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{let o=n.value,i=o.length;if(i===t.length)return;let s=qR(o),a=i>t.length;n.issues.push({origin:s,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),A_=K("$ZodCheckStringFormat",(e,t)=>{var r,n;dn.init(e,t),e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),AV=K("$ZodCheckRegex",(e,t)=>{A_.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),OV=K("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=SV),A_.init(e,t)}),$V=K("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=_V),A_.init(e,t)}),MV=K("$ZodCheckIncludes",(e,t)=>{dn.init(e,t);let r=jc(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),DV=K("$ZodCheckStartsWith",(e,t)=>{dn.init(e,t);let r=new RegExp(`^${jc(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),NV=K("$ZodCheckEndsWith",(e,t)=>{dn.init(e,t);let r=new RegExp(`.*${jc(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}});LV=K("$ZodCheckProperty",(e,t)=>{dn.init(e,t),e._zod.check=r=>{let n=t.schema._zod.run({value:r.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(o=>o_e(o,r,t.property));o_e(n,r,t.property)}}),zV=K("$ZodCheckMimeType",(e,t)=>{dn.init(e,t);let r=new Set(t.mime);e._zod.onattach.push(n=>{n._zod.bag.mime=t.mime}),e._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:t.mime,input:n.value.type,inst:e,continue:!t.abort})}}),FV=K("$ZodCheckOverwrite",(e,t)=>{dn.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}})});var ZR,jV=p(()=>{ZR=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let n=t.split(`
|
|
5
5
|
`).filter(s=>s),o=Math.min(...n.map(s=>s.length-s.trimStart().length)),i=n.map(s=>s.slice(o)).map(s=>" ".repeat(this.indent*2)+s);for(let s of i)this.content.push(s)}compile(){let t=Function,r=this?.args,o=[...(this?.content??[""]).map(i=>` ${i}`)];return new t(...r,o.join(`
|
|
6
6
|
`))}}});var UV,HV=p(()=>{UV={major:4,minor:4,patch:3}});function u6(e){if(e==="")return!0;if(/\s/.test(e)||e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function __e(e){if(!J$.test(e))return!1;let t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return u6(r)}function k_e(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}function a_e(e,t,r){e.issues.length&&t.issues.push(...fa(r,e.issues)),t.value[r]=e.value}function iM(e,t,r,n,o,i){let s=r in n;if(e.issues.length){if(o&&i&&!s)return;t.issues.push(...fa(r,e.issues))}if(!s&&!o){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?s&&(t.value[r]=void 0):t.value[r]=e.value}function w_e(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=L4(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function v_e(e,t,r,n,o,i){let s=[],a=o.keySet,c=o.catchall._zod,l=c.def.type,u=c.optin==="optional",d=c.optout==="optional";for(let f in t){if(f==="__proto__"||a.has(f))continue;if(l==="never"){s.push(f);continue}let m=c.run({value:t[f],issues:[]},n);m instanceof Promise?e.push(m.then(y=>iM(y,r,f,t,u,d))):iM(m,r,f,t,u,d)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:i}),e.length?Promise.all(e).then(()=>r):r}function c_e(e,t,r,n){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;let o=e.filter(i=>!eh(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(s=>Ms(s,n,xo())))}),t)}function l_e(e,t,r,n){let o=e.filter(i=>i.issues.length===0);return o.length===1?(t.value=o[0].value,t):(o.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(s=>Ms(s,n,xo())))}):t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:[],inclusive:!1}),t)}function qV(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Xm(e)&&Xm(t)){let r=Object.keys(t),n=Object.keys(e).filter(i=>r.indexOf(i)!==-1),o={...e,...t};for(let i of n){let s=qV(e[i],t[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};o[i]=s.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n<e.length;n++){let o=e[n],i=t[n],s=qV(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[n,...s.mergeErrorPath]};r.push(s.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function u_e(e,t,r){let n=new Map,o;for(let a of t.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else e.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let c of a.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else e.issues.push(a);let i=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(i.length&&o&&e.issues.push({...o,keys:i}),eh(e))return e;let s=qV(t.value,r.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return e.value=s.data,e}function d_e(e,t){for(let r=e.length-1;r>=0;r--)if(e[r]._zod[t]!=="optional")return r+1;return 0}function p_e(e,t,r){e.issues.length&&t.issues.push(...fa(r,e.issues)),t.value[r]=e.value}function f_e(e,t,r,n,o){for(let i=0;i<r.length;i++){let s=e[i],a=i<n.length;if(s.issues.length){if(!a&&i>=o){t.value.length=i;break}t.issues.push(...fa(i,s.issues))}t.value[i]=s.value}for(let i=t.value.length-1;i>=n.length&&(r[i]._zod.optout==="optional"&&t.value[i]===void 0);i--)t.value.length=i;return t}function m_e(e,t,r,n,o,i,s){e.issues.length&&(UR.has(typeof n)?r.issues.push(...fa(n,e.issues)):r.issues.push({code:"invalid_key",origin:"map",input:o,inst:i,issues:e.issues.map(a=>Ms(a,s,xo()))})),t.issues.length&&(UR.has(typeof n)?r.issues.push(...fa(n,t.issues)):r.issues.push({origin:"map",code:"invalid_element",input:o,inst:i,key:n,issues:t.issues.map(a=>Ms(a,s,xo()))})),r.value.set(e.value,t.value)}function h_e(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}function g_e(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}function y_e(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}function b_e(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}function rM(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},r)}function nM(e,t,r){if(e.issues.length)return e.aborted=!0,e;if((r.direction||"forward")==="forward"){let o=t.transform(e.value,e);return o instanceof Promise?o.then(i=>oM(e,i,t.out,r)):oM(e,o,t.out,r)}else{let o=t.reverseTransform(e.value,e);return o instanceof Promise?o.then(i=>oM(e,i,t.in,r)):oM(e,o,t.in,r)}}function oM(e,t,r,n){return e.issues.length?(e.aborted=!0,e):r._zod.run({value:t,issues:e.issues},n)}function x_e(e){return e.value=Object.freeze(e.value),e}function S_e(e,t,r,n){if(!e){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(R_(o))}}var Ot,Xy,en,GV,BV,WV,VV,KV,ZV,JV,YV,QV,XV,e6,t6,r6,n6,o6,i6,s6,a6,c6,l6,d6,p6,f6,m6,h6,sM,g6,JR,aM,y6,b6,x6,S6,_6,k6,w6,v6,E6,R6,E_e,T6,YR,C6,P6,I6,cM,A6,O6,$6,M6,D6,N6,L6,lM,z6,F6,j6,U6,H6,q6,G6,B6,uM,QR,W6,V6,K6,Z6,J6,Y6,Q6,X6=p(()=>{tM();Jy();jV();W4();Q$();ot();HV();ot();Ot=K("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=UV;let n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(let o of n)for(let i of o._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(s,a,c)=>{let l=eh(s),u;for(let d of a){if(d._zod.def.when){if(j4(s)||!d._zod.def.when(s))continue}else if(l)continue;let f=s.issues.length,m=d._zod.check(s);if(m instanceof Promise&&c?.async===!1)throw new Yl;if(u||m instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await m,s.issues.length!==f&&(l||(l=eh(s,f)))});else{if(s.issues.length===f)continue;l||(l=eh(s,f))}}return u?u.then(()=>s):s},i=(s,a,c)=>{if(eh(s))return s.aborted=!0,s;let l=o(a,n,c);if(l instanceof Promise){if(c.async===!1)throw new Yl;return l.then(u=>e._zod.parse(u,c))}return e._zod.parse(l,c)};e._zod.run=(s,a)=>{if(a.skipChecks)return e._zod.parse(s,a);if(a.direction==="backward"){let l=e._zod.parse({value:s.value,issues:[]},{...a,skipChecks:!0});return l instanceof Promise?l.then(u=>i(u,s,a)):i(l,s,a)}let c=e._zod.parse(s,a);if(c instanceof Promise){if(a.async===!1)throw new Yl;return c.then(l=>o(l,n,a))}return o(c,n,a)}}Qt(e,"~standard",()=>({validate:o=>{try{let i=G4(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return B4(e,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Xy=K("$ZodString",(e,t)=>{Ot.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??mV(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),en=K("$ZodStringFormat",(e,t)=>{A_.init(e,t),Xy.init(e,t)}),GV=K("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=eV),en.init(e,t)}),BV=K("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Qy(n))}else t.pattern??(t.pattern=Qy());en.init(e,t)}),WV=K("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=tV),en.init(e,t)}),VV=K("$ZodURL",(e,t)=>{en.init(e,t),e._zod.check=r=>{try{let n=r.value.trim();if(!t.normalize&&t.protocol?.source===lV.source&&!/^https?:\/\//i.test(n)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}let o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),KV=K("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=rV()),en.init(e,t)}),ZV=K("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Q4),en.init(e,t)}),JV=K("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=V4),en.init(e,t)}),YV=K("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=K4),en.init(e,t)}),QV=K("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Z4),en.init(e,t)}),XV=K("$ZodXID",(e,t)=>{t.pattern??(t.pattern=J4),en.init(e,t)}),e6=K("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Y4),en.init(e,t)}),t6=K("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=fV(t)),en.init(e,t)}),r6=K("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=dV),en.init(e,t)}),n6=K("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=pV(t)),en.init(e,t)}),o6=K("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=X4),en.init(e,t)}),i6=K("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=nV),en.init(e,t),e._zod.bag.format="ipv4"}),s6=K("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=oV),en.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),a6=K("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=iV(t.delimiter)),en.init(e,t),e._zod.bag.format="mac"}),c6=K("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=sV),en.init(e,t)}),l6=K("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=aV),en.init(e,t),e._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,i]=n;if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});d6=K("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=cV),en.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{u6(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});p6=K("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=J$),en.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{__e(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),f6=K("$ZodE164",(e,t)=>{t.pattern??(t.pattern=uV),en.init(e,t)});m6=K("$ZodJWT",(e,t)=>{en.init(e,t),e._zod.check=r=>{k_e(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),h6=K("$ZodCustomStringFormat",(e,t)=>{en.init(e,t),e._zod.check=r=>{t.fn(r.value)||r.issues.push({code:"invalid_format",format:t.format,input:r.value,inst:e,continue:!t.abort})}}),sM=K("$ZodNumber",(e,t)=>{Ot.init(e,t),e._zod.pattern=e._zod.bag.pattern??Y$,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}}),g6=K("$ZodNumberFormat",(e,t)=>{wV.init(e,t),sM.init(e,t)}),JR=K("$ZodBoolean",(e,t)=>{Ot.init(e,t),e._zod.pattern=yV,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}}),aM=K("$ZodBigInt",(e,t)=>{Ot.init(e,t),e._zod.pattern=hV,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:e}),r}}),y6=K("$ZodBigIntFormat",(e,t)=>{vV.init(e,t),aM.init(e,t)}),b6=K("$ZodSymbol",(e,t)=>{Ot.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:o,inst:e}),r}}),x6=K("$ZodUndefined",(e,t)=>{Ot.init(e,t),e._zod.pattern=xV,e._zod.values=new Set([void 0]),e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:o,inst:e}),r}}),S6=K("$ZodNull",(e,t)=>{Ot.init(e,t),e._zod.pattern=bV,e._zod.values=new Set([null]),e._zod.parse=(r,n)=>{let o=r.value;return o===null||r.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),r}}),_6=K("$ZodAny",(e,t)=>{Ot.init(e,t),e._zod.parse=r=>r}),k6=K("$ZodUnknown",(e,t)=>{Ot.init(e,t),e._zod.parse=r=>r}),w6=K("$ZodNever",(e,t)=>{Ot.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)}),v6=K("$ZodVoid",(e,t)=>{Ot.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),r}}),E6=K("$ZodDate",(e,t)=>{Ot.init(e,t),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,i=o instanceof Date;return i&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:e}),r}});R6=K("$ZodArray",(e,t)=>{Ot.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);let i=[];for(let s=0;s<o.length;s++){let a=o[s],c=t.element._zod.run({value:a,issues:[]},n);c instanceof Promise?i.push(c.then(l=>a_e(l,r,s))):a_e(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});E_e=K("$ZodObject",(e,t)=>{if(Ot.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let a=t.shape;Object.defineProperty(t,"shape",{get:()=>{let c={...a};return Object.defineProperty(t,"shape",{value:c}),c}})}let n=E_(()=>w_e(t));Qt(e._zod,"propValues",()=>{let a=t.shape,c={};for(let l in a){let u=a[l]._zod;if(u.values){c[l]??(c[l]=new Set);for(let d of u.values)c[l].add(d)}}return c});let o=Yy,i=t.catchall,s;e._zod.parse=(a,c)=>{s??(s=n.value);let l=a.value;if(!o(l))return a.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),a;a.value={};let u=[],d=s.shape;for(let f of s.keys){let m=d[f],y=m._zod.optin==="optional",S=m._zod.optout==="optional",k=m._zod.run({value:l[f],issues:[]},c);k instanceof Promise?u.push(k.then(R=>iM(R,a,f,l,y,S))):iM(k,a,f,l,y,S)}return i?v_e(u,l,a,c,n.value,e):u.length?Promise.all(u).then(()=>a):a}}),T6=K("$ZodObjectJIT",(e,t)=>{E_e.init(e,t);let r=e._zod.parse,n=E_(()=>w_e(t)),o=f=>{let m=new ZR(["shape","payload","ctx"]),y=n.value,S=C=>{let O=z$(C);return`shape[${O}]._zod.run({ value: input[${O}], issues: [] }, ctx)`};m.write("const input = payload.value;");let k=Object.create(null),R=0;for(let C of y.keys)k[C]=`key_${R++}`;m.write("const newResult = {};");for(let C of y.keys){let O=k[C],M=z$(C),L=f[C],F=L?._zod?.optin==="optional",H=L?._zod?.optout==="optional";m.write(`const ${O} = ${S(C)};`),F&&H?m.write(`
|
|
@@ -164,7 +164,7 @@ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.pus
|
|
|
164
164
|
`}function Dx(e,t){return t.map(Xr).join(e)}function phe(e){if(!Array.isArray(e)||e.length===0)throw Et(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=Xs(String(t),0)}catch(n){throw kd(n)}if(r==="")throw Et(0,"TOONL header requires fields");return r})}function bq(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function kq(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Et(0,"TOONL continuation cadence must be positive")}function fhe(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function _q(e){if(e===null||typeof e!="object"||Array.isArray(e))throw Et(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw Et(0,"TOONL output requires object rows");if(t.some(r=>!Ef(e[r])))throw Et(0,"TOONL rows must be flat objects");return t}function mhe(e){return JSON.stringify([...e].sort())}function wq(e,t){let r=mhe(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function Dt({delimiter:e=ss,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){uhe(e),kq(r),kq(n);let o=null,i="",s=new Map,a=0,l=0,c=0,d=new Map,u=!1,p={continuationEveryRows:r,continuationEveryBytes:n},f=()=>o===null||!t?"":`[=${a}]
|
|
165
165
|
`,m=()=>fhe(p,l,c)?(l=0,c=0,gq(e,i,!0)):"",g=y=>{xq(y,0);let _=d.get(y);if(_===void 0){if(d.size>=Rq)throw Et(0,"too many tagged lanes");_={fields:null,fieldsByShape:new Map},d.set(y,_)}return _};return{push(y){if(u)throw Et(0,"TOONL encoder is closed");let _=wq(_q(y),s),w="";(o===null||o.length!==_.length||o.some((x,O)=>x!==_[O]))&&(w+=f(),o=_,i=Dx(e,o),a=0,l=0,c=0,w+=gq(e,i));let P=o.map(x=>Qr(y[x],e));w+=m();let A=`${P.join(e)}
|
|
166
166
|
`;return w+=A,a+=1,l+=1,c+=A.length,w},declareLane(y,_){if(u)throw Et(0,"TOONL encoder is closed");let w=phe(_),P=Dx(ss,w),A=g(y);return bq(A.fields,w)?"":(A.fields=w,yq(y,P))},pushTagged(y,_){if(u)throw Et(0,"TOONL encoder is closed");let w=g(y),P=wq(_q(_),w.fieldsByShape),A=Dx(ss,P),x=P.map(j=>Qr(_[j],ss)),O="";return bq(w.fields,P)||(w.fields=P,O+=yq(y,A)),`${O}${y}:${x.join(ss)}
|
|
167
|
-
`},end(){return u?"":(u=!0,f())}}}var pt=Ax;function as(e){let t={app:e,version:ghe(Sd("__RED_BUILD_VERSION__",()=>"4.2.
|
|
167
|
+
`},end(){return u?"":(u=!0,f())}}}var pt=Ax;function as(e){let t={app:e,version:ghe(Sd("__RED_BUILD_VERSION__",()=>"4.2.3")??"0.0.0-dev"),gitSha:Sd("__RED_BUILD_GIT_SHA__",()=>"f2b79c64ba689d72a716a967bb82ab75cd2963f2")??"unknown",buildTime:Sd("__RED_BUILD_TIME__",()=>"2026-08-24T03:26:05-03:00")??"unknown",bundleAsset:Sd("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=Sd("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=Sd("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function ghe(e){return e.startsWith("v")?e.slice(1):e}function Eq(e){return`${e.app} ${e.version} ${e.gitSha}`}function Sd(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Tq={"=":"data",":=":{to:"data",typed:!0},":":"meta"},yhe=/^[a-z][a-z0-9+.-]*:\/\//i;function bhe(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 khe(e=Tq){return Object.entries(e).map(([t,r])=>bhe(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function _he(e){return/^-\d+(\.\d+)?$/.test(e)}function Af(e){return!(!e||e.startsWith("-")&&!_he(e))}function Qy(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 Pq(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=>Pq(r.trim())):e}function El(e,t){switch(t){case"boolean":return whe(e);case"number":return vhe(e);case"array":return e.split(",").map(r=>Qy(r.trim()));case"string":default:return e}}function whe(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function vhe(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 ea(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function Rhe(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function Ht(e,t){return{type:e,value:t}}function She(e){let t=[],r=Ehe(e);if(t.push(Ht("section-header","Usage:"),Ht("text"," "),Ht("usage-text",r),Ht("newline",`
|
|
168
168
|
`),Ht("newline",`
|
|
169
169
|
`)),e.positional&&e.positional.length>0){t.push(Ht("section-header","Arguments:"),Ht("newline",`
|
|
170
170
|
`));for(let n of e.positional)if(n.description){let o=n.variadic?`${n.name}...`:n.name;t.push(Ht("indent"," "),Ht("positional-name",`<${o}>`)),n.required||t.push(Ht("positional-optional"," (optional)")),t.push(Ht("newline",`
|
|
@@ -419,7 +419,7 @@ ${r.map(n=>` ${n}`).join(`
|
|
|
419
419
|
`))return;let d=s.slice(0,s.indexOf(`
|
|
420
420
|
`));l(d==="commit"?void 0:new Error("redskilled takeover was aborted"))}),i.once("error",()=>l(new Error("redskilled takeover handshake failed"))),i.once("close",()=>{s.includes(`
|
|
421
421
|
`)||l(new Error("redskilled takeover handshake closed before commit"))})})}}function SB(e){process.exitCode=e,process.exit(e)}async function xce(e,t=process.env,r=fZe){let n=Tce(t),o=Pce(e,t);if(t[lZe]==="1")return{version:o,newest:n};let i=Xn(e)===null?"0.0.0":e;try{let s=await j2({fetchText:r},i);return{version:s.sameMajor??o,newest:s.newest??n}}catch{return{version:o,newest:n}}}function Ece(e,t=process.env,r){let n=r??EB;return{version:Pce(e,t,n),newest:Tce(t,n)}}function Tce(e=process.env,t=EB){return Ice(Ace(e,t))}function Pce(e,t=process.env,r=EB){let n=Xn(e.trim())?.major;return n===void 0?null:Ice(Ace(t,r).filter(o=>Xn(o)?.major===n))}function Ace(e,t){let r=[];for(let n of t(wk(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||Xn(o)===null||r.push(o)}return r}function Ice(e){let t=null;for(let r of e)(t===null||Qf(r,t)>0)&&(t=r);return t}function EB(e){try{return tZe(e)}catch{return[]}}async function fZe(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{join as Hp}from"node:path";function Cce(e){let t=e.env??process.env,r=ra(),n=e.homeDir??t.HOME;return{gateway:FX({configuredProfiles:["personal",...Object.keys(e.profiles??{})],upstream:GX({...t.GITHUB_API_URL?{origin:t.GITHUB_API_URL}:{},...t.GITHUB_GRAPHQL_URL?{graphqlEndpoint:t.GITHUB_GRAPHQL_URL}:{},fetchImpl:r}),...n==null?{}:{outboxPath:Hp(At(n),"state","github","outbox.toon"),custodyPath:Hp(At(n),"state","github","custody.toon"),custodyTickMs:3e4,custodyInertMs:12e4,custodyUpstream:dL({...t.GITHUB_API_URL?{origin:t.GITHUB_API_URL}:{},...t.GITHUB_GRAPHQL_URL?{graphqlEndpoint:t.GITHUB_GRAPHQL_URL}:{},fetchImpl:r}),writeUpstream:uL({...t.GITHUB_API_URL?{origin:t.GITHUB_API_URL}:{},fetchImpl:r})}}),credentialForProfile:async i=>{if(i!=="personal")return null;let s=e.resolvePersonal();return s==null?null:{secret:s.token}},credentialForProject:vX({profiles:e.profiles??{},resolvePersonal:e.resolvePersonal,...e.homeDir==null?{}:{homeDir:e.homeDir},...t.GITHUB_API_URL?{origin:t.GITHUB_API_URL}:{},fetchImpl:r})}}function mZe(e,t,r=process.env){let n=aT({kind:"app",app:e});return[{identity:n,transport:CT({app:e,...r.GITHUB_API_URL?{origin:r.GITHUB_API_URL}:{},fetchImpl:ra({timeoutMs:1e4})}),store:Hb({path:Hp(t,"github",sT({kind:"app",app:e}))}),history:Vb({path:Hp(t,"github","balance-history.toonl"),identity:n})}]}async function $ce(e,t){for(let r of e)try{let n=await Jf({transport:r.transport,now:t});await r.store?.write(n).catch(()=>{}),await r.history?.append(n).catch(()=>{})}catch{}}function Oce(e,t,r,n=process.env){return e===null?null:{...e,store:Hb({path:Hp(r,"github","balance.toon")}),history:Vb({path:Hp(r,"github","balance-history.toonl")}),...t===null?{}:{companions:mZe(t,r,n)}}}async function Dce(e){let t=_ce(e.decision,e.io,e.paths),r={io:e.io},n;try{n=await wce(t,e.paths,r)}catch{return await e.eventLane.recordDaemonTakeoverFailed({ts:e.clock(),pid:e.incumbentPid,socketPath:e.paths.socketPath,detail:`redskilled ${e.decision.to} failed its takeover boot handshake; incumbent ${e.incumbentVersion} remains live`}),!1}e.onViable(),await e.eventLane.flush().catch(()=>{}),await e.flushRegistration().catch(()=>{});try{await e.stop()}catch(o){throw n?.abort(),o}return vce(t,e.paths,{...r,...n==null?{}:{successor:n}}),!0}function zce(e=1e4){return async(t,r)=>await hZe(t,e,r)}async function hZe(e,t,r){if(!Number.isFinite(t)||t<=0)return await r();let n,o=new Promise((i,s)=>{n=setTimeout(()=>s(new Error(`redskilled ${e} exceeded its ${t}ms remote-call deadline`)),t),n.unref()});try{return await Promise.race([Promise.resolve().then(r),o])}finally{n!=null&&clearTimeout(n)}}import{randomUUID as gZe}from"node:crypto";var yZe=5e3,bZe=150,kZe=3;function jce(e,t={}){let r=t.selfPingTimeoutMs??bZe;return _Ze({intervalMs:t.selfPingIntervalMs??yZe,timeoutMs:r,missThreshold:t.selfPingMissThreshold??kZe,probe:t.selfPing??(async()=>{let n=await pa({socketPath:e,timeoutMs:r},{id:gZe(),op:"ping",self:!0});if(!n.ok)throw new Error(n.error)})})}function _Ze(e){let t,r=!1,n=null,o=0,i=null,s=null,a=null,l="the daemon has not self-pinged yet",c=Math.max(1,Math.floor(e.missThreshold));function d(f,m,g){o+=Math.max(1,f),a=m,l=g}function u(){r||e.intervalMs<=0||(n=Date.now()+e.intervalMs,t=setTimeout(()=>void p(),e.intervalMs),t.unref())}async function p(){t=void 0;let f=Date.now(),m=new Date(f).toISOString();i=m;let g=n==null?0:Math.max(0,Math.floor((f-n)/Math.max(1,e.intervalMs)));g>0&&d(g,m,`the daemon event loop missed ${g} scheduled self-ping interval(s) before this probe ran`);let y;try{await Promise.race([Promise.resolve().then(e.probe),new Promise((w,P)=>{y=setTimeout(()=>P(new Error(`self-ping exceeded ${e.timeoutMs}ms`)),Math.max(1,e.timeoutMs)),y.unref()})]);let _=Date.now()-f;if(_>e.timeoutMs)throw new Error(`self-ping answered after ${_}ms`);s=new Date().toISOString(),g===0&&(o=0,l=`the daemon answered its own socket in ${_}ms`)}catch(_){d(1,new Date().toISOString(),_ instanceof Error?_.message:String(_))}finally{y!=null&&clearTimeout(y),u()}}return{arm(){r||t!=null||e.intervalMs<=0||u()},stop(){r=!0,t!=null&&clearTimeout(t),t=void 0},health:()=>({status:o>=c?"degraded":"healthy",consecutive_misses:o,miss_threshold:c,last_probe_at:i,last_success_at:s,last_failure_at:a,detail:l})}}function wZe(e){if(e.deliberate===!0||e.exitCode!=null)return!1;let t=e.senderClass??null;return t===null||t==="unknown"?!0:e.confidence!=="high"&&e.confidence!=="medium"}function vZe(e){let t=e.systemdResult??null,r=e.signal??null;return t==="oom-kill"||e.senderClass==="oomd"?"oom":t==="timeout"||t==="watchdog"?"cap-hit":r!=null?"unattributed-kill":t===null&&e.exitCode==null?"host-vanished":"unknown"}function RZe(e,t){let r=[`born=${e.started_at}`];e.cpu!=null&&r.push(`cpu=${e.cpu.cpu_seconds.toFixed(1)}s at ${e.cpu.sampled_at}`),t.signal!=null&&r.push(`signal=${t.signal}`),t.systemdResult!=null&&r.push(`systemd result=${t.systemdResult}`),t.memoryPeakBytes!=null&&r.push(`memory peak=${EZe(t.memoryPeakBytes)}`);let n=e.memory_ceiling??e.applied_budget?.memory_max??null;n!=null&&r.push(`ceiling=${n}`),e.warnings.length>0&&r.push(`warnings: ${e.warnings.join(", ")}`);let o=xZe(t.journalTail);return o!=null&&r.push(`journal: ${o}`),r.push(`log=${e.log_path??"unrecorded"}`),r.join("; ")}function SZe(e){if(e.kind!=="worker-death"||!wZe(e))return null;let t=vZe(e);return{...e,kind:"worker-postmortem",failureMode:t,detail:`synthetic postmortem: failure-mode=${t}; ${RZe(e.worker,e)}`}}function Nce(e,t){let r=SZe(t);r!=null&&e(r)}var Mce=200;function xZe(e){if(e==null)return null;let t=e.split(`
|
|
422
|
-
`).map(n=>n.trim()).filter(n=>n!==""),r=t[t.length-1];return r===void 0?null:r.length<=Mce?r:`${r.slice(0,Mce)}\u2026`}function EZe(e){return`${(e/1024**3).toFixed(2)} GiB`}var TZe=new Set(["timeout","watchdog","start-limit-hit"]),PZe=new Set(["SIGTERM","SIGINT","SIGHUP","SIGQUIT"]);function Lce(e){let t=e.systemdResult??null,r=e.signal??null;return t==="oom-kill"?{senderClass:"oomd",confidence:"high"}:t!=null&&TZe.has(t)?{senderClass:"teardown",confidence:"high"}:r==="SIGKILL"?{senderClass:"unknown",confidence:"low"}:r!=null&&PZe.has(r)?{senderClass:"user-signal",confidence:"high"}:r!=null?{senderClass:"user-signal",confidence:"medium"}:{senderClass:"unknown",confidence:"none"}}async function PB(e,t,r){let n=e.unit==null||e.unit===""||Nc(e.unit)!=null?null:await Promise.resolve(t(e.unit)).catch(()=>null);if(n==null)return{...r,facts:{...r.facts,...Lce(r.facts)}};let o={exitCode:n.exit_code,signal:n.signal,systemdResult:n.systemd_result,memoryPeakBytes:n.memory_peak_bytes,memorySwapPeakBytes:n.memory_swap_peak_bytes,journalTail:n.journal_tail};return{detail:AZe(n),facts:{...o,...Lce(o)}}}function AZe(e){let t=[];if(e.systemd_result!=null&&t.push(`systemd result=${e.systemd_result}`),e.signal!=null?t.push(`main process signal=${e.signal}`):e.exit_code!=null&&t.push(`main process exit code=${e.exit_code}`),e.memory_peak_bytes!=null){let r=e.memory_swap_peak_bytes==null?"":` + ${TB(e.memory_swap_peak_bytes)} swap`;t.push(`memory peak=${TB(e.memory_peak_bytes)}${r}`)}else e.memory_swap_peak_bytes!=null&&t.push(`swap peak=${TB(e.memory_swap_peak_bytes)}`);return t.length===0?"systemd retained the unit without exit details":t.join("; ")}function TB(e){return`${(e/1024**3).toFixed(2)} GiB`}async function Bce(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev";try{hJ(mJ(Gce(t.eventLanePath)),{version:r,observed_at:new Date().toISOString(),pid:process.pid})}catch{}let n=e.hostTopology??_E(),o=e.clock??(()=>new Date().toISOString()),i=e.launch??y8,s=e.refreshTrunk??ace,a=e.countBaseMovement??lce,l=e.ceiling??kb();e.repositoryActivity!=null&&HT(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let c=e.owner??B2(),d=e.leaseStore??U2(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??db(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},f=e.machineClaimStore??jf(t.machineClaimPath,p,{clock:o});await IZe(Gce(t.socketPath),{recursive:!0,mode:448});let[m,g]=await Promise.all([d.read().catch(()=>{}),f.read().catch(()=>{})]),y=Date.parse(o()),_=m==null?Number.NaN:Date.parse(m.renewed_at);m!=null&&g!=null&&m.pid===g.pid&&m.start_time===g.start_time&&m.socket_path===t.socketPath&&g.socket_path===t.socketPath&&Number.isFinite(y)&&Number.isFinite(_)&&y-_>=dJ&&await eE(t.socketPath)==="unowned"&&await d.release({pid:m.pid,startTime:m.start_time}).catch(()=>!1)&&await f.release({pid:g.pid,startTime:g.start_time,uid:g.uid}).catch(()=>!1);let P=await f.claim(u);if(!P.claimed)throw P.claim?.socket_path===t.socketPath?new po(t.socketPath):new fs(f.claimPath,P.reason,P.claim);let A=await d.acquire(c);if(!A.acquired)throw await f.release(u).catch(()=>{}),new po(t.socketPath,A.lease);let x,O;try{x=await T2(t.socketPath,async()=>{let[R,G]=await Promise.all([d.read().catch(()=>{}),f.read().catch(()=>{})]);return R!=null&&R.pid!==c.pid&&mr(R.pid)?!0:G!=null&&G.socket_path===t.socketPath&&G.pid!==u.pid&&mr(G.pid)})}catch(R){throw await d.release(c).catch(()=>{}),await f.release(u).catch(()=>{}),R}let j=o(),D=tK(e.eventLane??OH(t.eventLanePath),bo()),C=e.standingOrdersStore??uQ(dQ(t.eventLanePath)),z=e.registrationIntentStore??Wle(t.registrationIntentPath),q=e.liveness??fle,Y=e.unitExitFacts??gle,ce=e.livenessGraceMs??ple,pe=e.stopWorker??wle,ne=sle(pe),Oe=e.budgetGraceMs??Rle,ze=e.unitInventory??(()=>gB(t.machineClaimPath,t.machineClaimPathOfThisHost)?ble():[]),et=e.unitMainPid??yle,Qe=e.treeSampler??r5,be=e.readLogTail??yV,Ne=e.sampleMs??cJ,it=await Cle(t.eventLanePath,c.pid,Ne,e),Pt=e.leaseRenewMs??LI,kt=e.registrationSustainMs??uJ,at=e.publishedVersion??(R=>xce(R)),xt=e.replaceCheckMs??uce,st=e.publishedProbeTimeoutMs??aJ,Ce=zce(e.remotePollTimeoutMs),wt=e.localPublishedEvidence??(R=>Ece(R,e.replacementIO?.env??process.env)),yr=e.bornByReplacement??gce(),Vr=e.replaceBootCheckMs??lJ,Mo=e.supervised??rS(),od=e.replacementIO??{},so=e.repositoryActivity,id=so?.intervalMs??Hd,br=e.githubBalance,Kr=e.queueDiscovery,No=e.probeLaunch,Ar=Kr?.transport??so?.transport,Kn=Kr?.unconfiguredReason??fJ,Dr=Kr?.intervalMs??wL,pn=e.demandMs??nH,Jn=e.demandBackoffMs??rH,De=new Map,{runtime:_i,store:Hs}=await Lle({paths:t,clock:o,...e.resourceLeaseStore==null?{}:{store:e.resourceLeaseStore},...e.availableMemoryBytes==null?{}:{availableMemoryBytes:e.availableMemoryBytes}}),En=new Map,he=new Set,H=new Map,$=new Map,Z=[],ee=new Map,te=yB([]),le=[],_e=e.deaths===void 0?void 0:[...e.deaths],dt=await z.read().catch(()=>[]),qe=new Map,ut=new Map,Zn=Kle({registration:R=>qe.get(R),liveWorkerIds:()=>De.keys(),admit:gl,start:(R,G)=>yl(R,{admission:G,hook:!0}).worker,refuse:(R,G)=>void D.recordDemandRefusal({ts:o(),projectLabel:R,detail:G}).catch(()=>{}),recordExpiry:(R,G)=>void D.recordDemandRefusal({ts:o(),projectLabel:R,detail:G}).catch(()=>{})}),sd=Yle({declaration:e.hostEventSinks,hostState:fd,liveWorkerIds:()=>De.keys(),admit:gl,start:(R,G)=>yl(R,{admission:G}).worker,refuse:R=>void D.recordDemandRefusal({ts:o(),projectLabel:"redskilled/host-events",detail:R}).catch(()=>{})}),Lo=Promise.resolve(),Vs=Promise.resolve();function Ks(R){let G=Lo.then(async()=>{await Zn.waitForSettled();let Q=await R();return await Zn.waitForSettled(),Q});return Lo=G.then(()=>{},()=>{}),G}let hf=new Set,Te={},lt=null,Jr=null,ao=null,wi=!1,vi=0,ad=null,Js="none",Dy=0,gf=null,kr=null,ld=null,Fo=null,yf=!1,Zs=null,fr=null,Xt=null,Tn=[],fn=[],cd=new Map((e.orphanedRegistrations??[]).map(R=>[R.project_label,R])),dd=null,Ri={},VU={},JS=!1,Ys,bf,kf,_f,wf,zy,ud,pd,Pn=!1,KU=!1,jy=null,vf=oce({poll:()=>XU(),registrations:()=>qe.values(),clock:o,attendedMs:id,armed:Kr!=null||so!=null&&so.projects.length>0,stopping:()=>Pn,rateLimit:()=>ld?.rate_limit??null}),ZS=jce(t.socketPath,e),JU,YS=new Promise(R=>{JU=R});function Rf(R){YU(R);let G=Date.parse(R),Q=NH(qe.values(),G);for(let ae of Q.lapsed){qe.delete(ae.project_label);let ge=fr?.projects.find(Pe=>Pe.project_label===ae.project_label),ve=[...De.values()].some(Pe=>Pe.project_label===ae.project_label);(ge?.outcome==="counted"&&(ge.depth??0)>0||ve)&&ut.set(ae.project_label,ae),ZU(ae,G)}return Q.lapsed.length>0&&ml(),Q.lapsed}function ml(){let R=new Map(ut);for(let[G,Q]of qe)R.set(G,Q);z.replace([...R.values()]).catch(()=>{})}function ZU(R,G,Q){let ae=Number.isFinite(G)?new Date(G).toISOString():R.renew_by;Tn.push(Hle(R,fr,ae,Q)),Tn.length>Ym&&Tn.splice(0,Tn.length-Ym)}function YU(R){if(qe.size===0)return;let G=Date.parse(R);if(!Number.isFinite(G))return;let Q={};for(let Pe of De.values())Q[Pe.project_label]=(Q[Pe.project_label]??0)+1;let ae=fr==null?Number.NaN:Date.parse(fr.fetched_at),ge=new Map((fr?.projects??[]).map(Pe=>[Pe.project_label,Pe])),ve=!1;for(let Pe of[...qe.values()]){let Ot=Number.isFinite(ae)&&G-ae<=Pe.renew_within_ms?ge.get(Pe.project_label):void 0,gd=xE(Pe,{now:R,...Ot==null?{}:{queue:{outcome:Ot.outcome,depth:Ot.depth}},liveWorkers:Q[Pe.project_label]??0});gd.registration!==Pe&&(qe.set(Pe.project_label,gd.registration),ve=!0)}ve&&ml()}function QU(R){if(ut.size===0)return;let G=Date.parse(R);if(!Number.isFinite(G))return;let Q=new Map((fr?.projects??[]).map(ge=>[ge.project_label,ge])),ae=!1;for(let[ge,ve]of[...ut]){if(!wB(ve,G)){ut.delete(ge),ae=!0;continue}let Pe=Q.get(ge),Gt=xE(ve,{now:R,...Pe==null?{}:{queue:{outcome:Pe.outcome,depth:Pe.depth}},liveWorkers:[...De.values()].filter(Ot=>Ot.project_label===ge).length});Gt.verdict==="open-work"||Gt.verdict==="live-worker"?(qe.set(ge,Gt.registration),ut.delete(ge),ae=!0):Gt.verdict==="drained"&&(ut.delete(ge),ae=!0)}ae&&ml()}function fd(){let R=o();return hV({now:R,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:c.pid,startedAt:j,topology:n,ceiling:l,scope:yH(f.claimPath,p,u),requestHealth:ZS.health(),workers:[...De.values()],registrations:[...qe.values()],demand:Xt,lapses:Tn,stops:fn,orphanedRegistrations:[...cd.values()],birthLatches:uH(Ri,Date.parse(R)),harvest:VU,queue:fr,published:{version:Jr,checkedAt:ao,newer:wi,replacement:Js,newest:gf,majorHold:kr,checks:vi,holdReason:ad},resourceIncidents:it.state()})}function My(){return M5({hostState:fd(),ceiling:l,rss:Te,sampledAt:lt,logLines:Object.fromEntries(H),displays:Object.fromEntries($),now:o(),reattachedWorkerIds:[...he],repositoryActivity:ld,outcomes:le,activityStalenessMs:VT*vf.cadenceMs(),githubBalance:Fo,..._e===void 0?{}:{deaths:_e},metrics:D5({observations:Z,outcomes:le,now:o()})})}function $fe(R,G){let Q=Tle(Z,R,G,o());Z=Q.observations;let ae=Z.at(-1);Ele(ee.get(G.worker_id),ae)&&(ee.set(G.worker_id,ae),D.recordWorker(Q.record).catch(()=>{}))}async function XU(){return ld=await Ce("repository activity poll",()=>ice({...so==null?{}:{explicit:so},registrations:qe.values(),resolveHostTransport:()=>(tW(),Ar),now:o(),previous:ld}))}async function eW(){return br==null?null:(!yf&&br.store&&(Zs??=br.store.read().then(R=>(yf=!0,R!==null&&(Fo=R),R)).finally(()=>{Zs=null}),await Zs!==null)||(Fo=await Ce("GitHub balance poll",()=>Jf({transport:br.transport,now:o()})),await br.store?.write(Fo).catch(()=>{}),await br.history?.append(Fo).catch(()=>{}),await $ce(br.companions??[],o())),Fo)}function Ofe(){if(Pn||ud!=null||br==null)return;let R=()=>{ud=void 0,eW().catch(()=>{}).then(()=>{if(Pn)return;let G=br.intervalMsOverride??qb(Fo??Wb(o()),{now:o()});ud=setTimeout(R,G),ud.unref()})};R()}function tW(){if(!(Ar!=null||Kr?.armTransport==null))try{let R=Kr.armTransport();if(R.transport!=null){Ar=R.transport;return}R.unconfiguredReason!=null&&(Kn=R.unconfiguredReason)}catch(R){Kn=`this host could not resolve a tracker credential: ${R instanceof Error?R.message:String(R)}`}}async function QS(){let R=o();Rf(R);let G=Date.parse(R);for(let[ve,Pe]of[...ut])wB(Pe,G)||ut.delete(ve);let ae=[...new Map([...ut,...qe]).values()].map(ve=>({project_label:ve.project_label,selector:ve.selector,...ve.queue_poll==null?{}:{poll:ve.queue_poll}})).sort((ve,Pe)=>ve.project_label.localeCompare(Pe.project_label));if(ae.length===0)return null;if(tW(),Ar==null)return fr=Kee(ae,R,Kn),fr;fr=Wee(await Ce("queue poll",()=>Jee({projects:ae,transport:Ar,now:R,...Kr?.batchSize==null?{}:{batchSize:Kr.batchSize}})),fr);let ge=o();return QU(ge),YU(ge),fr}async function rW(){let R=o();if(JS)return Xt??aH(R);JS=!0;try{await dW().catch(()=>{});let G={};for(let Ke of De.values())G[Ke.project_label]=(G[Ke.project_label]??0)+1;let Q=Date.parse(R),ae=Number.isFinite(Q)?Q:0;for(let[Ke,vt]of Object.entries(Ri)){if(vt.probeWorkerId==null)continue;let bl=De.get(vt.probeWorkerId);bl!=null&&ae-Date.parse(bl.started_at)>=ps&&(Ri[Ke]=gE())}let ge=()=>{let Ke=new Map((fr?.projects??[]).filter(vt=>vt.items!=null).map(vt=>[vt.project_label,vt.items]));return sH({projects:[...qe.values()].map(vt=>({project_label:vt.project_label,selector:vt.selector,argv:vt.argv,workspace_path:vt.workspace_path,target:vt.target,...Q2(vt),...Ke.get(vt.project_label)==null?{}:{items:Ke.get(vt.project_label)}})),queue:Object.fromEntries((fr?.projects??[]).map(vt=>[vt.project_label,vt.depth])),live:G,nowMs:ae,backoffUntilMs:dd,birthHealth:Ri})},ve=ge();ve.births.length>0&&(await QS(),ve=ge());let Pe=[],Gt=new Map,Ot=null;for(let Ke of ve.births){let vt,bl=qe.get(Ke.project_label);if(bl?.prompt!=null&&O!=null){try{let Yr=await C.show(Ke.project_label),kl=Yr.orders.length>0?Zj(Yr.orders):void 0,xf=fr?.projects??[];GL(bl,Ke,xf);let _l=Qte(bl,Ke,_o(De.keys()),ER(xf,Ke.project_label,Ke.work_item),kl);O.runDemandTurn(_l).catch(async ax=>{let Qfe=`the unattended turn for project ${JSON.stringify(Ke.project_label)} failed: ${ax instanceof Error?ax.message:String(ax)}`;await D.recordDemandRefusal({ts:o(),projectLabel:Ke.project_label,detail:Qfe}).catch(()=>{})})}catch(Yr){Ot=Yr instanceof Error?Yr.message:String(Yr),dd=(Number.isFinite(Q)?Q:Date.now())+Jn;break}continue}let Yfe=_o(De.keys()),yd=bl,By=Cd({argv:Ke.argv,...yd?.env==null?{}:{env:yd.env},...yd?.log_path==null?{}:{log_path:yd.log_path}},{worker_id:Yfe,slot:Ke.index,workspace_path:Ke.workspace_path,...Ke.work_item==null?{}:{work_item:Ke.work_item}},{project_label:Ke.project_label});try{if(yd?.trunk==null)vt=await Ks(()=>yl(By));else{let Yr={workspace_path:Ke.workspace_path,trunk:yd.trunk},kl=gl(By);if(!kl.admitted)throw new Mn(kl.reason,kl);let xf=RB(Yr),_l=Gt.get(xf);_l==null&&(_l=tx(Yr),Gt.set(xf,_l)),_l.catch(()=>{}),vt=await Ks(()=>lW(By,Yr,_l,kl))}}catch(Yr){Ot=Yr instanceof Error?Yr.message:String(Yr),Yr instanceof Mn&&Yr.admission?.verdict==="refused-unreachable-trunk-remote"||(dd=(Number.isFinite(Q)?Q:Date.now())+Jn);break}Pe.push({project_label:Ke.project_label,worker_id:vt.worker.worker_id,pid:vt.worker.pid,...vt.fork_sha==null?{}:{fork_sha:vt.fork_sha},warnings:By.log_path==null?[...vt.warnings,`project ${JSON.stringify(Ke.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(vt.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:vt.warnings});let sx=Ri[Ke.project_label];sx?.haltUntilMs!=null&&ae>=sx.haltUntilMs&&(Ri[Ke.project_label]=dH(sx,vt.worker.worker_id))}Ot==null&&ve.births.length>0&&(dd=null);let gd=new Set(Pe.map(Ke=>Ke.project_label));for(let Ke of ve.intents){if(Ke.queue_depth==null||Ke.queue_depth<=0||Ke.live>=Ke.target||gd.has(Ke.project_label))continue;let vt=Ot!=null&&(Ke.outcome==="asking"||Ke.outcome==="half-open-probe")?`project ${JSON.stringify(Ke.project_label)} was birth-eligible but the host refused it: ${Ot}`:Ke.detail;await D.recordDemandRefusal({ts:R,projectLabel:Ke.project_label,detail:vt}).catch(()=>{})}return Xt={version:1,at:R,requested:ve.births.length,granted:Pe,shortfall:ve.births.length-Pe.length,refusal:Ot,retry_after:dd==null?null:new Date(dd).toISOString(),projects:ve.intents},Xt}finally{JS=!1}}function Dfe(R){return da(My(),{...rr,mode:R?.mode??rr.mode,project:R?.project??rr.project,maxWorkers:R?.max_workers??rr.maxWorkers,maxProjects:R?.max_projects??rr.maxProjects,maxWidth:R?.max_width??rr.maxWidth,verbose:R?.verbose??rr.verbose})}function zfe(R){return eu(My(),{mode:R?.mode??eo.mode,project:R?.project??eo.project,maxWidth:R?.max_width??eo.maxWidth,maxRows:R?.max_rows??eo.maxRows,maxHeight:R?.max_height??eo.maxHeight,showDeathDetails:R?.show_death_details??eo.showDeathDetails})}function hl(R,G,Q){return YH({op:R,sessionProject:G??null,targetProject:Q})}async function nW(R){let G=De.get(R.worker_id),Q=hl(ZH(R.command),R.session_project,G?.project_label??null);if(!Q.permitted)throw new Error(Q.reason);if(R.command!=="stop")throw new Error(`redskilled does not implement ${R.command}: it owns birth, death and limits, and ${R.command} is a work decision the project's own bundle makes on top of them`);let ae=G!=null&&await Ffe(G,R.detail??"stopped by its own project");return{version:1,command:R.command,worker_id:R.worker_id,applied:ae,reach:Q,detail:ae?`redskilled stopped Worker ${JSON.stringify(R.worker_id)} of project ${JSON.stringify(G.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(R.worker_id)} to stop`}}function md(R){rx.workerExited(R),De.delete(R),he.delete(R),H.delete(R),$.delete(R),_i.releaseHolder(R).catch(()=>{})}function jfe(R){if(De.get(R.workerId)==null)return;let G=o(),Q=R.line?.trim();Q!=null&&Q!==""&&H.set(R.workerId,{line:Q,published_at:G,source:"heartbeat"});let ae=_5($.get(R.workerId)?.display,R);ae!=null&&$.set(R.workerId,{display:ae,published_at:G})}function oW(R){let G=De.get(R.worker_id),Q=hl("worker-heartbeat",R.session_project,G?.project_label??null);if(!Q.permitted)throw new Error(Q.reason);if(typeof R.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(G==null)return{version:1,worker_id:R.worker_id,accepted:!1,reach:Q,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(R.worker_id)} to publish a line for`};let ae=o();H.set(R.worker_id,{line:R.last_log_line,published_at:ae,source:"heartbeat"});let ge=R.display===void 0?null:YT(R.display);if(ge!=null){let ve=$.get(R.worker_id)?.display,Pe={display:ge,published_at:ae};$.set(R.worker_id,Pe),$fe(Pe,G),(ge.phase!==ve?.phase||ge.step!==ve?.step)&&Zr("worker-activity",G,null,{phase:ge.phase,step:ge.step})}return R.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Zr("worker-heal",G,`${R.mechanical_heal.cause}; cycle ${R.mechanical_heal.cycle}/${R.mechanical_heal.cap}; free=${R.mechanical_heal.free}`,{healKind:R.mechanical_heal.heal_kind}),{version:1,worker_id:R.worker_id,accepted:!0,reach:Q,published_at:ae,detail:`redskilled stored a line for Worker ${JSON.stringify(R.worker_id)} without reading it`}}async function Mfe(R,G,Q){let ae=`exit code=${G??"null"} signal=${Q??"null"}`;if(R.unit!=null&&R.unit!==""&&await Nfe(R)){Lfe(R,`its launch client ended (${ae}) while unit ${JSON.stringify(R.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 ge=await PB(R,Y,{detail:ae,facts:{exitCode:G,signal:Q}}),ve=R.log_path==null?null:await be(R.log_path).catch(()=>null),Pe=FI(ve),Gt=ve??H.get(R.worker_id)?.line??null;md(R.worker_id),Zr("worker-death",R,Pe==null?ge.detail:`session-error: ${Pe}`,{...ge.facts,refusal:Pe,birthOutcome:Ale({exitCode:G,signal:Q,tail:Gt,oneShot:R.project_label===vB})})}function iW(R,G){let Q=hl("project-reset",G,R);if(!Q.permitted)throw new Error(Q.reason);let ae=Ri[R]?.haltUntilMs!=null||Ri[R]?.probeWorkerId!=null;return Ri[R]=gE(),{version:1,project_label:R,latch:"project-birth-breaker",reset:ae,reach:Q,detail:ae?`redskilled cleared project ${JSON.stringify(R)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(R)}; nothing changed`}}async function Nfe(R){try{return await q(R)===!0}catch{return!1}}function Lfe(R,G){let Q=R.unit==null?null:et(R.unit);De.set(R.worker_id,{...R,...Q!=null&&Q>0?{pid:Q}:{},warnings:[...R.warnings,G]}),he.add(R.worker_id)}function XS(R,G){let Q=hl("project-register",G,R.project_label);if(!Q.permitted)throw new Error(Q.reason);let ae=o();Rf(ae);let ge=jH(R,{now:ae,held:qe.get(R.project_label)});if(No!=null&&kW(No(bW(ge.argv)))==="unrunnable")throw new Error(wW(ge.project_label,ge.argv));return qe.set(ge.project_label,ge),ml(),vf.nudge(),aW(ge.project_label),{version:1,registration:ge,reach:Q,detail:`redskilled holds a registration for project ${JSON.stringify(ge.project_label)} at a target of ${ge.target} until ${ge.renew_by}, and has read neither its selector nor its argv`}}function sW(R,G={}){let Q=hl("project-renew",G.sessionProject,R);if(!Q.permitted)throw new Error(Q.reason);let ae=o();Rf(ae);let ge=qe.get(R);if(ge==null){if(cd.has(R))throw new Ol(R,{kind:"orphaned"});let Pe=[...fn].reverse().find(Ot=>Ot.project_label===R);if(Pe!=null)throw new Ol(R,{kind:"stopped",at:Pe.at});let Gt=[...Tn].reverse().find(Ot=>Ot.project_label===R);throw Gt!=null?new Ol(R,{kind:"lapsed",at:Gt.at,...Gt.registered_at==null?{}:{registered_at:Gt.registered_at}}):new Ol(R)}let ve=MH(ge,{now:ae,...G.renewWithinMs==null?{}:{renew_within_ms:G.renewWithinMs},...G.launch==null?{}:{launch:G.launch}});return qe.set(ve.project_label,ve),ml(),vf.nudge(),{version:1,registration:ve,reach:Q,detail:`redskilled renewed the registration for project ${JSON.stringify(ve.project_label)}, which now stands until ${ve.renew_by} after renewal ${ve.renewals}`+(G.launch==null?"":`, carrying launch revision ${ve.launch_revision} for its next Worker`)}}function ex(R,G){let Q=hl("project-deregister",G,R);if(!Q.permitted)throw new Error(Q.reason);let ae=qe.get(R)??ut.get(R),ge=qe.delete(R),ve=ut.delete(R),Pe=ge||ve;return ae!=null&&(aW(R),fn.push(Vle(ae,fr,o())),fn.length>Ym&&fn.splice(0,fn.length-Ym)),Pe&&ml(),{version:1,project_label:R,released:Pe,reach:Q,detail:Pe?`redskilled released the registration for project ${JSON.stringify(R)}`:`redskilled held no registration for project ${JSON.stringify(R)}, so there was nothing to release`}}function aW(R){ut.delete(R);for(let G=Tn.length-1;G>=0;G-=1)Tn[G].project_label===R&&Tn.splice(G,1);for(let G=fn.length-1;G>=0;G-=1)fn[G].project_label===R&&fn.splice(G,1);cd.delete(R)}async function Ffe(R,G){return await ne(R,Q=>{md(R.worker_id);let ae=R.pgid??R.pid;Zr("worker-death",R,Q?G:`${G}; unconfirmed-stop: the host did not confirm process group ${ae} stopped, so process group ${ae} may still be alive`,{deliberate:!0})}),!0}function gl(R){return VH({ceiling:l,workers:[...De.values()],budget:R.budget,projectLabel:R.project_label,...R.reservation==null?{}:{reservation:R.reservation}})}function tx(R){let G=RB(R),Q=En.get(G);if(Q!=null)return Q;let ae=s(R).finally(()=>{En.get(G)===ae&&En.delete(G)});return En.set(G,ae),ae}async function lW(R,G,Q,ae){let ge=ae??gl(R);if(!ge.admitted)throw new Mn(ge.reason,ge);let ve;try{ve=await(Q??tx(G))}catch(Gt){let Ot=sce(ge,G,Gt);throw new Mn(Ot.reason,Ot)}let Pe=gl(R);if(!Pe.admitted)throw new Mn(Pe.reason,Pe);return yl(R,{admission:Pe,forkSha:ve})}function yl(R,G={}){let Q=KH({ceiling:l,workers:[...De.values()],budget:R.budget}),ae=i({spec:R,admission:G.admission??gl(R),...G.forkSha==null?{}:{forkSha:G.forkSha},memoryCeiling:Q,liveWorkerIds:De.keys(),clock:o,onExit:(Gt,Ot,gd)=>{let Ke=De.get(Gt);Ke!=null&&(Vs=Vs.then(()=>Mfe(Ke,Ot,gd)).catch(()=>{}))}}),ge=G.forkSha??ae.fork_sha??ae.worker.fork_sha,ve=ge==null||ge===""?ae.worker:{...ae.worker,fork_sha:ge},Pe={...ae,worker:ve,...ge==null||ge===""?{}:{fork_sha:ge}};return De.set(ve.worker_id,ve),G.hook===!0&&Zn.track(ve.worker_id),Zr("worker-birth",ve,null,{admissionVerdict:G.admission?.verdict??ae.admission.verdict}),Pe}function Zr(R,G,Q,ae={}){if(Pn)return;let ge=o(),ve={kind:R,worker:G,ts:ge,detail:Q,...ae,...R==="worker-death"||R==="worker-budget-kill"?zle(te,G.worker_id,ae):{}};if(R==="worker-death"||R==="worker-budget-kill"){let Pe=$5(G,ge,R,$.get(G.worker_id)?.display,ae.birthOutcome);le=Nl([...le,Pe],Ot=>Ot.ts,{now:o()}),cW(Cl(ve),{startedAt:G.started_at,...ae.refusal==null?{}:{refusal:ae.refusal}});let Gt=ae.birthOutcome??"unreported";eH(VU,G.project_label,Gt),Ile({health:Ri,projectLabel:G.project_label,nowMs:Date.parse(ge),lifetimeMs:Date.parse(ge)-Date.parse(G.started_at),outcome:Gt,announce:Ot=>process.stderr.write(Ot)})}D.recordWorker(ve).catch(()=>{}),Nce(Pe=>void D.recordWorker(Pe).catch(()=>{}),ve),Zn.onEvent(R,G),sd.onEvent(R,G)}function cW(R,G={}){let Q=pJ(R,G);if(Q==null)return;let ae=[Q,...(_e??[]).filter(ge=>ge.kind!==Q.kind||ge.id!==Q.id||ge.ts!==Q.ts)].sort((ge,ve)=>Date.parse(ge.ts)-Date.parse(ve.ts));_e=Nl(ae,ge=>ge.ts,{now:o()})}async function dW(){return await ule({workers:[...De.values()],reattached_worker_ids:he,now_ms:Date.parse(o()),grace_ms:ce,probe:q,on_dead:async G=>{let Q=await PB(G,Y,{detail:"the host no longer confirms this Worker",facts:{}});md(G.worker_id),Zr("worker-death",G,Q.detail,Q.facts)}})}let Sf=Ule({authorized:gB(t.machineClaimPath,t.machineClaimPathOfThisHost),interval_ms:e.orphanReaperMs,mode:e.orphanReaperMode,census:e.orphanCensus,active_worker_units:ze,dump_files:e.orphanDumpFiles,read_starttime:e.orphanStarttime,kill_group:e.orphanKillGroup,report:e.orphanReport,clock:o,held_worker_ids:()=>De.keys(),live_births:async()=>$d(await D.read()),adopt:async(R,G,Q)=>{De.set(R.worker_id,R),he.add(R.worker_id),G&&(Zr("worker-birth",R,Q),await D.flush())},record_reaped:async(R,G)=>{md(R.worker_id),Zr("worker-death",R,G),await D.flush()}}),rx=Sle({graceMs:Oe,signal:e.signalWorkerForBudgetGrace??xle,held:R=>De.has(R),kill:async(R,G)=>{await ne(R,()=>{md(R.worker_id),Zr("worker-budget-kill",R,G)})},record:(R,G,Q)=>Zr(R,G,Q)});async function uW(R,G){let Q=De.get(R);return Q?await rx.begin(Q,G):!1}async function pW(){let R=[...De.values()],G={rss:{},cpu_seconds:{},processes:{},sources:{}};if(R.length>0)try{G=await Qe(R)}catch{G={rss:{},cpu_seconds:{},processes:{},sources:{}}}let Q=G.rss;Te=Q,lt=o(),$le(De,G.cpu_seconds,lt),await it.ingest(Object.values(G.resource_samples??{}),lt);for(let[ve,Pe]of Object.entries(G.resource_samples??{})){let Gt=Dle(te,ve,Pe);if(Gt==null)continue;let Ot=De.get(ve);Ot!=null&&Zr("worker-resource",Ot,null,{memoryPeakBytes:Gt.memory,memorySwapPeakBytes:Gt.swap,pidsPeak:Gt.pids})}let{terminations:ae}=t5({workers:R,rss:Q,processes:G.processes??{},sources:G.sources}),ge=[];for(let ve of ae)await uW(ve.worker_id,ve.reason)&&ge.push(ve);return ge}async function Gfe(){try{return st<=0?await at(r):await new Promise(R=>{let G=setTimeout(()=>R(nx()),st);G.unref(),at(r).then(Q=>{clearTimeout(G),R(Q)},()=>{clearTimeout(G),R(nx())})})}catch{return nx()}}function nx(){try{return wt(r)}catch{return null}}async function fW(){if(tS(r))return vi+=1,ao=o(),ad="local-build",{act:"hold",reason:"local-build"};let R=yce(await Gfe()),G=R.version;Jr=G,gf=R.newest??null,ao=o(),kr=bce({running:r,newest:gf,supervised:Mo});let Q=kce({running:r,published:G,supervised:Mo});return wi=Q.act==="replace",vi+=1,ad=Q.act==="hold"?Q.reason:null,Js!=="in-progress"&&(Js=Q.act==="replace"?"pending":"none"),Q}async function ox(){let R=await fW();if(R.act!=="replace"||Js==="in-progress")return R;let G=Date.parse(o());return Number.isFinite(G)&&G<Dy||(Number.isFinite(G)&&(Dy=G+6e4),await Dce({decision:R,io:od,paths:t,incumbentVersion:r,incumbentPid:c.pid,clock:o,eventLane:D,flushRegistration:()=>z.flush(),stop:()=>Ly({reason:"replaced"}),onViable:()=>{Js="in-progress"}})||(Js="pending")),R}function Bfe(){Pn||wf!=null||xt<=0||(!yr&&Vr>0&&(zy=setTimeout(()=>{ox().catch(()=>{})},Vr),zy.unref()),wf=setInterval(()=>{ox().catch(()=>{})},xt),wf.unref())}async function mW(){return await d.renew(c).catch(()=>null)}function Ufe(){Pn||bf!=null||Pt<=0||(bf=setInterval(()=>{mW()},Pt),bf.unref())}function Wfe(){Pn||kf!=null||kt<=0||(kf=setInterval(()=>{Rf(o())},kt),kf.unref())}function qfe(){if(Pn||Ys!=null||Ne<=0)return;let R=()=>{Ys=void 0,pW().catch(()=>{}).finally(()=>{if(Pn)return;let G=it.hasActiveIncident()?Math.min(Ne,2e3):Ne;Ys=setTimeout(R,G),Ys.unref()})};Ys=setTimeout(R,Ne),Ys.unref()}function Hfe(){if(Pn||pd!=null||Dr<=0)return;let R=G=>{pd=setTimeout(()=>{pd=void 0,hW().then(()=>QS()).catch(()=>{}).finally(()=>{if(Pn)return;let Q=Date.parse(o());R(Qee(fr,Dr,Number.isFinite(Q)?Q:Date.now()))})},G),pd.unref()};R(Dr)}async function hW(){await Promise.allSettled([...qe.values()].filter(R=>R.trunk!=null).map(async R=>{let G=await tx({workspace_path:R.workspace_path,trunk:R.trunk}),Q=[...De.values()].filter(ae=>ae.project_label===R.project_label&&ae.fork_sha!=null&&ae.fork_sha!=="");await Promise.allSettled(Q.map(async ae=>{let ge=await a({workspace_path:R.workspace_path,fork_sha:ae.fork_sha,head_sha:G}),ve=De.get(ae.worker_id);if(ve==null||ve.fork_sha!==ae.fork_sha)return;let Pe={...ve,base_head_sha:G,base_commits_ahead:ge};De.set(ae.worker_id,Pe),(ve.base_head_sha!==G||ve.base_commits_ahead!==ge)&&Zr("worker-drift",Pe,null,{baseHeadSha:G,baseCommitsAhead:ge})}))}))}function Vfe(){Pn||_f!=null||pn<=0||(_f=setInterval(()=>{rW().catch(()=>{})},pn),_f.unref())}function Ny(R){return W2({reason:R,socketPath:t.socketPath,daemonVersion:r,pid:c.pid,workers:[...De.values()],projects:[...qe.keys()]})}function gW(R){if(jy!=null)return jy;let G=R.reason??"requested",Q=R.note?.trim();return jy=D.recordDaemonStop({ts:o(),pid:c.pid,socketPath:t.socketPath,reason:G,detail:Q==null||Q===""?Ny(G).detail:`${Ny(G).detail} \u2014 ${Q}`,...R.signal==null?{}:{signal:R.signal}}).catch(()=>{}),jy}async function Ly(R={}){if(KU)return await YS;KU=!0,await gW(R),Pn=!0,Ys&&clearInterval(Ys),bf&&clearInterval(bf),kf&&clearInterval(kf),Sf.stop(),wf&&clearInterval(wf),zy&&clearTimeout(zy),vf.stop(),ZS.stop(),ud&&clearTimeout(ud),pd&&clearTimeout(pd),_f&&clearInterval(_f),rx.stop(),await D.flush().catch(()=>{}),await z.flush().catch(()=>{}),await Hs.flush().catch(()=>{}),await O?.close().catch(()=>{}),await d.release(c),await f.release(u),x.close();for(let G of hf)G.destroy();return await new Promise(G=>x.once("close",()=>G())),await CZe(t.socketPath,{force:!0}),JU(),await YS}let hd=await D.read().catch(()=>[]);te=yB(hd);let Fy=new Map;for(let R of hd){if(R.event==="worker-birth"){Fy.set(R.worker_id,R.ts);continue}let G=FI(R.detail);cW(R,{...Fy.get(R.worker_id)==null?{}:{startedAt:Fy.get(R.worker_id)},...G==null?{}:{refusal:G}}),(R.event==="worker-death"||R.event==="worker-budget-kill")&&Fy.delete(R.worker_id)}le=Nl(hd.filter(R=>R.event==="worker-death"||R.event==="worker-budget-kill").map(O5),R=>R.ts,{now:o()}),Z=Ple(hd,o());for(let R of Z)ee.set(R.worker_id,R);let Kfe=$d(hd),yW=new Set(await Promise.resolve(ze()).catch(()=>[])),ix=await hB(Kfe,R=>R.unit!=null&&yW.has(R.unit)?!0:q(R));for(let R of ix.alive){let G=_le(R),Q=G.unit==null||mr(G.pid)?null:et(G.unit);De.set(G.worker_id,Q!=null&&Q>0?{...G,pid:Q}:G),he.add(G.worker_id)}for(let R of ix.dead)Zr("worker-death",R,"the Worker ended while no daemon was watching");let Jfe=kle({units:[...yW],held:[...De.values()],mainPid:et,now:j});for(let R of Jfe)De.set(R.worker_id,R),he.add(R.worker_id),Zr("worker-birth",R,"adopted from an active unit with no birth on this lane");await Gle(_i,new Set(De.keys()));let Gy=gJ(dt,De.values(),j);for(let R of Gy.live)qe.set(R.project_label,R);for(let R of Gy.recoverable)ut.set(R.project_label,R);for(let R of Gy.abandoned)ZU(R,Date.parse(j),`redskilled lapsed the recovered registration for project ${JSON.stringify(R.project_label)}: no session renewed it on cadence and no attributed Worker is alive`);dt.length>0&&ml(),QU(o()),await yJ({eventLane:D,laneEvents:hd,heldLease:m,ownerPid:c.pid,startedAt:j,socketPath:t.socketPath,recovery:Gy});for(let R of ix.alive){if(R.log_path==null||H.has(R.worker_id))continue;let G=await be(R.log_path).catch(()=>null);G==null||G.trim()===""||H.set(R.worker_id,{line:G,published_at:o(),source:"rehydrated"})}x.on("connection",R=>{hf.add(R),R.once("close",()=>hf.delete(R)),P2(R,async(G,Q)=>{let ae=await Zfe(G);Q(ae),G.op==="shutdown"&&setImmediate(()=>void Ly({reason:"requested"}).catch(()=>{}))})});async function Zfe(R){try{if(R.op==="ping")return Qle(R.id,r,c.pid);if(R.op==="host-state")return{id:R.id,ok:!0,value:fd()};if(R.op==="reap")return{id:R.id,ok:!0,value:await Sf.reap(R.report===!0)};if(R.op==="statusline-payload")return{id:R.id,ok:!0,value:XT(My(),R.extras)};if(R.op==="statusline-string")return{id:R.id,ok:!0,value:Dfe(R.render)};if(R.op==="statusline-dashboard")return{id:R.id,ok:!0,value:zfe(R.dashboard)};if(R.op==="worker-heartbeat")return{id:R.id,ok:!0,value:oW(R.heartbeat)};if(R.op==="resource-acquire"||R.op==="resource-renew"||R.op==="resource-release")return Fle(R,_i);if(R.op==="project-register"){let Q=XS(R.registration,R.session_project);return await z.flush(),{id:R.id,ok:!0,value:Q}}if(R.op==="project-renew"){let Q=sW(R.project_label,{...R.session_project==null?{}:{sessionProject:R.session_project},...R.renew_within_ms==null?{}:{renewWithinMs:R.renew_within_ms},...R.launch==null?{}:{launch:R.launch}});return await z.flush(),{id:R.id,ok:!0,value:Q}}if(R.op==="project-deregister"){let Q=ex(R.project_label,R.session_project);return await z.flush(),{id:R.id,ok:!0,value:Q}}if(R.op==="project-reset")return{id:R.id,ok:!0,value:iW(R.project_label,R.session_project)};if(R.op==="worker-command")return{id:R.id,ok:!0,value:await nW(R.command)};if(R.op==="worker-start"){let Q=hl("worker-start",R.session_project,R.spec.project_label);if(!Q.permitted)return{id:R.id,ok:!1,error:Q.reason};let ae=await Ks(()=>R.spec.trunk==null?yl(R.spec):lW(R.spec,{workspace_path:R.spec.workspace_path,trunk:R.spec.trunk}));return await D.flush().catch(()=>{}),{id:R.id,ok:!0,value:{worker:ae.worker,admission:ae.admission,fork_sha:ae.fork_sha,warnings:ae.warnings}}}if(R.op==="shutdown"){let Q=Ny("requested");return await gW({reason:"requested",...R.detail==null?{}:{note:R.detail}}),{id:R.id,ok:!0,value:Q}}let G=R;return{id:G.id??Fce(),ok:!1,error:`unsupported redskilled op: ${G.op??"unknown"}`}}catch(G){return{id:R.id??Fce(),ok:!1,error:G instanceof Error?G.message:String(G)}}}try{O=await nle({paths:t,startWorker:yl,hostState:fd,hostAdministration:!0,mobileWorkerStop:ile(nW),...e.githubGateway==null?{}:{githubGateway:e.githubGateway},...e.evidenceTtlMs==null?{}:{evidenceTtlMs:e.evidenceTtlMs},registerProject:R=>XS(R),releaseProject:R=>ex(R),workerPulse:R=>jfe(R),recordDemandTurn:R=>void process.stderr.write(Xte(R)),standingOrdersStore:C})}catch(R){throw await Ly({reason:"requested",note:"ACP control plane failed to bind"}).catch(()=>{}),R}return qfe(),Ufe(),Wfe(),Sf.arm(),Bfe(),vf.arm(),Ofe(),Hfe(),Vfe(),ZS.arm(),{socketPath:t.socketPath,lease:A.lease,startedAt:j,closed:YS,startWorker:yl,admit:gl,ceiling:()=>l,killWorkerOverBudget:uW,sampleMemoryBudgets:pW,renewLease:mW,resourceLeases:_i,pollRepositoryActivity:XU,pollGithubBalance:eW,githubBalance:()=>Fo,pollQueueDiscovery:QS,queueDiscovery:()=>fr,driveDemand:rW,demand:()=>Xt,sweepWorkerLiveness:dW,sweepOrphanProcesses:()=>Pn?Promise.resolve({adopted:0,reaped:0,suspects:0}):Sf.sweep(),censusOrphanProcesses:()=>Sf.census(),publishWorkerHeartbeat:oW,reattached:()=>[...he].map(R=>De.get(R)).filter(R=>R!=null),flushEvents:async()=>{await Lo,await Vs,await Zn.waitForSettled(),await D.flush()},trackWorker(R){De.set(R.worker_id,R),Zr("worker-birth",R,null)},releaseWorker(R){let G=De.get(R),Q=G!=null;return G!=null&&md(R),G&&Zr("worker-death",G,"released by the daemon",{deliberate:!0}),Q},workerCount:()=>De.size,registerProject:XS,renewProject:sW,sweepRegistrations:()=>Rf(o()),resetProjectBirthBreaker:iW,deregisterProject:ex,registrations:()=>fd().registrations??[],hostState:fd,refreshRegisteredTrunks:hW,statuslinePayload:My,observePublishedVersion:fW,checkForReplacement:ox,stopReport:Ny,stop:Ly}}import{readdir as Wce,rm as $Ze,stat as OZe}from"node:fs/promises";import{dirname as DZe,join as AB}from"node:path";var zZe=5*6e4,jZe="redskilled.";function MZe(e={}){let t=e.env??process.env,r=s=>DZe(sb({key:"redskilled:reclaim-probe",socketFileName:gu,env:s,...e.uid===void 0?{}:{uid:e.uid}})),{XDG_RUNTIME_DIR:n,...o}=t,i=[r(t),r(o)];return[...new Set(i)]}async function qce(e={}){let t=e.roots??MZe(e),r=e.graceMs??zZe,n=e.now??Date.now,o=e.isPidAlive??mr,i=e.answers??GZe,s=e.dryRun===!0,a=[];for(let l of t){let c;try{c=(await Wce(l,{withFileTypes:!0})).filter(d=>d.isDirectory()).map(d=>d.name)}catch{continue}for(let d of c.sort())a.push(await NZe(AB(l,d),{graceMs:r,now:n,pidAlive:o,answers:i,dryRun:s}))}return{roots:t,scanned:a.length,reclaimed:a.filter(l=>l.verdict==="reclaimed").length,dryRun:s,entries:a}}async function NZe(e,t){let r;try{r=(await Wce(e)).sort()}catch(s){return{dir:e,verdict:"failed",reason:Hce(s),removed:[]}}let n=r.filter(s=>s.startsWith(jZe));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await LZe(AB(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 Uce(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(gu)&&await t.answers(AB(e,gu)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let i=await FZe(e,t.now);return i!==void 0&&i<t.graceMs?{dir:e,verdict:"young",reason:`no lease, modified ${Math.round(i/1e3)}s ago`,removed:[]}:await Uce(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function Uce(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await $Ze(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:Hce(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function LZe(e){try{return await Al(e)}catch{return}}async function FZe(e,t){try{return Math.max(0,t()-(await OZe(e)).mtimeMs)}catch{return}}async function GZe(e){try{return(await pa({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function Hce(e){return e instanceof Error?e.message:String(e)}import{execFile as BZe}from"node:child_process";import{chmod as UZe,mkdir as WZe,rm as qZe,writeFile as HZe}from"node:fs/promises";import{homedir as Kce}from"node:os";import{join as IB}from"node:path";var Vce=`// statusline-fast \u2014 native statusline front (generated from
|
|
422
|
+
`).map(n=>n.trim()).filter(n=>n!==""),r=t[t.length-1];return r===void 0?null:r.length<=Mce?r:`${r.slice(0,Mce)}\u2026`}function EZe(e){return`${(e/1024**3).toFixed(2)} GiB`}var TZe=new Set(["timeout","watchdog","start-limit-hit"]),PZe=new Set(["SIGTERM","SIGINT","SIGHUP","SIGQUIT"]);function Lce(e){let t=e.systemdResult??null,r=e.signal??null;return t==="oom-kill"?{senderClass:"oomd",confidence:"high"}:t!=null&&TZe.has(t)?{senderClass:"teardown",confidence:"high"}:r==="SIGKILL"?{senderClass:"unknown",confidence:"low"}:r!=null&&PZe.has(r)?{senderClass:"user-signal",confidence:"high"}:r!=null?{senderClass:"user-signal",confidence:"medium"}:{senderClass:"unknown",confidence:"none"}}async function PB(e,t,r){let n=e.unit==null||e.unit===""||Nc(e.unit)!=null?null:await Promise.resolve(t(e.unit)).catch(()=>null);if(n==null)return{...r,facts:{...r.facts,...Lce(r.facts)}};let o={exitCode:n.exit_code,signal:n.signal,systemdResult:n.systemd_result,memoryPeakBytes:n.memory_peak_bytes,memorySwapPeakBytes:n.memory_swap_peak_bytes,journalTail:n.journal_tail};return{detail:AZe(n),facts:{...o,...Lce(o)}}}function AZe(e){let t=[];if(e.systemd_result!=null&&t.push(`systemd result=${e.systemd_result}`),e.signal!=null?t.push(`main process signal=${e.signal}`):e.exit_code!=null&&t.push(`main process exit code=${e.exit_code}`),e.memory_peak_bytes!=null){let r=e.memory_swap_peak_bytes==null?"":` + ${TB(e.memory_swap_peak_bytes)} swap`;t.push(`memory peak=${TB(e.memory_peak_bytes)}${r}`)}else e.memory_swap_peak_bytes!=null&&t.push(`swap peak=${TB(e.memory_swap_peak_bytes)}`);return t.length===0?"systemd retained the unit without exit details":t.join("; ")}function TB(e){return`${(e/1024**3).toFixed(2)} GiB`}async function Bce(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev";try{hJ(mJ(Gce(t.eventLanePath)),{version:r,observed_at:new Date().toISOString(),pid:process.pid})}catch{}let n=e.hostTopology??_E(),o=e.clock??(()=>new Date().toISOString()),i=e.launch??y8,s=e.refreshTrunk??ace,a=e.countBaseMovement??lce,l=e.ceiling??kb();e.repositoryActivity!=null&&HT(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let c=e.owner??B2(),d=e.leaseStore??U2(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??db(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},f=e.machineClaimStore??jf(t.machineClaimPath,p,{clock:o});await IZe(Gce(t.socketPath),{recursive:!0,mode:448});let[m,g]=await Promise.all([d.read().catch(()=>{}),f.read().catch(()=>{})]),y=Date.parse(o()),_=m==null?Number.NaN:Date.parse(m.renewed_at);m!=null&&g!=null&&m.pid===g.pid&&m.start_time===g.start_time&&m.socket_path===t.socketPath&&g.socket_path===t.socketPath&&Number.isFinite(y)&&Number.isFinite(_)&&y-_>=dJ&&await eE(t.socketPath)==="unowned"&&await d.release({pid:m.pid,startTime:m.start_time}).catch(()=>!1)&&await f.release({pid:g.pid,startTime:g.start_time,uid:g.uid}).catch(()=>!1);let P=await f.claim(u);if(!P.claimed)throw P.claim?.socket_path===t.socketPath?new po(t.socketPath):new fs(f.claimPath,P.reason,P.claim);let A=await d.acquire(c);if(!A.acquired)throw await f.release(u).catch(()=>{}),new po(t.socketPath,A.lease);let x,O;try{x=await T2(t.socketPath,async()=>{let[R,G]=await Promise.all([d.read().catch(()=>{}),f.read().catch(()=>{})]);return R!=null&&R.pid!==c.pid&&mr(R.pid)?!0:G!=null&&G.socket_path===t.socketPath&&G.pid!==u.pid&&mr(G.pid)})}catch(R){throw await d.release(c).catch(()=>{}),await f.release(u).catch(()=>{}),R}let j=o(),D=tK(e.eventLane??OH(t.eventLanePath),bo()),C=e.standingOrdersStore??uQ(dQ(t.eventLanePath)),z=e.registrationIntentStore??Wle(t.registrationIntentPath),q=e.liveness??fle,Y=e.unitExitFacts??gle,ce=e.livenessGraceMs??ple,pe=e.stopWorker??wle,ne=sle(pe),Oe=e.budgetGraceMs??Rle,ze=e.unitInventory??(()=>gB(t.machineClaimPath,t.machineClaimPathOfThisHost)?ble():[]),et=e.unitMainPid??yle,Qe=e.treeSampler??r5,be=e.readLogTail??yV,Ne=e.sampleMs??cJ,it=await Cle(t.eventLanePath,c.pid,Ne,e),Pt=e.leaseRenewMs??LI,kt=e.registrationSustainMs??uJ,at=e.publishedVersion??(R=>xce(R)),xt=e.replaceCheckMs??uce,st=e.publishedProbeTimeoutMs??aJ,Ce=zce(e.remotePollTimeoutMs),wt=e.localPublishedEvidence??(R=>Ece(R,e.replacementIO?.env??process.env)),yr=e.bornByReplacement??gce(),Vr=e.replaceBootCheckMs??lJ,Mo=e.supervised??rS(),od=e.replacementIO??{},so=e.repositoryActivity,id=so?.intervalMs??Hd,br=e.githubBalance,Kr=e.queueDiscovery,No=e.probeLaunch,Ar=Kr?.transport??so?.transport,Kn=Kr?.unconfiguredReason??fJ,Dr=Kr?.intervalMs??wL,pn=e.demandMs??nH,Jn=e.demandBackoffMs??rH,De=new Map,{runtime:_i,store:Hs}=await Lle({paths:t,clock:o,...e.resourceLeaseStore==null?{}:{store:e.resourceLeaseStore},...e.availableMemoryBytes==null?{}:{availableMemoryBytes:e.availableMemoryBytes}}),En=new Map,he=new Set,H=new Map,$=new Map,Z=[],ee=new Map,te=yB([]),le=[],_e=e.deaths===void 0?void 0:[...e.deaths],dt=await z.read().catch(()=>[]),qe=new Map,ut=new Map,Zn=Kle({registration:R=>qe.get(R),liveWorkerIds:()=>De.keys(),admit:gl,start:(R,G)=>yl(R,{admission:G,hook:!0}).worker,refuse:(R,G)=>void D.recordDemandRefusal({ts:o(),projectLabel:R,detail:G}).catch(()=>{}),recordExpiry:(R,G)=>void D.recordDemandRefusal({ts:o(),projectLabel:R,detail:G}).catch(()=>{})}),sd=Yle({declaration:e.hostEventSinks,hostState:fd,liveWorkerIds:()=>De.keys(),admit:gl,start:(R,G)=>yl(R,{admission:G}).worker,refuse:R=>void D.recordDemandRefusal({ts:o(),projectLabel:"redskilled/host-events",detail:R}).catch(()=>{})}),Lo=Promise.resolve(),Vs=Promise.resolve();function Ks(R){let G=Lo.then(async()=>{await Zn.waitForSettled();let Q=await R();return await Zn.waitForSettled(),Q});return Lo=G.then(()=>{},()=>{}),G}let hf=new Set,Te={},lt=null,Jr=null,ao=null,wi=!1,vi=0,ad=null,Js="none",Dy=0,gf=null,kr=null,ld=null,Fo=null,yf=!1,Zs=null,fr=null,Xt=null,Tn=[],fn=[],cd=new Map((e.orphanedRegistrations??[]).map(R=>[R.project_label,R])),dd=null,Ri={},VU={},JS=!1,Ys,bf,kf,_f,wf,zy,ud,pd,Pn=!1,KU=!1,jy=null,vf=oce({poll:()=>XU(),registrations:()=>qe.values(),clock:o,attendedMs:id,armed:Kr!=null||so!=null&&so.projects.length>0,stopping:()=>Pn,rateLimit:()=>ld?.rate_limit??null}),ZS=jce(t.socketPath,e),JU,YS=new Promise(R=>{JU=R});function Rf(R){YU(R);let G=Date.parse(R),Q=NH(qe.values(),G);for(let ae of Q.lapsed){qe.delete(ae.project_label);let ge=fr?.projects.find(Pe=>Pe.project_label===ae.project_label),ve=[...De.values()].some(Pe=>Pe.project_label===ae.project_label);(ge?.outcome==="counted"&&(ge.depth??0)>0||ve)&&ut.set(ae.project_label,ae),ZU(ae,G)}return Q.lapsed.length>0&&ml(),Q.lapsed}function ml(){let R=new Map(ut);for(let[G,Q]of qe)R.set(G,Q);z.replace([...R.values()]).catch(()=>{})}function ZU(R,G,Q){let ae=Number.isFinite(G)?new Date(G).toISOString():R.renew_by;Tn.push(Hle(R,fr,ae,Q)),Tn.length>Ym&&Tn.splice(0,Tn.length-Ym)}function YU(R){if(qe.size===0)return;let G=Date.parse(R);if(!Number.isFinite(G))return;let Q={};for(let Pe of De.values())Q[Pe.project_label]=(Q[Pe.project_label]??0)+1;let ae=fr==null?Number.NaN:Date.parse(fr.fetched_at),ge=new Map((fr?.projects??[]).map(Pe=>[Pe.project_label,Pe])),ve=!1;for(let Pe of[...qe.values()]){let Ot=Number.isFinite(ae)&&G-ae<=Pe.renew_within_ms?ge.get(Pe.project_label):void 0,gd=xE(Pe,{now:R,...Ot==null?{}:{queue:{outcome:Ot.outcome,depth:Ot.depth}},liveWorkers:Q[Pe.project_label]??0});gd.registration!==Pe&&(qe.set(Pe.project_label,gd.registration),ve=!0)}ve&&ml()}function QU(R){if(ut.size===0)return;let G=Date.parse(R);if(!Number.isFinite(G))return;let Q=new Map((fr?.projects??[]).map(ge=>[ge.project_label,ge])),ae=!1;for(let[ge,ve]of[...ut]){if(!wB(ve,G)){ut.delete(ge),ae=!0;continue}let Pe=Q.get(ge),Gt=xE(ve,{now:R,...Pe==null?{}:{queue:{outcome:Pe.outcome,depth:Pe.depth}},liveWorkers:[...De.values()].filter(Ot=>Ot.project_label===ge).length});Gt.verdict==="open-work"||Gt.verdict==="live-worker"?(qe.set(ge,Gt.registration),ut.delete(ge),ae=!0):Gt.verdict==="drained"&&(ut.delete(ge),ae=!0)}ae&&ml()}function fd(){let R=o();return hV({now:R,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:c.pid,startedAt:j,topology:n,ceiling:l,scope:yH(f.claimPath,p,u),requestHealth:ZS.health(),workers:[...De.values()],registrations:[...qe.values()],demand:Xt,lapses:Tn,stops:fn,orphanedRegistrations:[...cd.values()],birthLatches:uH(Ri,Date.parse(R)),harvest:VU,queue:fr,published:{version:Jr,checkedAt:ao,newer:wi,replacement:Js,newest:gf,majorHold:kr,checks:vi,holdReason:ad},resourceIncidents:it.state()})}function My(){return M5({hostState:fd(),ceiling:l,rss:Te,sampledAt:lt,logLines:Object.fromEntries(H),displays:Object.fromEntries($),now:o(),reattachedWorkerIds:[...he],repositoryActivity:ld,outcomes:le,activityStalenessMs:VT*vf.cadenceMs(),githubBalance:Fo,..._e===void 0?{}:{deaths:_e},metrics:D5({observations:Z,outcomes:le,now:o()})})}function $fe(R,G){let Q=Tle(Z,R,G,o());Z=Q.observations;let ae=Z.at(-1);Ele(ee.get(G.worker_id),ae)&&(ee.set(G.worker_id,ae),D.recordWorker(Q.record).catch(()=>{}))}async function XU(){return ld=await Ce("repository activity poll",()=>ice({...so==null?{}:{explicit:so},registrations:qe.values(),resolveHostTransport:()=>(tW(),Ar),now:o(),previous:ld}))}async function eW(){return br==null?null:(!yf&&br.store&&(Zs??=br.store.read().then(R=>(yf=!0,R!==null&&(Fo=R),R)).finally(()=>{Zs=null}),await Zs!==null)||(Fo=await Ce("GitHub balance poll",()=>Jf({transport:br.transport,now:o()})),await br.store?.write(Fo).catch(()=>{}),await br.history?.append(Fo).catch(()=>{}),await $ce(br.companions??[],o())),Fo)}function Ofe(){if(Pn||ud!=null||br==null)return;let R=()=>{ud=void 0,eW().catch(()=>{}).then(()=>{if(Pn)return;let G=br.intervalMsOverride??qb(Fo??Wb(o()),{now:o()});ud=setTimeout(R,G),ud.unref()})};R()}function tW(){if(!(Ar!=null||Kr?.armTransport==null))try{let R=Kr.armTransport();if(R.transport!=null){Ar=R.transport;return}R.unconfiguredReason!=null&&(Kn=R.unconfiguredReason)}catch(R){Kn=`this host could not resolve a tracker credential: ${R instanceof Error?R.message:String(R)}`}}async function QS(){let R=o();Rf(R);let G=Date.parse(R);for(let[ve,Pe]of[...ut])wB(Pe,G)||ut.delete(ve);let ae=[...new Map([...ut,...qe]).values()].map(ve=>({project_label:ve.project_label,selector:ve.selector,...ve.queue_poll==null?{}:{poll:ve.queue_poll}})).sort((ve,Pe)=>ve.project_label.localeCompare(Pe.project_label));if(ae.length===0)return null;if(tW(),Ar==null)return fr=Kee(ae,R,Kn),fr;fr=Wee(await Ce("queue poll",()=>Jee({projects:ae,transport:Ar,now:R,...Kr?.batchSize==null?{}:{batchSize:Kr.batchSize}})),fr);let ge=o();return QU(ge),YU(ge),fr}async function rW(){let R=o();if(JS)return Xt??aH(R);JS=!0;try{await dW().catch(()=>{});let G={};for(let Ke of De.values())G[Ke.project_label]=(G[Ke.project_label]??0)+1;let Q=Date.parse(R),ae=Number.isFinite(Q)?Q:0;for(let[Ke,vt]of Object.entries(Ri)){if(vt.probeWorkerId==null)continue;let bl=De.get(vt.probeWorkerId);bl!=null&&ae-Date.parse(bl.started_at)>=ps&&(Ri[Ke]=gE())}let ge=()=>{let Ke=new Map((fr?.projects??[]).filter(vt=>vt.items!=null).map(vt=>[vt.project_label,vt.items]));return sH({projects:[...qe.values()].map(vt=>({project_label:vt.project_label,selector:vt.selector,argv:vt.argv,workspace_path:vt.workspace_path,target:vt.target,...Q2(vt),...Ke.get(vt.project_label)==null?{}:{items:Ke.get(vt.project_label)}})),queue:Object.fromEntries((fr?.projects??[]).map(vt=>[vt.project_label,vt.depth])),live:G,nowMs:ae,backoffUntilMs:dd,birthHealth:Ri})},ve=ge();ve.births.length>0&&(await QS(),ve=ge());let Pe=[],Gt=new Map,Ot=null;for(let Ke of ve.births){let vt,bl=qe.get(Ke.project_label);if(bl?.prompt!=null&&O!=null){try{let Yr=await C.show(Ke.project_label),kl=Yr.orders.length>0?Zj(Yr.orders):void 0,xf=fr?.projects??[];GL(bl,Ke,xf);let _l=Qte(bl,Ke,_o(De.keys()),ER(xf,Ke.project_label,Ke.work_item),kl);O.runDemandTurn(_l).catch(async ax=>{let Qfe=`the unattended turn for project ${JSON.stringify(Ke.project_label)} failed: ${ax instanceof Error?ax.message:String(ax)}`;await D.recordDemandRefusal({ts:o(),projectLabel:Ke.project_label,detail:Qfe}).catch(()=>{})})}catch(Yr){Ot=Yr instanceof Error?Yr.message:String(Yr),dd=(Number.isFinite(Q)?Q:Date.now())+Jn;break}continue}let Yfe=_o(De.keys()),yd=bl,By=Cd({argv:Ke.argv,...yd?.env==null?{}:{env:yd.env},...yd?.log_path==null?{}:{log_path:yd.log_path}},{worker_id:Yfe,slot:Ke.index,workspace_path:Ke.workspace_path,...Ke.work_item==null?{}:{work_item:Ke.work_item}},{project_label:Ke.project_label});try{if(yd?.trunk==null)vt=await Ks(()=>yl(By));else{let Yr={workspace_path:Ke.workspace_path,trunk:yd.trunk},kl=gl(By);if(!kl.admitted)throw new Mn(kl.reason,kl);let xf=RB(Yr),_l=Gt.get(xf);_l==null&&(_l=tx(Yr),Gt.set(xf,_l)),_l.catch(()=>{}),vt=await Ks(()=>lW(By,Yr,_l,kl))}}catch(Yr){Ot=Yr instanceof Error?Yr.message:String(Yr),Yr instanceof Mn&&Yr.admission?.verdict==="refused-unreachable-trunk-remote"||(dd=(Number.isFinite(Q)?Q:Date.now())+Jn);break}Pe.push({project_label:Ke.project_label,worker_id:vt.worker.worker_id,pid:vt.worker.pid,...vt.fork_sha==null?{}:{fork_sha:vt.fork_sha},warnings:By.log_path==null?[...vt.warnings,`project ${JSON.stringify(Ke.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(vt.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:vt.warnings});let sx=Ri[Ke.project_label];sx?.haltUntilMs!=null&&ae>=sx.haltUntilMs&&(Ri[Ke.project_label]=dH(sx,vt.worker.worker_id))}Ot==null&&ve.births.length>0&&(dd=null);let gd=new Set(Pe.map(Ke=>Ke.project_label));for(let Ke of ve.intents){if(Ke.queue_depth==null||Ke.queue_depth<=0||Ke.live>=Ke.target||gd.has(Ke.project_label))continue;let vt=Ot!=null&&(Ke.outcome==="asking"||Ke.outcome==="half-open-probe")?`project ${JSON.stringify(Ke.project_label)} was birth-eligible but the host refused it: ${Ot}`:Ke.detail;await D.recordDemandRefusal({ts:R,projectLabel:Ke.project_label,detail:vt}).catch(()=>{})}return Xt={version:1,at:R,requested:ve.births.length,granted:Pe,shortfall:ve.births.length-Pe.length,refusal:Ot,retry_after:dd==null?null:new Date(dd).toISOString(),projects:ve.intents},Xt}finally{JS=!1}}function Dfe(R){return da(My(),{...rr,mode:R?.mode??rr.mode,project:R?.project??rr.project,maxWorkers:R?.max_workers??rr.maxWorkers,maxProjects:R?.max_projects??rr.maxProjects,maxWidth:R?.max_width??rr.maxWidth,verbose:R?.verbose??rr.verbose})}function zfe(R){return eu(My(),{mode:R?.mode??eo.mode,project:R?.project??eo.project,maxWidth:R?.max_width??eo.maxWidth,maxRows:R?.max_rows??eo.maxRows,maxHeight:R?.max_height??eo.maxHeight,showDeathDetails:R?.show_death_details??eo.showDeathDetails})}function hl(R,G,Q){return YH({op:R,sessionProject:G??null,targetProject:Q})}async function nW(R){let G=De.get(R.worker_id),Q=hl(ZH(R.command),R.session_project,G?.project_label??null);if(!Q.permitted)throw new Error(Q.reason);if(R.command!=="stop")throw new Error(`redskilled does not implement ${R.command}: it owns birth, death and limits, and ${R.command} is a work decision the project's own bundle makes on top of them`);let ae=G!=null&&await Ffe(G,R.detail??"stopped by its own project");return{version:1,command:R.command,worker_id:R.worker_id,applied:ae,reach:Q,detail:ae?`redskilled stopped Worker ${JSON.stringify(R.worker_id)} of project ${JSON.stringify(G.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(R.worker_id)} to stop`}}function md(R){rx.workerExited(R),De.delete(R),he.delete(R),H.delete(R),$.delete(R),_i.releaseHolder(R).catch(()=>{})}function jfe(R){if(De.get(R.workerId)==null)return;let G=o(),Q=R.line?.trim();Q!=null&&Q!==""&&H.set(R.workerId,{line:Q,published_at:G,source:"heartbeat"});let ae=_5($.get(R.workerId)?.display,R);ae!=null&&$.set(R.workerId,{display:ae,published_at:G})}function oW(R){let G=De.get(R.worker_id),Q=hl("worker-heartbeat",R.session_project,G?.project_label??null);if(!Q.permitted)throw new Error(Q.reason);if(typeof R.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(G==null)return{version:1,worker_id:R.worker_id,accepted:!1,reach:Q,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(R.worker_id)} to publish a line for`};let ae=o();H.set(R.worker_id,{line:R.last_log_line,published_at:ae,source:"heartbeat"});let ge=R.display===void 0?null:YT(R.display);if(ge!=null){let ve=$.get(R.worker_id)?.display,Pe={display:ge,published_at:ae};$.set(R.worker_id,Pe),$fe(Pe,G),(ge.phase!==ve?.phase||ge.step!==ve?.step)&&Zr("worker-activity",G,null,{phase:ge.phase,step:ge.step})}return R.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Zr("worker-heal",G,`${R.mechanical_heal.cause}; cycle ${R.mechanical_heal.cycle}/${R.mechanical_heal.cap}; free=${R.mechanical_heal.free}`,{healKind:R.mechanical_heal.heal_kind}),{version:1,worker_id:R.worker_id,accepted:!0,reach:Q,published_at:ae,detail:`redskilled stored a line for Worker ${JSON.stringify(R.worker_id)} without reading it`}}async function Mfe(R,G,Q){let ae=`exit code=${G??"null"} signal=${Q??"null"}`;if(R.unit!=null&&R.unit!==""&&await Nfe(R)){Lfe(R,`its launch client ended (${ae}) while unit ${JSON.stringify(R.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 ge=await PB(R,Y,{detail:ae,facts:{exitCode:G,signal:Q}}),ve=R.log_path==null?null:await be(R.log_path).catch(()=>null),Pe=FI(ve),Gt=ve??H.get(R.worker_id)?.line??null;md(R.worker_id),Zr("worker-death",R,Pe==null?ge.detail:`session-error: ${Pe}`,{...ge.facts,refusal:Pe,birthOutcome:Ale({exitCode:G,signal:Q,tail:Gt,oneShot:R.project_label===vB})})}function iW(R,G){let Q=hl("project-reset",G,R);if(!Q.permitted)throw new Error(Q.reason);let ae=Ri[R]?.haltUntilMs!=null||Ri[R]?.probeWorkerId!=null;return Ri[R]=gE(),{version:1,project_label:R,latch:"project-birth-breaker",reset:ae,reach:Q,detail:ae?`redskilled cleared project ${JSON.stringify(R)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(R)}; nothing changed`}}async function Nfe(R){try{return await q(R)===!0}catch{return!1}}function Lfe(R,G){let Q=R.unit==null?null:et(R.unit);De.set(R.worker_id,{...R,...Q!=null&&Q>0?{pid:Q}:{},warnings:[...R.warnings,G]}),he.add(R.worker_id)}function XS(R,G){let Q=hl("project-register",G,R.project_label);if(!Q.permitted)throw new Error(Q.reason);let ae=o();Rf(ae);let ge=jH(R,{now:ae,held:qe.get(R.project_label)});if(No!=null&&kW(No(bW(ge.argv)))==="unrunnable")throw new Error(wW(ge.project_label,ge.argv));return qe.set(ge.project_label,ge),ml(),vf.nudge(),aW(ge.project_label),{version:1,registration:ge,reach:Q,detail:`redskilled holds a registration for project ${JSON.stringify(ge.project_label)} at a target of ${ge.target} until ${ge.renew_by}, and has read neither its selector nor its argv`}}function sW(R,G={}){let Q=hl("project-renew",G.sessionProject,R);if(!Q.permitted)throw new Error(Q.reason);let ae=o();Rf(ae);let ge=qe.get(R);if(ge==null){if(cd.has(R))throw new Ol(R,{kind:"orphaned"});let Pe=[...fn].reverse().find(Ot=>Ot.project_label===R);if(Pe!=null)throw new Ol(R,{kind:"stopped",at:Pe.at});let Gt=[...Tn].reverse().find(Ot=>Ot.project_label===R);throw Gt!=null?new Ol(R,{kind:"lapsed",at:Gt.at,...Gt.registered_at==null?{}:{registered_at:Gt.registered_at}}):new Ol(R)}let ve=MH(ge,{now:ae,...G.renewWithinMs==null?{}:{renew_within_ms:G.renewWithinMs},...G.launch==null?{}:{launch:G.launch}});return qe.set(ve.project_label,ve),ml(),vf.nudge(),{version:1,registration:ve,reach:Q,detail:`redskilled renewed the registration for project ${JSON.stringify(ve.project_label)}, which now stands until ${ve.renew_by} after renewal ${ve.renewals}`+(G.launch==null?"":`, carrying launch revision ${ve.launch_revision} for its next Worker`)}}function ex(R,G){let Q=hl("project-deregister",G,R);if(!Q.permitted)throw new Error(Q.reason);let ae=qe.get(R)??ut.get(R),ge=qe.delete(R),ve=ut.delete(R),Pe=ge||ve;return ae!=null&&(aW(R),fn.push(Vle(ae,fr,o())),fn.length>Ym&&fn.splice(0,fn.length-Ym)),Pe&&ml(),{version:1,project_label:R,released:Pe,reach:Q,detail:Pe?`redskilled released the registration for project ${JSON.stringify(R)}`:`redskilled held no registration for project ${JSON.stringify(R)}, so there was nothing to release`}}function aW(R){ut.delete(R);for(let G=Tn.length-1;G>=0;G-=1)Tn[G].project_label===R&&Tn.splice(G,1);for(let G=fn.length-1;G>=0;G-=1)fn[G].project_label===R&&fn.splice(G,1);cd.delete(R)}async function Ffe(R,G){return await ne(R,Q=>{md(R.worker_id);let ae=R.pgid??R.pid;Zr("worker-death",R,Q?G:`${G}; unconfirmed-stop: the host did not confirm process group ${ae} stopped, so process group ${ae} may still be alive`,{deliberate:!0})}),!0}function gl(R){return VH({ceiling:l,workers:[...De.values()],budget:R.budget,projectLabel:R.project_label,...R.reservation==null?{}:{reservation:R.reservation}})}function tx(R){let G=RB(R),Q=En.get(G);if(Q!=null)return Q;let ae=s(R).finally(()=>{En.get(G)===ae&&En.delete(G)});return En.set(G,ae),ae}async function lW(R,G,Q,ae){let ge=ae??gl(R);if(!ge.admitted)throw new Mn(ge.reason,ge);let ve;try{ve=await(Q??tx(G))}catch(Gt){let Ot=sce(ge,G,Gt);throw new Mn(Ot.reason,Ot)}let Pe=gl(R);if(!Pe.admitted)throw new Mn(Pe.reason,Pe);return yl(R,{admission:Pe,forkSha:ve})}function yl(R,G={}){let Q=KH({ceiling:l,workers:[...De.values()],budget:R.budget}),ae=i({spec:R,admission:G.admission??gl(R),...G.forkSha==null?{}:{forkSha:G.forkSha},memoryCeiling:Q,liveWorkerIds:De.keys(),clock:o,onExit:(Gt,Ot,gd)=>{let Ke=De.get(Gt);Ke!=null&&(Vs=Vs.then(()=>Mfe(Ke,Ot,gd)).catch(()=>{}))}}),ge=G.forkSha??ae.fork_sha??ae.worker.fork_sha,ve=ge==null||ge===""?ae.worker:{...ae.worker,fork_sha:ge},Pe={...ae,worker:ve,...ge==null||ge===""?{}:{fork_sha:ge}};return De.set(ve.worker_id,ve),G.hook===!0&&Zn.track(ve.worker_id),Zr("worker-birth",ve,null,{admissionVerdict:G.admission?.verdict??ae.admission.verdict}),Pe}function Zr(R,G,Q,ae={}){if(Pn)return;let ge=o(),ve={kind:R,worker:G,ts:ge,detail:Q,...ae,...R==="worker-death"||R==="worker-budget-kill"?zle(te,G.worker_id,ae):{}};if(R==="worker-death"||R==="worker-budget-kill"){let Pe=$5(G,ge,R,$.get(G.worker_id)?.display,ae.birthOutcome);le=Nl([...le,Pe],Ot=>Ot.ts,{now:o()}),cW(Cl(ve),{startedAt:G.started_at,...ae.refusal==null?{}:{refusal:ae.refusal}});let Gt=ae.birthOutcome??"unreported";eH(VU,G.project_label,Gt),Ile({health:Ri,projectLabel:G.project_label,nowMs:Date.parse(ge),lifetimeMs:Date.parse(ge)-Date.parse(G.started_at),outcome:Gt,announce:Ot=>process.stderr.write(Ot)})}D.recordWorker(ve).catch(()=>{}),Nce(Pe=>void D.recordWorker(Pe).catch(()=>{}),ve),Zn.onEvent(R,G),sd.onEvent(R,G)}function cW(R,G={}){let Q=pJ(R,G);if(Q==null)return;let ae=[Q,...(_e??[]).filter(ge=>ge.kind!==Q.kind||ge.id!==Q.id||ge.ts!==Q.ts)].sort((ge,ve)=>Date.parse(ge.ts)-Date.parse(ve.ts));_e=Nl(ae,ge=>ge.ts,{now:o()})}async function dW(){return await ule({workers:[...De.values()],reattached_worker_ids:he,now_ms:Date.parse(o()),grace_ms:ce,probe:q,on_dead:async G=>{let Q=await PB(G,Y,{detail:"the host no longer confirms this Worker",facts:{}});md(G.worker_id),Zr("worker-death",G,Q.detail,Q.facts)}})}let Sf=Ule({authorized:gB(t.machineClaimPath,t.machineClaimPathOfThisHost),interval_ms:e.orphanReaperMs,mode:e.orphanReaperMode,census:e.orphanCensus,active_worker_units:ze,dump_files:e.orphanDumpFiles,read_starttime:e.orphanStarttime,kill_group:e.orphanKillGroup,report:e.orphanReport,clock:o,held_worker_ids:()=>De.keys(),live_births:async()=>$d(await D.read()),adopt:async(R,G,Q)=>{De.set(R.worker_id,R),he.add(R.worker_id),G&&(Zr("worker-birth",R,Q),await D.flush())},record_reaped:async(R,G)=>{md(R.worker_id),Zr("worker-death",R,G),await D.flush()}}),rx=Sle({graceMs:Oe,signal:e.signalWorkerForBudgetGrace??xle,held:R=>De.has(R),kill:async(R,G)=>{await ne(R,()=>{md(R.worker_id),Zr("worker-budget-kill",R,G)})},record:(R,G,Q)=>Zr(R,G,Q)});async function uW(R,G){let Q=De.get(R);return Q?await rx.begin(Q,G):!1}async function pW(){let R=[...De.values()],G={rss:{},cpu_seconds:{},processes:{},sources:{}};if(R.length>0)try{G=await Qe(R)}catch{G={rss:{},cpu_seconds:{},processes:{},sources:{}}}let Q=G.rss;Te=Q,lt=o(),$le(De,G.cpu_seconds,lt),await it.ingest(Object.values(G.resource_samples??{}),lt);for(let[ve,Pe]of Object.entries(G.resource_samples??{})){let Gt=Dle(te,ve,Pe);if(Gt==null)continue;let Ot=De.get(ve);Ot!=null&&Zr("worker-resource",Ot,null,{memoryPeakBytes:Gt.memory,memorySwapPeakBytes:Gt.swap,pidsPeak:Gt.pids})}let{terminations:ae}=t5({workers:R,rss:Q,processes:G.processes??{},sources:G.sources}),ge=[];for(let ve of ae)await uW(ve.worker_id,ve.reason)&&ge.push(ve);return ge}async function Gfe(){try{return st<=0?await at(r):await new Promise(R=>{let G=setTimeout(()=>R(nx()),st);G.unref(),at(r).then(Q=>{clearTimeout(G),R(Q)},()=>{clearTimeout(G),R(nx())})})}catch{return nx()}}function nx(){try{return wt(r)}catch{return null}}async function fW(){if(tS(r))return vi+=1,ao=o(),ad="local-build",{act:"hold",reason:"local-build"};let R=yce(await Gfe()),G=R.version;Jr=G,gf=R.newest??null,ao=o(),kr=bce({running:r,newest:gf,supervised:Mo});let Q=kce({running:r,published:G,supervised:Mo});return wi=Q.act==="replace",vi+=1,ad=Q.act==="hold"?Q.reason:null,Js!=="in-progress"&&(Js=Q.act==="replace"?"pending":"none"),Q}async function ox(){let R=await fW();if(R.act!=="replace"||Js==="in-progress")return R;let G=Date.parse(o());return Number.isFinite(G)&&G<Dy||(Number.isFinite(G)&&(Dy=G+6e4),await Dce({decision:R,io:od,paths:t,incumbentVersion:r,incumbentPid:c.pid,clock:o,eventLane:D,flushRegistration:()=>z.flush(),stop:()=>Ly({reason:"replaced"}),onViable:()=>{Js="in-progress"}})||(Js="pending")),R}function Bfe(){Pn||wf!=null||xt<=0||(!yr&&Vr>0&&(zy=setTimeout(()=>{ox().catch(()=>{})},Vr),zy.unref()),wf=setInterval(()=>{ox().catch(()=>{})},xt),wf.unref())}async function mW(){return await d.renew(c).catch(()=>null)}function Ufe(){Pn||bf!=null||Pt<=0||(bf=setInterval(()=>{mW()},Pt),bf.unref())}function Wfe(){Pn||kf!=null||kt<=0||(kf=setInterval(()=>{Rf(o())},kt),kf.unref())}function qfe(){if(Pn||Ys!=null||Ne<=0)return;let R=()=>{Ys=void 0,pW().catch(()=>{}).finally(()=>{if(Pn)return;let G=it.hasActiveIncident()?Math.min(Ne,2e3):Ne;Ys=setTimeout(R,G),Ys.unref()})};Ys=setTimeout(R,Ne),Ys.unref()}function Hfe(){if(Pn||pd!=null||Dr<=0)return;let R=G=>{pd=setTimeout(()=>{pd=void 0,hW().then(()=>QS()).catch(()=>{}).finally(()=>{if(Pn)return;let Q=Date.parse(o());R(Qee(fr,Dr,Number.isFinite(Q)?Q:Date.now()))})},G),pd.unref()};R(Dr)}async function hW(){await Promise.allSettled([...qe.values()].filter(R=>R.trunk!=null).map(async R=>{let G=await tx({workspace_path:R.workspace_path,trunk:R.trunk}),Q=[...De.values()].filter(ae=>ae.project_label===R.project_label&&ae.fork_sha!=null&&ae.fork_sha!=="");await Promise.allSettled(Q.map(async ae=>{let ge=await a({workspace_path:R.workspace_path,fork_sha:ae.fork_sha,head_sha:G}),ve=De.get(ae.worker_id);if(ve==null||ve.fork_sha!==ae.fork_sha)return;let Pe={...ve,base_head_sha:G,base_commits_ahead:ge};De.set(ae.worker_id,Pe),(ve.base_head_sha!==G||ve.base_commits_ahead!==ge)&&Zr("worker-drift",Pe,null,{baseHeadSha:G,baseCommitsAhead:ge})}))}))}function Vfe(){Pn||_f!=null||pn<=0||(_f=setInterval(()=>{rW().catch(()=>{})},pn),_f.unref())}function Ny(R){return W2({reason:R,socketPath:t.socketPath,daemonVersion:r,pid:c.pid,workers:[...De.values()],projects:[...qe.keys()]})}function gW(R){if(jy!=null)return jy;let G=R.reason??"requested",Q=R.note?.trim();return jy=D.recordDaemonStop({ts:o(),pid:c.pid,socketPath:t.socketPath,reason:G,detail:Q==null||Q===""?Ny(G).detail:`${Ny(G).detail} \u2014 ${Q}`,...R.signal==null?{}:{signal:R.signal}}).catch(()=>{}),jy}async function Ly(R={}){if(KU)return await YS;KU=!0,await gW(R),Pn=!0,Ys&&clearInterval(Ys),bf&&clearInterval(bf),kf&&clearInterval(kf),Sf.stop(),wf&&clearInterval(wf),zy&&clearTimeout(zy),vf.stop(),ZS.stop(),ud&&clearTimeout(ud),pd&&clearTimeout(pd),_f&&clearInterval(_f),rx.stop(),await D.flush().catch(()=>{}),await z.flush().catch(()=>{}),await Hs.flush().catch(()=>{}),await O?.close().catch(()=>{}),await d.release(c),await f.release(u);let G=new Promise(Q=>x.close(()=>Q()));for(let Q of hf)Q.destroy();return await G,await CZe(t.socketPath,{force:!0}),JU(),await YS}let hd=await D.read().catch(()=>[]);te=yB(hd);let Fy=new Map;for(let R of hd){if(R.event==="worker-birth"){Fy.set(R.worker_id,R.ts);continue}let G=FI(R.detail);cW(R,{...Fy.get(R.worker_id)==null?{}:{startedAt:Fy.get(R.worker_id)},...G==null?{}:{refusal:G}}),(R.event==="worker-death"||R.event==="worker-budget-kill")&&Fy.delete(R.worker_id)}le=Nl(hd.filter(R=>R.event==="worker-death"||R.event==="worker-budget-kill").map(O5),R=>R.ts,{now:o()}),Z=Ple(hd,o());for(let R of Z)ee.set(R.worker_id,R);let Kfe=$d(hd),yW=new Set(await Promise.resolve(ze()).catch(()=>[])),ix=await hB(Kfe,R=>R.unit!=null&&yW.has(R.unit)?!0:q(R));for(let R of ix.alive){let G=_le(R),Q=G.unit==null||mr(G.pid)?null:et(G.unit);De.set(G.worker_id,Q!=null&&Q>0?{...G,pid:Q}:G),he.add(G.worker_id)}for(let R of ix.dead)Zr("worker-death",R,"the Worker ended while no daemon was watching");let Jfe=kle({units:[...yW],held:[...De.values()],mainPid:et,now:j});for(let R of Jfe)De.set(R.worker_id,R),he.add(R.worker_id),Zr("worker-birth",R,"adopted from an active unit with no birth on this lane");await Gle(_i,new Set(De.keys()));let Gy=gJ(dt,De.values(),j);for(let R of Gy.live)qe.set(R.project_label,R);for(let R of Gy.recoverable)ut.set(R.project_label,R);for(let R of Gy.abandoned)ZU(R,Date.parse(j),`redskilled lapsed the recovered registration for project ${JSON.stringify(R.project_label)}: no session renewed it on cadence and no attributed Worker is alive`);dt.length>0&&ml(),QU(o()),await yJ({eventLane:D,laneEvents:hd,heldLease:m,ownerPid:c.pid,startedAt:j,socketPath:t.socketPath,recovery:Gy});for(let R of ix.alive){if(R.log_path==null||H.has(R.worker_id))continue;let G=await be(R.log_path).catch(()=>null);G==null||G.trim()===""||H.set(R.worker_id,{line:G,published_at:o(),source:"rehydrated"})}x.on("connection",R=>{hf.add(R),R.once("close",()=>hf.delete(R)),P2(R,async(G,Q)=>{let ae=await Zfe(G);Q(ae),G.op==="shutdown"&&setImmediate(()=>void Ly({reason:"requested"}).catch(()=>{}))})});async function Zfe(R){try{if(R.op==="ping")return Qle(R.id,r,c.pid);if(R.op==="host-state")return{id:R.id,ok:!0,value:fd()};if(R.op==="reap")return{id:R.id,ok:!0,value:await Sf.reap(R.report===!0)};if(R.op==="statusline-payload")return{id:R.id,ok:!0,value:XT(My(),R.extras)};if(R.op==="statusline-string")return{id:R.id,ok:!0,value:Dfe(R.render)};if(R.op==="statusline-dashboard")return{id:R.id,ok:!0,value:zfe(R.dashboard)};if(R.op==="worker-heartbeat")return{id:R.id,ok:!0,value:oW(R.heartbeat)};if(R.op==="resource-acquire"||R.op==="resource-renew"||R.op==="resource-release")return Fle(R,_i);if(R.op==="project-register"){let Q=XS(R.registration,R.session_project);return await z.flush(),{id:R.id,ok:!0,value:Q}}if(R.op==="project-renew"){let Q=sW(R.project_label,{...R.session_project==null?{}:{sessionProject:R.session_project},...R.renew_within_ms==null?{}:{renewWithinMs:R.renew_within_ms},...R.launch==null?{}:{launch:R.launch}});return await z.flush(),{id:R.id,ok:!0,value:Q}}if(R.op==="project-deregister"){let Q=ex(R.project_label,R.session_project);return await z.flush(),{id:R.id,ok:!0,value:Q}}if(R.op==="project-reset")return{id:R.id,ok:!0,value:iW(R.project_label,R.session_project)};if(R.op==="worker-command")return{id:R.id,ok:!0,value:await nW(R.command)};if(R.op==="worker-start"){let Q=hl("worker-start",R.session_project,R.spec.project_label);if(!Q.permitted)return{id:R.id,ok:!1,error:Q.reason};let ae=await Ks(()=>R.spec.trunk==null?yl(R.spec):lW(R.spec,{workspace_path:R.spec.workspace_path,trunk:R.spec.trunk}));return await D.flush().catch(()=>{}),{id:R.id,ok:!0,value:{worker:ae.worker,admission:ae.admission,fork_sha:ae.fork_sha,warnings:ae.warnings}}}if(R.op==="shutdown"){let Q=Ny("requested");return await gW({reason:"requested",...R.detail==null?{}:{note:R.detail}}),{id:R.id,ok:!0,value:Q}}let G=R;return{id:G.id??Fce(),ok:!1,error:`unsupported redskilled op: ${G.op??"unknown"}`}}catch(G){return{id:R.id??Fce(),ok:!1,error:G instanceof Error?G.message:String(G)}}}try{O=await nle({paths:t,startWorker:yl,hostState:fd,hostAdministration:!0,mobileWorkerStop:ile(nW),...e.githubGateway==null?{}:{githubGateway:e.githubGateway},...e.evidenceTtlMs==null?{}:{evidenceTtlMs:e.evidenceTtlMs},registerProject:R=>XS(R),releaseProject:R=>ex(R),workerPulse:R=>jfe(R),recordDemandTurn:R=>void process.stderr.write(Xte(R)),standingOrdersStore:C})}catch(R){throw await Ly({reason:"requested",note:"ACP control plane failed to bind"}).catch(()=>{}),R}return qfe(),Ufe(),Wfe(),Sf.arm(),Bfe(),vf.arm(),Ofe(),Hfe(),Vfe(),ZS.arm(),{socketPath:t.socketPath,lease:A.lease,startedAt:j,closed:YS,startWorker:yl,admit:gl,ceiling:()=>l,killWorkerOverBudget:uW,sampleMemoryBudgets:pW,renewLease:mW,resourceLeases:_i,pollRepositoryActivity:XU,pollGithubBalance:eW,githubBalance:()=>Fo,pollQueueDiscovery:QS,queueDiscovery:()=>fr,driveDemand:rW,demand:()=>Xt,sweepWorkerLiveness:dW,sweepOrphanProcesses:()=>Pn?Promise.resolve({adopted:0,reaped:0,suspects:0}):Sf.sweep(),censusOrphanProcesses:()=>Sf.census(),publishWorkerHeartbeat:oW,reattached:()=>[...he].map(R=>De.get(R)).filter(R=>R!=null),flushEvents:async()=>{await Lo,await Vs,await Zn.waitForSettled(),await D.flush()},trackWorker(R){De.set(R.worker_id,R),Zr("worker-birth",R,null)},releaseWorker(R){let G=De.get(R),Q=G!=null;return G!=null&&md(R),G&&Zr("worker-death",G,"released by the daemon",{deliberate:!0}),Q},workerCount:()=>De.size,registerProject:XS,renewProject:sW,sweepRegistrations:()=>Rf(o()),resetProjectBirthBreaker:iW,deregisterProject:ex,registrations:()=>fd().registrations??[],hostState:fd,refreshRegisteredTrunks:hW,statuslinePayload:My,observePublishedVersion:fW,checkForReplacement:ox,stopReport:Ny,stop:Ly}}import{readdir as Wce,rm as $Ze,stat as OZe}from"node:fs/promises";import{dirname as DZe,join as AB}from"node:path";var zZe=5*6e4,jZe="redskilled.";function MZe(e={}){let t=e.env??process.env,r=s=>DZe(sb({key:"redskilled:reclaim-probe",socketFileName:gu,env:s,...e.uid===void 0?{}:{uid:e.uid}})),{XDG_RUNTIME_DIR:n,...o}=t,i=[r(t),r(o)];return[...new Set(i)]}async function qce(e={}){let t=e.roots??MZe(e),r=e.graceMs??zZe,n=e.now??Date.now,o=e.isPidAlive??mr,i=e.answers??GZe,s=e.dryRun===!0,a=[];for(let l of t){let c;try{c=(await Wce(l,{withFileTypes:!0})).filter(d=>d.isDirectory()).map(d=>d.name)}catch{continue}for(let d of c.sort())a.push(await NZe(AB(l,d),{graceMs:r,now:n,pidAlive:o,answers:i,dryRun:s}))}return{roots:t,scanned:a.length,reclaimed:a.filter(l=>l.verdict==="reclaimed").length,dryRun:s,entries:a}}async function NZe(e,t){let r;try{r=(await Wce(e)).sort()}catch(s){return{dir:e,verdict:"failed",reason:Hce(s),removed:[]}}let n=r.filter(s=>s.startsWith(jZe));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await LZe(AB(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 Uce(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(gu)&&await t.answers(AB(e,gu)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let i=await FZe(e,t.now);return i!==void 0&&i<t.graceMs?{dir:e,verdict:"young",reason:`no lease, modified ${Math.round(i/1e3)}s ago`,removed:[]}:await Uce(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function Uce(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await $Ze(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:Hce(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function LZe(e){try{return await Al(e)}catch{return}}async function FZe(e,t){try{return Math.max(0,t()-(await OZe(e)).mtimeMs)}catch{return}}async function GZe(e){try{return(await pa({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function Hce(e){return e instanceof Error?e.message:String(e)}import{execFile as BZe}from"node:child_process";import{chmod as UZe,mkdir as WZe,rm as qZe,writeFile as HZe}from"node:fs/promises";import{homedir as Kce}from"node:os";import{join as IB}from"node:path";var Vce=`// statusline-fast \u2014 native statusline front (generated from
|
|
423
423
|
// apps/redskilled/src/statusline-native-source.ts; ADR 0157).
|
|
424
424
|
//
|
|
425
425
|
// Prints the project's last full statusline render instantly. The heavy
|
|
@@ -138,7 +138,7 @@ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.pus
|
|
|
138
138
|
`)+1;for(;r!==0;)this.onNewLine(this.offset+r),r=this.source.indexOf(`
|
|
139
139
|
`,r)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,r.value){let n="end"in r.value?r.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else if(r.sep)r.sep.push(this.sourceToken);else{if(this.atIndentedComment(r.start,t.indent)){let s=t.items[t.items.length-2]?.value?.end;if(Array.isArray(s)){Hn(s,r.start),s.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return}if(this.indent>=t.indent){let n=!this.onKeyLine&&this.indent===t.indent,s=n&&(r.sep||r.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&r.sep&&!r.value){let o=[];for(let a=0;a<r.sep.length;++a){let c=r.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>t.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=r.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||r.value?(i.push(this.sourceToken),t.items.push({start:i}),this.onKeyLine=!0):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"explicit-key-ind":!r.sep&&!r.explicitKey?(r.start.push(this.sourceToken),r.explicitKey=!0):s||r.value?(i.push(this.sourceToken),t.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(r.explicitKey)if(r.sep)if(r.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(qe(r.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(ap(r.key)&&!qe(r.sep,"newline")){let o=vt(r.start),a=r.key,c=r.sep;c.push(this.sourceToken),delete r.key,delete r.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:c}]})}else i.length>0?r.sep=r.sep.concat(i,this.sourceToken):r.sep.push(this.sourceToken);else if(qe(r.start,"newline"))Object.assign(r,{key:null,sep:[this.sourceToken]});else{let o=vt(r.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else r.sep?r.value||s?t.items.push({start:i,key:null,sep:[this.sourceToken]}):qe(r.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);s||r.value?(t.items.push({start:i,key:o,sep:[]}),this.onKeyLine=!0):r.sep?this.stack.push(o):(Object.assign(r,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(t);if(o){if(o.type==="block-seq"){if(!r.explicitKey&&r.sep&&!qe(r.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else n&&t.items.push({start:i});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(r.value){let n="end"in r.value?r.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(r.start,t.indent)){let s=t.items[t.items.length-2]?.value?.end;if(Array.isArray(s)){Hn(s,r.start),s.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return;case"anchor":case"tag":if(r.value||this.indent<=t.indent)break;r.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;r.value||qe(r.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return}if(this.indent>t.indent){let n=this.startBlockValue(t);if(n){this.stack.push(n);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){let r=t.items[t.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while(n?.type==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!r||r.sep?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return;case"map-value-ind":!r||r.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!r||r.value?t.items.push({start:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);!r||r.value?t.items.push({start:[],key:s,sep:[]}):r.sep?this.stack.push(s):Object.assign(r,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}let n=this.startBlockValue(t);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===t.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let s=Vn(n),i=vt(s);op(t);let o=t.end.splice(1,t.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:i,key:t,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let r=this.source.indexOf(`
|
|
140
140
|
`)+1;for(;r!==0;)this.onNewLine(this.offset+r),r=this.source.indexOf(`
|
|
141
|
-
`,r)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let r=Vn(t),n=vt(r);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let r=Vn(t),n=vt(r);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,r){return this.type!=="comment"||this.indent<=r?!1:t.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};cp.Parser=Io});var fp=P(ur=>{"use strict";var lp=To(),xE=tr(),lr=sr(),IE=bi(),NE=L(),LE=xo(),up=No();function dp(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new LE.LineCounter||null,prettyErrors:t}}function qE(e,t={}){let{lineCounter:r,prettyErrors:n}=dp(t),s=new up.Parser(r?.addNewLine),i=new lp.Composer(t),o=Array.from(i.compose(s.parse(e)));if(n&&r)for(let a of o)a.errors.forEach(lr.prettifyError(e,r)),a.warnings.forEach(lr.prettifyError(e,r));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function pp(e,t={}){let{lineCounter:r,prettyErrors:n}=dp(t),s=new up.Parser(r?.addNewLine),i=new lp.Composer(t),o=null;for(let a of i.compose(s.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new lr.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&r&&(o.errors.forEach(lr.prettifyError(e,r)),o.warnings.forEach(lr.prettifyError(e,r))),o}function DE(e,t,r){let n;typeof t=="function"?n=t:r===void 0&&t&&typeof t=="object"&&(r=t);let s=pp(e,r);if(!s)return null;if(s.warnings.forEach(i=>IE.warn(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:n},r))}function FE(e,t,r){let n=null;if(typeof t=="function"||Array.isArray(t)?n=t:r===void 0&&t&&(r=t),typeof r=="string"&&(r=r.length),typeof r=="number"){let s=Math.round(r);r=s<1?void 0:s>8?{indent:8}:{indent:s}}if(e===void 0){let{keepUndefined:s}=r??t??{};if(!s)return}return NE.isDocument(e)&&!n?e.toString(r):new xE.Document(e,n,r).toString(r)}ur.parse=DE;ur.parseAllDocuments=qE;ur.parseDocument=pp;ur.stringify=FE});var qo=P(q=>{"use strict";var jE=To(),BE=tr(),UE=eo(),Lo=sr(),ME=Ft(),De=L(),VE=xe(),HE=U(),KE=Ne(),WE=Le(),zE=Un(),JE=Co(),YE=xo(),QE=No(),Kn=fp(),hp=Nt();q.Composer=jE.Composer;q.Document=BE.Document;q.Schema=UE.Schema;q.YAMLError=Lo.YAMLError;q.YAMLParseError=Lo.YAMLParseError;q.YAMLWarning=Lo.YAMLWarning;q.Alias=ME.Alias;q.isAlias=De.isAlias;q.isCollection=De.isCollection;q.isDocument=De.isDocument;q.isMap=De.isMap;q.isNode=De.isNode;q.isPair=De.isPair;q.isScalar=De.isScalar;q.isSeq=De.isSeq;q.Pair=VE.Pair;q.Scalar=HE.Scalar;q.YAMLMap=KE.YAMLMap;q.YAMLSeq=WE.YAMLSeq;q.CST=zE;q.Lexer=JE.Lexer;q.LineCounter=YE.LineCounter;q.Parser=QE.Parser;q.parse=Kn.parse;q.parseAllDocuments=Kn.parseAllDocuments;q.parseDocument=Kn.parseDocument;q.stringify=Kn.stringify;q.visit=hp.visit;q.visitAsync=hp.visitAsync});import{readFileSync as ef}from"node:fs";import{join as tf,resolve as ta}from"node:path";function Ta(e){let t={app:e,version:bf(it("__RED_BUILD_VERSION__",()=>"4.2.2")??"0.0.0-dev"),gitSha:it("__RED_BUILD_GIT_SHA__",()=>"7987571cbdf0bcff8c6055b1e039dbacce845e94")??"unknown",buildTime:it("__RED_BUILD_TIME__",()=>"2026-08-24T02:55:09-03:00")??"unknown",bundleAsset:it("__RED_BUNDLE_ASSET__",()=>"release.bundle.min.mjs")??"unknown"},r=it("__REDDB_SDK_VERSION__",()=>""),n=it("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function bf(e){return e.startsWith("v")?e.slice(1):e}function _a(e){return`${e.app} ${e.version} ${e.gitSha}`}function it(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}function ka(e){return e==="single-object"?"rest":"graphql"}function va(e,t){return e==="stable-poll"?"rest":ka(t)}function Z(e){return{none:e}}function M(e,t,r,n,s,i,o){let a=typeof s=="string"?{fallback:s}:{fallback:null,noFallbackBecause:s.none};return{key:e,kind:"read",cardinality:t,volatility:r,surface:o??va(r,t),budget:n,...a,...o?{only:o}:{},why:i}}function ee(e,t,r,n,s){let i=typeof s=="string"?{fallback:s}:{fallback:null,noFallbackBecause:s.none};return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,...i,why:n}}var Sa=[M("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),M("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),M("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),M("run view","single-object","stable-poll","rest",Z("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),M("release view","single-object","stable-poll","rest",Z("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),M("pr diff","single-object","one-shot","rest",Z("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),M("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),M("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),M("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),M("release list","multi-node","stable-poll","rest",Z("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),M("run list","multi-node","stable-poll","rest",Z("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),M("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),M("issue list (search)","multi-node","stable-poll","search",Z("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),M("pr list (search)","multi-node","stable-poll","search",Z("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),M("search issues","multi-repository","one-shot","search",Z("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),M("search prs","multi-repository","one-shot","search",Z("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),M("search repos","multi-repository","one-shot","search",Z("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),M("api graphql","multi-node","one-shot","graphql",Z("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),M("api rest","single-object","one-shot","rest",Z("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),ee("issue create","rest","rest","the write plan POSTs to `repos/{o}/{r}/issues`; GraphQL exposes createIssue","graphql"),ee("issue edit","rest","rest","the write plan PATCHes labels and body; GraphQL exposes updateIssue","graphql"),ee("issue close","rest","rest","the write plan PATCHes issue state; GraphQL exposes closeIssue","graphql"),ee("issue reopen","graphql","graphql","gh uses reopenIssue; REST can PATCH the issue state to open","rest"),ee("issue comment","rest","rest","the write plan POSTs an issue comment; GraphQL exposes addComment","graphql"),ee("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation",Z("linked-branch creation has no REST mutation")),ee("pr create","rest","rest","the write plan POSTs a pull request; GraphQL exposes createPullRequest","graphql"),ee("pr comment","rest","rest","a pull request comment is an issue comment; GraphQL exposes addComment","graphql"),ee("pr merge","rest","rest","the default plan PUTs the merge; GraphQL exposes mergePullRequest","graphql"),ee("pr close","graphql","graphql","gh uses closePullRequest; REST can PATCH the pull request state","rest"),ee("pr edit","graphql","graphql","gh uses GraphQL mutations; REST can PATCH pull-request fields and issue labels","rest"),ee("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation",Z("GitHub exposes no REST ready-for-review mutation")),ee("pr update-branch","rest","rest","the write plan PUTs update-branch; GraphQL exposes updatePullRequestBranch","graphql"),ee("label create","rest","rest","the write plan POSTs a label; GraphQL exposes createLabel","graphql")],q_=new Map(Sa.map(e=>[e.key,e]));var ss="RED_GITHUB_REQUEST_TIMEOUT_MS",ot=class extends Error{subject;timeoutMs;constructor(t,r,n){super(`GitHub ${t} passed its ${r}ms deadline and was abandoned; raise ${ss} if this host is genuinely this slow`,n),this.name="GithubTimeoutError",this.subject=t,this.timeoutMs=r}};function Ra(e){return e instanceof ot}function _r(e=process.env){let t=e[ss];if(t===void 0||t.trim()==="")return 3e4;let r=Number(t);return!Number.isFinite(r)||r<0?3e4:Math.trunc(r)}async function kr(e,t,r){if(!Number.isFinite(t)||t<=0)return await r();let n,s=new Promise((o,a)=>{n=setTimeout(()=>a(new ot(e,t)),t),n.unref?.()}),i=Promise.resolve().then(r);i.catch(()=>{});try{return await Promise.race([i,s])}finally{n!==void 0&&clearTimeout(n)}}function is(e={}){let t=e.fetchImpl??fetch,r=e.timeoutMs??_r();return!Number.isFinite(r)||r<=0?t:async(n,s)=>{let i=AbortSignal.timeout(r),o=s?.signal??null,a=o==null?i:AbortSignal.any([o,i]),c=wf(n);try{return await kr(c,r,async()=>await t(n,{...s??{},signal:a}))}catch(l){throw Ra(l)?l:i.aborted&&o?.aborted!==!0?new ot(c,r,{cause:l}):l}}}function wf(e){let t=typeof e=="string"?e:e instanceof URL?e.href:typeof e.url=="string"?e.url:"request";try{return new URL(t).pathname}catch{return t}}var vr="off";var Aa="RED_GITHUB_BUDGET_GATE";function Ga(e){if(e===!0)return"on";if(typeof e!="string")return vr;let t=e.trim().toLowerCase();return t==="on"||t==="enabled"||t==="true"?"on":vr}function os(e){return(e??vr)==="on"}function as(e=process.env){return Ga(e[Aa])}import{execFile as Yf}from"node:child_process";import{promisify as Qf}from"node:util";var at=class extends SyntaxError{line;source;reason;constructor(t,r,n={}){super(t===0?r:`line ${t}: ${r}`,n.cause===void 0?void 0:{cause:n.cause}),this.name="ToonError",this.line=t,this.source=n.source,this.reason=r}};function ve(e,t,r={}){return new at(e,t,r)}var Ef=/(?:^\uFEFF?|\n) *#/,cs=class{value;constructor(t){if(Ef.test(t))throw new TypeError(`Raw string must not contain a line starting with "#": ${JSON.stringify(t)}`);this.value=t}};function Me(e){return e instanceof cs}function Tf(e){return/^[+-]?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function _f(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw ve(0,"number is not representable in TOON");return String(e)}function Sr(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function te(e,t){if(Me(e))return e.value;if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return _f(e);if(typeof e=="string")return vf(e,t);throw ve(0,"not a primitive")}function kf(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function X(e){return kf(e)?e:Rr(e)}function vf(e,t){return ls(e,t)?Rr(e):e}function ls(e,t){return e===""||/^[ \t]|[ \t]$/.test(e)||e==="true"||e==="false"||e==="null"||Tf(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")||e.startsWith("#")}var Oa=/["\\\u0000-\u001f]/g;function Rr(e){return`"${Pa(e)}"`}function Pa(e){let t="",r=0;Oa.lastIndex=0;let n;for(;(n=Oa.exec(e))!==null;){let s=e.charCodeAt(n.index),i;s===34?i='\\"':s===92?i="\\\\":s===10?i="\\n":s===13?i="\\r":s===9?i="\\t":i=`\\u${s.toString(16).padStart(4,"0")}`,t+=e.slice(r,n.index)+i,r=n.index+1}return`${t}${e.slice(r)}`}var Ca={comma:",",tab:" ",pipe:"|"},Sf=Ca.comma;var Ar=1e3,$a=["type","kind","event"],Ve="|";var tk=Symbol("need line");var Of=/[\uD800-\uDFFF]/;function be(e){if(e===null)return null;if(Me(e))return e;if(typeof e=="object"&&e!==null&&"toJSON"in e&&typeof e.toJSON=="function"){let t=e.toJSON();if(t!==e)return be(t)}if(typeof e=="string")return Na(e,"string value"),e;if(typeof e=="boolean")return e;if(typeof e=="number")return Object.is(e,-0)?0:Number.isFinite(e)?e:null;if(typeof e=="bigint")return e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER?Number(e):e.toString();if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(be);if(e instanceof Set)return Array.from(e,be);if(e instanceof Map){let t={};for(let[r,n]of e)Gt(t,String(r),be(n));return t}if(J(e)){let t={};for(let r of Object.keys(e))Na(r,"object key"),Gt(t,r,be(e[r]));return t}return null}function Na(e,t){if(Of.test(e))for(let r=0;r<e.length;r+=1){let n=e.charCodeAt(r);if(n<55296||n>57343)continue;let s=e.charCodeAt(r+1);if(n<=56319&&s>=56320&&s<=57343){r+=1;continue}throw new TypeError(`Cannot encode ${t} containing an unpaired surrogate U+${n.toString(16).toUpperCase()} at index ${r}`)}}function J(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function le(e){return e===null||Me(e)||["string","number","boolean"].includes(typeof e)}function Gt(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function La(e){return encodeURIComponent(e)}function Da(e){if(!J(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[s,i]of t){let o=Cf(i);if(o===void 0)return;r.push([s,o])}let n=[];for(let[s,i]of r)Nf(n,s,i);return n.join("")}function Cf(e){if(!Array.isArray(e)||e.length===0||!e.every(J))return;let t=$f(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=xf(r);if(n===void 0)return;let s=If(e,t),i=new Map;for(let a of e){let c=a[t];i.has(c)||i.set(c,[]);let l={};for(let[d,p]of Object.entries(a))if(d!==t&&!s.includes(d)&&!us(p,d,l))return;i.get(c).push(l)}let o=[];for(let a of n.cycle){let c=i.get(a),l=qf(c);if(l===void 0||l.length===0)return;o.push({fields:l,label:a,rows:c})}return{common:s,commonRows:e.map(a=>Object.fromEntries(s.map(c=>[c,a[c]]))),discriminator:t,groups:o,order:n,rows:e}}function $f(e){return $a.find(t=>e.every(r=>typeof r[t]=="string"))}function xf(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((o,a)=>o===r[a%t]))continue;let n=e.length/t;if(n<3)continue;let s=e.map(La).join(","),i=`cycle(${r.map(La).join(",")})*${n}`;if(i.length<=s.length*.4)return{cycle:r,encoded:i,repeats:n}}}function If(e,t){let r=[],n=Object.keys(e[0]),s=n.indexOf(t)+1;for(let i of n.slice(s).filter(o=>o!==t)){if(!Lf(i)||!e.every(o=>Object.prototype.hasOwnProperty.call(o,i))||!e.every(o=>Sr(o[i])))break;r.push(i)}return r}function Nf(e,t,r){e.push(X(t),`:
|
|
141
|
+
`,r)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let r=Vn(t),n=vt(r);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let r=Vn(t),n=vt(r);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,r){return this.type!=="comment"||this.indent<=r?!1:t.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};cp.Parser=Io});var fp=P(ur=>{"use strict";var lp=To(),xE=tr(),lr=sr(),IE=bi(),NE=L(),LE=xo(),up=No();function dp(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new LE.LineCounter||null,prettyErrors:t}}function qE(e,t={}){let{lineCounter:r,prettyErrors:n}=dp(t),s=new up.Parser(r?.addNewLine),i=new lp.Composer(t),o=Array.from(i.compose(s.parse(e)));if(n&&r)for(let a of o)a.errors.forEach(lr.prettifyError(e,r)),a.warnings.forEach(lr.prettifyError(e,r));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function pp(e,t={}){let{lineCounter:r,prettyErrors:n}=dp(t),s=new up.Parser(r?.addNewLine),i=new lp.Composer(t),o=null;for(let a of i.compose(s.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new lr.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&r&&(o.errors.forEach(lr.prettifyError(e,r)),o.warnings.forEach(lr.prettifyError(e,r))),o}function DE(e,t,r){let n;typeof t=="function"?n=t:r===void 0&&t&&typeof t=="object"&&(r=t);let s=pp(e,r);if(!s)return null;if(s.warnings.forEach(i=>IE.warn(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:n},r))}function FE(e,t,r){let n=null;if(typeof t=="function"||Array.isArray(t)?n=t:r===void 0&&t&&(r=t),typeof r=="string"&&(r=r.length),typeof r=="number"){let s=Math.round(r);r=s<1?void 0:s>8?{indent:8}:{indent:s}}if(e===void 0){let{keepUndefined:s}=r??t??{};if(!s)return}return NE.isDocument(e)&&!n?e.toString(r):new xE.Document(e,n,r).toString(r)}ur.parse=DE;ur.parseAllDocuments=qE;ur.parseDocument=pp;ur.stringify=FE});var qo=P(q=>{"use strict";var jE=To(),BE=tr(),UE=eo(),Lo=sr(),ME=Ft(),De=L(),VE=xe(),HE=U(),KE=Ne(),WE=Le(),zE=Un(),JE=Co(),YE=xo(),QE=No(),Kn=fp(),hp=Nt();q.Composer=jE.Composer;q.Document=BE.Document;q.Schema=UE.Schema;q.YAMLError=Lo.YAMLError;q.YAMLParseError=Lo.YAMLParseError;q.YAMLWarning=Lo.YAMLWarning;q.Alias=ME.Alias;q.isAlias=De.isAlias;q.isCollection=De.isCollection;q.isDocument=De.isDocument;q.isMap=De.isMap;q.isNode=De.isNode;q.isPair=De.isPair;q.isScalar=De.isScalar;q.isSeq=De.isSeq;q.Pair=VE.Pair;q.Scalar=HE.Scalar;q.YAMLMap=KE.YAMLMap;q.YAMLSeq=WE.YAMLSeq;q.CST=zE;q.Lexer=JE.Lexer;q.LineCounter=YE.LineCounter;q.Parser=QE.Parser;q.parse=Kn.parse;q.parseAllDocuments=Kn.parseAllDocuments;q.parseDocument=Kn.parseDocument;q.stringify=Kn.stringify;q.visit=hp.visit;q.visitAsync=hp.visitAsync});import{readFileSync as ef}from"node:fs";import{join as tf,resolve as ta}from"node:path";function Ta(e){let t={app:e,version:bf(it("__RED_BUILD_VERSION__",()=>"4.2.3")??"0.0.0-dev"),gitSha:it("__RED_BUILD_GIT_SHA__",()=>"f2b79c64ba689d72a716a967bb82ab75cd2963f2")??"unknown",buildTime:it("__RED_BUILD_TIME__",()=>"2026-08-24T03:26:05-03:00")??"unknown",bundleAsset:it("__RED_BUNDLE_ASSET__",()=>"release.bundle.min.mjs")??"unknown"},r=it("__REDDB_SDK_VERSION__",()=>""),n=it("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function bf(e){return e.startsWith("v")?e.slice(1):e}function _a(e){return`${e.app} ${e.version} ${e.gitSha}`}function it(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}function ka(e){return e==="single-object"?"rest":"graphql"}function va(e,t){return e==="stable-poll"?"rest":ka(t)}function Z(e){return{none:e}}function M(e,t,r,n,s,i,o){let a=typeof s=="string"?{fallback:s}:{fallback:null,noFallbackBecause:s.none};return{key:e,kind:"read",cardinality:t,volatility:r,surface:o??va(r,t),budget:n,...a,...o?{only:o}:{},why:i}}function ee(e,t,r,n,s){let i=typeof s=="string"?{fallback:s}:{fallback:null,noFallbackBecause:s.none};return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,...i,why:n}}var Sa=[M("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),M("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),M("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),M("run view","single-object","stable-poll","rest",Z("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),M("release view","single-object","stable-poll","rest",Z("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),M("pr diff","single-object","one-shot","rest",Z("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),M("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),M("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),M("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),M("release list","multi-node","stable-poll","rest",Z("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),M("run list","multi-node","stable-poll","rest",Z("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),M("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),M("issue list (search)","multi-node","stable-poll","search",Z("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),M("pr list (search)","multi-node","stable-poll","search",Z("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),M("search issues","multi-repository","one-shot","search",Z("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),M("search prs","multi-repository","one-shot","search",Z("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),M("search repos","multi-repository","one-shot","search",Z("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),M("api graphql","multi-node","one-shot","graphql",Z("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),M("api rest","single-object","one-shot","rest",Z("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),ee("issue create","rest","rest","the write plan POSTs to `repos/{o}/{r}/issues`; GraphQL exposes createIssue","graphql"),ee("issue edit","rest","rest","the write plan PATCHes labels and body; GraphQL exposes updateIssue","graphql"),ee("issue close","rest","rest","the write plan PATCHes issue state; GraphQL exposes closeIssue","graphql"),ee("issue reopen","graphql","graphql","gh uses reopenIssue; REST can PATCH the issue state to open","rest"),ee("issue comment","rest","rest","the write plan POSTs an issue comment; GraphQL exposes addComment","graphql"),ee("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation",Z("linked-branch creation has no REST mutation")),ee("pr create","rest","rest","the write plan POSTs a pull request; GraphQL exposes createPullRequest","graphql"),ee("pr comment","rest","rest","a pull request comment is an issue comment; GraphQL exposes addComment","graphql"),ee("pr merge","rest","rest","the default plan PUTs the merge; GraphQL exposes mergePullRequest","graphql"),ee("pr close","graphql","graphql","gh uses closePullRequest; REST can PATCH the pull request state","rest"),ee("pr edit","graphql","graphql","gh uses GraphQL mutations; REST can PATCH pull-request fields and issue labels","rest"),ee("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation",Z("GitHub exposes no REST ready-for-review mutation")),ee("pr update-branch","rest","rest","the write plan PUTs update-branch; GraphQL exposes updatePullRequestBranch","graphql"),ee("label create","rest","rest","the write plan POSTs a label; GraphQL exposes createLabel","graphql")],q_=new Map(Sa.map(e=>[e.key,e]));var ss="RED_GITHUB_REQUEST_TIMEOUT_MS",ot=class extends Error{subject;timeoutMs;constructor(t,r,n){super(`GitHub ${t} passed its ${r}ms deadline and was abandoned; raise ${ss} if this host is genuinely this slow`,n),this.name="GithubTimeoutError",this.subject=t,this.timeoutMs=r}};function Ra(e){return e instanceof ot}function _r(e=process.env){let t=e[ss];if(t===void 0||t.trim()==="")return 3e4;let r=Number(t);return!Number.isFinite(r)||r<0?3e4:Math.trunc(r)}async function kr(e,t,r){if(!Number.isFinite(t)||t<=0)return await r();let n,s=new Promise((o,a)=>{n=setTimeout(()=>a(new ot(e,t)),t),n.unref?.()}),i=Promise.resolve().then(r);i.catch(()=>{});try{return await Promise.race([i,s])}finally{n!==void 0&&clearTimeout(n)}}function is(e={}){let t=e.fetchImpl??fetch,r=e.timeoutMs??_r();return!Number.isFinite(r)||r<=0?t:async(n,s)=>{let i=AbortSignal.timeout(r),o=s?.signal??null,a=o==null?i:AbortSignal.any([o,i]),c=wf(n);try{return await kr(c,r,async()=>await t(n,{...s??{},signal:a}))}catch(l){throw Ra(l)?l:i.aborted&&o?.aborted!==!0?new ot(c,r,{cause:l}):l}}}function wf(e){let t=typeof e=="string"?e:e instanceof URL?e.href:typeof e.url=="string"?e.url:"request";try{return new URL(t).pathname}catch{return t}}var vr="off";var Aa="RED_GITHUB_BUDGET_GATE";function Ga(e){if(e===!0)return"on";if(typeof e!="string")return vr;let t=e.trim().toLowerCase();return t==="on"||t==="enabled"||t==="true"?"on":vr}function os(e){return(e??vr)==="on"}function as(e=process.env){return Ga(e[Aa])}import{execFile as Yf}from"node:child_process";import{promisify as Qf}from"node:util";var at=class extends SyntaxError{line;source;reason;constructor(t,r,n={}){super(t===0?r:`line ${t}: ${r}`,n.cause===void 0?void 0:{cause:n.cause}),this.name="ToonError",this.line=t,this.source=n.source,this.reason=r}};function ve(e,t,r={}){return new at(e,t,r)}var Ef=/(?:^\uFEFF?|\n) *#/,cs=class{value;constructor(t){if(Ef.test(t))throw new TypeError(`Raw string must not contain a line starting with "#": ${JSON.stringify(t)}`);this.value=t}};function Me(e){return e instanceof cs}function Tf(e){return/^[+-]?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function _f(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw ve(0,"number is not representable in TOON");return String(e)}function Sr(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function te(e,t){if(Me(e))return e.value;if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return _f(e);if(typeof e=="string")return vf(e,t);throw ve(0,"not a primitive")}function kf(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function X(e){return kf(e)?e:Rr(e)}function vf(e,t){return ls(e,t)?Rr(e):e}function ls(e,t){return e===""||/^[ \t]|[ \t]$/.test(e)||e==="true"||e==="false"||e==="null"||Tf(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")||e.startsWith("#")}var Oa=/["\\\u0000-\u001f]/g;function Rr(e){return`"${Pa(e)}"`}function Pa(e){let t="",r=0;Oa.lastIndex=0;let n;for(;(n=Oa.exec(e))!==null;){let s=e.charCodeAt(n.index),i;s===34?i='\\"':s===92?i="\\\\":s===10?i="\\n":s===13?i="\\r":s===9?i="\\t":i=`\\u${s.toString(16).padStart(4,"0")}`,t+=e.slice(r,n.index)+i,r=n.index+1}return`${t}${e.slice(r)}`}var Ca={comma:",",tab:" ",pipe:"|"},Sf=Ca.comma;var Ar=1e3,$a=["type","kind","event"],Ve="|";var tk=Symbol("need line");var Of=/[\uD800-\uDFFF]/;function be(e){if(e===null)return null;if(Me(e))return e;if(typeof e=="object"&&e!==null&&"toJSON"in e&&typeof e.toJSON=="function"){let t=e.toJSON();if(t!==e)return be(t)}if(typeof e=="string")return Na(e,"string value"),e;if(typeof e=="boolean")return e;if(typeof e=="number")return Object.is(e,-0)?0:Number.isFinite(e)?e:null;if(typeof e=="bigint")return e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER?Number(e):e.toString();if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(be);if(e instanceof Set)return Array.from(e,be);if(e instanceof Map){let t={};for(let[r,n]of e)Gt(t,String(r),be(n));return t}if(J(e)){let t={};for(let r of Object.keys(e))Na(r,"object key"),Gt(t,r,be(e[r]));return t}return null}function Na(e,t){if(Of.test(e))for(let r=0;r<e.length;r+=1){let n=e.charCodeAt(r);if(n<55296||n>57343)continue;let s=e.charCodeAt(r+1);if(n<=56319&&s>=56320&&s<=57343){r+=1;continue}throw new TypeError(`Cannot encode ${t} containing an unpaired surrogate U+${n.toString(16).toUpperCase()} at index ${r}`)}}function J(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function le(e){return e===null||Me(e)||["string","number","boolean"].includes(typeof e)}function Gt(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function La(e){return encodeURIComponent(e)}function Da(e){if(!J(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[s,i]of t){let o=Cf(i);if(o===void 0)return;r.push([s,o])}let n=[];for(let[s,i]of r)Nf(n,s,i);return n.join("")}function Cf(e){if(!Array.isArray(e)||e.length===0||!e.every(J))return;let t=$f(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=xf(r);if(n===void 0)return;let s=If(e,t),i=new Map;for(let a of e){let c=a[t];i.has(c)||i.set(c,[]);let l={};for(let[d,p]of Object.entries(a))if(d!==t&&!s.includes(d)&&!us(p,d,l))return;i.get(c).push(l)}let o=[];for(let a of n.cycle){let c=i.get(a),l=qf(c);if(l===void 0||l.length===0)return;o.push({fields:l,label:a,rows:c})}return{common:s,commonRows:e.map(a=>Object.fromEntries(s.map(c=>[c,a[c]]))),discriminator:t,groups:o,order:n,rows:e}}function $f(e){return $a.find(t=>e.every(r=>typeof r[t]=="string"))}function xf(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((o,a)=>o===r[a%t]))continue;let n=e.length/t;if(n<3)continue;let s=e.map(La).join(","),i=`cycle(${r.map(La).join(",")})*${n}`;if(i.length<=s.length*.4)return{cycle:r,encoded:i,repeats:n}}}function If(e,t){let r=[],n=Object.keys(e[0]),s=n.indexOf(t)+1;for(let i of n.slice(s).filter(o=>o!==t)){if(!Lf(i)||!e.every(o=>Object.prototype.hasOwnProperty.call(o,i))||!e.every(o=>Sr(o[i])))break;r.push(i)}return r}function Nf(e,t,r){e.push(X(t),`:
|
|
142
142
|
`),e.push(" order: ",te(r.order.encoded,Ve),`
|
|
143
143
|
`),e.push(" discriminator: ",te(r.discriminator,Ve),`
|
|
144
144
|
`),e.push(" rows: ",String(r.rows.length),`
|
|
@@ -25,7 +25,7 @@ var GP=Object.create;var Vu=Object.defineProperty;var DP=Object.getOwnPropertyDe
|
|
|
25
25
|
`;return E+=k,a+=1,c+=1,l+=k.length,E},declareLane(b,y){if(d)throw Y(0,"TOONL encoder is closed");let E=wL(y),_=Sd(Yt,E),k=g(b);return ow(k.fields,E)?"":(k.fields=E,sw(b,_))},pushTagged(b,y){if(d)throw Y(0,"TOONL encoder is closed");let E=g(b),_=cw(aw(y),E.fieldsByShape),k=Sd(Yt,_),S=_.map(C=>ve(y[C],Yt)),T="";return ow(E.fields,_)||(E.fields=_,T+=sw(b,k)),`${T}${b}:${S.join(Yt)}
|
|
26
26
|
`},end(){return d?"":(d=!0,f())}}}var lw,uw,dw,Y4,Q4,fw=w(()=>{zt();ga();oo();sn();lw=[Yt,"|"," "],uw=8,dw=/^[A-Za-z0-9_-]+$/,Y4=new TextEncoder,Q4=new TextDecoder});var z,J=w(()=>{ga();oo();Zb();zt();no();ew();oo();eo();sn();ma();ga();tw();fw();z=bd});function SL(e){return e==="no-op"?0:e==="usage"?2:1}function ee(e){return Buffer.from(`${M(Rd(e))}
|
|
27
27
|
`)}function Rd(e){let t={command:e.command,category:e.category,exit_code:e.exitCode??SL(e.category),error:e.error,help:[e.help]};return e.validFlags&&e.validFlags.length>0&&(t.valid_flags=[...e.validFlags]),e.diagnostics&&(t.diagnostics=RL(e.diagnostics,3)),t}function Ue(e,t,r){let s=([r,t].find(i=>i.trim())??"").trim(),o=s.toLowerCase();return/\bgh\b/.test(e)&&eb(s)?{command:e,category:"transient",error:io(s)||"GitHub API rate limit exceeded",help:Zy,diagnostics:s}:/\bgh\b/.test(e)&&(o.includes("gh_token")||o.includes("not logged in")||o.includes("authentication"))?{command:e,category:"real-error",error:io(s)||"GitHub authentication failed",help:"gh auth login",diagnostics:s}:o.includes("not a git repository")?{command:e,category:"real-error",error:io(s)||"not a git repository",help:"git status",diagnostics:s}:o.includes("repository not found")||o.includes("could not resolve host")?{command:e,category:"real-error",error:io(s)||"repository is unavailable",help:e.startsWith("gh ")?"gh repo view":"git remote -v",diagnostics:s}:{command:e,category:"real-error",error:io(s)||"command failed",help:`${e} --help`,diagnostics:s}}function mw(e,t,r,n){return ee({command:e,category:"usage",error:`unknown flag: ${t}`,help:n,validFlags:r})}function io(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function RL(e,t){return e.split(/\r?\n/).slice(0,t).join(`
|
|
28
|
-
`).trim()}var bt=w(()=>{"use strict";tb();J()});function Ea(e){let t={app:e,version:DL(Kn("__RED_BUILD_VERSION__",()=>"4.2.
|
|
28
|
+
`).trim()}var bt=w(()=>{"use strict";tb();J()});function Ea(e){let t={app:e,version:DL(Kn("__RED_BUILD_VERSION__",()=>"4.2.3")??"0.0.0-dev"),gitSha:Kn("__RED_BUILD_GIT_SHA__",()=>"f2b79c64ba689d72a716a967bb82ab75cd2963f2")??"unknown",buildTime:Kn("__RED_BUILD_TIME__",()=>"2026-08-24T03:26:05-03:00")??"unknown",bundleAsset:Kn("__RED_BUNDLE_ASSET__",()=>"rsp-core.bundle.min.mjs")??"unknown"},r=Kn("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=Kn("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function DL(e){return e.startsWith("v")?e.slice(1):e}function Sw(e){return`${e.app} ${e.version} ${e.gitSha}`}function Kn(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Td=w(()=>{});import{isAbsolute as NL,join as Qt,resolve as xd}from"node:path";function ML(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}function vw(e){return Qt(ML(e),Rw)}function Tw(e){return Qt(vw(e),"state")}function xw(e){return Qt(vw(e),"tmp")}function ce(e){return Qt(Tw(e),"rsp")}function BL(e){return Qt(Tw(e),"red-skills.rdb")}function jL(e){return Qt(xw(e),"red-skills.rdb")}function Cw(e,t){let r=BL(e);if(t(r))return r;let n=jL(e);if(t(n))throw qL();return r}function qL(){return new Error("Legacy shared store found at .red/tmp/red-skills.rdb. Run `rsp setup` to migrate it to .red/state/red-skills.rdb before using rsp, memory, or brain.")}function Pw(e){return Qt(xw(e),"waits")}function Iw(e){let t=e.overrideEnvVars??Od;for(let n of t){let s=e.env[n];if(s)return NL(s)?s:xd(e.startDir,s)}let r=xd(e.startDir);for(;;){if(e.exists(Qt(r,Rw)))return r;let n=Qt(r,".."),s=xd(n);if(s===r)break;r=s}return e.startDir}var Rw,$L,FL,Od,Ow,Aw,et=w(()=>{Rw=".red",$L="MEMORY_ROOT",FL="RED_BRAIN_ROOT",Od=[$L,FL];Ow=".red/state/red-skills.rdb";Aw=".red/tmp/red-skills.rdb"});function ge(e){return M(e)}var UL,HL,U3,Xt=w(()=>{J();et();UL=[{id:"memory.config",plugin:"memory",legacyPath:".red/memory/config.json",toonPath:".red/memory/config.toon",kind:"toon"}],HL=[{id:"dev.afk-history",plugin:"dev",legacyPath:".red/state/afk-history.jsonl",toonPath:".red/state/castle/history.toonl",kind:"toonl"},{id:"dev.agent-log",plugin:"dev",legacyPath:".red/tmp/agent.log.toonl",toonPath:".red/tmp/agent.log.toonl",kind:"toonl"},{id:"dev.supervisor-firehose",plugin:"dev",legacyPath:".red/tmp/afk-supervisor.log.toonl",toonPath:".red/tmp/supervisors/default/supervisor.log.toonl",kind:"toonl",migration:"sniff-read"},{id:"dev.code-understanding-bench-runs",plugin:"dev",legacyPath:".red/tmp/bench/code-understanding/runs.jsonl",toonPath:".red/tmp/bench/code-understanding/runs.toonl",kind:"toonl"},{id:"dev.attempt-state",plugin:"dev",legacyPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",toonPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",kind:"toon"},{id:"dev.statusline-count-cache",plugin:"dev",legacyPath:".red/tmp/statusline-cache.json",toonPath:".red/state/statusline/statusline-cache.toon",kind:"toon"},{id:"dev.statusline-repo-cache",plugin:"dev",legacyPath:".red/tmp/statusline-repo-cache.json",toonPath:".red/state/statusline/statusline-repo-cache.toon",kind:"toon"},{id:"dev.rsp-resident-registry",plugin:"dev",legacyPath:".red/state/rsp/rsp-resident.pid.json",toonPath:".red/state/rsp/rsp-resident.pid.toon",kind:"toon"},{id:"dev.rsp-status-summary",plugin:"dev",legacyPath:".red/state/rsp/rsp-status-summary.json",toonPath:".red/state/rsp/rsp-status-summary.toon",kind:"toon"},{id:"dev.rsp-wait-registry",plugin:"dev",legacyPath:".red/tmp/waits/*.json",toonPath:".red/tmp/waits/*.toon",kind:"toon"}],U3=[...UL,...HL]});function ao(e){let{values:t,rest:r}=Zr(e,{query:Lw.query},Gw);return{argv:r,query:t.query?.trim()||void 0}}function Dw(e){let{values:t,rest:r}=Zr(e,Lw,Gw);return{argv:r,query:t.query?.trim()||void 0,full:t.full===!0}}function WL(e,t){if(!t)return!0;let r=Ad(e).toLowerCase();return t.toLowerCase().split(/\s+/).filter(Boolean).every(n=>r.includes(n))}function Le(e,t){return t?e.filter(r=>WL(r,t)):[...e]}function Zt(e,t){return Cd(e,t,{includeLegacyHelp:!0})}function Cd(e,t,r={}){let n=t.filter(Boolean);return n.length===0?e:{...e,...r.includeLegacyHelp?{help:n}:{},next_steps:n}}function Ad(e){return Array.isArray(e)?e.map(Ad).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(Ad).join(" "):String(e??"")}var Lw,Gw,co=w(()=>{"use strict";Yu();Lw={query:{kind:"value",coerce:e=>e},full:{kind:"boolean"}},Gw={stopAtSeparator:!1}});var Aa={};se(Aa,{DEFAULT_RSP_MAX_OVERHEAD_MS:()=>ka,DEFAULT_RSP_MAX_SELF_STATE_BYTES:()=>Sa,DEFAULT_RSP_OVERHEAD_CEILING:()=>er,DEFAULT_RSP_OVERHEAD_CONSECUTIVE_BREACHES:()=>va,DEFAULT_RSP_OVERHEAD_COOLDOWN_MS:()=>Ta,DEFAULT_RSP_OVERHEAD_NET_LOSS_FLOOR_BYTES:()=>Ra,RSP_OVERHEAD_FAMILIES:()=>XL,RSP_OVERHEAD_LEDGER_FILE:()=>Fw,RSP_OVERHEAD_SCHEMA_VERSION:()=>Mw,classifyOverheadSample:()=>Ld,noteChildProcessMs:()=>jw,noteSelfStateBytesRead:()=>uo,overheadCounters:()=>Fd,overheadFamilyDisabled:()=>ZL,overheadHealth:()=>wr,overheadLedgerPath:()=>Gd,overheadMsOf:()=>Bw,overheadTelemetryFields:()=>xa,readOverheadLedger:()=>lo,readSelfStateFile:()=>Oa,readSelfStateFileSync:()=>rG,recordOverheadSample:()=>Dd,resetOverheadCounters:()=>tG,resetOverheadLedger:()=>eG,startChildProcessTimer:()=>tt});import{existsSync as VL,mkdirSync as JL,readFileSync as Nw,renameSync as KL,writeFileSync as zL}from"node:fs";import{readFile as YL}from"node:fs/promises";import{dirname as QL,join as $w}from"node:path";function Bw(e){let t=e.wrapperMs-e.childMs;return Number.isFinite(t)?Math.max(0,Id(t)):0}function Ld(e,t=er){let r=Bw(e),n=[];return r>t.maxOverheadMs&&n.push("wall-clock-ceiling"),e.selfStateBytesRead>t.maxSelfStateBytes&&n.push("self-state-byte-ceiling"),e.selfStateBytesRead>t.netLossFloorBytes&&e.selfStateBytesRead>e.bytesSaved&&n.push("overhead-exceeds-savings"),{overhead_ms:r,breached:n.length>0,reasons:n}}function xa(e,t=er){let r=Ld(e,t);return{wrapper_ms:Id(e.wrapperMs),overhead_ms:r.overhead_ms,child_ms:Id(Math.max(0,e.childMs)),self_state_bytes_read:Math.max(0,Math.trunc(e.selfStateBytesRead)),bytes_saved:Math.max(0,Math.trunc(e.bytesSaved)),overhead_breached:r.breached,overhead_breach_reasons:r.reasons.join(",")}}function Gd(e){return $w(ce(e),Fw)}function lo(e){try{let t=Nw(Gd(e),"utf8"),r=iG(t);if(aG(r))return r}catch{}return{version:1,families:{}}}function Dd(e,t,r=er,n=Date.now()){let s=lo(e),o=Ld(t,r),i=s.families[t.family]??oG(t.family,n),a=Md(i,n)?qw(i):i,c=o.breached?a.consecutive_breaches+1:0,l={...a,family:t.family,invocations:a.invocations+1,breaches:a.breaches+(o.breached?1:0),consecutive_breaches:c,breached:o.breached,reasons:o.reasons,last_overhead_ms:o.overhead_ms,last_self_state_bytes_read:Math.max(0,Math.trunc(t.selfStateBytesRead)),last_bytes_saved:Math.max(0,Math.trunc(t.bytesSaved)),updated_at:new Date(n).toISOString()};return o.breached?c>=r.consecutiveBreaches&&(l.disabled=!0,l.disabled_at=new Date(n).toISOString(),l.disabled_until=new Date(n+r.cooldownMs).toISOString(),l.disabled_reason=nG(t.family,c,o,r)):(l.disabled=!1,l.disabled_at=null,l.disabled_until=null,l.disabled_reason=null),s.families[t.family]=l,Uw(e,s),l}function ZL(e,t,r=Date.now()){let n=lo(e).families[t];return!n?.disabled||Md(n,r)?null:n}function eG(e,t){let r=lo(e);return t?delete r.families[t]:r.families={},Uw(e,r),r}function wr(e,t=er,r=Date.now()){let n=Object.values(lo(e).families).map(a=>Md(a,r)?qw(a):a).sort((a,c)=>a.family.localeCompare(c.family)),s=n.filter(a=>a.disabled),o=n.filter(a=>a.consecutive_breaches>0),i=s.length>0||o.length>0?"red":"green";return{schema_version:Mw,verdict:i,summary:sG(i,s,o),ceiling:t,breaching_families:o,disabled_families:s,families:n}}function uo(e){Number.isFinite(e)&&e>0&&(Nd+=e)}function jw(e){Number.isFinite(e)&&e>0&&($d+=e)}function Fd(){return{selfStateBytesRead:Nd,childMs:$d}}function tG(){Nd=0,$d=0}function tt(){let e=process.hrtime.bigint(),t=!1;return()=>{t||(t=!0,jw(Number(process.hrtime.bigint()-e)/1e6))}}async function Oa(e){let t=await YL(e,"utf8");return uo(Buffer.byteLength(t)),t}function rG(e){let t=Nw(e,"utf8");return uo(Buffer.byteLength(t)),t}function nG(e,t,r,n){let s=r.reasons.map(o=>o==="wall-clock-ceiling"?`added ${r.overhead_ms}ms > ${n.maxOverheadMs}ms`:o==="self-state-byte-ceiling"?`self-state read > ${n.maxSelfStateBytes}B`:"self-state read exceeded bytes saved").join("; ");return`rsp ${e} exceeded its overhead ceiling on ${t} consecutive invocations (${s}); wrapper self-disabled, commands pass through raw`}function sG(e,t,r){if(e==="green")return"every wrapper family is inside its overhead ceiling";let n=[];return t.length>0&&n.push(`self-disabled: ${t.map(s=>`${s.family} (${s.reasons.join(",")||"ceiling"})`).join(", ")}`),r.length>0&&n.push(`breaching: ${r.map(s=>`${s.family} x${s.consecutive_breaches}`).join(", ")}`),n.join("; ")}function Md(e,t){if(!e.disabled||!e.disabled_until)return!1;let r=Date.parse(e.disabled_until);return Number.isFinite(r)&&r<=t}function qw(e){return{...e,disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,consecutive_breaches:0,breached:!1,reasons:[]}}function oG(e,t){return{family:e,invocations:0,breaches:0,consecutive_breaches:0,breached:!1,reasons:[],disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,last_overhead_ms:0,last_self_state_bytes_read:0,last_bytes_saved:0,updated_at:new Date(t).toISOString()}}function Uw(e,t){try{let r=Gd(e);if(!VL($w(e,".red")))return;JL(QL(r),{recursive:!0});let n=`${r}.${process.pid}.tmp`;zL(n,`${M(t)}
|
|
29
29
|
`,{encoding:"utf8",mode:384}),KL(n,r)}catch{}}function iG(e){try{return JSON.parse(e)}catch{return z(e)}}function aG(e){return!Pd(e)||e.version!==1||!Pd(e.families)?!1:Object.values(e.families).every(cG)}function cG(e){return Pd(e)&&typeof e.family=="string"&&typeof e.consecutive_breaches=="number"&&typeof e.disabled=="boolean"}function Pd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Id(e){return Number.isFinite(e)?Math.round(e*1e3)/1e3:0}var Fw,Mw,ka,Sa,Ra,va,Ta,XL,er,Nd,$d,we=w(()=>{"use strict";et();J();Fw="overhead-budget.toon",Mw="red.rsp.overhead.v1",ka=250,Sa=1024*1024,Ra=64*1024,va=3,Ta=6*60*60*1e3,XL=["git","gh","gh-api-json","vitest","cargo","cat","exec","proxy"],er={maxOverheadMs:ka,maxSelfStateBytes:Sa,netLossFloorBytes:Ra,consecutiveBreaches:va,cooldownMs:Ta};Nd=0,$d=0});function Vw(e){return e.trimStart().startsWith("{")?"json":"toon"}function jd(e){let t=0;for(;e[t]===`
|
|
30
30
|
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=Vw(r);if(n==="json"){let o=r.indexOf(`
|
|
31
31
|
`);return o<0?null:{frame:r.slice(0,o),dialect:n,rest:r.slice(o+1)}}let s=r.indexOf(`
|
package/dist/rsp.bundle.min.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
3
3
|
import{spawn as L}from"node:child_process";import{isUtf8 as te}from"node:buffer";async function _(e,n=t=>t){let t=[],r=[];return e.stdout?.on("data",i=>t.push(Buffer.from(i))),e.stderr?.on("data",i=>r.push(Buffer.from(i))),await new Promise(i=>{let c=!1,o=async(a,s)=>{if(c)return;c=!0;let l=Buffer.concat(t),u=l;if(l.length>0&&te(l))try{u=await n(l)}catch{}if(process.stdout.write(u),process.stderr.write(Buffer.concat(r)),s){process.kill(process.pid,s),i(128);return}i(a??0)};e.once("error",a=>{r.push(Buffer.from(`${a instanceof Error?a.message:String(a)}
|
|
4
|
-
`)),o(127,null)}),e.once("close",(a,s)=>void o(a,s))})}var re=new Set(["dashboard","stats","gains","show","git","gh","vitest","cargo","cat","exec","wait","doctor","status","sweep","setup","mcp","shell-init","server","warm-resident","gh-api-json","hook"]);function R(e){let n=e[0];if(n==="--full"||n==="--brief"||n==="--terse")return e[1]!=="--"||!e[2]?null:{kind:"argv",argv:[...e.slice(2)],level:n.slice(2)};if(!n||n.startsWith("-"))return n!=="--"||!e[1]?null:{kind:"argv",argv:[...e.slice(1)],level:"automatic"};if(n==="proxy"){if(process.env.RSP_PROXY_FAIL_INTERNAL==="1")return null;let t=e.indexOf("--"),r=t>=0?e.slice(1,t):[];if(r.some(a=>a!=="--full"&&a!=="--brief"&&a!=="--terse"))return null;let i=t>=0?e.slice(t+1):e.slice(1);if(i.length!==1||!i[0]?.trim())return null;let c=i[0];if(ie(c))return null;let o=r.includes("--terse")?"terse":r.includes("--brief")?"brief":r.includes("--full")?"full":"automatic";return{kind:"shell",commandLine:c,level:o}}return re.has(n)?null:{kind:"argv",argv:[...e],level:"automatic"}}async function I(e,n){let t=e.kind==="argv"?L(e.argv[0],e.argv.slice(1),{stdio:["inherit","pipe","pipe"]}):L(e.commandLine,{shell:!0,stdio:["inherit","pipe","pipe"]});return await _(t,n)}function ie(e){return/(?:^|&&|\|\||[;|])\s*(?:(?:[A-Za-z_][A-Za-z0-9_]*=[^\s]+|env)\s+)*(?:git\s+(?:status|log|diff|show|blame|branch\s+-av)(?:\s|$)|gh\s+(?:pr|issue|run)\s+(?:list|view)(?:\s|$)|vitest(?:\s|$)|cargo\s+test(?:\s|$)|(?:cat|head|tail)\s+)/.test(e)}function F(e){let n={app:e,version:oe(x("__RED_BUILD_VERSION__",()=>"4.2.
|
|
4
|
+
`)),o(127,null)}),e.once("close",(a,s)=>void o(a,s))})}var re=new Set(["dashboard","stats","gains","show","git","gh","vitest","cargo","cat","exec","wait","doctor","status","sweep","setup","mcp","shell-init","server","warm-resident","gh-api-json","hook"]);function R(e){let n=e[0];if(n==="--full"||n==="--brief"||n==="--terse")return e[1]!=="--"||!e[2]?null:{kind:"argv",argv:[...e.slice(2)],level:n.slice(2)};if(!n||n.startsWith("-"))return n!=="--"||!e[1]?null:{kind:"argv",argv:[...e.slice(1)],level:"automatic"};if(n==="proxy"){if(process.env.RSP_PROXY_FAIL_INTERNAL==="1")return null;let t=e.indexOf("--"),r=t>=0?e.slice(1,t):[];if(r.some(a=>a!=="--full"&&a!=="--brief"&&a!=="--terse"))return null;let i=t>=0?e.slice(t+1):e.slice(1);if(i.length!==1||!i[0]?.trim())return null;let c=i[0];if(ie(c))return null;let o=r.includes("--terse")?"terse":r.includes("--brief")?"brief":r.includes("--full")?"full":"automatic";return{kind:"shell",commandLine:c,level:o}}return re.has(n)?null:{kind:"argv",argv:[...e],level:"automatic"}}async function I(e,n){let t=e.kind==="argv"?L(e.argv[0],e.argv.slice(1),{stdio:["inherit","pipe","pipe"]}):L(e.commandLine,{shell:!0,stdio:["inherit","pipe","pipe"]});return await _(t,n)}function ie(e){return/(?:^|&&|\|\||[;|])\s*(?:(?:[A-Za-z_][A-Za-z0-9_]*=[^\s]+|env)\s+)*(?:git\s+(?:status|log|diff|show|blame|branch\s+-av)(?:\s|$)|gh\s+(?:pr|issue|run)\s+(?:list|view)(?:\s|$)|vitest(?:\s|$)|cargo\s+test(?:\s|$)|(?:cat|head|tail)\s+)/.test(e)}function F(e){let n={app:e,version:oe(x("__RED_BUILD_VERSION__",()=>"4.2.3")??"0.0.0-dev"),gitSha:x("__RED_BUILD_GIT_SHA__",()=>"f2b79c64ba689d72a716a967bb82ab75cd2963f2")??"unknown",buildTime:x("__RED_BUILD_TIME__",()=>"2026-08-24T03:26:05-03:00")??"unknown",bundleAsset:x("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},t=x("__REDDB_SDK_VERSION__",()=>"1.23.1"),r=x("__REDDB_BINARY_TAG__",()=>"v1.23.1");return t&&(n.reddbSdkVersion=t),r&&(n.reddbBinaryTag=r),n}function oe(e){return e.startsWith("v")?e.slice(1):e}function N(e){return`${e.app} ${e.version} ${e.gitSha}`}function x(e,n){try{let t=n();return typeof t=="string"&&t.length>0?t:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var D={"=":"data",":=":{to:"data",typed:!0},":":"meta"},se=/^[a-z][a-z0-9+.-]*:\/\//i;function ce(e,n){return typeof n=="string"?{separator:e,to:n,typed:!1,prefix:!1}:{separator:e,to:n.to,typed:n.typed??!1,prefix:n.prefix??!1}}function ae(e=D){return Object.entries(e).map(([n,t])=>ce(n,t)).sort((n,t)=>t.separator.length-n.separator.length)}function ue(e){return/^-\d+(\.\d+)?$/.test(e)}function O(e){return!(!e||e.startsWith("-")&&!ue(e))}function k(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let n=Number(e);return!Number.isNaN(n)&&Number.isFinite(n)&&e.trim()!==""?n:e}function P(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 n=Number(e);return!Number.isNaN(n)&&Number.isFinite(n)&&e.trim()!==""?n:e.includes(",")?e.split(",").map(t=>P(t.trim())):e}function w(e,n){switch(n){case"boolean":return le(e);case"number":return fe(e);case"array":return e.split(",").map(t=>k(t.trim()));case"string":default:return e}}function le(e){let n=e.toLowerCase().trim();return n==="true"||n==="yes"||n==="1"||n==="on"}function fe(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let n=Number(e);if(Number.isNaN(n))throw new TypeError(`Cannot convert "${e}" to number`);return n}function b(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function de(e,n={}){return e.map(t=>{let r=n[t.type];return r?r(t.value):t.value}).join("")}function d(e,n){return{type:e,value:n}}function pe(e){let n=[],t=he(e);if(n.push(d("section-header","Usage:"),d("text"," "),d("usage-text",t),d("newline",`
|
|
5
5
|
`),d("newline",`
|
|
6
6
|
`)),e.positional&&e.positional.length>0){n.push(d("section-header","Arguments:"),d("newline",`
|
|
7
7
|
`));for(let r of e.positional)if(r.description){let i=r.variadic?`${r.name}...`:r.name;n.push(d("indent"," "),d("positional-name",`<${i}>`)),r.required||n.push(d("positional-optional"," (optional)")),n.push(d("newline",`
|
|
@@ -43,7 +43,7 @@ var Ol=Object.create;var Ao=Object.defineProperty;var Dl=Object.getOwnPropertyDe
|
|
|
43
43
|
`))}if(e.options&&Object.keys(e.options).length>0){t.push(A("section-header","Options:"),A("newline",`
|
|
44
44
|
`));let n=Zm(e.options);t.push(...n)}return t}function Qm(e,t){let r=Ym(e);return zm(r,t)}function Xm(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 Zm(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[u,c]of Object.entries(e)){if(c.hidden)continue;let p=[],g=S=>{p.includes(S)||p.push(S)};c.short&&g(`-${c.short}`),g(`--${u}`);for(let S of c.aliases??[])S.length===1?g(`-${S}`):g(`--${S}`);let b=p.join(", "),_=c.type&&c.type!=="boolean"?`<${c.type}>`:void 0;n.push({flags:b,type:_,desc:c.description??"",default:c.default!==void 0?String(c.default):void 0})}let l=Math.max(...n.map(u=>u.flags.length+(u.type?u.type.length+1:0)),20);for(let u of n){let c=u.flags.length+(u.type?u.type.length+1:0),p=" ".repeat(l-c+2);r.push(A("indent"," ")),r.push(A(o,u.flags)),u.type&&(r.push(A("text"," ")),r.push(A(s,u.type))),r.push(A("text",p)),r.push(A(a,u.desc)),u.default!==void 0&&(r.push(A("text"," ")),r.push(A(i,`(default: ${u.default})`))),r.push(A("newline",`
|
|
45
45
|
`))}return r}function Xa(e){let t=af(e.options??{},e.autoShort??!1),r=qm(e.separators??Ya);return{schema:e,parse(n){return ef(n,e,t,r)},help(){return Qm(e,e.formatter)}}}function ef(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,u=!1;for(;l<e.length;){let c=e[l];if(t.stopEarly&&i>0){o.rest=e.slice(l);break}if(c==="--"&&!u){u=!0,l++;continue}if(u){if(i<a.length){let g=a[i];if(g.variadic){let b=[];for(;l<e.length;){let _=e[l];b.push(g.type?je(_,g.type):_),l++}o.positional[g.name]=b,i++}else{let b=g.type?je(c,g.type):c;o.positional[g.name]=b,i++,l++}}else t.allowUnknown!==!1&&(o.rest=o.rest??[],o.rest.push(c)),l++;continue}if(c.startsWith("--")){l=of(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!pf(c)){l=sf(c,l,e,o,r,t);continue}let p=tf(c,n);if(p){let{key:g,value:b,config:_}=p,S=o,v=S[_.to]??(S[_.to]={});v[g]=_.typed?Qa(b):ke(b),l++;continue}if(i<a.length){let g=a[i];if(g.variadic){let _=[];for(;l<e.length&&!e[l].startsWith("-");){let S=e[l];_.push(g.type?je(S,g.type):S),l++}o.positional[g.name]=_,i++;continue}let b=g.type?je(c,g.type):c;o.positional[g.name]=b,i++}else t.allowUnknown!==!1?o.rest.push(c):o.errors.push(`Unexpected positional argument: ${c}`);l++}return df(o,t,r),uf(o,t,a),cf(o,t,r),o}function tf(e,t){if(Hm.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(rf(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(nf(o,s,r))return{key:o,value:s,config:r}}}return null}function rf(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function nf(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 of(e,t,r,n,o,s){let i=e.slice(2);if(i.startsWith("no-")){let l=i.slice(3),u=o.get(l);if(u?.negatable!==!1&&u?.type==="boolean")return n.options[u.name]=!1,t+1}if(i.includes("=")){let l=i.indexOf("="),u=i.slice(0,l),c=i.slice(l+1);return rr(u,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return mt(l)?rr(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 sf(e,t,r,n,o,s){let i=e.slice(1);if(i.includes("=")){let a=i.indexOf("="),l=i.slice(0,a),u=i.slice(a+1),c=Xn(l,o);return c?rr(c.name,u,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=tr(ke(u))),t+1)}if(i.length===1){let a=Xn(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return mt(l)?rr(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(mt(l))return n.options[i]=tr(ke(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=Xn(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 rr(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?je(ke(t),i.type):ke(t);if(!i.choices.includes(l))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?je(ke(t),i.type):ke(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]=tr(ke(t)));return r}function af(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=lf(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 u of l.aliases)r.set(u,l)}return r}function lf(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 Xn(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function df(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?je(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 uf(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 cf(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 pf(e){return/^-\d+(\.\d+)?$/.test(e)}var Zn=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 mf(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 ff(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&&mt(e[o+1])&&(l=e[o+1],o+=1),l===void 0)continue;let u=n.get(a)??[];u.push(l),n.set(a,u)}return n}function Za(e,t,r={}){let o=Xa({options:mf(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=ff(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 u of Object.keys(o.options))if(!l.has(u))throw new Zn(u.length===1?`-${u}`:`--${u}`,Object.keys(t).map(c=>c.length===1?`-${c}`:`--${c}`))}for(let[l,u]of Object.entries(t)){let c=o.options[l];c!==void 0&&(u.kind==="boolean"?s[l]=c:u.type==="array"?s[l]=(i.get(l)??[]).map(p=>u.coerce(p)):s[l]=u.coerce(String(c)))}return{values:s,positionals:o.rest}}import{existsSync as gf,readFileSync as Yx}from"node:fs";import{dirname as hf,join as yf}from"node:path";function el(e,t){let r=e;for(let n=0;n<16;n++){let o=yf(r,t);if(gf(o))return o;let s=hf(r);if(s===r)break;r=s}return null}function bf(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function nr(e,t){let r=[];for(let n of e.split(`
|
|
46
|
-
`)){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 u=o.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:l}),u&&r.map(p=>p.key).join(".")===t)return bf(u)}}var _f="plugins.dev.statusline",kf="dev.statusline";function Rf(e){let t=[],r=a=>{for(let l of[_f,kf]){let u=`${l}.${a}`,c=nr(e,u)?.trim();if(c!=null&&c!=="")return{key:u,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 u=Number(l.value);Number.isInteger(u)&&u>=0?a.assign(u):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 wf={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 tl(e){let{values:t,positionals:r}=Za(e,wf),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 u=Number(l);Number.isInteger(u)&&u>=0?a.assign(u):n.push({key:`--${a.flag}`,value:l,reason:"expected a whole number of zero or more"})}return{flags:o,warnings:n}}function rl(e={}){let t=e.configText==null?{config:{},warnings:[]}:Rf(e.configText),r=e.flags??{};return{options:{...C,mode:r.mode??t.config.mode??e.defaultMode??C.mode,project:r.project!==void 0?r.project:e.project??C.project,maxWorkers:r.maxWorkers??t.config.maxWorkers??C.maxWorkers,maxProjects:r.maxProjects??t.config.maxProjects??C.maxProjects,maxWidth:r.maxWidth??t.config.maxWidth??C.maxWidth,verbose:r.verbose??t.config.verbose??C.verbose},warnings:t.warnings}}import{execFileSync as Gf}from"node:child_process";import{readFileSync as $f}from"node:fs";import{dirname as ll,join as jf}from"node:path";import{createHash as Ef}from"node:crypto";var Sf="project.name";function ol(e){let t=nr(e,Sf)?.trim();return t===void 0||t===""?void 0:t}var vf=8,sl="project";function il(e){let t=Of(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:Tf(e.remoteUrl)??{name:xf(e.checkoutPath,t),source:"basename"},o=Pf(t??eo(e.checkoutPath));return{name:n.name,slug:`${Af(n.name)}-${o}`,hash:o,source:n.source}}function al(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 Tf(e){let t=al(e);return t===void 0?void 0:{name:t,source:"remote"}}function xf(e,t){let r=t===void 0?"":nl(Df(t));if(r!=="")return r;let n=nl(eo(e));return n===""?sl:n}function Af(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?sl:r}function Pf(e){return Ef("sha256").update(e).digest("hex").slice(0,vf)}function Of(e){let t=eo(e??"");return t===""?void 0:t}function eo(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function nl(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function Df(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var If=2e3;function dl(e){return Lf(e).name}function Lf(e){let t=ro(e),r=to(e,["rev-parse","--path-format=absolute","--git-common-dir"])??to(e,["rev-parse","--git-common-dir"]),n=to(e,["remote","get-url","origin"]);return il({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function ro(e){let t=el(e,jf(".red","config.yaml"));if(t==null)return{};let r;try{r=$f(t,"utf8")}catch{return{}}let n=ol(r),o=ll(ll(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function to(e,t){try{let r=Gf("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:If}).trim();return r===""?void 0:r}catch{return}}function ul(e){let t=ro(e);return t.configText==null?{label:null}:{configText:t.configText,label:dl(e)}}function cl(e){let t={app:e,version:Cf(Je("__RED_BUILD_VERSION__",()=>"4.2.2")??"0.0.0-dev"),gitSha:Je("__RED_BUILD_GIT_SHA__",()=>"7987571cbdf0bcff8c6055b1e039dbacce845e94")??"unknown",buildTime:Je("__RED_BUILD_TIME__",()=>"2026-08-24T02:55:09-03:00")??"unknown",bundleAsset:Je("__RED_BUNDLE_ASSET__",()=>"statusline.bundle.min.mjs")??"unknown"},r=Je("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=Je("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function Cf(e){return e.startsWith("v")?e.slice(1):e}function Je(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}import{execFile as Nf}from"node:child_process";import{mkdirSync as Mf,readFileSync as Ff,renameSync as Bf,writeFileSync as Uf}from"node:fs";import{basename as no,dirname as ml,join as Hf}from"node:path";async function Wf(e,t,r){let n,o=new Promise(s=>{n=setTimeout(()=>s(r),t)});try{return await Promise.race([e,o])}finally{clearTimeout(n)}}function qf(e){try{return JSON.parse(e)}catch{return K(e)}}var Kf=5e3,Vf=400;function Jf(e){return Hf(Hs(e),"statusline-git-cache.toon")}function zf(e){try{return Ff(e,"utf8")}catch{return null}}function Yf(e,t){try{Mf(ml(e),{recursive:!0});let r=`${e}.tmp`;Uf(r,t,"utf8"),Bf(r,e)}catch{}}function Qf(e){if(e===null)return null;try{let t=qf(e),r={basename:typeof t.basename=="string"?t.basename:"",localAdded:Number(t.localAdded??0),localRemoved:Number(t.localRemoved??0),baseRef:typeof t.baseRef=="string"?t.baseRef:"",tsMs:Number(t.tsMs??0)};return typeof t.branch=="string"&&t.branch!==""&&(r.branch=t.branch),typeof t.detachedSha=="string"&&t.detachedSha!==""&&(r.detachedSha=t.detachedSha),r.basename===""?null:r}catch{return null}}function pl(e){let t={basename:e.basename,localAdded:e.localAdded,localRemoved:e.localRemoved};return e.branch&&(t.branch=e.branch),e.detachedSha&&(t.detachedSha=e.detachedSha),t}async function ft(e,t){return await new Promise(r=>{Nf("git",["-C",e,...t],{encoding:"utf8",maxBuffer:1024*1024},(n,o)=>r(n?"":String(o).trim()))})}async function Xf(e){let t=no(e),r=await ft(e,["rev-parse","--path-format=absolute","--git-common-dir"]);return r&&no(ml(r))||t}function Zf(e){let t=/(\d+) insertion/.exec(e),r=/(\d+) deletion/.exec(e);return{added:t?Number(t[1]):0,removed:r?Number(r[1]):0}}async function eg(e,t){let[r,n,o,s]=await Promise.all([Xf(e),ft(e,["branch","--show-current"]),ft(e,["rev-parse","--short","HEAD"]),ft(e,["merge-base",t,"HEAD"])]),i=Zf(await ft(e,["diff","--shortstat",s||t])),a={basename:r,localAdded:i.added,localRemoved:i.removed};return n?a.branch=n:o&&(a.detachedSha=o),a}async function fl(e,t={}){let r=(t.nowMs??Date.now)(),n=t.ttlMs??Kf,o=t.baseRef??"origin/main",s=Jf(e),i=Qf((t.readCache??zf)(s)),a=i?r-i.tsMs:Number.POSITIVE_INFINITY;if(i&&i.baseRef===o&&a>=0&&a<n)return pl(i);let l=t.writeCache??Yf,u=(t.readGitFacts??eg)(e,o).then(p=>(l(s,M({...p,baseRef:o,tsMs:r})),p)).catch(()=>null),c=await Wf(u,t.deadlineMs??Vf,null);return c||(i?pl(i):{basename:no(e),localAdded:0,localRemoved:0})}function Re(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function or(e,t){let r=e?.[t];return typeof r=="string"&&r!==""?r:void 0}function sr(e,t){let r=e?.[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function tg(e){if(e.trim()==="")return null;let t;try{t=JSON.parse(e)}catch{return null}let r=Re(t);if(r===null)return null;let n={},o=or(Re(r.model),"display_name");o!==void 0&&(n.model=o);let s=or(Re(r.effort),"level");s!==void 0&&(n.effort=s);let i=Re(r.context_window),a=sr(i,"total_input_tokens");a!==void 0&&(n.contextTokens=a);let l=sr(i,"used_percentage");l!==void 0&&(n.contextPercent=l);let u=Re(r.rate_limits),c=sr(Re(u?.five_hour),"used_percentage");c!==void 0&&(n.usage5h=c);let p=sr(Re(u?.seven_day),"used_percentage");p!==void 0&&(n.usage7d=p);let g=or(Re(r.workspace),"current_dir")??or(r,"cwd");return g===void 0?{claude:n}:{claude:n,cwd:g}}async function gl(e={}){let t=e.stream??process.stdin;if(t.isTTY===!0)return null;let r=e.maxBytes??65536,n=e.deadlineMs??150,o=await new Promise(s=>{let i="",a=!1,l=setTimeout(()=>g(),n),u=b=>{i+=b,i.length>=r&&(i=i.slice(0,r),g())},c=()=>g(),p=()=>g();function g(){a||(a=!0,clearTimeout(l),t.removeListener("data",u),t.removeListener("end",c),t.removeListener("error",p),t.pause(),t.unref?.(),s(i))}try{t.setEncoding("utf8"),t.on("data",u),t.on("end",c),t.on("error",p),t.resume()}catch{g()}});return tg(o)}var ir=`${ee} `,SA=`${ee} \xB7 `;function rg(e){return e.replace(/(^|\s)([A-Za-z0-9][A-Za-z0-9/]*=)(\S+)/g,(t,r,n,o)=>`${r}${Pe}${n}${Oe}${o}${ee}`)}function ng(e){let t=Pn(e.project),r=e.project.basename,n=t.startsWith(r),o=n?r:"",s=n?t.slice(r.length):t;return`${Gn}${$n}\xBB ${Ft}${o}${Bt}${s}${be}`}function hl(e){let t=ng(e),r=vn(e.claude);r!==null&&(t+=`${ir}${Nt}${Mt}${r}${be}`);let n=Tn(e.claude);n!==null&&(t+=`${ir}${Pe}ctx=${Oe}${n}`);let o=xn(e.claude);o!==null&&(t+=`${ir}${rg(o)}`);let s=An(e.localDiff);return s!==null&&(t+=`${ir}${Pe}loc=${Oe}${s.slice(4)}`),`${t}${de}`}async function og(e={}){let t=await(e.readStdin??gl)(),r=t?.cwd??e.cwd??process.cwd(),n=await(e.readLocalGit??fl)(r),o=e.version??cl("redskilled").version,s={basename:n.basename};n.branch?s.branch=n.branch:n.detachedSha&&(s.detachedSha=n.detachedSha),o&&(s.version=o);let i=t?.claude,a={project:s,localDiff:{localAdded:n.localAdded,localRemoved:n.localRemoved}};return i!==void 0&&(a.claude=i),a}function sg(e,t=process.env){return t.NO_COLOR!==void 0?aa(e):hl(e)}async function yl(e,t={}){let r=await og(t);return la(sg(r,t.env??process.env),e)}async function bl(e,t={}){let r=t.write??(u=>process.stdout.write(u)),n=t.warn??(u=>process.stderr.write(u)),o=tl(e),s=ul(t.cwd??process.cwd()),i=rl({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let u of[...i.warnings,...o.warnings])n(`redskilled statusline: ignoring ${u.key}=${u.value} \u2014 ${u.reason}
|
|
46
|
+
`)){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 u=o.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:l}),u&&r.map(p=>p.key).join(".")===t)return bf(u)}}var _f="plugins.dev.statusline",kf="dev.statusline";function Rf(e){let t=[],r=a=>{for(let l of[_f,kf]){let u=`${l}.${a}`,c=nr(e,u)?.trim();if(c!=null&&c!=="")return{key:u,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 u=Number(l.value);Number.isInteger(u)&&u>=0?a.assign(u):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 wf={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 tl(e){let{values:t,positionals:r}=Za(e,wf),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 u=Number(l);Number.isInteger(u)&&u>=0?a.assign(u):n.push({key:`--${a.flag}`,value:l,reason:"expected a whole number of zero or more"})}return{flags:o,warnings:n}}function rl(e={}){let t=e.configText==null?{config:{},warnings:[]}:Rf(e.configText),r=e.flags??{};return{options:{...C,mode:r.mode??t.config.mode??e.defaultMode??C.mode,project:r.project!==void 0?r.project:e.project??C.project,maxWorkers:r.maxWorkers??t.config.maxWorkers??C.maxWorkers,maxProjects:r.maxProjects??t.config.maxProjects??C.maxProjects,maxWidth:r.maxWidth??t.config.maxWidth??C.maxWidth,verbose:r.verbose??t.config.verbose??C.verbose},warnings:t.warnings}}import{execFileSync as Gf}from"node:child_process";import{readFileSync as $f}from"node:fs";import{dirname as ll,join as jf}from"node:path";import{createHash as Ef}from"node:crypto";var Sf="project.name";function ol(e){let t=nr(e,Sf)?.trim();return t===void 0||t===""?void 0:t}var vf=8,sl="project";function il(e){let t=Of(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:Tf(e.remoteUrl)??{name:xf(e.checkoutPath,t),source:"basename"},o=Pf(t??eo(e.checkoutPath));return{name:n.name,slug:`${Af(n.name)}-${o}`,hash:o,source:n.source}}function al(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 Tf(e){let t=al(e);return t===void 0?void 0:{name:t,source:"remote"}}function xf(e,t){let r=t===void 0?"":nl(Df(t));if(r!=="")return r;let n=nl(eo(e));return n===""?sl:n}function Af(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?sl:r}function Pf(e){return Ef("sha256").update(e).digest("hex").slice(0,vf)}function Of(e){let t=eo(e??"");return t===""?void 0:t}function eo(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function nl(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function Df(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var If=2e3;function dl(e){return Lf(e).name}function Lf(e){let t=ro(e),r=to(e,["rev-parse","--path-format=absolute","--git-common-dir"])??to(e,["rev-parse","--git-common-dir"]),n=to(e,["remote","get-url","origin"]);return il({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function ro(e){let t=el(e,jf(".red","config.yaml"));if(t==null)return{};let r;try{r=$f(t,"utf8")}catch{return{}}let n=ol(r),o=ll(ll(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function to(e,t){try{let r=Gf("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:If}).trim();return r===""?void 0:r}catch{return}}function ul(e){let t=ro(e);return t.configText==null?{label:null}:{configText:t.configText,label:dl(e)}}function cl(e){let t={app:e,version:Cf(Je("__RED_BUILD_VERSION__",()=>"4.2.3")??"0.0.0-dev"),gitSha:Je("__RED_BUILD_GIT_SHA__",()=>"f2b79c64ba689d72a716a967bb82ab75cd2963f2")??"unknown",buildTime:Je("__RED_BUILD_TIME__",()=>"2026-08-24T03:26:05-03:00")??"unknown",bundleAsset:Je("__RED_BUNDLE_ASSET__",()=>"statusline.bundle.min.mjs")??"unknown"},r=Je("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=Je("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function Cf(e){return e.startsWith("v")?e.slice(1):e}function Je(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}import{execFile as Nf}from"node:child_process";import{mkdirSync as Mf,readFileSync as Ff,renameSync as Bf,writeFileSync as Uf}from"node:fs";import{basename as no,dirname as ml,join as Hf}from"node:path";async function Wf(e,t,r){let n,o=new Promise(s=>{n=setTimeout(()=>s(r),t)});try{return await Promise.race([e,o])}finally{clearTimeout(n)}}function qf(e){try{return JSON.parse(e)}catch{return K(e)}}var Kf=5e3,Vf=400;function Jf(e){return Hf(Hs(e),"statusline-git-cache.toon")}function zf(e){try{return Ff(e,"utf8")}catch{return null}}function Yf(e,t){try{Mf(ml(e),{recursive:!0});let r=`${e}.tmp`;Uf(r,t,"utf8"),Bf(r,e)}catch{}}function Qf(e){if(e===null)return null;try{let t=qf(e),r={basename:typeof t.basename=="string"?t.basename:"",localAdded:Number(t.localAdded??0),localRemoved:Number(t.localRemoved??0),baseRef:typeof t.baseRef=="string"?t.baseRef:"",tsMs:Number(t.tsMs??0)};return typeof t.branch=="string"&&t.branch!==""&&(r.branch=t.branch),typeof t.detachedSha=="string"&&t.detachedSha!==""&&(r.detachedSha=t.detachedSha),r.basename===""?null:r}catch{return null}}function pl(e){let t={basename:e.basename,localAdded:e.localAdded,localRemoved:e.localRemoved};return e.branch&&(t.branch=e.branch),e.detachedSha&&(t.detachedSha=e.detachedSha),t}async function ft(e,t){return await new Promise(r=>{Nf("git",["-C",e,...t],{encoding:"utf8",maxBuffer:1024*1024},(n,o)=>r(n?"":String(o).trim()))})}async function Xf(e){let t=no(e),r=await ft(e,["rev-parse","--path-format=absolute","--git-common-dir"]);return r&&no(ml(r))||t}function Zf(e){let t=/(\d+) insertion/.exec(e),r=/(\d+) deletion/.exec(e);return{added:t?Number(t[1]):0,removed:r?Number(r[1]):0}}async function eg(e,t){let[r,n,o,s]=await Promise.all([Xf(e),ft(e,["branch","--show-current"]),ft(e,["rev-parse","--short","HEAD"]),ft(e,["merge-base",t,"HEAD"])]),i=Zf(await ft(e,["diff","--shortstat",s||t])),a={basename:r,localAdded:i.added,localRemoved:i.removed};return n?a.branch=n:o&&(a.detachedSha=o),a}async function fl(e,t={}){let r=(t.nowMs??Date.now)(),n=t.ttlMs??Kf,o=t.baseRef??"origin/main",s=Jf(e),i=Qf((t.readCache??zf)(s)),a=i?r-i.tsMs:Number.POSITIVE_INFINITY;if(i&&i.baseRef===o&&a>=0&&a<n)return pl(i);let l=t.writeCache??Yf,u=(t.readGitFacts??eg)(e,o).then(p=>(l(s,M({...p,baseRef:o,tsMs:r})),p)).catch(()=>null),c=await Wf(u,t.deadlineMs??Vf,null);return c||(i?pl(i):{basename:no(e),localAdded:0,localRemoved:0})}function Re(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function or(e,t){let r=e?.[t];return typeof r=="string"&&r!==""?r:void 0}function sr(e,t){let r=e?.[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function tg(e){if(e.trim()==="")return null;let t;try{t=JSON.parse(e)}catch{return null}let r=Re(t);if(r===null)return null;let n={},o=or(Re(r.model),"display_name");o!==void 0&&(n.model=o);let s=or(Re(r.effort),"level");s!==void 0&&(n.effort=s);let i=Re(r.context_window),a=sr(i,"total_input_tokens");a!==void 0&&(n.contextTokens=a);let l=sr(i,"used_percentage");l!==void 0&&(n.contextPercent=l);let u=Re(r.rate_limits),c=sr(Re(u?.five_hour),"used_percentage");c!==void 0&&(n.usage5h=c);let p=sr(Re(u?.seven_day),"used_percentage");p!==void 0&&(n.usage7d=p);let g=or(Re(r.workspace),"current_dir")??or(r,"cwd");return g===void 0?{claude:n}:{claude:n,cwd:g}}async function gl(e={}){let t=e.stream??process.stdin;if(t.isTTY===!0)return null;let r=e.maxBytes??65536,n=e.deadlineMs??150,o=await new Promise(s=>{let i="",a=!1,l=setTimeout(()=>g(),n),u=b=>{i+=b,i.length>=r&&(i=i.slice(0,r),g())},c=()=>g(),p=()=>g();function g(){a||(a=!0,clearTimeout(l),t.removeListener("data",u),t.removeListener("end",c),t.removeListener("error",p),t.pause(),t.unref?.(),s(i))}try{t.setEncoding("utf8"),t.on("data",u),t.on("end",c),t.on("error",p),t.resume()}catch{g()}});return tg(o)}var ir=`${ee} `,SA=`${ee} \xB7 `;function rg(e){return e.replace(/(^|\s)([A-Za-z0-9][A-Za-z0-9/]*=)(\S+)/g,(t,r,n,o)=>`${r}${Pe}${n}${Oe}${o}${ee}`)}function ng(e){let t=Pn(e.project),r=e.project.basename,n=t.startsWith(r),o=n?r:"",s=n?t.slice(r.length):t;return`${Gn}${$n}\xBB ${Ft}${o}${Bt}${s}${be}`}function hl(e){let t=ng(e),r=vn(e.claude);r!==null&&(t+=`${ir}${Nt}${Mt}${r}${be}`);let n=Tn(e.claude);n!==null&&(t+=`${ir}${Pe}ctx=${Oe}${n}`);let o=xn(e.claude);o!==null&&(t+=`${ir}${rg(o)}`);let s=An(e.localDiff);return s!==null&&(t+=`${ir}${Pe}loc=${Oe}${s.slice(4)}`),`${t}${de}`}async function og(e={}){let t=await(e.readStdin??gl)(),r=t?.cwd??e.cwd??process.cwd(),n=await(e.readLocalGit??fl)(r),o=e.version??cl("redskilled").version,s={basename:n.basename};n.branch?s.branch=n.branch:n.detachedSha&&(s.detachedSha=n.detachedSha),o&&(s.version=o);let i=t?.claude,a={project:s,localDiff:{localAdded:n.localAdded,localRemoved:n.localRemoved}};return i!==void 0&&(a.claude=i),a}function sg(e,t=process.env){return t.NO_COLOR!==void 0?aa(e):hl(e)}async function yl(e,t={}){let r=await og(t);return la(sg(r,t.env??process.env),e)}async function bl(e,t={}){let r=t.write??(u=>process.stdout.write(u)),n=t.warn??(u=>process.stderr.write(u)),o=tl(e),s=ul(t.cwd??process.cwd()),i=rl({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let u of[...i.warnings,...o.warnings])n(`redskilled statusline: ignoring ${u.key}=${u.value} \u2014 ${u.reason}
|
|
47
47
|
`);let a;try{a=await Ka(t.paths??Ja(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(u){n(`redskilled statusline: ${u instanceof Error?u.message:String(u)}
|
|
48
48
|
`),a=Vn({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}let l=a.lines;try{l=await yl(a.lines,{...t.cwd==null?{}:{cwd:t.cwd},...t.bedrock??{}})}catch(u){n(`redskilled statusline: bedrock unavailable \u2014 ${u instanceof Error?u.message:String(u)}
|
|
49
49
|
`)}return r(`${l.join(`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reddb-io/red-skills",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.3",
|
|
4
4
|
"description": "RedSkills core npm package: compatibility bin shims, marketplace manifests, host generators, and non-plugin supporting runtimes. Plugin bundles ship in @reddb-io/red-skills-<plugin> packages (ADR 0146).",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|