@reddb-io/red-skills 2.41.1 → 2.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -74,7 +74,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
74
74
  `:`[${n[c]}\r
75
75
  ]`;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 ${e.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),t.source}return o}function uc(t,e){if(e.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),e.target==="openApi3"&&t.keyType?._def.typeName===D.ZodEnum)return{type:"object",required:t.keyType._def.values,properties:t.keyType._def.values.reduce((n,o)=>({...n,[o]:Q(t.valueType._def,{...e,currentPath:[...e.currentPath,"properties",o]})??Be(e)}),{}),additionalProperties:e.rejectedAdditionalProperties};let r={type:"object",additionalProperties:Q(t.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??e.allowedAdditionalProperties};if(e.target==="openApi3")return r;if(t.keyType?._def.typeName===D.ZodString&&t.keyType._def.checks?.length){let{type:n,...o}=cc(t.keyType._def,e);return{...r,propertyNames:o}}else{if(t.keyType?._def.typeName===D.ZodEnum)return{...r,propertyNames:{enum:t.keyType._def.values}};if(t.keyType?._def.typeName===D.ZodBranded&&t.keyType._def.type._def.typeName===D.ZodString&&t.keyType._def.type._def.checks?.length){let{type:n,...o}=ac(t.keyType._def,e);return{...r,propertyNames:o}}}return r}function C_(t,e){if(e.mapStrategy==="record")return uc(t,e);let r=Q(t.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||Be(e),n=Q(t.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||Be(e);return{type:"array",maxItems:125,items:{type:"array",items:[r,n],minItems:2,maxItems:2}}}function O_(t){let e=t.values,n=Object.keys(t.values).filter(i=>typeof e[e[i]]!="number").map(i=>e[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 N_(t){return t.target==="openAi"?void 0:{not:Be({...t,currentPath:[...t.currentPath,"not"]})}}function j_(t){return t.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var is={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function M_(t,e){if(e.target==="openApi3")return D_(t,e);let r=t.options instanceof Map?Array.from(t.options.values()):t.options;if(r.every(n=>n._def.typeName in is&&(!n._def.checks||!n._def.checks.length))){let n=r.reduce((o,i)=>{let s=is[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 D_(t,e)}var D_=(t,e)=>{let r=(t.options instanceof Map?Array.from(t.options.values()):t.options).map((n,o)=>Q(n._def,{...e,currentPath:[...e.currentPath,"anyOf",`${o}`]})).filter(n=>!!n&&(!e.strictUnions||typeof n=="object"&&Object.keys(n).length>0));return r.length?{anyOf:r}:void 0};function A_(t,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(t.innerType._def.typeName)&&(!t.innerType._def.checks||!t.innerType._def.checks.length))return e.target==="openApi3"?{type:is[t.innerType._def.typeName],nullable:!0}:{type:[is[t.innerType._def.typeName],"null"]};if(e.target==="openApi3"){let n=Q(t.innerType._def,{...e,currentPath:[...e.currentPath]});return n&&"$ref"in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let r=Q(t.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return r&&{anyOf:[r,{type:"null"}]}}function q_(t,e){let r={type:"number"};if(!t.checks)return r;for(let n of t.checks)switch(n.kind){case"int":r.type="integer",gf(r,"type",n.message,e);break;case"min":e.target==="jsonSchema7"?n.inclusive?he(r,"minimum",n.value,n.message,e):he(r,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(r.exclusiveMinimum=!0),he(r,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?he(r,"maximum",n.value,n.message,e):he(r,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(r.exclusiveMaximum=!0),he(r,"maximum",n.value,n.message,e));break;case"multipleOf":he(r,"multipleOf",n.value,n.message,e);break}return r}function Z_(t,e){let r=e.target==="openAi",n={type:"object",properties:{}},o=[],i=t.shape();for(let a in i){let c=i[a];if(c===void 0||c._def===void 0)continue;let l=Mz(c);l&&r&&(c._def.typeName==="ZodOptional"&&(c=c._def.innerType),c.isNullable()||(c=c.nullable()),l=!1);let f=Q(c._def,{...e,currentPath:[...e.currentPath,"properties",a],propertyPath:[...e.currentPath,"properties",a]});f!==void 0&&(n.properties[a]=f,l||o.push(a))}o.length&&(n.required=o);let s=Dz(t,e);return s!==void 0&&(n.additionalProperties=s),n}function Dz(t,e){if(t.catchall._def.typeName!=="ZodNever")return Q(t.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]});switch(t.unknownKeys){case"passthrough":return e.allowedAdditionalProperties;case"strict":return e.rejectedAdditionalProperties;case"strip":return e.removeAdditionalStrategy==="strict"?e.allowedAdditionalProperties:e.rejectedAdditionalProperties}}function Mz(t){try{return t.isOptional()}catch{return!0}}var L_=(t,e)=>{if(e.currentPath.toString()===e.propertyPath?.toString())return Q(t.innerType._def,e);let r=Q(t.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return r?{anyOf:[{not:Be(e)},r]}:Be(e)};var F_=(t,e)=>{if(e.pipeStrategy==="input")return Q(t.in._def,e);if(e.pipeStrategy==="output")return Q(t.out._def,e);let r=Q(t.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),n=Q(t.out._def,{...e,currentPath:[...e.currentPath,"allOf",r?"1":"0"]});return{allOf:[r,n].filter(o=>o!==void 0)}};function U_(t,e){return Q(t.type._def,e)}function V_(t,e){let n={type:"array",uniqueItems:!0,items:Q(t.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return t.minSize&&he(n,"minItems",t.minSize.value,t.minSize.message,e),t.maxSize&&he(n,"maxItems",t.maxSize.value,t.maxSize.message,e),n}function H_(t,e){return t.rest?{type:"array",minItems:t.items.length,items:t.items.map((r,n)=>Q(r._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((r,n)=>n===void 0?r:[...r,n],[]),additionalItems:Q(t.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:t.items.length,maxItems:t.items.length,items:t.items.map((r,n)=>Q(r._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((r,n)=>n===void 0?r:[...r,n],[])}}function B_(t){return{not:Be(t)}}function W_(t){return Be(t)}var J_=(t,e)=>Q(t.innerType._def,e);var K_=(t,e,r)=>{switch(e){case D.ZodString:return cc(t,r);case D.ZodNumber:return q_(t,r);case D.ZodObject:return Z_(t,r);case D.ZodBigInt:return $_(t,r);case D.ZodBoolean:return k_();case D.ZodDate:return yf(t,r);case D.ZodUndefined:return B_(r);case D.ZodNull:return j_(r);case D.ZodArray:return x_(t,r);case D.ZodUnion:case D.ZodDiscriminatedUnion:return M_(t,r);case D.ZodIntersection:return z_(t,r);case D.ZodTuple:return H_(t,r);case D.ZodRecord:return uc(t,r);case D.ZodLiteral:return E_(t,r);case D.ZodEnum:return R_(t);case D.ZodNativeEnum:return O_(t);case D.ZodNullable:return A_(t,r);case D.ZodOptional:return L_(t,r);case D.ZodMap:return C_(t,r);case D.ZodSet:return V_(t,r);case D.ZodLazy:return()=>t.getter()._def;case D.ZodPromise:return U_(t,r);case D.ZodNaN:case D.ZodNever:return N_(r);case D.ZodEffects:return P_(t,r);case D.ZodAny:return Be(r);case D.ZodUnknown:return W_(r);case D.ZodDefault:return T_(t,r);case D.ZodBranded:return ac(t,r);case D.ZodReadonly:return J_(t,r);case D.ZodCatch:return S_(t,r);case D.ZodPipeline:return F_(t,r);case D.ZodFunction:case D.ZodVoid:case D.ZodSymbol:return;default:return(n=>{})(e)}};function Q(t,e,r=!1){let n=e.seen.get(t);if(e.override){let a=e.override?.(t,e,n,r);if(a!==v_)return a}if(n&&!r){let a=Az(n,e);if(a!==void 0)return a}let o={def:t,path:e.currentPath,jsonSchema:void 0};e.seen.set(t,o);let i=K_(t,t.typeName,e),s=typeof i=="function"?Q(i(),e):i;if(s&&qz(t,e,s),e.postProcess){let a=e.postProcess(s,t,e);return o.jsonSchema=s,a}return o.jsonSchema=s,s}var Az=(t,e)=>{switch(e.$refStrategy){case"root":return{$ref:t.path.join("/")};case"relative":return{$ref:sc(e.currentPath,t.path)};case"none":case"seen":return t.path.length<e.currentPath.length&&t.path.every((r,n)=>e.currentPath[n]===r)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),Be(e)):e.$refStrategy==="seen"?Be(e):void 0}},qz=(t,e,r)=>(t.description&&(r.description=t.description,e.markdownDescription&&(r.markdownDescription=t.description)),r);var bf=(t,e)=>{let r=w_(e),n=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((c,[l,f])=>({...c,[l]:Q(f._def,{...r,currentPath:[...r.basePath,r.definitionPath,l]},!0)??Be(r)}),{}):void 0,o=typeof e=="string"?e:e?.nameStrategy==="title"?void 0:e?.name,i=Q(t._def,o===void 0?r:{...r,currentPath:[...r.basePath,r.definitionPath,o]},!1)??Be(r),s=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.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 Zz(t){return!t||t==="jsonSchema7"||t==="draft-7"?"draft-7":t==="jsonSchema2019-09"||t==="draft-2020-12"?"draft-2020-12":"draft-7"}function wf(t,e){return Kt(t)?Fd(t,{target:Zz(e?.target),io:e?.pipeStrategy??"input"}):bf(t,{strictUnions:e?.strictUnions??!0,pipeStrategy:e?.pipeStrategy??"input"})}function xf(t){let r=sn(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Da(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function $f(t,e){let r=on(t,e);if(!r.success)throw r.error;return r.data}var Lz=6e4,lc=class{constructor(e){this._options=e,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(Ua,r=>{this._oncancel(r)}),this.setNotificationHandler(Ha,r=>{this._onprogress(r)}),this.setRequestHandler(Va,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Ba,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new B(G.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(Ja,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,l=c.id,f=this._requestResolvers.get(l);if(f)if(this._requestResolvers.delete(l),a.type==="response")f(c);else{let p=c,w=new B(p.error.code,p.error.message,p.error.data);f(w)}else{let p=a.type==="response"?"Response":"Error";this._onerror(new Error(`${p} handler missing for request ${l}`))}continue}await this._transport?.send(a.message,{relatedRequestId:n.requestId})}}let s=await this._taskStore.getTask(i,n.sessionId);if(!s)throw new B(G.InvalidParams,`Task not found: ${i}`);if(!cn(s.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(cn(s.status)){let a=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...a,_meta:{...a._meta,[an]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(Ka,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 B(G.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(Xa,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new B(G.InvalidParams,`Task not found: ${r.params.taskId}`);if(cn(o.status))throw new B(G.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 B(G.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof B?o:new B(G.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,o,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:o})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),B.fromError(G.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){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=e;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),Gi(i)||a_(i)?this._onresponse(i):tf(i)?this._onrequest(i,s):s_(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=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=B.fromError(G.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,o=this._transport,i=e.params?._meta?.[an]?.taskId;if(n===void 0){let f={jsonrpc:"2.0",id:e.id,error:{code:G.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:f,timestamp:Date.now()},o?.sessionId).catch(p=>this._onerror(new Error(`Failed to enqueue error response: ${p}`))):o?.send(f).catch(p=>this._onerror(new Error(`Failed to send an error response: ${p}`)));return}let s=new AbortController;this._requestHandlerAbortControllers.set(e.id,s);let a=n_(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,o?.sessionId):void 0,l={signal:s.signal,sessionId:o?.sessionId,_meta:e.params?._meta,sendNotification:async f=>{if(s.signal.aborted)return;let p={relatedRequestId:e.id};i&&(p.relatedTask={taskId:i}),await this.notification(f,p)},sendRequest:async(f,p,w)=>{if(s.signal.aborted)throw new B(G.ConnectionClosed,"Request was cancelled");let b={...w,relatedRequestId:e.id};i&&!b.relatedTask&&(b.relatedTask={taskId:i});let g=b.relatedTask?.taskId??i;return g&&c&&await c.updateTaskStatus(g,"input_required"),await this.request(f,p,b)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,l)).then(async f=>{if(s.signal.aborted)return;let p={result:f,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:p,timestamp:Date.now()},o?.sessionId):await o?.send(p)},async f=>{if(s.signal.aborted)return;let p={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(f.code)?f.code:G.InternalError,message:f.message??"Internal error",...f.data!==void 0&&{data:f.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:p,timestamp:Date.now()},o?.sessionId):await o?.send(p)}).catch(f=>this._onerror(new Error(`Failed to send response: ${f}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===s&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.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(e)}`));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(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),Gi(e))n(e);else{let s=new B(e.error.code,e.error.message,e.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(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(Gi(e)&&e.result&&typeof e.result=="object"){let s=e.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),Gi(e))o(e);else{let s=B.fromError(e.error.code,e.error.message,e.error.data);o(s)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(e,r,n)}}catch(s){yield{type:"error",error:s instanceof B?s:new B(G.InternalError,String(s))}}return}let i;try{let s=await this.request(e,jo,n);if(s.task)i=s.task.taskId,yield{type:"taskCreated",task:s.task};else throw new B(G.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:a},cn(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:a.status==="failed"?yield{type:"error",error:new B(G.InternalError,`Task ${i} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new B(G.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(l=>setTimeout(l,c)),n?.signal?.throwIfAborted()}}catch(s){yield{type:"error",error:s instanceof B?s:new B(G.InternalError,String(s))}}}request(e,r,n){let{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s,task:a,relatedTask:c}=n??{};return new Promise((l,f)=>{let p=O=>{f(O)};if(!this._transport){p(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),a&&this.assertTaskCapability(e.method)}catch(O){p(O);return}n?.signal?.throwIfAborted();let w=this._requestMessageId++,b={...e,jsonrpc:"2.0",id:w};n?.onprogress&&(this._progressHandlers.set(w,n.onprogress),b.params={...e.params,_meta:{...e.params?._meta||{},progressToken:w}}),a&&(b.params={...b.params,task:a}),c&&(b.params={...b.params,_meta:{...b.params?._meta||{},[an]:c}});let g=O=>{this._responseHandlers.delete(w),this._progressHandlers.delete(w),this._cleanupTimeout(w),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:w,reason:String(O)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(Z=>this._onerror(new Error(`Failed to send cancellation: ${Z}`)));let z=O instanceof B?O:new B(G.RequestTimeout,String(O));f(z)};this._responseHandlers.set(w,O=>{if(!n?.signal?.aborted){if(O instanceof Error)return f(O);try{let z=on(r,O.result);z.success?l(z.data):f(z.error)}catch(z){f(z)}}}),n?.signal?.addEventListener("abort",()=>{g(n?.signal?.reason)});let x=n?.timeout??Lz,S=()=>g(B.fromError(G.RequestTimeout,"Request timed out",{timeout:x}));this._setupTimeout(w,x,n?.maxTotalTimeout,S,n?.resetTimeoutOnProgress??!1);let N=c?.taskId;if(N){let O=z=>{let Z=this._responseHandlers.get(w);Z?Z(z):this._onerror(new Error(`Response handler missing for side-channeled request ${w}`))};this._requestResolvers.set(w,O),this._enqueueTaskMessage(N,{type:"request",message:b,timestamp:Date.now()}).catch(z=>{this._cleanupTimeout(w),f(z)})}else this._transport.send(b,{relatedRequestId:o,resumptionToken:i,onresumptiontoken:s}).catch(O=>{this._cleanupTimeout(w),f(O)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},Wa,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},Ga,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},l_,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[an]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[an]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let s={...e,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[an]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(e,r){let n=xf(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let s=$f(e,o);return Promise.resolve(r(s,i))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=xf(e);this._notificationHandlers.set(n,o=>{let i=$f(e,o);return Promise.resolve(r(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,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(e,r,n,o)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let o of n)if(o.type==="request"&&tf(o.message)){let i=o.message.id,s=this._requestResolvers.get(i);s?(s(new B(G.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let o=await this._taskStore?.getTask(e);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,i)=>{if(r.aborted){i(new B(G.InvalidRequest,"Request cancelled"));return}let s=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(s),i(new B(G.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!e)throw new Error("No request provided");return await n.createTask(o,e.id,{method:e.method,params:e.params},r)},getTask:async o=>{let i=await n.getTask(o,r);if(!i)throw new B(G.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=ts.parse({method:"notifications/tasks/status",params:a});await this.notification(c),cn(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 B(G.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(cn(a.status))throw new B(G.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 l=ts.parse({method:"notifications/tasks/status",params:c});await this.notification(l),cn(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function G_(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function X_(t,e){let r={...t};for(let n in e){let o=n,i=e[o];if(i===void 0)continue;let s=r[o];G_(s)&&G_(i)?r[o]={...s,...i}:r[o]=i}return r}var Fw=la(um(),1),Uw=la(Lw(),1);function Vj(){let t=new Fw.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,Uw.default)(t),t}var Hc=class{constructor(e){this._ajv=e??Vj()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var Bc=class{constructor(e){this._server=e}requestStream(e,r,n){return this._server.requestStream(e,r,n)}createMessageStream(e,r){let n=this._server.getClientCapabilities();if((e.tools||e.toolChoice)&&!n?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(e.messages.length>0){let o=e.messages[e.messages.length-1],i=Array.isArray(o.content)?o.content:[o.content],s=i.some(f=>f.type==="tool_result"),a=e.messages.length>1?e.messages[e.messages.length-2]:void 0,c=a?Array.isArray(a.content)?a.content:[a.content]:[],l=c.some(f=>f.type==="tool_use");if(s){if(i.some(f=>f.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!l)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(l){let f=new Set(c.filter(w=>w.type==="tool_use").map(w=>w.id)),p=new Set(i.filter(w=>w.type==="tool_result").map(w=>w.toolUseId));if(f.size!==p.size||![...f].every(w=>p.has(w)))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:e},os,r)}elicitInputStream(e,r){let n=this._server.getClientCapabilities(),o=e.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"&&e.mode===void 0?{...e,mode:"form"}:e;return this.requestStream({method:"elicitation/create",params:i},Ao,r)}async getTask(e,r){return this._server.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._server.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._server.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._server.cancelTask({taskId:e},r)}};function Vw(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function Hw(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}var Wc=class extends lc{constructor(e,r){super(r),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(ns.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 Hc,this.setRequestHandler(of,n=>this._oninitialize(n)),this.setNotificationHandler(sf,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(pf,async(n,o)=>{let i=o.sessionId||o.requestInfo?.headers["mcp-session-id"]||void 0,{level:s}=n.params,a=ns.safeParse(s);return a.success&&this._loggingLevels.set(i,a.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new Bc(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=X_(this._capabilities,e)}setRequestHandler(e,r){let o=sn(e)?.method;if(!o)throw new Error("Schema is missing a method literal");let i;if(Kt(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,l)=>{let f=on(Mo,c);if(!f.success){let g=f.error instanceof Error?f.error.message:String(f.error);throw new B(G.InvalidParams,`Invalid tools/call request: ${g}`)}let{params:p}=f.data,w=await Promise.resolve(r(c,l));if(p.task){let g=on(jo,w);if(!g.success){let x=g.error instanceof Error?g.error.message:String(g.error);throw new B(G.InvalidParams,`Invalid task creation result: ${x}`)}return g.data}let b=on(oc,w);if(!b.success){let g=b.error instanceof Error?b.error.message:String(b.error);throw new B(G.InvalidParams,`Invalid tools/call result: ${g}`)}return b.data};return super.setRequestHandler(e,a)}return super.setRequestHandler(e,r)}assertCapabilityForMethod(e){switch(e){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${e})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${e})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${e})`);break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);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 ${e})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${e})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${e})`);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 ${e})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${e})`);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 ${e})`);break;case"ping":case"initialize":break}}assertTaskCapability(e){Hw(this._clientCapabilities?.tasks?.requests,e,"Client")}assertTaskHandlerCapability(e){this._capabilities&&Vw(this._capabilities.tasks?.requests,e,"Server")}async _oninitialize(e){let r=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:e_.includes(r)?r:Qd,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"},Fa)}async createMessage(e,r){if((e.tools||e.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(e.messages.length>0){let n=e.messages[e.messages.length-1],o=Array.isArray(n.content)?n.content:[n.content],i=o.some(l=>l.type==="tool_result"),s=e.messages.length>1?e.messages[e.messages.length-2]:void 0,a=s?Array.isArray(s.content)?s.content:[s.content]:[],c=a.some(l=>l.type==="tool_use");if(i){if(o.some(l=>l.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 l=new Set(a.filter(p=>p.type==="tool_use").map(p=>p.id)),f=new Set(o.filter(p=>p.type==="tool_result").map(p=>p.toolUseId));if(l.size!==f.size||![...l].every(p=>f.has(p)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return e.tools?this.request({method:"sampling/createMessage",params:e},mf,r):this.request({method:"sampling/createMessage",params:e},os,r)}async elicitInput(e,r){switch(e.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let o=e;return this.request({method:"elicitation/create",params:o},Ao,r)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let o=e.mode==="form"?e:{...e,mode:"form"},i=await this.request({method:"elicitation/create",params:o},Ao,r);if(i.action==="accept"&&i.content&&o.requestedSchema)try{let a=this._jsonSchemaValidator.getValidator(o.requestedSchema)(i.content);if(!a.valid)throw new B(G.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(s){throw s instanceof B?s:new B(G.InternalError,`Error validating elicitation response: ${s instanceof Error?s.message:String(s)}`)}return i}}}createElicitationCompletionNotifier(e,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:e}},r)}async listRoots(e,r){return this.request({method:"roots/list",params:e},hf,r)}async sendLoggingMessage(e,r){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,r))return this.notification({method:"notifications/message",params:e})}async sendResourceUpdated(e){return this.notification({method:"notifications/resources/updated",params:e})}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 Ww=Symbol.for("mcp.completable");function ym(t){return!!t&&typeof t=="object"&&Ww in t}function Jw(t){return t[Ww]?.complete}var Bw;(function(t){t.Completable="McpCompletable"})(Bw||(Bw={}));var Hj=/^[A-Za-z0-9._-]{1,128}$/;function Bj(t){let e=[];if(t.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(t.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${t.length})`]};if(t.includes(" ")&&e.push("Tool name contains spaces, which may cause parsing issues"),t.includes(",")&&e.push("Tool name contains commas, which may cause parsing issues"),(t.startsWith("-")||t.endsWith("-"))&&e.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"),(t.startsWith(".")||t.endsWith("."))&&e.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"),!Hj.test(t)){let r=t.split("").filter(n=>!/[A-Za-z0-9._-]/.test(n)).filter((n,o,i)=>i.indexOf(n)===o);return e.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:e}}return{isValid:!0,warnings:e}}function Wj(t,e){if(e.length>0){console.warn(`Tool name validation warning for "${t}":`);for(let r of e)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 _m(t){let e=Bj(t);return Wj(t,e.warnings),e.isValid}var Jc=class{constructor(e){this._mcpServer=e}registerToolTask(e,r,n){let o={taskSupport:"required",...r.execution};if(o.taskSupport==="forbidden")throw new Error(`Cannot register task-based tool '${e}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(e,r.title,r.description,r.inputSchema,r.outputSchema,r.annotations,o,r._meta,n)}};var Kc=class{constructor(e,r){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new Wc(e,r)}get experimental(){return this._experimental||(this._experimental={tasks:new Jc(this)}),this._experimental}async connect(e){return await this.server.connect(e)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(yn(nc)),this.server.assertCanSetRequestHandler(yn(Mo)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(nc,()=>({tools:Object.entries(this._registeredTools).filter(([,e])=>e.enabled).map(([e,r])=>{let n={name:e,title:r.title,description:r.description,inputSchema:(()=>{let o=Oo(r.inputSchema);return o?wf(o,{strictUnions:!0,pipeStrategy:"input"}):Jj})(),annotations:r.annotations,execution:r.execution,_meta:r._meta};if(r.outputSchema){let o=Oo(r.outputSchema);o&&(n.outputSchema=wf(o,{strictUnions:!0,pipeStrategy:"output"}))}return n})})),this.server.setRequestHandler(Mo,async(e,r)=>{try{let n=this._registeredTools[e.params.name];if(!n)throw new B(G.InvalidParams,`Tool ${e.params.name} not found`);if(!n.enabled)throw new B(G.InvalidParams,`Tool ${e.params.name} disabled`);let o=!!e.params.task,i=n.execution?.taskSupport,s="createTask"in n.handler;if((i==="required"||i==="optional")&&!s)throw new B(G.InternalError,`Tool ${e.params.name} has taskSupport '${i}' but was not registered with registerToolTask`);if(i==="required"&&!o)throw new B(G.MethodNotFound,`Tool ${e.params.name} requires task augmentation (taskSupport: 'required')`);if(i==="optional"&&!o&&s)return await this.handleAutomaticTaskPolling(n,e,r);let a=await this.validateToolInput(n,e.params.arguments,e.params.name),c=await this.executeToolHandler(n,a,r);return o||await this.validateToolOutput(n,c,e.params.name),c}catch(n){if(n instanceof B&&n.code===G.UrlElicitationRequired)throw n;return this.createToolError(n instanceof Error?n.message:String(n))}}),this._toolHandlersInitialized=!0)}createToolError(e){return{content:[{type:"text",text:e}],isError:!0}}async validateToolInput(e,r,n){if(!e.inputSchema)return;let i=Oo(e.inputSchema)??e.inputSchema,s=await Na(i,r);if(!s.success){let a="error"in s?s.error:"Unknown error",c=ja(a);throw new B(G.InvalidParams,`Input validation error: Invalid arguments for tool ${n}: ${c}`)}return s.data}async validateToolOutput(e,r,n){if(!e.outputSchema||!("content"in r)||r.isError)return;if(!r.structuredContent)throw new B(G.InvalidParams,`Output validation error: Tool ${n} has an output schema but no structured content was provided`);let o=Oo(e.outputSchema),i=await Na(o,r.structuredContent);if(!i.success){let s="error"in i?i.error:"Unknown error",a=ja(s);throw new B(G.InvalidParams,`Output validation error: Invalid structured content for tool ${n}: ${a}`)}}async executeToolHandler(e,r,n){let o=e.handler;if("createTask"in o){if(!n.taskStore)throw new Error("No task store provided.");let s={...n,taskStore:n.taskStore};if(e.inputSchema){let a=o;return await Promise.resolve(a.createTask(r,s))}else{let a=o;return await Promise.resolve(a.createTask(s))}}if(e.inputSchema){let s=o;return await Promise.resolve(s(r,n))}else{let s=o;return await Promise.resolve(s(n))}}async handleAutomaticTaskPolling(e,r,n){if(!n.taskStore)throw new Error("No task store provided for task-capable tool.");let o=await this.validateToolInput(e,r.params.arguments,r.params.name),i=e.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,l=a.task,f=l.pollInterval??5e3;for(;l.status!=="completed"&&l.status!=="failed"&&l.status!=="cancelled";){await new Promise(w=>setTimeout(w,f));let p=await n.taskStore.getTask(c);if(!p)throw new B(G.InternalError,`Task ${c} not found during polling`);l=p}return await n.taskStore.getTaskResult(c)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler(yn(ic)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(ic,async e=>{switch(e.params.ref.type){case"ref/prompt":return g_(e),this.handlePromptCompletion(e,e.params.ref);case"ref/resource":return y_(e),this.handleResourceCompletion(e,e.params.ref);default:throw new B(G.InvalidParams,`Invalid completion reference: ${e.params.ref}`)}}),this._completionHandlerInitialized=!0)}async handlePromptCompletion(e,r){let n=this._registeredPrompts[r.name];if(!n)throw new B(G.InvalidParams,`Prompt ${r.name} not found`);if(!n.enabled)throw new B(G.InvalidParams,`Prompt ${r.name} disabled`);if(!n.argsSchema)return js;let i=sn(n.argsSchema)?.[e.params.argument.name];if(!ym(i))return js;let s=Jw(i);if(!s)return js;let a=await s(e.params.argument.value,e.params.context);return Gw(a)}async handleResourceCompletion(e,r){let n=Object.values(this._registeredResourceTemplates).find(s=>s.resourceTemplate.uriTemplate.toString()===r.uri);if(!n){if(this._registeredResources[r.uri])return js;throw new B(G.InvalidParams,`Resource template ${e.params.ref.uri} not found`)}let o=n.resourceTemplate.completeCallback(e.params.argument.name);if(!o)return js;let i=await o(e.params.argument.value,e.params.context);return Gw(i)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(yn(Ya)),this.server.assertCanSetRequestHandler(yn(Qa)),this.server.assertCanSetRequestHandler(yn(ec)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(Ya,async(e,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(Qa,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([r,n])=>({name:r,uriTemplate:n.resourceTemplate.uriTemplate.toString(),...n.metadata}))})),this.server.setRequestHandler(ec,async(e,r)=>{let n=new URL(e.params.uri),o=this._registeredResources[n.toString()];if(o){if(!o.enabled)throw new B(G.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 B(G.InvalidParams,`Resource ${n} not found`)}),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler(yn(tc)),this.server.assertCanSetRequestHandler(yn(rc)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(tc,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,e])=>e.enabled).map(([e,r])=>({name:e,title:r.title,description:r.description,arguments:r.argsSchema?Kj(r.argsSchema):void 0}))})),this.server.setRequestHandler(rc,async(e,r)=>{let n=this._registeredPrompts[e.params.name];if(!n)throw new B(G.InvalidParams,`Prompt ${e.params.name} not found`);if(!n.enabled)throw new B(G.InvalidParams,`Prompt ${e.params.name} disabled`);if(n.argsSchema){let o=Oo(n.argsSchema),i=await Na(o,e.params.arguments);if(!i.success){let c="error"in i?i.error:"Unknown error",l=ja(c);throw new B(G.InvalidParams,`Invalid arguments for prompt ${e.params.name}: ${l}`)}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(e,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(e,void 0,r,o,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}else{if(this._registeredResourceTemplates[e])throw new Error(`Resource template ${e} is already registered`);let s=this._createRegisteredResourceTemplate(e,void 0,r,o,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}}registerResource(e,r,n,o){if(typeof r=="string"){if(this._registeredResources[r])throw new Error(`Resource ${r} is already registered`);let i=this._createRegisteredResource(e,n.title,r,n,o);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}else{if(this._registeredResourceTemplates[e])throw new Error(`Resource template ${e} is already registered`);let i=this._createRegisteredResourceTemplate(e,n.title,r,n,o);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}}_createRegisteredResource(e,r,n,o,i){let s={name:e,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(e,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:l=>{typeof l.name<"u"&&l.name!==e&&(delete this._registeredResourceTemplates[e],l.name&&(this._registeredResourceTemplates[l.name]=s)),typeof l.title<"u"&&(s.title=l.title),typeof l.template<"u"&&(s.resourceTemplate=l.template),typeof l.metadata<"u"&&(s.metadata=l.metadata),typeof l.callback<"u"&&(s.readCallback=l.callback),typeof l.enabled<"u"&&(s.enabled=l.enabled),this.sendResourceListChanged()}};this._registeredResourceTemplates[e]=s;let a=n.uriTemplate.variableNames;return Array.isArray(a)&&a.some(l=>!!n.completeCallback(l))&&this.setCompletionRequestHandler(),s}_createRegisteredPrompt(e,r,n,o,i){let s={title:r,description:n,argsSchema:o===void 0?void 0:Qn(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!==e&&(delete this._registeredPrompts[e],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=Qn(a.argsSchema)),typeof a.callback<"u"&&(s.callback=a.callback),typeof a.enabled<"u"&&(s.enabled=a.enabled),this.sendPromptListChanged()}};return this._registeredPrompts[e]=s,o&&Object.values(o).some(c=>{let l=c instanceof zt?c._def?.innerType:c;return ym(l)})&&this.setCompletionRequestHandler(),s}_createRegisteredTool(e,r,n,o,i,s,a,c,l){_m(e);let f={title:r,description:n,inputSchema:Kw(o),outputSchema:Kw(i),annotations:s,execution:a,_meta:c,handler:l,enabled:!0,disable:()=>f.update({enabled:!1}),enable:()=>f.update({enabled:!0}),remove:()=>f.update({name:null}),update:p=>{typeof p.name<"u"&&p.name!==e&&(typeof p.name=="string"&&_m(p.name),delete this._registeredTools[e],p.name&&(this._registeredTools[p.name]=f)),typeof p.title<"u"&&(f.title=p.title),typeof p.description<"u"&&(f.description=p.description),typeof p.paramsSchema<"u"&&(f.inputSchema=Qn(p.paramsSchema)),typeof p.outputSchema<"u"&&(f.outputSchema=Qn(p.outputSchema)),typeof p.callback<"u"&&(f.handler=p.callback),typeof p.annotations<"u"&&(f.annotations=p.annotations),typeof p._meta<"u"&&(f._meta=p._meta),typeof p.enabled<"u"&&(f.enabled=p.enabled),this.sendToolListChanged()}};return this._registeredTools[e]=f,this.setToolRequestHandlers(),this.sendToolListChanged(),f}tool(e,...r){if(this._registeredTools[e])throw new Error(`Tool ${e} is already registered`);let n,o,i,s;if(typeof r[0]=="string"&&(n=r.shift()),r.length>1){let c=r[0];if(vm(c))o=r.shift(),r.length>1&&typeof r[0]=="object"&&r[0]!==null&&!vm(r[0])&&(s=r.shift());else if(typeof c=="object"&&c!==null){if(Object.values(c).some(l=>typeof l=="object"&&l!==null))throw new Error(`Tool ${e} expected a Zod schema or ToolAnnotations, but received an unrecognized object`);s=r.shift()}}let a=r[0];return this._createRegisteredTool(e,void 0,n,o,i,s,{taskSupport:"forbidden"},void 0,a)}registerTool(e,r,n){if(this._registeredTools[e])throw new Error(`Tool ${e} is already registered`);let{title:o,description:i,inputSchema:s,outputSchema:a,annotations:c,_meta:l}=r;return this._createRegisteredTool(e,o,i,s,a,c,{taskSupport:"forbidden"},l,n)}prompt(e,...r){if(this._registeredPrompts[e])throw new Error(`Prompt ${e} 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(e,void 0,n,o,i);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),s}registerPrompt(e,r,n){if(this._registeredPrompts[e])throw new Error(`Prompt ${e} is already registered`);let{title:o,description:i,argsSchema:s}=r,a=this._createRegisteredPrompt(e,o,i,s,n);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),a}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(e,r){return this.server.sendLoggingMessage(e,r)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}};var Jj={type:"object",properties:{}};function Xw(t){return t!==null&&typeof t=="object"&&"parse"in t&&typeof t.parse=="function"&&"safeParse"in t&&typeof t.safeParse=="function"}function Yw(t){return"_def"in t||"_zod"in t||Xw(t)}function vm(t){return typeof t!="object"||t===null||Yw(t)?!1:Object.keys(t).length===0?!0:Object.values(t).some(Xw)}function Kw(t){if(t){if(vm(t))return Qn(t);if(!Yw(t))throw new Error("inputSchema must be a Zod schema or raw shape, received an unrecognized object");return t}}function Kj(t){let e=sn(t);return e?Object.entries(e).map(([r,n])=>{let o=Ey(n),i=Iy(n);return{name:r,description:o,required:!i}}):[]}function yn(t){let r=sn(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=Da(r);if(typeof n=="string")return n;throw new Error("Schema method literal must be a string")}function Gw(t){return{completion:{values:t.slice(0,100),total:t.length,hasMore:t.length>100}}}var js={completion:{values:[],hasMore:!1}};import ex from"node:process";var Gc=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
76
76
  `);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),Gj(r)}clear(){this._buffer=void 0}};function Gj(t){return c_.parse(JSON.parse(t))}function Qw(t){return JSON.stringify(t)+`
77
- `}var Xc=class{constructor(e=ex.stdin,r=ex.stdout){this._stdin=e,this._stdout=r,this._readBuffer=new Gc,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 e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}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(e){return new Promise(r=>{let n=Qw(e);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};function tx(t){let e={app:t,version:Xj(ni("__RED_BUILD_VERSION__",()=>"2.41.1")??"0.0.0-dev"),gitSha:ni("__RED_BUILD_GIT_SHA__",()=>"51f51f7034e054522493ffa6224020476e721173")??"unknown",buildTime:ni("__RED_BUILD_TIME__",()=>"2026-07-13T02:18:58-03:00")??"unknown",bundleAsset:ni("__RED_BUNDLE_ASSET__",()=>"code-nav.bundle.min.mjs")??"unknown"},r=ni("__REDDB_SDK_VERSION__",()=>""),n=ni("__REDDB_BINARY_TAG__",()=>"");return r&&(e.reddbSdkVersion=r),n&&(e.reddbBinaryTag=n),e}function Xj(t){return t.startsWith("v")?t.slice(1):t}function rx(t){return`${t.app} ${t.version} ${t.gitSha}`}function ni(t,e){try{let r=e();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[t.replace(/^__|__$/g,"")]}}var bm={typescript:{command:"typescript-language-server",args:["--stdio"],extensions:[".ts",".tsx",".js",".jsx",".mts",".cts",".mjs",".cjs"],languageId:"typescript"},go:{command:"gopls",args:[],extensions:[".go"],languageId:"go"},rust:{command:"rust-analyzer",args:[],extensions:[".rs"],languageId:"rust"},python:{command:"pyright-langserver",args:["--stdio"],extensions:[".py",".pyi"],languageId:"python"}};function nx(){let t=process.env.CODE_NAV_SERVERS;if(!t)return bm;try{let e=JSON.parse(t),r={...bm};for(let[n,o]of Object.entries(e))r[n]={...r[n]??{},...o};return r}catch(e){return process.stderr.write(`code-nav: failed to parse CODE_NAV_SERVERS, using defaults: ${String(e)}
77
+ `}var Xc=class{constructor(e=ex.stdin,r=ex.stdout){this._stdin=e,this._stdout=r,this._readBuffer=new Gc,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 e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}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(e){return new Promise(r=>{let n=Qw(e);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};function tx(t){let e={app:t,version:Xj(ni("__RED_BUILD_VERSION__",()=>"2.43.0")??"0.0.0-dev"),gitSha:ni("__RED_BUILD_GIT_SHA__",()=>"809ed5c081ab042908db5143230cdec6a0f5a0e1")??"unknown",buildTime:ni("__RED_BUILD_TIME__",()=>"2026-07-13T02:58:29-03:00")??"unknown",bundleAsset:ni("__RED_BUNDLE_ASSET__",()=>"code-nav.bundle.min.mjs")??"unknown"},r=ni("__REDDB_SDK_VERSION__",()=>""),n=ni("__REDDB_BINARY_TAG__",()=>"");return r&&(e.reddbSdkVersion=r),n&&(e.reddbBinaryTag=n),e}function Xj(t){return t.startsWith("v")?t.slice(1):t}function rx(t){return`${t.app} ${t.version} ${t.gitSha}`}function ni(t,e){try{let r=e();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[t.replace(/^__|__$/g,"")]}}var bm={typescript:{command:"typescript-language-server",args:["--stdio"],extensions:[".ts",".tsx",".js",".jsx",".mts",".cts",".mjs",".cjs"],languageId:"typescript"},go:{command:"gopls",args:[],extensions:[".go"],languageId:"go"},rust:{command:"rust-analyzer",args:[],extensions:[".rs"],languageId:"rust"},python:{command:"pyright-langserver",args:["--stdio"],extensions:[".py",".pyi"],languageId:"python"}};function nx(){let t=process.env.CODE_NAV_SERVERS;if(!t)return bm;try{let e=JSON.parse(t),r={...bm};for(let[n,o]of Object.entries(e))r[n]={...r[n]??{},...o};return r}catch(e){return process.stderr.write(`code-nav: failed to parse CODE_NAV_SERVERS, using defaults: ${String(e)}
78
78
  `),bm}}function ox(t){let e=new Map;for(let[r,n]of Object.entries(t))for(let o of n.extensions)e.set(o,r);return e}var $i=la(jk(),1),xt=la(Jh(),1);import{spawn as t1}from"node:child_process";import{readFile as r1}from"node:fs/promises";import{pathToFileURL as Dk,fileURLToPath as n1}from"node:url";import{resolve as o1}from"node:path";var Hs=class{constructor(e,r){this.spec=e;this.rootPath=r}spec;rootPath;proc;conn;ready;openDocs=new Set;async ensureStarted(){return this.ready?this.ready:(this.ready=this.start(),this.ready)}async start(){let e=t1(this.spec.command,this.spec.args,{cwd:this.rootPath,stdio:["pipe","pipe","pipe"]});this.proc=e,await new Promise((i,s)=>{e.once("spawn",()=>i()),e.once("error",a=>s(new Error(`failed to spawn '${this.spec.command}': ${a.message}`)))}),e.stderr.on("data",i=>{process.stderr.write(`[${this.spec.command}] ${i.toString()}`)}),e.once("exit",()=>{try{this.conn?.dispose()}catch{}});let r=(0,$i.createProtocolConnection)(new $i.StreamMessageReader(e.stdout),new $i.StreamMessageWriter(e.stdin));this.conn=r,r.listen();let n=Dk(this.rootPath).toString(),o={processId:process.pid,rootUri:n,workspaceFolders:[{uri:n,name:"workspace"}],capabilities:{textDocument:{definition:{linkSupport:!0},references:{},documentSymbol:{hierarchicalDocumentSymbolSupport:!0},hover:{contentFormat:["markdown","plaintext"]}},workspace:{symbol:{}}}};await r.sendRequest(xt.InitializeRequest.type,o),await r.sendNotification(xt.InitializedNotification.type,{})}async ensureOpen(e){let r=o1(this.rootPath,e),n=Dk(r).toString();if(this.openDocs.has(n))return n;let o=await r1(r,"utf8");return await this.conn.sendNotification(xt.DidOpenTextDocumentNotification.type,{textDocument:{uri:n,languageId:this.spec.languageId,version:1,text:o}}),this.openDocs.add(n),n}async definition(e,r,n){await this.ensureStarted();let o=await this.ensureOpen(e),i=await this.conn.sendRequest(xt.DefinitionRequest.type,{textDocument:{uri:o},position:{line:r,character:n}});return i1(i)}async references(e,r,n,o){await this.ensureStarted();let i=await this.ensureOpen(e);return await this.conn.sendRequest(xt.ReferencesRequest.type,{textDocument:{uri:i},position:{line:r,character:n},context:{includeDeclaration:o}})??[]}async documentSymbols(e){await this.ensureStarted();let r=await this.ensureOpen(e);return await this.conn.sendRequest(xt.DocumentSymbolRequest.type,{textDocument:{uri:r}})??[]}async hover(e,r,n){await this.ensureStarted();let o=await this.ensureOpen(e);return this.conn.sendRequest(xt.HoverRequest.type,{textDocument:{uri:o},position:{line:r,character:n}})}async workspaceSymbols(e){return await this.ensureStarted(),await this.conn.sendRequest(xt.WorkspaceSymbolRequest.type,{query:e})??[]}dispose(){try{this.conn?.dispose()}catch{}this.proc?.kill()}};function i1(t){return t?(Array.isArray(t)?t:[t]).map(r=>"targetUri"in r?{uri:r.targetUri,range:r.targetSelectionRange}:r):[]}function Kh(t,e){try{let r=n1(t);return(r.startsWith(e)?r.slice(e.length).replace(/^[/\\]/,""):r)||r}catch{return t}}var Ws=process.env.CODE_NAV_ROOT??process.cwd(),Bs=nx(),Mk=ox(Bs),ki=new Map;function Au(t){let e=s1(t),r=Mk.get(e);if(!r)throw new Error(`no language server configured for '${e}'. Configured extensions: ${[...Mk.keys()].join(", ")||"(none)"}.`);let n=ki.get(r);return n||(n=new Hs(Bs[r],Ws),ki.set(r,n)),n}function a1(){for(let t of Object.keys(Bs))ki.has(t)||ki.set(t,new Hs(Bs[t],Ws));return[...ki.values()]}function Xh(t,e){return`${Kh(t,Ws)}:${e.start.line+1}:${e.start.character+1}`}var Gh=tx("code-nav"),Si=new Kc({name:"code-nav",version:Gh.version}),qu={file:tn.string().describe("Workspace-relative path to the source file."),line:tn.number().int().describe("Zero-based line number."),character:tn.number().int().describe("Zero-based character offset on the line.")};Si.registerTool("goto_definition",{title:"Go to definition",description:"Resolve the symbol at a file position to its definition(s). Returns file:line:column locations. Use this instead of grepping for a name.",inputSchema:qu},async({file:t,line:e,character:r})=>{let n=await Au(t).definition(t,e,r);return n.length===0?Cr("No definition found."):Cr(n.map(o=>Xh(o.uri,o.range)).join(`
79
79
  `))});Si.registerTool("find_references",{title:"Find references",description:"Find every reference to the symbol at a file position across the workspace. Semantic \u2014 matches the actual symbol, not text.",inputSchema:{...qu,includeDeclaration:tn.boolean().optional().describe("Include the declaration itself (default true).")}},async({file:t,line:e,character:r,includeDeclaration:n})=>{let o=await Au(t).references(t,e,r,n??!0);return o.length===0?Cr("No references found."):Cr(`${o.length} reference(s):
80
80
  `+o.map(i=>Xh(i.uri,i.range)).join(`
@@ -823,7 +823,7 @@ requeued to ready-for-agent${e.activeBlocker?` (cleared active blocker: ${e.acti
823
823
  `)},I)}catch(k){return process.stderr.write(`[afk] respond failed: ${k instanceof Error?k.message:String(k)}
824
824
  `),1}return r.write(`Respond #${o}: ${v.action}${v.verb?` (/dev ${v.verb})`:""}.
825
825
  `),0}PC();function fxr(e){let t=e.indexOf("--runner");return(t>=0?e[t+1]:void 0)==="claude"?"claude":"codex"}function pxr(e){let t=zP(void 0,{runner:e});return JSON.stringify(e==="codex"?{systemMessage:t}:{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:t}})}async function Kft(e){let t=fxr(e),r=zP(void 0,{runner:t});return process.stdout.write(e.includes("--hook")?pxr(t):r),e.includes("--hook")&&process.stdout.write(`
826
- `),0}import{existsSync as Jxr,readFileSync as Kxr,statSync as Iye}from"node:fs";import{join as ppt,basename as Zxr}from"node:path";function UY(e){let t={app:e,version:mxr(MR("__RED_BUILD_VERSION__",()=>"2.41.1")??"0.0.0-dev"),gitSha:MR("__RED_BUILD_GIT_SHA__",()=>"51f51f7034e054522493ffa6224020476e721173")??"unknown",buildTime:MR("__RED_BUILD_TIME__",()=>"2026-07-13T02:18:58-03:00")??"unknown",bundleAsset:MR("__RED_BUNDLE_ASSET__",()=>"dev.bundle.min.mjs")??"unknown"},r=MR("__REDDB_SDK_VERSION__",()=>""),n=MR("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function mxr(e){return e.startsWith("v")?e.slice(1):e}function Zft(e){return`${e.app} ${e.version} ${e.gitSha}`}function MR(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}function HY(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.floor(e/1e3)}k`:String(e)}function Cye(e){let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(e>0?e:0)}function tpt(e){let t=e.toLowerCase();for(let r of["opus","sonnet","haiku","fable"])if(t.includes(r))return r;return e}function hxr(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return n<24?`${n}h${r%60}m`:`${Math.floor(n/24)}d${n%24}h`}function FR(e){if(e<60)return`${e}s`;let t=Math.floor(e/60);if(t<60)return`${t}m`;let r=Math.floor(t/60),n=t%60;return n>0?`${r}h${n}m`:`${r}h`}function Xft(e){let t=e.basename;if(e.branch){let r=e.branch;return r.length>28&&(r=`${r.slice(0,27)}\u2026`),`${t} (${r})`}return e.detachedSha?`${t} (detached ${e.detachedSha})`:t}function gxr(e){return!e||!e.model?null:e.effort?`${e.model}\xB7${e.effort}`:e.model}function ept(e){if(!e)return null;let t=e.contextTokens;if(t===void 0||t===0)return null;let r=HY(t);return e.contextPercent===void 0?r:`${r} ${Math.round(e.contextPercent)}%`}function Axr(e){if(!e||e.workers<=0)return[];let t=[],r=(i,s)=>{t.push({label:i,value:s,suffix:""})};if(e.workers>0&&r("wrk=",String(e.workers)),e.sourceCounts&&e.sourceCounts.length>0)for(let{origin:i,count:s}of e.sourceCounts)r(`${i}=`,String(s));let n=e.cacheAgeS!==void 0?` (${FR(e.cacheAgeS)})`:"";if(e.queue>0&&t.push({label:"rdy=",value:String(e.queue),suffix:n}),e.human>0){let i=n&&e.queue===0?n:"";t.push({label:"hmn=",value:String(e.human),suffix:i})}e.blocked>0&&r("blk=",String(e.blocked));let o=[];return e.added>0&&o.push(`+${e.added}`),e.removed>0&&o.push(`-${e.removed}`),o.length&&r("loc=",e.locIsPeak?`~${o.join(" ")}`:o.join(" ")),e.waiting!==void 0&&e.waiting>0&&r("wai=",String(e.waiting)),e.tokens!==void 0&&e.tokens>0&&r("tok=",HY(e.tokens)),e.costUsd!==void 0&&e.costUsd>0&&r("usd=",e.costUsd.toFixed(2)),e.issues.forEach((i,s)=>{let a=e.phases?.[s],c=e.aliveMs?.[s],u=a?`\xB7${a}`:"";c!==void 0&&c>0&&(u+=`\xB7${hxr(c)}`),t.push({label:"#",value:String(i),suffix:u})}),t}function yxr(e){if(!e)return null;let t=[];return e.usage5h!==void 0&&t.push(`5h=${Math.round(e.usage5h)}%`),e.usage7d!==void 0&&t.push(`7d=${Math.round(e.usage7d)}%`),t.length?t.join(" "):null}function xxr(e){if(!e)return null;let t=[],r=e.cacheAgeS!==void 0?` (${FR(e.cacheAgeS)})`:"";if(e.openPrs&&e.openPrs>0&&t.push(`prs=${e.openPrs}${r}`),e.todayPrs&&e.todayPrs>0){let o=r&&(!e.openPrs||e.openPrs===0)?r:"";t.push(`cpr=${e.todayPrs}${o}`)}if(e.openIssues&&e.openIssues>0){let o=r&&(!e.openPrs||e.openPrs===0)&&(!e.todayPrs||e.todayPrs===0)?r:"";t.push(`iss=${e.openIssues}${o}`)}let n=[];return e.localAdded&&e.localAdded>0&&n.push(`+${e.localAdded}`),e.localRemoved&&e.localRemoved>0&&n.push(`-${e.localRemoved}`),n.length&&t.push(`loc=${n.join(" ")}`),t.length?t.join(" "):null}function Exr(e){if(!e||!e.openIssues||e.openIssues<=0)return null;let t=e.cacheAgeS!==void 0?` (${FR(e.cacheAgeS)})`:"";return`iss=${e.openIssues}${t}`}function wye(e){if(!e)return null;let t=e.runner||"?",r=Math.max(0,Math.floor(e.busy)),n=Math.max(0,Math.floor(e.total)),o=Math.max(0,Math.floor(e.queue)),i=[`flt=${t} ${r}/${n} busy`,`q=${o}`];return e.parked!==void 0&&e.parked>0&&i.push(`park=${Math.floor(e.parked)}`),i.join(" \xB7 ")}function $Y(e){return e?e.state==="ready"?`rsp \u2193${Cye(e.tokensSavedToday)}`:e.state==="warming"?"rsp \u2026":"rsp !":null}function bxr(e){let t=Axr(e);return t.length===0?null:t.map(r=>`${r.label}${r.value}${r.suffix}`).join(" ")}function rpt(e,t="full"){if(t==="short"){let l=[Xft(e.project)],d=ept(e.claude);d!==null&&l.push(`ctx=${d}`);let f=Exr(e.repo);f!==null&&l.push(f);let p=$Y(e.rsp);return p!==null&&l.push(p),l.join(" \xB7 ")}let r=[Xft(e.project)],n=gxr(e.claude);n!==null&&r.push(n);let o=ept(e.claude);o!==null&&r.push(o);let i=yxr(e.claude);i!==null&&r.push(i);let s=xxr(e.repo);s!==null&&r.push(s);let a=wye(e.fleet);a!==null&&r.push(a);let c=$Y(e.rsp);c!==null&&r.push(c);let u=bxr(e.afk);return u!==null&&r.push(u),r.join(" \xB7 ")}var Sxr="\x1B[48;2;114;47;55m",Cxr="\x1B[48;2;88;36;42m",ipt="\x1B[49m",$C="\x1B[38;2;255;255;255m",spt="\x1B[38;2;255;214;214m",apt="\x1B[39m",HC="\x1B[38;2;224;138;148m",dM="\x1B[38;2;201;150;158m",wxr="\x1B[38;2;96;214;128m",Ixr="\x1B[38;2;255;95;95m",kxr="\x1B[38;2;240;200;120m",cpt="\x1B[1m",upt="\x1B[22m",lpt="\x1B[0m",vxr=28,Rxr=" ",WY=["workerId","run","org","iss","phase","elapsed","loc","tks","tls","rsn","txt"],Bxr=["workerId","iss","phase","elapsed"],_xr=new Set(["requeue"]),Txr=new Set(["gate","push-pr","merge","cascade"]),Dxr=e=>e.replace(/\x1b\[[0-9;]*m/g,"");function dpt(e){return Dxr(e).length}function Qxr(e,t){return e+" ".repeat(Math.max(0,t-dpt(e)))}var Ux=(e,t)=>`${spt}${e}=${apt}${t}${HC}`;function Oxr(e,t){let r=[];return e&&e>0&&r.push(`+${e}`),t&&t>0&&r.push(`-${t}`),r.length?r.join(" "):null}function Nxr(e){return e.runner==="claude"&&e.tokens===0?"\u2014":Cye(e.tokens)}function Pxr(e,t=!0){let r="";if(e.branch){let o=e.branch.length>vxr?`${e.branch.slice(0,27)}\u2026`:e.branch;r=` ${dM}(${o})${$C}`}else e.detachedSha&&(r=` ${dM}(detached ${e.detachedSha})${$C}`);let n=t&&e.version?` ${dM}v${e.version}${$C}`:"";return`${kxr}\xBB${$C} ${cpt}${e.basename}${upt}${r}${n}`}function Mxr(e){return!e||!e.model?null:e.effort?`${e.model}${dM}\xB7${$C}${e.effort}`:e.model}function npt(e){if(!e||!e.contextTokens)return null;let t=HY(e.contextTokens),r=e.contextPercent===void 0?t:`${t} ${Math.round(e.contextPercent)}%`;return Ux("ctx",r)}function Fxr(e){if(!e)return[];let t=[];return e.usage5h!==void 0&&t.push(Ux("5h",`${Math.round(e.usage5h)}%`)),e.usage7d!==void 0&&t.push(Ux("7d",`${Math.round(e.usage7d)}%`)),t}function Lxr(e){if(!e)return[];let t=[],r=e.cacheAgeS!==void 0?` (${FR(e.cacheAgeS)})`:"";if(e.openPrs&&e.openPrs>0&&t.push(Ux("prs",String(e.openPrs))+r),e.todayPrs&&e.todayPrs>0){let n=r&&(!e.openPrs||e.openPrs===0)?r:"";t.push(Ux("cpr",String(e.todayPrs))+n)}if(e.openIssues&&e.openIssues>0){let n=r&&(!e.openPrs||e.openPrs===0)&&(!e.todayPrs||e.todayPrs===0)?r:"";t.push(Ux("iss",String(e.openIssues))+n)}return t}function Uxr(e){if(!e)return[];let t=Oxr(e.localAdded,e.localRemoved);return t?[Ux("loc",t)]:[]}function $xr(e){let t=wye(e);return t?[t]:[]}function opt(e){let t=$Y(e);return!e||!t?[]:e.state==="ready"?[`${wxr}${t}${HC}`]:e.state==="error"?[`${Ixr}${t}${HC}`]:[`${dM}${t}${HC}`]}function Hxr(e,t,r,n,o="full",i){let s=`${Cxr}${$C} ${Pxr(e,o==="full")} `,a=Mxr(t);o==="full"&&a!==null&&(s+=`${Sxr}${$C} ${a} `),s+=`${ipt}${HC}`;let c=o==="short"?[npt(t),r&&r.openIssues&&r.openIssues>0?Ux("iss",String(r.openIssues))+(r.cacheAgeS!==void 0?` (${FR(r.cacheAgeS)})`:""):null,...opt(i)].filter(u=>u!==null):[npt(t),...Fxr(t),...Lxr(r),...Uxr(r),...$xr(n),...opt(i)].filter(u=>u!==null);return c.length&&(s+=` ${c.join(" ")}`),`${s}${lpt}`}function Wxr(e,t){return[e,t].filter(Boolean).join("\xB7")}function jxr(e,t){let r=Xdt(e,t),n=[r.runner,r.model?tpt(r.model):void 0,r.effort].filter(s=>!!s).join(" "),o=Txr.has(r.phase),i=o||r.origin!==void 0&&_xr.has(r.origin);return{workerId:r.workerId,run:`run=${n}`,org:`org=${o?"landing":r.origin||"afk"}`,iss:r.issue===null?"":`iss=${String(r.issue)}`,phase:r.issue===null?"":Wxr(r.phase,r.activity),elapsed:r.elapsed,loc:i?"":`loc=${cM(r.added,r.removed)}`,tks:i?"":`tks=${Nxr(r)}`,tls:i?"":`tls=${String(r.tools)}`,rsn:i?"":`rsn=${String(r.reasoning)}`,txt:i?"":`txt=${String(r.text)}`}}function qxr(e,t=WY){let r=Object.fromEntries(WY.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],dpt(n[o]));return r}function Gxr(e,t){if(e==="workerId")return`${cpt}${t}${upt}`;let r=t.indexOf("=");return r>0?`${spt}${t.slice(0,r+1)}${apt}${t.slice(r+1)}${HC}`:t}function zxr(e,t,r=WY){let n=r.map(o=>Gxr(o,Qxr(e[o],t[o])));return`${ipt}${HC}${n.join(Rxr)}${lpt}`}function Vxr(e,t,r="full"){let n=e.map(s=>jxr(s,t)),o=r==="short"?Bxr:WY,i=qxr(n,o);return n.map(s=>zxr(s,i,o))}function Yxr(e,t={}){let r=t.preset??"full",n=[Hxr(e.project,e.claude,e.repo,e.fleet,r,e.rsp)],o=t.now??0;return n.push(...Vxr(t.workers??[],o,r)),n.join(`
826
+ `),0}import{existsSync as Jxr,readFileSync as Kxr,statSync as Iye}from"node:fs";import{join as ppt,basename as Zxr}from"node:path";function UY(e){let t={app:e,version:mxr(MR("__RED_BUILD_VERSION__",()=>"2.43.0")??"0.0.0-dev"),gitSha:MR("__RED_BUILD_GIT_SHA__",()=>"809ed5c081ab042908db5143230cdec6a0f5a0e1")??"unknown",buildTime:MR("__RED_BUILD_TIME__",()=>"2026-07-13T02:58:29-03:00")??"unknown",bundleAsset:MR("__RED_BUNDLE_ASSET__",()=>"dev.bundle.min.mjs")??"unknown"},r=MR("__REDDB_SDK_VERSION__",()=>""),n=MR("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function mxr(e){return e.startsWith("v")?e.slice(1):e}function Zft(e){return`${e.app} ${e.version} ${e.gitSha}`}function MR(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}function HY(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.floor(e/1e3)}k`:String(e)}function Cye(e){let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(e>0?e:0)}function tpt(e){let t=e.toLowerCase();for(let r of["opus","sonnet","haiku","fable"])if(t.includes(r))return r;return e}function hxr(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return n<24?`${n}h${r%60}m`:`${Math.floor(n/24)}d${n%24}h`}function FR(e){if(e<60)return`${e}s`;let t=Math.floor(e/60);if(t<60)return`${t}m`;let r=Math.floor(t/60),n=t%60;return n>0?`${r}h${n}m`:`${r}h`}function Xft(e){let t=e.basename;if(e.branch){let r=e.branch;return r.length>28&&(r=`${r.slice(0,27)}\u2026`),`${t} (${r})`}return e.detachedSha?`${t} (detached ${e.detachedSha})`:t}function gxr(e){return!e||!e.model?null:e.effort?`${e.model}\xB7${e.effort}`:e.model}function ept(e){if(!e)return null;let t=e.contextTokens;if(t===void 0||t===0)return null;let r=HY(t);return e.contextPercent===void 0?r:`${r} ${Math.round(e.contextPercent)}%`}function Axr(e){if(!e||e.workers<=0)return[];let t=[],r=(i,s)=>{t.push({label:i,value:s,suffix:""})};if(e.workers>0&&r("wrk=",String(e.workers)),e.sourceCounts&&e.sourceCounts.length>0)for(let{origin:i,count:s}of e.sourceCounts)r(`${i}=`,String(s));let n=e.cacheAgeS!==void 0?` (${FR(e.cacheAgeS)})`:"";if(e.queue>0&&t.push({label:"rdy=",value:String(e.queue),suffix:n}),e.human>0){let i=n&&e.queue===0?n:"";t.push({label:"hmn=",value:String(e.human),suffix:i})}e.blocked>0&&r("blk=",String(e.blocked));let o=[];return e.added>0&&o.push(`+${e.added}`),e.removed>0&&o.push(`-${e.removed}`),o.length&&r("loc=",e.locIsPeak?`~${o.join(" ")}`:o.join(" ")),e.waiting!==void 0&&e.waiting>0&&r("wai=",String(e.waiting)),e.tokens!==void 0&&e.tokens>0&&r("tok=",HY(e.tokens)),e.costUsd!==void 0&&e.costUsd>0&&r("usd=",e.costUsd.toFixed(2)),e.issues.forEach((i,s)=>{let a=e.phases?.[s],c=e.aliveMs?.[s],u=a?`\xB7${a}`:"";c!==void 0&&c>0&&(u+=`\xB7${hxr(c)}`),t.push({label:"#",value:String(i),suffix:u})}),t}function yxr(e){if(!e)return null;let t=[];return e.usage5h!==void 0&&t.push(`5h=${Math.round(e.usage5h)}%`),e.usage7d!==void 0&&t.push(`7d=${Math.round(e.usage7d)}%`),t.length?t.join(" "):null}function xxr(e){if(!e)return null;let t=[],r=e.cacheAgeS!==void 0?` (${FR(e.cacheAgeS)})`:"";if(e.openPrs&&e.openPrs>0&&t.push(`prs=${e.openPrs}${r}`),e.todayPrs&&e.todayPrs>0){let o=r&&(!e.openPrs||e.openPrs===0)?r:"";t.push(`cpr=${e.todayPrs}${o}`)}if(e.openIssues&&e.openIssues>0){let o=r&&(!e.openPrs||e.openPrs===0)&&(!e.todayPrs||e.todayPrs===0)?r:"";t.push(`iss=${e.openIssues}${o}`)}let n=[];return e.localAdded&&e.localAdded>0&&n.push(`+${e.localAdded}`),e.localRemoved&&e.localRemoved>0&&n.push(`-${e.localRemoved}`),n.length&&t.push(`loc=${n.join(" ")}`),t.length?t.join(" "):null}function Exr(e){if(!e||!e.openIssues||e.openIssues<=0)return null;let t=e.cacheAgeS!==void 0?` (${FR(e.cacheAgeS)})`:"";return`iss=${e.openIssues}${t}`}function wye(e){if(!e)return null;let t=e.runner||"?",r=Math.max(0,Math.floor(e.busy)),n=Math.max(0,Math.floor(e.total)),o=Math.max(0,Math.floor(e.queue)),i=[`flt=${t} ${r}/${n} busy`,`q=${o}`];return e.parked!==void 0&&e.parked>0&&i.push(`park=${Math.floor(e.parked)}`),i.join(" \xB7 ")}function $Y(e){return e?e.state==="ready"?`rsp \u2193${Cye(e.tokensSavedToday)}`:e.state==="warming"?"rsp \u2026":"rsp !":null}function bxr(e){let t=Axr(e);return t.length===0?null:t.map(r=>`${r.label}${r.value}${r.suffix}`).join(" ")}function rpt(e,t="full"){if(t==="short"){let l=[Xft(e.project)],d=ept(e.claude);d!==null&&l.push(`ctx=${d}`);let f=Exr(e.repo);f!==null&&l.push(f);let p=$Y(e.rsp);return p!==null&&l.push(p),l.join(" \xB7 ")}let r=[Xft(e.project)],n=gxr(e.claude);n!==null&&r.push(n);let o=ept(e.claude);o!==null&&r.push(o);let i=yxr(e.claude);i!==null&&r.push(i);let s=xxr(e.repo);s!==null&&r.push(s);let a=wye(e.fleet);a!==null&&r.push(a);let c=$Y(e.rsp);c!==null&&r.push(c);let u=bxr(e.afk);return u!==null&&r.push(u),r.join(" \xB7 ")}var Sxr="\x1B[48;2;114;47;55m",Cxr="\x1B[48;2;88;36;42m",ipt="\x1B[49m",$C="\x1B[38;2;255;255;255m",spt="\x1B[38;2;255;214;214m",apt="\x1B[39m",HC="\x1B[38;2;224;138;148m",dM="\x1B[38;2;201;150;158m",wxr="\x1B[38;2;96;214;128m",Ixr="\x1B[38;2;255;95;95m",kxr="\x1B[38;2;240;200;120m",cpt="\x1B[1m",upt="\x1B[22m",lpt="\x1B[0m",vxr=28,Rxr=" ",WY=["workerId","run","org","iss","phase","elapsed","loc","tks","tls","rsn","txt"],Bxr=["workerId","iss","phase","elapsed"],_xr=new Set(["requeue"]),Txr=new Set(["gate","push-pr","merge","cascade"]),Dxr=e=>e.replace(/\x1b\[[0-9;]*m/g,"");function dpt(e){return Dxr(e).length}function Qxr(e,t){return e+" ".repeat(Math.max(0,t-dpt(e)))}var Ux=(e,t)=>`${spt}${e}=${apt}${t}${HC}`;function Oxr(e,t){let r=[];return e&&e>0&&r.push(`+${e}`),t&&t>0&&r.push(`-${t}`),r.length?r.join(" "):null}function Nxr(e){return e.runner==="claude"&&e.tokens===0?"\u2014":Cye(e.tokens)}function Pxr(e,t=!0){let r="";if(e.branch){let o=e.branch.length>vxr?`${e.branch.slice(0,27)}\u2026`:e.branch;r=` ${dM}(${o})${$C}`}else e.detachedSha&&(r=` ${dM}(detached ${e.detachedSha})${$C}`);let n=t&&e.version?` ${dM}v${e.version}${$C}`:"";return`${kxr}\xBB${$C} ${cpt}${e.basename}${upt}${r}${n}`}function Mxr(e){return!e||!e.model?null:e.effort?`${e.model}${dM}\xB7${$C}${e.effort}`:e.model}function npt(e){if(!e||!e.contextTokens)return null;let t=HY(e.contextTokens),r=e.contextPercent===void 0?t:`${t} ${Math.round(e.contextPercent)}%`;return Ux("ctx",r)}function Fxr(e){if(!e)return[];let t=[];return e.usage5h!==void 0&&t.push(Ux("5h",`${Math.round(e.usage5h)}%`)),e.usage7d!==void 0&&t.push(Ux("7d",`${Math.round(e.usage7d)}%`)),t}function Lxr(e){if(!e)return[];let t=[],r=e.cacheAgeS!==void 0?` (${FR(e.cacheAgeS)})`:"";if(e.openPrs&&e.openPrs>0&&t.push(Ux("prs",String(e.openPrs))+r),e.todayPrs&&e.todayPrs>0){let n=r&&(!e.openPrs||e.openPrs===0)?r:"";t.push(Ux("cpr",String(e.todayPrs))+n)}if(e.openIssues&&e.openIssues>0){let n=r&&(!e.openPrs||e.openPrs===0)&&(!e.todayPrs||e.todayPrs===0)?r:"";t.push(Ux("iss",String(e.openIssues))+n)}return t}function Uxr(e){if(!e)return[];let t=Oxr(e.localAdded,e.localRemoved);return t?[Ux("loc",t)]:[]}function $xr(e){let t=wye(e);return t?[t]:[]}function opt(e){let t=$Y(e);return!e||!t?[]:e.state==="ready"?[`${wxr}${t}${HC}`]:e.state==="error"?[`${Ixr}${t}${HC}`]:[`${dM}${t}${HC}`]}function Hxr(e,t,r,n,o="full",i){let s=`${Cxr}${$C} ${Pxr(e,o==="full")} `,a=Mxr(t);o==="full"&&a!==null&&(s+=`${Sxr}${$C} ${a} `),s+=`${ipt}${HC}`;let c=o==="short"?[npt(t),r&&r.openIssues&&r.openIssues>0?Ux("iss",String(r.openIssues))+(r.cacheAgeS!==void 0?` (${FR(r.cacheAgeS)})`:""):null,...opt(i)].filter(u=>u!==null):[npt(t),...Fxr(t),...Lxr(r),...Uxr(r),...$xr(n),...opt(i)].filter(u=>u!==null);return c.length&&(s+=` ${c.join(" ")}`),`${s}${lpt}`}function Wxr(e,t){return[e,t].filter(Boolean).join("\xB7")}function jxr(e,t){let r=Xdt(e,t),n=[r.runner,r.model?tpt(r.model):void 0,r.effort].filter(s=>!!s).join(" "),o=Txr.has(r.phase),i=o||r.origin!==void 0&&_xr.has(r.origin);return{workerId:r.workerId,run:`run=${n}`,org:`org=${o?"landing":r.origin||"afk"}`,iss:r.issue===null?"":`iss=${String(r.issue)}`,phase:r.issue===null?"":Wxr(r.phase,r.activity),elapsed:r.elapsed,loc:i?"":`loc=${cM(r.added,r.removed)}`,tks:i?"":`tks=${Nxr(r)}`,tls:i?"":`tls=${String(r.tools)}`,rsn:i?"":`rsn=${String(r.reasoning)}`,txt:i?"":`txt=${String(r.text)}`}}function qxr(e,t=WY){let r=Object.fromEntries(WY.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],dpt(n[o]));return r}function Gxr(e,t){if(e==="workerId")return`${cpt}${t}${upt}`;let r=t.indexOf("=");return r>0?`${spt}${t.slice(0,r+1)}${apt}${t.slice(r+1)}${HC}`:t}function zxr(e,t,r=WY){let n=r.map(o=>Gxr(o,Qxr(e[o],t[o])));return`${ipt}${HC}${n.join(Rxr)}${lpt}`}function Vxr(e,t,r="full"){let n=e.map(s=>jxr(s,t)),o=r==="short"?Bxr:WY,i=qxr(n,o);return n.map(s=>zxr(s,i,o))}function Yxr(e,t={}){let r=t.preset??"full",n=[Hxr(e.project,e.claude,e.repo,e.fleet,r,e.rsp)],o=t.now??0;return n.push(...Vxr(t.workers??[],o,r)),n.join(`
827
827
  `)}function fpt(e,t,r={}){let n=r.preset??"full";return t?Yxr(e,r):rpt(e,n)}Mo();PP();function Xxr(e){return new Promise(t=>{if(e.isTTY){t("");return}let r="",n=!1,o=()=>{n||(n=!0,t(r))};e.setEncoding("utf8"),e.on("data",i=>{r+=i}),e.on("end",o),e.on("error",o),e.on("close",o)})}function eEr(e){if(!e.trim())return{};try{let t=JSON.parse(e);return typeof t=="object"&&t!==null?t:{}}catch{return{}}}function tEr(e){try{return Iye(e).isDirectory()}catch{return!1}}function rEr(e,t,r){if(e&&tEr(e))return e;let n=t.workspace?.project_dir||t.workspace?.current_dir||t.cwd;return n||r}function nEr(e){let t=ppt(e,".red","config.yaml");if(!Jxr(t))return!0;let r=Cr(t,{warn:()=>{}});return!(Pe(r,"statusline")==="false"||Pe(r,"afk.statusline")==="false")}function jY(e){return e==="full"||e==="short"?e:void 0}function oEr(e){return jY(Pe(e,"plugins.dev.statusline.preset"))??jY(Pe(e,"dev.statusline.preset"))??jY(Pe(e,"afk.statusline.preset"))??jY(Pe(e,"statusline.preset"))??"full"}var iEr=15e3;function sEr(e){try{let t=JSON.parse(Kxr(e,"utf8"));if(typeof t=="object"&&t!==null&&t.version===1&&typeof t.tokens_saved_today=="number"&&typeof t.updated_at=="string")return t}catch{}}function aEr(e,t,r){try{return t-Iye(e).mtimeMs<=r}catch{return!1}}function cEr(e){try{return Iye(e),!0}catch{return!1}}function uEr(e){let t=Date.parse(e);if(Number.isFinite(t))return new Date(t).toISOString().slice(0,10)}function lEr(e,t){return uEr(e.updated_at)!==new Date(t).toISOString().slice(0,10)?0:Math.max(0,Math.floor(e.tokens_saved_today))}async function dEr(e,t=process.env){if(!kAe(e,t).enabled)return;let n=hY(e),o=Date.now(),i=sEr(n.summaryPath);if(i)return{state:"ready",tokensSavedToday:lEr(i,o)};if(aEr(n.wakeLockPath,o,iEr))return{state:"warming"};if(cEr(n.wakeLockPath))return{state:"error"}}async function fEr(e){let t={cwd:e},r=UY("dev").version,n={basename:Zxr(e),version:r},o=await yP(t);if(o)return{...n,branch:o};let i=await hg(t);return i?{...n,detachedSha:i}:n}function pEr(e){let t=e.model?.display_name,r=e.effort?.level,n=e.context_window?.total_input_tokens,o=e.context_window?.used_percentage,i=e.rate_limits?.five_hour?.used_percentage,s=e.rate_limits?.seven_day?.used_percentage;if(!(t===void 0&&n===void 0&&i===void 0&&s===void 0))return{model:t||void 0,effort:r||void 0,contextTokens:n,contextPercent:o,usage5h:i,usage7d:s}}async function mpt(e,t=process.cwd(),r=process.stdout,n=process.stdin){if(e.includes("--legend"))return r.write(`${QY()}
828
828
  `),0;let o=e[0],i=await Xxr(n),s=eEr(i),a=rEr(o,s,t);if(!nEr(a))return 0;let c=await fEr(a),u=pEr(s),l={root:a,repo:yR(a),remote:"origin"},d=Cr(ppt(a,".red","config.yaml"),{warn:()=>{}}),f=oEr(d),p=F4(process.env,_=>Pe(d,_)),g=`origin/${await lf({issueBody:""},{readLockedBranch:()=>bg(_x(a)),configLockedBranch:Pe(d,"dev.lock.branch"),configTrunk:Pe(d,"dev.trunk"),fetchIssueBody:async()=>{}})}`,[A,E,y,b,w]=await Promise.all([zat(l,p,g),jat(l,p).then(_=>_??void 0),qat(l),Gat(l),dEr(a)]),I=!process.env.NO_COLOR,v=Number.parseInt(process.env.COLUMNS??"",10),k=Math.floor(Date.now()/1e3),R=fpt({project:c,claude:u,repo:A,fleet:y,afk:E,rsp:w},I,{columns:Number.isFinite(v)&&v>0?v:void 0,workers:b,now:k,preset:f});return r.write(`${R}
829
829
  `),0}async function hpt(e,t=process.cwd()){let r=e[0]??t,n="",o="";for(let i=1;i<e.length;i+=1){let s=e[i];s==="--repo"?n=e[++i]??"":s==="--lock"&&(o=e[++i]??"")}return await Wat(r,n||yR(r),o||void 0),0}nw();import{spawn as _pt}from"node:child_process";import{existsSync as vye,openSync as Dpt,closeSync as SEr,writeFileSync as Qpt,writeSync as CEr,rmSync as Rye,renameSync as wEr}from"node:fs";import{join as WC}from"node:path";import{existsSync as mEr,readdirSync as fM,readFileSync as qY,statSync as xpt}from"node:fs";import{join as ls}from"node:path";ru();Vd();function hEr(e,t){return ls(e,`afk-supervisor-slot-${t}.log`)}function gEr(e){let t;try{t=qY(e,"utf8")}catch{return[]}let r=[],n=new Set;for(let o of t.split(`
@@ -6563,7 +6563,7 @@ Usage:
6563
6563
  ${n} archive --candidate <json> [--root <dir>] [--archive-dir <rel>]
6564
6564
  ${n} restore <name> [--root <dir>] [--archive-dir <rel>]`}function Xx(n){return XNn(typeof n.root=="string"?n.root:process.cwd())}function got(n){return typeof n["archive-dir"]=="string"?n["archive-dir"]:void 0}async function gj(n){let a=await Co(n);return a?a.mode!=="graph"?{ok:!1,message:`curate: skill telemetry needs graph mode (this project is "${a.mode}") \u2014 run \`${Nwe}\``}:sZ(a)?{ok:!0}:{ok:!1,message:`curate: skill telemetry is not enabled here \u2014 run \`${Nwe}\``}:{ok:!1,message:`curate: memory is not initialized here \u2014 run \`${Nwe}\``}}function wNn(){let n=FNn(fNn(import.meta.url));return n.includes("dist/curate-skill")||n.endsWith("dist/curate-skill")?Yot(n,"..","cli.js"):Yot(n,"..","cli.ts")}async function HNn(n,a){let i=["curate","skills","--json"];a!==void 0&&i.push("--stale-days",String(a));let d=wNn(),h=d.endsWith(".ts")?Not(process.execPath,["--import","tsx",d,...i,"--root",n],{encoding:"utf8"}):Not(process.execPath,[d,...i,"--root",n],{encoding:"utf8"}),y=h.status??1;if(y!==0)throw new Error(`memory curate skills exited ${y}`);return Zot(h.stdout??"")}function QNn(n){return typeof n.flags["stale-days"]=="string"?Number(n.flags["stale-days"]):void 0}async function yot(n,a){return(a.loadCuratorReport??HNn)(Xx(n.flags),QNn(n))}async function ENn(n){let a=Xx(n.flags),i=await gj(a);return i.ok?(console.log("curate: skill telemetry is enabled \u2014 ready to curate"),0):(console.error(i.message),2)}async function _Nn(n,a){let i=Xx(n.flags),d=await gj(i);if(!d.ok)return console.error(d.message),2;let b;try{b=await yot(n,a)}catch(J){return console.error(`curate: ${J.message}`),1}let{candidates:h,byCategory:y,filtered:w}=hwe(b);return console.log(JSON.stringify({candidates:h,byCategory:y,filtered:w,totals:{totalSkills:b.totalSkills,curatableSkills:b.curatableSkills,readOnlySkills:b.readOnlySkills}},null,2)),0}async function CNn(n,a){let i=Xx(n.flags),d=await gj(i);if(!d.ok)return console.error(d.message),2;let b;try{b=await yot(n,a)}catch(J){return console.error(`curate: ${J.message}`),1}let{byCategory:h}=hwe(b);if(Wwe(h)===0)return console.error("curate: no candidates \u2014 no issue filed"),0;let y=typeof n.flags.label=="string"?n.flags.label:void 0,w=await Wot({byCategory:h,totals:{totalSkills:b.totalSkills,curatableSkills:b.curatableSkills,readOnlySkills:b.readOnlySkills},generatedAt:b.generatedAt},{cwd:i,label:y});return console.log(`curate: filed background issue \u2014 ${w.output||w.title}`),0}async function JNn(n){let a=Xx(n.flags),i=await gj(a);if(!i.ok)return console.error(i.message),2;let d=n.flags.candidate;if(typeof d!="string")return console.error("curate archive: --candidate <json> is required"),2;let b;try{b=JSON.parse(d)}catch(y){return console.error(`curate archive: invalid --candidate JSON: ${y.message}`),2}let h=await uot(b,{rootDir:a,archiveDir:got(n.flags)});return h.ok?(console.log(`curate: archived "${h.receipt.name}" \u2192 ${h.receipt.archiveRoot} (${h.receipt.files.length} file(s), manifest at ${h.receipt.manifestPath})`),0):(console.error(`curate archive: refused \u2014 ${h.rejection.reason}: ${h.rejection.detail}`),3)}async function kNn(n){let a=Xx(n.flags),i=await gj(a);if(!i.ok)return console.error(i.message),2;let d=n.positional[0];if(!d)return console.error("curate restore: skill name is required"),2;let b=await pot(d,{rootDir:a,archiveDir:got(n.flags)});return console.log(`curate: restored "${b.name}" \u2192 ${b.restoredRoot} (${b.files.length} file(s) hash-verified)`),0}async function Rot(n,a={}){switch(n.command){case"check":return ENn(n);case"list":return _Nn(n,a);case"background":return CNn(n,a);case"archive":return JNn(n);case"restore":return kNn(n);case void 0:case"--help":case"-h":return console.log(Vot(a.usageCommand)),0;default:return console.error(`unknown curate subcommand: ${n.command}
6565
6565
 
6566
- ${Vot(a.usageCommand)}`),2}}function vot(n){let a={app:n,version:ANn(fx("__RED_BUILD_VERSION__",()=>"2.41.1")??"0.0.0-dev"),gitSha:fx("__RED_BUILD_GIT_SHA__",()=>"51f51f7034e054522493ffa6224020476e721173")??"unknown",buildTime:fx("__RED_BUILD_TIME__",()=>"2026-07-13T02:18:58-03:00")??"unknown",bundleAsset:fx("__RED_BUNDLE_ASSET__",()=>"memory.bundle.min.mjs")??"unknown"},i=fx("__REDDB_SDK_VERSION__",()=>"1.23.1"),d=fx("__REDDB_BINARY_TAG__",()=>"v1.23.1");return i&&(a.reddbSdkVersion=i),d&&(a.reddbBinaryTag=d),a}function ANn(n){return n.startsWith("v")?n.slice(1):n}function Fot(n){return`${n.app} ${n.version} ${n.gitSha}`}function fx(n,a){try{let i=a();return typeof i=="string"&&i.length>0?i:void 0}catch{return process.env[n.replace(/^__|__$/g,"")]}}var Xot=`memory \u2014 governed operational memory for code agents
6566
+ ${Vot(a.usageCommand)}`),2}}function vot(n){let a={app:n,version:ANn(fx("__RED_BUILD_VERSION__",()=>"2.43.0")??"0.0.0-dev"),gitSha:fx("__RED_BUILD_GIT_SHA__",()=>"809ed5c081ab042908db5143230cdec6a0f5a0e1")??"unknown",buildTime:fx("__RED_BUILD_TIME__",()=>"2026-07-13T02:58:29-03:00")??"unknown",bundleAsset:fx("__RED_BUNDLE_ASSET__",()=>"memory.bundle.min.mjs")??"unknown"},i=fx("__REDDB_SDK_VERSION__",()=>"1.23.1"),d=fx("__REDDB_BINARY_TAG__",()=>"v1.23.1");return i&&(a.reddbSdkVersion=i),d&&(a.reddbBinaryTag=d),a}function ANn(n){return n.startsWith("v")?n.slice(1):n}function Fot(n){return`${n.app} ${n.version} ${n.gitSha}`}function fx(n,a){try{let i=a();return typeof i=="string"&&i.length>0?i:void 0}catch{return process.env[n.replace(/^__|__$/g,"")]}}var Xot=`memory \u2014 governed operational memory for code agents
6567
6567
 
6568
6568
  Common workflows:
6569
6569
  remember one fact memory store "Decision: ..."
@@ -3,7 +3,7 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
3
3
  var Ao=Object.defineProperty;var k=(e,t)=>()=>(e&&(t=e(e=0)),t);var P=(e,t)=>{for(var n in t)Ao(e,n,{get:t[n],enumerable:!0})};function _r(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/[\u0000-\u001F]/g,t=>`\\u${t.charCodeAt(0).toString(16).padStart(4,"0")}`)}function Rr(e){let t="",n=0;for(;n<e.length;){if(e[n]==="\\"){if(n+1>=e.length)throw new SyntaxError("Invalid escape sequence: backslash at end of string");let r=e[n+1];if(r==="n"){t+=`
4
4
  `,n+=2;continue}if(r==="t"){t+=" ",n+=2;continue}if(r==="r"){t+="\r",n+=2;continue}if(r==="\\"){t+="\\",n+=2;continue}if(r==='"'){t+='"',n+=2;continue}if(r==="u"){if(n+6>e.length)throw new SyntaxError(`Invalid escape sequence: truncated \\u escape at "${e.slice(n,n+6)}"`);let i=e.slice(n+2,n+6);if(!/^[0-9a-f]{4}$/i.test(i))throw new SyntaxError(`Invalid escape sequence: \\u must be followed by 4 hex digits, got "${i}"`);let s=Number.parseInt(i,16);if(s>=55296&&s<=57343)throw new SyntaxError(`Invalid escape sequence: \\u${i} is a lone surrogate; supplementary code points MUST appear as literal UTF-8`);t+=String.fromCodePoint(s),n+=6;continue}throw new SyntaxError(`Invalid escape sequence: \\${r}`)}t+=e[n],n++}return t}function bt(e,t){let n=t+1;for(;n<e.length;){if(e[n]==="\\"&&n+1<e.length){n+=2;continue}if(e[n]==='"')return n;n++}return-1}function en(e,t,n=0){let r=!1,i=n;for(;i<e.length;){if(e[i]==="\\"&&i+1<e.length&&r){i+=2;continue}if(e[i]==='"'){r=!r,i++;continue}if(e[i]===t&&!r)return i;i++}return-1}function $(e,t){try{return t()}catch(n){throw n instanceof N?n:n instanceof Error?new N(n.message,{line:e.lineNumber,source:e.raw,cause:n}):n}}function Er(e){return e==="true"||e==="false"||e==="null"}function $o(e){if(!e||!Po.test(e))return!1;let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)}function gt(e,t,n=!1){let r=e.trimStart(),i=-1;if(r.startsWith('"')){let f=bt(r,0);if(f===-1||!r.slice(f+1).startsWith("["))return;let R=e.length-r.length+f+1;i=e.indexOf("[",R)}else i=e.indexOf("[");if(i===-1)return;let s=e.indexOf("]",i);if(s===-1)return;let o=s+1,a=o,c=e.indexOf("{",s);if(c!==-1&&c<e.indexOf(":",s)){let f=e.slice(s+1,c);if(f!==""){if(n){let m=f.trim();throw new SyntaxError(m===""?"Unexpected whitespace between bracket and fields segment":`Unexpected content "${m}" between bracket and fields segment`)}return}let R=e.indexOf("}",c);R!==-1&&(a=R+1)}if(o=e.indexOf(":",Math.max(s,a)),o===-1)return;let u=Math.max(s+1,a),d=e.slice(u,o);if(d!==""){if(n){let f=d.trim();throw new SyntaxError(f===""?"Unexpected whitespace between bracket segment and colon":`Unexpected content "${f}" between bracket segment and colon`)}return}let l;if(i>0){let f=e.slice(0,i).trim();l=f.startsWith('"')?Xt(f):f}let p=e.slice(o+1).trim(),w=e.slice(i+1,s),b;try{b=Bo(w,t)}catch(f){if(n)throw f;return}let{length:T,delimiter:S}=b,g;if(c!==-1&&c<o){let f=e.indexOf("}",c);if(f!==-1&&f<o){let R=e.slice(c+1,f),m=Co(R,S);if(m!==void 0){if(n)throw new SyntaxError(`Header delimiter mismatch: bracket declares "${yr(S)}" but fields segment contains unquoted "${yr(m)}"`);return}g=tn(R,S).map(E=>Xt(E.trim()))}}return{header:{key:l,length:T,delimiter:S,fields:g},inlineValues:p||void 0}}function Bo(e,t){let n=e,r=t;if(n.endsWith(" ")?(r=yt.tab,n=n.slice(0,-1)):n.endsWith("|")&&(r=yt.pipe,n=n.slice(0,-1)),!No.test(n))throw new SyntaxError(`Invalid array length: "${e}" (expected non-negative integer with no leading zeros)`);return{length:Number.parseInt(n,10),delimiter:r}}function Co(e,t){for(let n of Lo)if(n!==t&&en(e,n)!==-1)return n}function yr(e){return e===" "?"\\t":e}function tn(e,t){let n=[],r="",i=!1,s=0;for(;s<e.length;){let o=e[s];if(o==="\\"&&s+1<e.length&&i){r+=o+e[s+1],s+=2;continue}if(o==='"'){i=!i,r+=o,s++;continue}if(o===t&&!i){n.push(r.trim()),r="",s++;continue}r+=o,s++}return(r||n.length>0)&&n.push(r.trim()),n}function kr(e){return e.map(t=>_t(t))}function _t(e){let t=e.trim();if(!t)return"";if(t.startsWith('"'))return Xt(t);if(Er(t)){if(t==="true")return!0;if(t==="false")return!1;if(t==="null")return null}if($o(t)){let n=Number.parseFloat(t);return Object.is(n,-0)?0:n}return t}function Xt(e){let t=e.trim();if(t.startsWith('"')){let n=bt(t,0);if(n===-1)throw new SyntaxError("Unterminated string: missing closing quote");if(n!==t.length-1)throw new SyntaxError("Unexpected characters after closing quote");return Rr(t.slice(1,n))}return t}function jo(e,t){let n=t;for(;n<e.length&&e[n]!==":";)n++;if(n>=e.length||e[n]!==":")throw new SyntaxError("Missing colon after key");let r=e.slice(t,n).trim();return n++,{key:r,end:n}}function Mo(e,t){let n=bt(e,t);if(n===-1)throw new SyntaxError("Unterminated quoted key");let r=Rr(e.slice(t+1,n)),i=n+1;if(i>=e.length||e[i]!==":")throw new SyntaxError("Missing colon after key");return i++,{key:r,end:i}}function Uo(e,t){let n=e[t]==='"';return{...n?Mo(e,t):jo(e,t),isQuoted:n}}function Sr(e){return e.trim().startsWith("[")&&en(e,":")!==-1}function qo(e){return en(e,":")!==-1}function Fo(){return{lineNumber:0,blankLines:[]}}function Go(e,t,n,r){t.lineNumber++;let i=t.lineNumber,s=0;for(;s<e.length&&e[s]===" ";)s++;let o=e.slice(s);if(!o.trim()){let c=gr(s,n);t.blankLines.push({lineNumber:i,indent:s,depth:c});return}let a=gr(s,n);if(r){let c=0;for(;c<e.length&&(e[c]===" "||e[c]===" ");)c++;if(e.slice(0,c).includes(" "))throw new N("Tabs are not allowed in indentation in strict mode",{line:i,source:e});if(s>0&&s%n!==0)throw new N(`Indentation must be exact multiple of ${n}, but found ${s} spaces`,{line:i,source:e})}return{raw:e,indent:s,content:o,depth:a,lineNumber:i}}function*Vo(e,t,n,r){for(let i of e){let s=Go(i,r,t,n);s!==void 0&&(yield s)}}function gr(e,t){return Math.floor(e/t)}function Ke(e,t,n,r,i){if(r.strict&&e!==t)throw new N(`Expected ${t} ${n}, but got ${e}`,{line:i.lineNumber,source:i.raw})}function Jo(e,t,n){if(e?.depth===t&&e.content.startsWith("- "))throw new N(`Expected ${n} list array items, but found more`,{line:e.lineNumber,source:e.raw})}function Ho(e,t,n){if(e?.depth===t&&!e.content.startsWith("- ")&&Ko(e.content,n.delimiter))throw new N(`Expected ${n.length} tabular rows, but found more`,{line:e.lineNumber,source:e.raw})}function Tr(e,t,n,r,i){if(!r)return;let s=n.find(o=>o.lineNumber>e&&o.lineNumber<t);if(s)throw new N(`Blank lines inside ${i} are not allowed in strict mode`,{line:s.lineNumber})}function Ko(e,t){let n=e.indexOf(":"),r=e.indexOf(t);return n===-1||r!==-1&&r<n}function*Yo(e,t){if(t?.expandPaths!==void 0)throw new Error("expandPaths is not supported in streaming decode");let n={indent:t?.indent??2,strict:t?.strict??!0},r=Fo(),i=new Wo(Vo(e,n.indent,n.strict,r),r),s=i.peekSync();if(!s){yield{type:"startObject"},yield{type:"endObject"};return}if(s.content.trim()==="[]"){i.advanceSync(),yield{type:"startArray",length:0},yield{type:"endArray"};return}if(Sr(s.content)){let a=$(s,()=>gt(s.content,j,n.strict));if(a){i.advanceSync(),yield*ht(a.header,a.inlineValues,i,0,n,s);return}}if(i.advanceSync(),i.atEndSync()&&!wr(s)){yield{type:"primitive",value:$(s,()=>_t(s.content.trim()))};return}if(!wr(s)&&i.peekSync()?.depth===0)throw new N("Top-level document must start with a key-value or array-header line",{line:s.lineNumber,source:s.raw});let o=n.strict?new Set:void 0;for(yield{type:"startObject"},yield*Oe(s,i,0,n,o);!i.atEndSync();){let a=i.peekSync();if(!a||a.depth!==0)break;i.advanceSync(),yield*Oe(a,i,0,n,o)}yield{type:"endObject"}}function hr(e,t,n){if(n){if(n.has(e))throw new N(`Duplicate sibling key "${e}"`,{line:t.lineNumber,source:t.raw});n.add(e)}}function*Oe(e,t,n,r,i){let s=e.content,o=$(e,()=>gt(s,j,r.strict));if(o&&o.header.key!==void 0){hr(o.header.key,e,i),yield{type:"key",key:o.header.key},yield*ht(o.header,o.inlineValues,t,n,r,e);return}let{key:a,isQuoted:c}=$(e,()=>Uo(s,0)),u=s.indexOf(":",a.length),d=u>=0?s.slice(u+1).trim():"";if(hr(a,e,i),yield c?{type:"key",key:a,wasQuoted:!0}:{type:"key",key:a},!d){let l=t.peekSync();if(l&&l.depth>n){yield{type:"startObject"},yield*zo(t,n+1,r),yield{type:"endObject"};return}yield{type:"startObject"},yield{type:"endObject"};return}if(d==="[]"){yield{type:"startArray",length:0},yield{type:"endArray"};return}yield{type:"primitive",value:$(e,()=>_t(d))}}function*zo(e,t,n){let r,i=n.strict?new Set:void 0;for(;!e.atEndSync();){let s=e.peekSync();if(!s||s.depth<t)break;if(r===void 0&&s.depth>=t&&(r=s.depth),s.depth===r)e.advanceSync(),yield*Oe(s,e,r,n,i);else break}}function*ht(e,t,n,r,i,s){if(yield{type:"startArray",length:e.length},t){yield*Qo(e,t,i,s),yield{type:"endArray"};return}if(e.fields&&e.fields.length>0){yield*Xo(e,n,r,i,s),yield{type:"endArray"};return}yield*Zo(e,n,r,i,s),yield{type:"endArray"}}function*Qo(e,t,n,r){if(!t.trim()){Ke(0,e.length,"inline array items",n,r);return}let i=$(r,()=>tn(t,e.delimiter)),s=$(r,()=>kr(i));Ke(s.length,e.length,"inline array items",n,r);for(let o of s)yield{type:"primitive",value:o}}function*Xo(e,t,n,r,i){let s=n+1,o=0,a,c,u=i;for(;!t.atEndSync()&&o<e.length;){let d=t.peekSync();if(!d||d.depth<s)break;if(d.depth===s){a===void 0&&(a=d.lineNumber),c=d.lineNumber,u=d,t.advanceSync();let l=$(d,()=>tn(d.content,e.delimiter));Ke(l.length,e.fields.length,"tabular row values",r,d);let p=$(d,()=>kr(l));yield*ta(e.fields,p),o++}else break}Ke(o,e.length,"tabular rows",r,u),r.strict&&a!==void 0&&c!==void 0&&Tr(a,c,t.getBlankLines(),r.strict,"tabular array"),r.strict&&Ho(t.peekSync(),s,e)}function*Zo(e,t,n,r,i){let s=n+1,o=0,a,c,u=i;for(;!t.atEndSync()&&o<e.length;){let d=t.peekSync();if(!d||d.depth<s)break;let l=d.content.startsWith("- ")||d.content==="-";if(d.depth===s&&l){a===void 0&&(a=d.lineNumber),c=d.lineNumber,u=d,yield*ea(t,s,r);let p=t.current();p&&(c=p.lineNumber,u=p),o++}else break}Ke(o,e.length,"list array items",r,u),r.strict&&a!==void 0&&c!==void 0&&Tr(a,c,t.getBlankLines(),r.strict,"list array"),r.strict&&Jo(t.peekSync(),s,e.length)}function*ea(e,t,n){let r=e.nextSync();if(!r)throw new ReferenceError("Expected list item");let i;if(r.content==="-"){yield{type:"startObject"},yield{type:"endObject"};return}else if(r.content.startsWith("- "))i=r.content.slice(2);else throw new N('Expected list item to start with "- "',{line:r.lineNumber,source:r.raw});if(!i.trim()){yield{type:"startObject"},yield{type:"endObject"};return}if(i.trim()==="[]"){yield{type:"startArray",length:0},yield{type:"endArray"};return}let s={...r,content:i};if(Sr(i)){let a=$(s,()=>gt(i,j,n.strict));if(a){yield*ht(a.header,a.inlineValues,e,t,n,s);return}}let o=$(s,()=>gt(i,j,n.strict));if(o&&o.header.key!==void 0&&o.header.fields!==void 0){let a=o.header,c=n.strict?new Set([a.key]):void 0;yield{type:"startObject"},yield{type:"key",key:a.key},yield*ht(a,o.inlineValues,e,t+1,n,s);let u=t+1;for(;!e.atEndSync();){let d=e.peekSync();if(!d||d.depth<u)break;if(d.depth===u&&!d.content.startsWith("- "))e.advanceSync(),yield*Oe(d,e,u,n,c);else break}yield{type:"endObject"};return}if(qo(i)){let a=n.strict?new Set:void 0;yield{type:"startObject"},yield*Oe(s,e,t+1,n,a);let c=t+1;for(;!e.atEndSync();){let u=e.peekSync();if(!u||u.depth<c)break;if(u.depth===c&&!u.content.startsWith("- "))e.advanceSync(),yield*Oe(u,e,c,n,a);else break}yield{type:"endObject"};return}yield{type:"primitive",value:$(s,()=>_t(i))}}function wr(e){let t=e.content;if(t.startsWith('"')){let n=bt(t,0);return n===-1?!1:t.slice(n+1).includes(":")}else return t.includes(":")}function*ta(e,t){yield{type:"startObject"};for(let n=0;n<e.length;n++)yield{type:"key",key:e[n]},yield{type:"primitive",value:t[n]};yield{type:"endObject"}}function J(e){if(e===null)return null;if(typeof e=="object"&&e!==null&&"toJSON"in e&&typeof e.toJSON=="function"){let t=e.toJSON();if(t!==e)return J(t)}if(typeof e=="string"||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(J);if(e instanceof Set)return Array.from(e).map(J);if(e instanceof Map)return Object.fromEntries(Array.from(e,([t,n])=>[String(t),J(n)]));if(na(e)){let t={};for(let n in e)Object.hasOwn(e,n)&&(t[n]=J(e[n]));return t}return null}function fe(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function X(e){return Array.isArray(e)}function x(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function We(e){return Object.keys(e).length===0}function na(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Ye(e){return e.length===0||e.every(t=>fe(t))}function ra(e){return e.length===0||e.every(t=>X(t))}function vr(e){return e.length===0||e.every(t=>x(t))}function oa(e){return/^[A-Z_][\w.]*$/i.test(e)}function xr(e){return/^[A-Z_]\w*$/i.test(e)}function aa(e,t=j){return!(!e||e!==e.trim()||Er(e)||ca(e)||e.includes(":")||e.includes('"')||e.includes("\\")||/[[\]{}]/.test(e)||/[\u0000-\u001F]/.test(e)||e.includes(t)||e.startsWith("-"))}function ca(e){return ia.test(e)||sa.test(e)}function pt(e,t){if(Array.isArray(e))return e.map(n=>pt(n,t));if(x(e)){let n={},r=e[Or];for(let[i,s]of Object.entries(e)){let o=r?.has(i);if(i.includes(".")&&!o){let c=i.split(".");if(c.every(u=>xr(u))){ua(n,c,pt(s,t),t);continue}}let a=pt(s,t);if(i in n){let c=n[i];if(rn(c,a))nn(c,a,t);else{if(t)throw new TypeError(`Path expansion conflict at key "${i}": cannot merge ${typeof c} with ${typeof a}`);n[i]=a}}else n[i]=a}return n}return e}function ua(e,t,n,r){let i=e;for(let a=0;a<t.length-1;a++){let c=t[a],u=i[c];if(u===void 0){let d={};i[c]=d,i=d}else if(x(u))i=u;else{if(r)throw new TypeError(`Path expansion conflict at segment "${c}": expected object but found ${typeof u}`);let d={};i[c]=d,i=d}}let s=t[t.length-1],o=i[s];if(o===void 0)i[s]=n;else if(rn(o,n))nn(o,n,r);else{if(r)throw new TypeError(`Path expansion conflict at key "${s}": cannot merge ${typeof o} with ${typeof n}`);i[s]=n}}function nn(e,t,n){for(let[r,i]of Object.entries(t)){let s=e[r];if(s===void 0)e[r]=i;else if(rn(s,i))nn(s,i,n);else{if(n)throw new TypeError(`Path expansion conflict at key "${r}": cannot merge ${typeof s} with ${typeof i}`);e[r]=i}}}function rn(e,t){return x(e)&&x(t)}function da(e){let t={stack:[],root:void 0};for(let n of e)la(t,n);return fa(t)}function la(e,t){let{stack:n}=e;switch(t.type){case"startObject":{let r={},i=new Set;if(n.length===0)n.push({type:"object",obj:r,quotedKeys:i});else{let s=n[n.length-1];if(s.type==="object"){if(s.currentKey===void 0)throw new Error("Object startObject event without preceding key");s.obj[s.currentKey]=r,s.currentKey=void 0}else s.type==="array"&&s.arr.push(r);n.push({type:"object",obj:r,quotedKeys:i})}break}case"endObject":{if(n.length===0)throw new Error("Unexpected endObject event");let r=n.pop();if(r.type!=="object")throw new Error("Mismatched endObject event");r.quotedKeys.size>0&&Object.defineProperty(r.obj,Or,{value:r.quotedKeys,enumerable:!1,writable:!1,configurable:!1}),n.length===0&&(e.root=r.obj);break}case"startArray":{let r=[];if(n.length===0)n.push({type:"array",arr:r});else{let i=n[n.length-1];if(i.type==="object"){if(i.currentKey===void 0)throw new Error("Array startArray event without preceding key");i.obj[i.currentKey]=r,i.currentKey=void 0}else i.type==="array"&&i.arr.push(r);n.push({type:"array",arr:r})}break}case"endArray":{if(n.length===0)throw new Error("Unexpected endArray event");let r=n.pop();if(r.type!=="array")throw new Error("Mismatched endArray event");n.length===0&&(e.root=r.arr);break}case"key":{if(n.length===0)throw new Error("Key event outside of object context");let r=n[n.length-1];if(r.type!=="object")throw new Error("Key event in non-object context");r.currentKey=t.key,t.wasQuoted&&r.quotedKeys.add(t.key);break}case"primitive":if(n.length===0)e.root=t.value;else{let r=n[n.length-1];if(r.type==="object"){if(r.currentKey===void 0)throw new Error("Primitive event without preceding key in object");r.obj[r.currentKey]=t.value,r.currentKey=void 0}else r.type==="array"&&r.arr.push(t.value)}break}}function fa(e){if(e.stack.length!==0)throw new Error("Incomplete event stream: stack not empty at end");if(e.root===void 0)throw new Error("No root value built from events");return e.root}function ma(e,t,n,r,i,s,o){if(r.keyFolding!=="safe"||!x(t))return;let{segments:a,tail:c,leafValue:u}=pa(e,t,o??r.flattenDepth);if(a.length<2||!a.every(p=>xr(p)))return;let d=ya(a),l=s?`${s}.${d}`:d;if(!n.includes(d)&&!(i&&i.has(l)))return{foldedKey:d,remainder:c,leafValue:u,segmentCount:a.length}}function pa(e,t,n){let r=[e],i=t;for(;r.length<n&&x(i);){let s=Object.keys(i);if(s.length!==1)break;let o=s[0],a=i[o];r.push(o),i=a}return!x(i)||We(i)?{segments:r,tail:void 0,leafValue:i}:{segments:r,tail:i,leafValue:i}}function ya(e){return e.join(".")}function Ae(e,t){return e===null?Io:typeof e=="boolean"||typeof e=="number"?String(e):ga(e,t)}function ga(e,t=j){return aa(e,t)?e:`"${_r(e)}"`}function Ie(e){return oa(e)?e:`"${_r(e)}"`}function Dr(e,t=j){return e.map(n=>Ae(n,t)).join(t)}function me(e,t){let n=t?.key,r=t?.fields,i=t?.delimiter??",",s="";if(n!=null&&(s+=Ie(n)),s+=`[${e}${i!==j?i:""}]`,r){let o=r.map(a=>Ie(a));s+=`{${o.join(i)}}`}return s+=":",s}function*ha(e,t,n){if(fe(e)){let r=Ae(e,t.delimiter);r!==""&&(yield r);return}X(e)?yield*Zt(void 0,e,n,t):x(e)&&(yield*De(e,n,t))}function*De(e,t,n,r,i,s){let o=Object.keys(e);t===0&&!r&&(r=new Set(o.filter(c=>c.includes("."))));let a=s??n.flattenDepth;for(let[c,u]of Object.entries(e))yield*wa(c,u,t,n,o,r,i,a)}function*wa(e,t,n,r,i,s,o,a){let c=o?`${o}.${e}`:e,u=a??r.flattenDepth;if(r.keyFolding==="safe"&&i){let l=ma(e,t,i,r,s,o,u);if(l){let{foldedKey:p,remainder:w,leafValue:b,segmentCount:T}=l,S=Ie(p);if(w===void 0){if(fe(b)){yield A(n,`${S}: ${Ae(b,r.delimiter)}`,r.indent);return}else if(X(b)){yield*Zt(p,b,n,r);return}else if(x(b)&&We(b)){yield A(n,`${S}:`,r.indent);return}}if(x(w)){yield A(n,`${S}:`,r.indent);let g=u-T,f=o?`${o}.${p}`:p;yield*De(w,n+1,r,s,f,g);return}}}let d=Ie(e);fe(t)?yield A(n,`${d}: ${Ae(t,r.delimiter)}`,r.indent):X(t)?yield*Zt(e,t,n,r):x(t)&&(yield A(n,`${d}:`,r.indent),We(t)||(yield*De(t,n+1,r,s,c,u)))}function*Zt(e,t,n,r){if(t.length===0){yield A(n,e!=null?`${Ie(e)}: []`:"[]",r.indent);return}if(Ye(t)){yield A(n,Rt(t,r.delimiter,e),r.indent);return}if(ra(t)&&t.every(i=>Ye(i))){yield*ba(e,t,n,r);return}if(vr(t)){let i=Ar(t);i?yield*_a(e,t,i,n,r):yield*br(e,t,n,r);return}yield*br(e,t,n,r)}function*ba(e,t,n,r){yield A(n,me(t.length,{key:e,delimiter:r.delimiter}),r.indent);for(let i of t)if(Ye(i)){let s=Rt(i,r.delimiter);yield C(n+1,s,r.indent)}}function Rt(e,t,n){let r=me(e.length,{key:n,delimiter:t}),i=Dr(e,t);return e.length===0?r:`${r} ${i}`}function*_a(e,t,n,r,i){yield A(r,me(t.length,{key:e,fields:n,delimiter:i.delimiter}),i.indent),yield*Ir(t,n,r+1,i)}function Ar(e){if(e.length===0)return;let t=e[0],n=Object.keys(t);if(n.length!==0&&Ra(e,n))return n}function Ra(e,t){for(let n of e){if(Object.keys(n).length!==t.length)return!1;for(let r of t)if(!(r in n)||!fe(n[r]))return!1}return!0}function*Ir(e,t,n,r){for(let i of e)yield A(n,Dr(t.map(s=>i[s]),r.delimiter),r.indent)}function*br(e,t,n,r){yield A(n,me(t.length,{key:e,delimiter:r.delimiter}),r.indent);for(let i of t)yield*sn(i,n+1,r)}function*Ea(e,t,n){if(We(e)){yield A(t,"-",n.indent);return}let r=Object.entries(e),[i,s]=r[0],o=r.slice(1);if(X(s)&&vr(s)){let c=Ar(s);if(c){yield C(t,me(s.length,{key:i,fields:c,delimiter:n.delimiter}),n.indent),yield*Ir(s,c,t+2,n),o.length>0&&(yield*De(Object.fromEntries(o),t+1,n));return}}let a=Ie(i);if(fe(s))yield C(t,`${a}: ${Ae(s,n.delimiter)}`,n.indent);else if(X(s))if(s.length===0)yield C(t,`${a}: []`,n.indent);else if(Ye(s))yield C(t,`${a}${Rt(s,n.delimiter)}`,n.indent);else{yield C(t,`${a}${me(s.length,{delimiter:n.delimiter})}`,n.indent);for(let c of s)yield*sn(c,t+2,n)}else x(s)&&(yield C(t,`${a}:`,n.indent),We(s)||(yield*De(s,t+2,n)));o.length>0&&(yield*De(Object.fromEntries(o),t+1,n))}function*sn(e,t,n){if(fe(e))yield C(t,Ae(e,n.delimiter),n.indent);else if(X(e))if(Ye(e))yield C(t,Rt(e,n.delimiter),n.indent);else{yield C(t,me(e.length,{delimiter:n.delimiter}),n.indent);for(let r of e)yield*sn(r,t+1,n)}else x(e)&&(yield*Ea(e,t,n))}function A(e,t,n){return" ".repeat(n*e)+t}function C(e,t,n){return A(e,"- "+t,n)}function ka(e,t){let n=t("",e,[]);return n===void 0?wt(e,t,[]):wt(J(n),t,[])}function wt(e,t,n){return x(e)?Sa(e,t,n):X(e)?Ta(e,t,n):e}function Sa(e,t,n){let r={};for(let[i,s]of Object.entries(e)){let o=[...n,i],a=t(i,s,o);a!==void 0&&(r[i]=wt(J(a),t,o))}return r}function Ta(e,t,n){let r=[];for(let i=0;i<e.length;i++){let s=e[i],o=[...n,i],a=t(String(i),s,o);if(a===void 0)continue;let c=J(a);r.push(wt(c,t,o))}return r}function O(e,t){return Array.from(Pr(e,t)).join(`
5
5
  `)}function on(e,t){return $r(e.split(`
6
- `),t)}function Pr(e,t){let n=J(e),r=va(t);return ha(r.replacer?ka(n,r.replacer):n,r,0)}function $r(e,t){let n=xa(t),r=da(Yo(e,{indent:n.indent,strict:n.strict}));return n.expandPaths==="safe"?pt(r,n.strict):r}function va(e){return{indent:e?.indent??2,delimiter:e?.delimiter??j,keyFolding:e?.keyFolding??"off",flattenDepth:e?.flattenDepth??Number.POSITIVE_INFINITY,replacer:e?.replacer}}function xa(e){return{indent:e?.indent??2,strict:e?.strict??!0,expandPaths:e?.expandPaths??"off"}}var Io,yt,j,N,Po,No,Lo,Wo,ia,sa,Or,Nr=k(()=>{Io="null",yt={comma:",",tab:" ",pipe:"|"},j=yt.comma;N=class extends SyntaxError{constructor(e,t){let n=t?.line!==void 0?`Line ${t.line}: `:"";super(n+e,t?.cause!==void 0?{cause:t.cause}:void 0),this.name="ToonDecodeError",this.line=t?.line,this.source=t?.source}};Po=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:e[+-]?\d+)?$/i;No=/^(?:0|[1-9]\d*)$/;Lo=[","," ","|"];Wo=class{constructor(e,t){this.buffer=[],this.done=!1,this.generator=e,this.scanState=t}getBlankLines(){return this.scanState.blankLines}async peek(){if(this.buffer.length>0)return this.buffer[0];if(this.done)return;let e=await this.generator.next();if(e.done){this.done=!0;return}return this.buffer.push(e.value),e.value}async next(){let e=await this.peek();return e!==void 0&&(this.buffer.shift(),this.lastLine=e),e}async advance(){await this.next()}current(){return this.lastLine}async atEnd(){return await this.peek()===void 0}peekSync(){if(this.buffer.length>0)return this.buffer[0];if(this.done)return;let e=this.generator.next();if(e.done){this.done=!0;return}return this.buffer.push(e.value),e.value}nextSync(){let e=this.peekSync();return e!==void 0&&(this.buffer.shift(),this.lastLine=e),e}advanceSync(){this.nextSync()}atEndSync(){return this.peekSync()===void 0}};ia=/^-?\d+(?:\.\d+)?(?:e[+-]?\d+)?$/i,sa=/^0\d+$/;Or=Symbol("quotedKey")});var Pe=k(()=>{"use strict";Nr()});import{existsSync as Da,readFileSync as hf}from"node:fs";import{dirname as Aa,join as Ia}from"node:path";function Lr(e,t){let n=e;for(let r=0;r<16;r++){let i=Ia(n,t);if(Da(i))return i;let s=Aa(n);if(s===n)break;n=s}return null}function Pa(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function an(e,t){let n=[];for(let r of e.split(`
6
+ `),t)}function Pr(e,t){let n=J(e),r=va(t);return ha(r.replacer?ka(n,r.replacer):n,r,0)}function $r(e,t){let n=xa(t),r=da(Yo(e,{indent:n.indent,strict:n.strict}));return n.expandPaths==="safe"?pt(r,n.strict):r}function va(e){return{indent:e?.indent??2,delimiter:e?.delimiter??j,keyFolding:e?.keyFolding??"off",flattenDepth:e?.flattenDepth??Number.POSITIVE_INFINITY,replacer:e?.replacer}}function xa(e){return{indent:e?.indent??2,strict:e?.strict??!0,expandPaths:e?.expandPaths??"off"}}var Io,yt,j,N,Po,No,Lo,Wo,ia,sa,Or,Nr=k(()=>{Io="null",yt={comma:",",tab:" ",pipe:"|"},j=yt.comma;N=class extends SyntaxError{constructor(e,t){let n=t?.line!==void 0?`Line ${t.line}: `:"";super(n+e,t?.cause!==void 0?{cause:t.cause}:void 0),this.name="ToonDecodeError",this.line=t?.line,this.source=t?.source}};Po=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:e[+-]?\d+)?$/i;No=/^(?:0|[1-9]\d*)$/;Lo=[","," ","|"];Wo=class{constructor(e,t){this.buffer=[],this.done=!1,this.generator=e,this.scanState=t}getBlankLines(){return this.scanState.blankLines}async peek(){if(this.buffer.length>0)return this.buffer[0];if(this.done)return;let e=await this.generator.next();if(e.done){this.done=!0;return}return this.buffer.push(e.value),e.value}async next(){let e=await this.peek();return e!==void 0&&(this.buffer.shift(),this.lastLine=e),e}async advance(){await this.next()}current(){return this.lastLine}async atEnd(){return await this.peek()===void 0}peekSync(){if(this.buffer.length>0)return this.buffer[0];if(this.done)return;let e=this.generator.next();if(e.done){this.done=!0;return}return this.buffer.push(e.value),e.value}nextSync(){let e=this.peekSync();return e!==void 0&&(this.buffer.shift(),this.lastLine=e),e}advanceSync(){this.nextSync()}atEndSync(){return this.peekSync()===void 0}};ia=/^-?\d+(?:\.\d+)?(?:e[+-]?\d+)?$/i,sa=/^0\d+$/;Or=Symbol("quotedKey")});var Pe=k(()=>{"use strict";Nr()});import{existsSync as Da,readFileSync as yf}from"node:fs";import{dirname as Aa,join as Ia}from"node:path";function Lr(e,t){let n=e;for(let r=0;r<16;r++){let i=Ia(n,t);if(Da(i))return i;let s=Aa(n);if(s===n)break;n=s}return null}function Pa(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function an(e,t){let n=[];for(let r of e.split(`
7
7
  `)){let i=r.replace(/\r$/,""),s=i.trim();if(!s||s.startsWith("#"))continue;let o=i.indexOf(":");if(o<0)continue;let a=i.length-i.trimStart().length,c=i.slice(0,o).trim();if(!c)continue;let u=i.slice(o+1).trim();for(;n.length&&n[n.length-1].indent>=a;)n.pop();if(n.push({indent:a,key:c}),u&&n.map(l=>l.key).join(".")===t)return Pa(u)}}var Cr=k(()=>{});var Gr={};P(Gr,{DEFAULT_RSP_BYTE_BUDGET:()=>W,DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>H,DEFAULT_RSP_STORE_PATH:()=>Et,DEFAULT_RSP_TELEMETRY_BYTE_BUDGET:()=>St,DEFAULT_RSP_TELEMETRY_DRAIN_INTERVAL_MS:()=>qr,DEFAULT_RSP_TELEMETRY_DRAIN_TIMEOUT_MS:()=>Fr,DEFAULT_RSP_TELEMETRY_TTL_DAYS:()=>kt,DEFAULT_RSP_TTL_DAYS:()=>K,resolveRspConfig:()=>ee});import{readFileSync as $a}from"node:fs";import{dirname as jr,join as Mr,resolve as Ur}from"node:path";function ee(e,t,n){let r=Lr(Ur(e),Mr(".red","config.yaml")),i=r?jr(jr(r)):e,s=r?$a(r,"utf8"):"",o=an(s,"rsp.enabled")==="true",a=pe(Z(s,"rsp.ttlDays"),K),c=pe(Z(s,"rsp.byteBudget"),W),u=pe(Z(s,"rsp.telemetryTtlDays"),kt),d=pe(Z(s,"rsp.telemetryByteBudget")??Z(s,"rsp.byteBudget"),St),l=pe(cn(t.RSP_TELEMETRY_DRAIN_INTERVAL_MS)??Z(s,"rsp.telemetryDrainIntervalMs"),qr),p=pe(cn(t.RSP_TELEMETRY_DRAIN_TIMEOUT_MS)??Z(s,"rsp.telemetryDrainTimeoutMs"),Fr),w=pe(cn(t.RSP_HEAVY_GIT_BYTE_THRESHOLD)??Z(s,"rsp.heavyGitByteThreshold"),H),b=n??t.RSP_STORE_URI??`file://${Mr(Ur(i),Et)}`;return{enabled:o,storeUri:b,ttlDays:a,byteBudget:c,telemetryTtlDays:u,telemetryByteBudget:d,telemetryDrainIntervalMs:l,telemetryDrainTimeoutMs:p,heavyGitByteThreshold:w}}function Z(e,t){let n=an(e,t);if(n==null)return;let r=Number(n);return Number.isFinite(r)?r:void 0}function pe(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function cn(e){if(e==null||e.trim()==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}var H,Et,K,W,kt,St,qr,Fr,M=k(()=>{"use strict";Cr();H=8*1024,Et=".red/tmp/red-skills.rdb",K=7,W=64*1024*1024,kt=90,St=4*1024*1024,qr=3e4,Fr=2e3});import{createConnection as Na}from"node:net";async function Ne(e,t){let n=e.timeoutMs??1e3;return await new Promise((r,i)=>{let s=Na(e.socketPath),o=!1,a="",c=setTimeout(()=>{u(()=>i(new Error("resident rsp server timed out"))),s.destroy()},n);function u(d){o||(o=!0,clearTimeout(c),d())}s.on("connect",()=>{s.write(`${JSON.stringify(t)}
8
8
  `)}),s.on("data",d=>{a+=d.toString("utf8");let l=a.indexOf(`
9
9
  `);if(l<0)return;let p=a.slice(0,l);u(()=>{try{r(JSON.parse(p))}catch(w){i(w)}}),s.end()}),s.on("error",d=>u(()=>i(d))),s.on("close",()=>{o||u(()=>i(new Error("resident rsp server closed without response")))})})}var un=k(()=>{});var Vr=k(()=>{"use strict";un()});import{createHash as Ba,randomUUID as Yr}from"node:crypto";import{spawn as zr}from"node:child_process";import{constants as dn}from"node:fs";import{readFileSync as La}from"node:fs";import{mkdir as ln,open as Ca,rm as fn}from"node:fs/promises";import{tmpdir as ja}from"node:os";import{dirname as Tt,join as Y,resolve as mn}from"node:path";import{fileURLToPath as Ma}from"node:url";function ye(e){let t=Va(e)??mn(e),n=Ga(t);return{rootDir:t,socketPath:Y(n,"rsp.sock"),lockPath:Y(n,"rsp.lock"),wakeLockPath:Y(t,".red","tmp","rsp.wake.lock"),summaryPath:Y(t,".red","tmp","rsp-status-summary.json")}}async function vt(e,t){if(await ln(Tt(e.socketPath),{recursive:!0,mode:448}),await Kr(e.socketPath,t))return;let n=await Zr(e.lockPath);if(n)try{if(await Kr(e.socketPath,t))return;await qa(e.socketPath);let r=Fa(e,t);await Jr(e.socketPath,r);return}finally{await n.close(),await fn(e.lockPath,{force:!0})}await Jr(e.socketPath)}async function ge(e,t=200){try{return await Qr(e,t)!=null}catch{return!1}}async function Qr(e,t=200){let n=await Ne({socketPath:e,timeoutMs:t},{id:Yr(),op:"ping"});return n.ok?Wa(n.value)?{version:Ya(n.value.version)}:{}:null}async function xt(e,t){if(await ln(Tt(e.socketPath),{recursive:!0,mode:448}),await ge(e.socketPath,50))return!1;let n=await Zr(e.wakeLockPath);if(!n)return!1;await n.close();let[r,i]=ei(t);return zr(r,[...i,"warm-resident","--socket",e.socketPath,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--byte-budget",String(t.byteBudget),"--telemetry-ttl-days",String(t.telemetryTtlDays??90),"--telemetry-byte-budget",String(t.telemetryByteBudget??t.byteBudget),"--telemetry-drain-interval-ms",String(t.telemetryDrainIntervalMs??3e4),"--telemetry-drain-timeout-ms",String(t.telemetryDrainTimeoutMs??2e3),"--resident-version",t.clientVersion??"0.0.0-dev","--wake-lock",e.wakeLockPath],{cwd:e.rootDir,detached:!0,stdio:"ignore",env:{...process.env,RSP_RESIDENT_WARMER:"1"}}).unref(),!0}async function Xr(e,t){try{await vt(e,t)}finally{await fn(e.wakeLockPath,{force:!0})}}async function Jr(e,t){let n=Date.now()+5e3,r;for(;Date.now()<n;){if(await ge(e))return;if(t&&t.exitCode!=null)throw new Error(`resident rsp server exited before ready (${t.exitCode})`);await new Promise(i=>setTimeout(i,50))}throw r instanceof Error?r:new Error("resident rsp server did not start")}async function qa(e){await fn(e,{force:!0})}async function Zr(e){await ln(Tt(e),{recursive:!0,mode:448});try{return await Ca(e,dn.O_CREAT|dn.O_EXCL|dn.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}function Fa(e,t){let[n,r]=ei(t),i=zr(n,[...r,"server","--socket",e.socketPath,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--byte-budget",String(t.byteBudget),"--telemetry-ttl-days",String(t.telemetryTtlDays??90),"--telemetry-byte-budget",String(t.telemetryByteBudget??t.byteBudget),"--telemetry-drain-interval-ms",String(t.telemetryDrainIntervalMs??3e4),"--telemetry-drain-timeout-ms",String(t.telemetryDrainTimeoutMs??2e3),"--resident-version",t.clientVersion??"0.0.0-dev"],{cwd:e.rootDir,detached:!0,stdio:"ignore",env:{...process.env,RSP_RESIDENT_SERVER:"1"}});return i.unref(),i}function ei(e){if(e.serverCommand)return[e.serverCommand,e.serverArgs??[]];let t=process.argv[1]?mn(process.argv[1]):Ma(import.meta.url);return[process.execPath,[...process.execArgv,t]]}function Ga(e){let t=Ba("sha256").update(e).digest("hex").slice(0,20),n=process.env.XDG_RUNTIME_DIR;if(n){let i=Y(n,"red-skills",t);if(Y(i,"rsp.sock").length<Ua)return i}let r=typeof process.getuid=="function"?process.getuid():"nouid";return Y(ja(),`red-skills-${r}`,t)}function Va(e){let t=mn(e);for(let n=0;n<32;n++){try{if(Hr(Y(t,".red","config.yaml"))!=null||Hr(Y(t,".git","HEAD"))!=null)return t}catch{}let r=Tt(t);if(r===t)return null;t=r}return null}function Hr(e){try{return La(e,"utf8")}catch{return null}}async function Kr(e,t){let n=await Qr(e).catch(()=>null);return n?Ha(t.clientVersion,n.version)?(await Ja(e,t.clientVersion),await za(e),!1):!0:!1}async function Ja(e,t){try{await Ne({socketPath:e,timeoutMs:200},{id:Yr(),op:"handover",clientVersion:t})}catch{}}function Ha(e,t){return!e||!t?!1:Ka(e,t)>0}function Ka(e,t){let n=Wr(e),r=Wr(t);return!n||!r?0:n.major-r.major||n.minor-r.minor||n.patch-r.patch}function Wr(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3])}:null}function Wa(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ya(e){return typeof e=="string"&&e.length>0?e:void 0}async function za(e){let t=Date.now()+1e3;for(;Date.now()<t;){if(!await ge(e,50))return;await new Promise(n=>setTimeout(n,50))}}var Ua,ti=k(()=>{un();Ua=108});var Ot={};P(Ot,{ResidentRspElisionStore:()=>ze,ensureResidentServer:()=>vt,kickResidentServer:()=>xt,pingResident:()=>ge,resolveResidentPaths:()=>ye,warmResidentServer:()=>Xr});import{randomUUID as Qa}from"node:crypto";function ni(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ze,Be=k(()=>{"use strict";Vr();ti();ze=class{constructor(t,n){this.paths=t;this.config=n}metrics;lastResponseMetrics(){return this.metrics}async mint(t,n){let i=(await this.request({op:"mint",original:Buffer.from(t).toString("base64"),meta:n})).handle;if(!i?.startsWith("el:"))throw new Error("resident rsp returned invalid handle");return i}async get(t){let n=await this.request({op:"get",handle:t});return n?ni(n)&&n.status==="expired"?n:!ni(n)||typeof n.original!="string"?null:{...n,original:Buffer.from(n.original,"base64")}:null}async stats(){return await this.request({op:"stats"})}async telemetryStats(t){return await this.request({op:"telemetry-stats",sinceDays:t})}async telemetryGains(t){return await this.request({op:"telemetry-gains",sinceDays:t})}async memory(t,n){return await this.request({op:"memory",action:t,payload:n})}async close(){}async request(t){await vt(this.paths,this.config);let n=await Ne(this.paths,{...t,id:Qa()});if(!n.ok)throw new Error(n.error);return this.metrics={storeOpenCount:n.storeOpenCount,storeElapsedMs:n.storeElapsedMs},n.value}}});var di={};P(di,{RSP_WRAPPER_CAPABILITIES:()=>pn,formatHookDecision:()=>ai,hookDecisionFromClaudePreExecJson:()=>oi,rewriteCommand:()=>si,rewriteTableFromCapabilities:()=>ii,runClaudePreExecHook:()=>tc});import{readFileSync as ri}from"node:fs";import{existsSync as Xa}from"node:fs";import{fileURLToPath as Za}from"node:url";function ii(e){let t=new Map;for(let n of e)t.set(Qe(n.command),["rsp",...n.wrapper]);return t}function si(e){let t=cc(e);if(!t)return{kind:"passthrough"};if(t.length>0&&ci(t[0]))return{kind:"passthrough"};let n=ec.get(Qe(t));if(!n)return{kind:"passthrough"};let r=pn.find(i=>Qe(i.command)===Qe(t));return{kind:"rewrite",command:n.join(" "),capabilityId:r?.id??Qe(t)}}async function oi(e,t){let n=uc(e),r=L(n,["cwd"])||L(n,["tool_input","cwd"])||t.cwd;if(!await(t.isEnabled??nc)(r))return{kind:"passthrough",reason:"disabled"};let s=ac(n);if(!s)return{kind:"passthrough",reason:"missing-command"};let o=(t.rewrite??si)(s);return o.kind!=="rewrite"||await(t.isResidentHealthy??rc)(r)?o:(await(t.wakeResident??ic)(r),{kind:"passthrough",reason:"resident-unhealthy"})}function ai(e){return e.kind==="rewrite"?{stdout:`${e.command}
@@ -17,7 +17,7 @@ var Ao=Object.defineProperty;var k=(e,t)=>()=>(e&&(t=e(e=0)),t);var P=(e,t)=>{fo
17
17
  expected at: ${s}
18
18
  override: set ${r}=/path/to/${t}
19
19
  fix: re-run \`pnpm install\` (the postinstall script downloads it),
20
- or check the postinstall log for a download error.`)}var Di=k(()=>{});import{fileURLToPath as Tc}from"node:url";import{dirname as vc,resolve as xc,join as em}from"node:path";function Ac(){return typeof process<"u"&&process.platform==="win32"?"red.exe":"red"}function Ai(){let e=process.env?.REDDB_BINARY_PATH;return typeof e=="string"&&e!==""&&!process.env?.REDDB_BIN?e:Oi({name:Ac(),packageRoot:Dc,envVar:"REDDB_BIN"})}var Oc,Dc,Ii=k(()=>{Di();Oc=vc(Tc(import.meta.url)),Dc=xc(Oc,"..")});var Ic,Pc,h,Dt,te=k(()=>{Ic=new TextEncoder,Pc=new TextDecoder("utf-8"),h=class extends Error{constructor(t,n,r){super(n),this.name="RedDBError",this.code=t,this.data=r??null}},Dt=class{constructor(t){this.child=t,this.nextId=1,this.pending=new Map,this.closed=!1,this.closeReason=null,this.readerPromise=this.#t()}call(t,n={}){if(this.closed)return Promise.reject(new h("CLIENT_CLOSED",`client is closed: ${this.closeReason??"unknown"}`));let r=this.nextId++,i=JSON.stringify({jsonrpc:"2.0",id:r,method:t,params:n});return new Promise((s,o)=>{this.pending.set(r,{resolve:s,reject:o}),this.child.stdin.write(Ic.encode(i+`
20
+ or check the postinstall log for a download error.`)}var Di=k(()=>{});import{fileURLToPath as Tc}from"node:url";import{dirname as vc,resolve as xc,join as Xf}from"node:path";function Ac(){return typeof process<"u"&&process.platform==="win32"?"red.exe":"red"}function Ai(){let e=process.env?.REDDB_BINARY_PATH;return typeof e=="string"&&e!==""&&!process.env?.REDDB_BIN?e:Oi({name:Ac(),packageRoot:Dc,envVar:"REDDB_BIN"})}var Oc,Dc,Ii=k(()=>{Di();Oc=vc(Tc(import.meta.url)),Dc=xc(Oc,"..")});var Ic,Pc,h,Dt,te=k(()=>{Ic=new TextEncoder,Pc=new TextDecoder("utf-8"),h=class extends Error{constructor(t,n,r){super(n),this.name="RedDBError",this.code=t,this.data=r??null}},Dt=class{constructor(t){this.child=t,this.nextId=1,this.pending=new Map,this.closed=!1,this.closeReason=null,this.readerPromise=this.#t()}call(t,n={}){if(this.closed)return Promise.reject(new h("CLIENT_CLOSED",`client is closed: ${this.closeReason??"unknown"}`));let r=this.nextId++,i=JSON.stringify({jsonrpc:"2.0",id:r,method:t,params:n});return new Promise((s,o)=>{this.pending.set(r,{resolve:s,reject:o}),this.child.stdin.write(Ic.encode(i+`
21
21
  `)).catch(a=>{this.pending.delete(r),o(a)})})}async close(){if(!this.closed){try{await this.call("close",{})}catch{}this.#e("close requested");try{this.child.stdin.end()}catch{}await this.child.wait()}}async#t(){let t=new Uint8Array(0);try{for await(let n of this.child.stdout){let r=new Uint8Array(t.length+n.length);r.set(t,0),r.set(n,t.length),t=r;let i=0;for(let s=0;s<t.length;s++)if(t[s]===10){let o=t.subarray(i,s);this.#n(Pc.decode(o)),i=s+1}i>0&&(t=t.subarray(i))}}catch(n){this.#e(`stdout reader error: ${n.message}`);return}this.#e("server stdout closed")}#n(t){if(!t.trim())return;let n;try{n=JSON.parse(t)}catch(s){this.#e(`malformed server response: ${s.message}`);return}let r=n.id;if(r==null)return;let i=this.pending.get(r);i&&(this.pending.delete(r),n.error?i.reject(new h(n.error.code??"UNKNOWN",n.error.message??"unknown error",n.error.data)):i.resolve(n.result))}#e(t){if(this.closed)return;this.closed=!0,this.closeReason=t;let n=new h("CLIENT_CLOSED",t);for(let{reject:r}of this.pending.values())r(n);this.pending.clear()}}});function wn(e){if(typeof e!="string"||e.length===0)throw new TypeError("connect() requires a URI string (e.g. 'red://localhost:5050' or 'red:///data.rdb')");return e.startsWith("red://")||e==="red:"||e==="red:/"?$c(e):Nc(e)}function $c(e){let t=e;e==="red:"||e==="red:/"||e==="red://"?t="red://embedded.local":e.startsWith("red:///")?t=`red://embedded.local${e.slice(6)}`:(e==="red://memory"||e==="red://memory/"||e==="red://:memory"||e==="red://:memory:")&&(t="red://embedded.local");let n;try{n=new URL(t)}catch(d){throw new h("UNPARSEABLE_URI",`failed to parse '${e}': ${d.message}`)}let r=n.searchParams,i=(r.get("proto")||"").toLowerCase(),s=n.pathname&&n.pathname!=="/"?n.pathname:"";if(n.hostname==="embedded.local")return s?{kind:"embedded",path:s,params:r,originalUri:e}:{kind:"embedded",params:r,originalUri:e};let o=Bc(i),a=n.port?Number(n.port):hn(o),c=n.username?decodeURIComponent(n.username):void 0,u=n.password?decodeURIComponent(n.password):void 0;return{kind:o,host:n.hostname,port:a,path:s||void 0,username:c,password:u,token:r.get("token")??void 0,apiKey:r.get("apiKey")??r.get("api_key")??void 0,loginUrl:r.get("loginUrl")??r.get("login_url")??void 0,params:r,originalUri:e}}function Nc(e){if(e==="memory://"||e==="memory:")return{kind:"embedded",originalUri:e};if(e.startsWith("file://")){let t=e.slice(7);if(!t)throw new TypeError(`invalid file:// URI: missing path in '${e}'`);return{kind:"embedded",path:t,originalUri:e}}if(e.startsWith("grpc://")||e.startsWith("grpcs://")||e.startsWith("reds://")){let t=e.split("://",1)[0],n;try{n=new URL("https://"+e.slice(`${t}://`.length))}catch(s){throw new h("UNPARSEABLE_URI",`failed to parse '${e}': ${s.message}`)}if(!n.hostname)throw new TypeError(`invalid ${t}:// URI: missing host in '${e}'`);let r=t==="reds"?"reds":t==="grpcs"?"grpcs":"grpc",i=n.searchParams;return{kind:r,host:n.hostname,port:n.port?Number(n.port):hn(r),username:n.username?decodeURIComponent(n.username):void 0,password:n.password?decodeURIComponent(n.password):void 0,token:i.get("token")??void 0,apiKey:i.get("apiKey")??i.get("api_key")??void 0,loginUrl:i.get("loginUrl")??i.get("login_url")??void 0,params:i,originalUri:e}}if(e.startsWith("http://")||e.startsWith("https://")){let t;try{t=new URL(e)}catch(n){throw new h("UNPARSEABLE_URI",`failed to parse '${e}': ${n.message}`)}return{kind:t.protocol==="https:"?"https":"http",host:t.hostname,port:t.port?Number(t.port):hn(t.protocol==="https:"?"https":"http"),path:t.pathname!=="/"?t.pathname:void 0,username:t.username?decodeURIComponent(t.username):void 0,password:t.password?decodeURIComponent(t.password):void 0,token:t.searchParams.get("token")??void 0,apiKey:t.searchParams.get("apiKey")??void 0,params:t.searchParams,originalUri:e}}throw new h("UNSUPPORTED_SCHEME",`unsupported URI: '${e}'. Use 'red://...' or one of memory://, file://, grpc://, http(s)://`)}function Bc(e){switch(e){case"":case"red":return"red";case"reds":return"reds";case"grpc":return"grpc";case"grpcs":return"grpcs";case"http":return"http";case"https":return"https";case"pg":case"postgres":case"postgresql":return"pg";default:throw new h("UNSUPPORTED_PROTO",`unknown proto='${e}'. Supported: red | reds | grpc | grpcs | http | https | pg`)}}function hn(e){switch(e){case"http":return 5e3;case"https":return 55555;case"red":case"reds":case"redwire":return 5050;case"grpc":return 55055;case"grpcs":return 55555;case"pg":case"postgres":case"postgresql":return 5432;default:return}}var bn=k(()=>{te()});function Cc(e){if(typeof e=="string"){let t=new TextEncoder().encode(e);return Pi(t)}if(e instanceof Uint8Array||typeof Buffer<"u"&&Buffer.isBuffer(e))return Pi(e);throw new TypeError("cache value must be a string, Uint8Array, or Buffer")}function Pi(e){if(typeof Buffer<"u")return Buffer.from(e).toString("base64");let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t)}function jc(e){if(typeof Buffer<"u")return new Uint8Array(Buffer.from(e,"base64"));let t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}var Lc,Xe,_n=k(()=>{te();Lc=new Set(["embedded"]),Xe=class{constructor(t,n){this._client=t,this._transport=n??null}_guard(t){if(this._transport&&Lc.has(this._transport))throw new h("UNSUPPORTED_TRANSPORT",`cache.${t} is not available on '${this._transport}' transport; use @reddb-io/client for remote cache endpoints.`)}async get(t,n){this._guard("get");let r=await this._client.call("cache.get",{namespace:t,key:n});return r==null||r.value==null?null:jc(r.value)}async put(t,n,r,i={}){this._guard("put");let s=Cc(r);await this._client.call("cache.put",{namespace:t,key:n,value:s,...i})}async exists(t,n){return this._guard("exists"),(await this._client.call("cache.exists",{namespace:t,key:n}))?.status??"maybe"}async invalidate(t,n){this._guard("invalidate"),await this._client.call("cache.invalidate",{namespace:t,key:n})}async invalidatePrefix(t,n){return this._guard("invalidatePrefix"),(await this._client.call("cache.invalidate_prefix",{namespace:t,prefix:n}))?.removed??0}async invalidateTags(t,n){return this._guard("invalidateTags"),(await this._client.call("cache.invalidate_tags",{namespace:t,tags:n}))?.removed??0}async flushNamespace(t){this._guard("flushNamespace"),await this._client.call("cache.flush_namespace",{namespace:t})}}});function Rn(e,t){return`${En(e)}.${Mc(t)}`}function En(e){let t=String(e),n=t.match(/[^A-Za-z0-9_]/);if(n)throw new h("INVALID_KV_KEY",`invalid KV key "${t}": character "${n[0]}" is not supported`);return t}function Mc(e){let t=String(e);return/^[A-Za-z0-9_]+$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function Uc(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="object"?`'${JSON.stringify(e).replace(/'/g,"''")}'`:`'${String(e).replace(/'/g,"''")}'`}function $i(e){return`'${String(e).replace(/'/g,"''")}'`}var Le,kn=k(()=>{te();Le=class{constructor(t,n="kv_default"){this.client=t,this.collection=n}put(t,n,r={}){let i=r.collection??this.collection,s=Array.isArray(r.tags)&&r.tags.length>0?` TAGS [${r.tags.map($i).join(", ")}]`:"",o=r.expireMs!=null?` EXPIRE ${Number(r.expireMs)} ms`:"";return this.client.call("query",{sql:`KV PUT ${Rn(i,t)} = ${Uc(n)}${o}${s}`})}set(t,n,r={}){return this.put(t,n,r)}async get(t,n={}){let r=n.collection??this.collection;return(await this.client.call("query",{sql:`KV GET ${Rn(r,t)}`}))?.rows?.[0]?.value??null}async getMany(t,n={}){let r=[];for(let i of t)r.push(await this.get(i,n));return r}async exists(t,n={}){return{exists:await this.get(t,n)!==null}}async delete(t,n={}){let r=n.collection??this.collection,i=await this.client.call("query",{sql:`KV DELETE ${Rn(r,t)}`}),s=i.affected??i.affected_rows??0;return{affected:s,deleted:s>0}}async list(t={}){let n=t.collection??this.collection,r=t.limit==null?100:Number(t.limit);if(!Number.isInteger(r)||r<=0)throw new h("INVALID_ARGUMENT","kv.list limit must be a positive integer");let i=t.prefix==null?"":String(t.prefix),o=(await this.client.call("query",{sql:`SELECT key, value FROM ${En(n)} ORDER BY key ASC LIMIT ${r}`})).rows??[];return{items:i.length>0?o.filter(c=>String(c.key).startsWith(i)):o}}async invalidateTags(t,n={}){let r=n.collection??this.collection,i=await this.client.call("query",{sql:`INVALIDATE TAGS [${t.map($i).join(", ")}] FROM ${En(r)}`});return i.affected??i.affected_rows??i.rows?.[0]?.invalidated??0}async*watch(t,n={}){if(!this.client.baseUrl)throw new h("UNSUPPORTED_TRANSPORT","kv.watch requires the HTTP transport");let r=n.collection??this.collection,i=new URLSearchParams;n.sinceLsn!=null&&i.set("since_lsn",String(n.sinceLsn)),n.limit!=null&&i.set("limit",String(n.limit));let s=i.toString()?`?${i}`:"",o=`${this.client.baseUrl}/collections/${encodeURIComponent(r)}/kv/${encodeURIComponent(String(t))}/watch${s}`,a=await fetch(o,this.client.attachAuth({method:"GET"}));if(!a.ok)throw new h("HTTP_ERROR",`kv.watch failed with HTTP ${a.status}`);let c=await a.text();for(let u of c.split(`
22
22
 
23
23
  `)){let d=u.split(`
@@ -43,40 +43,39 @@ ${s}`,"utf8")}await qs(r,{force:!0})}}function md(e){try{return dd(e,"utf8")}cat
43
43
  `).filter(i=>i&&eo(i,t));return r.length>0?`${r.join(`
44
44
  `)}
45
45
  `:""}function oe(e,t){let n=t.filter(Boolean);return n.length===0?e:{...e,help:n}}function sr(e){return Array.isArray(e)?e.map(sr).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(sr).join(" "):String(e??"")}var Jt=k(()=>{"use strict"});var so={};P(so,{DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>H,GIT_LOG_MACHINE_FIELDS:()=>to,renderGitContract:()=>no,runGitWrapper:()=>Gd});import{spawn as Fd}from"node:child_process";async function Gd(e,t){let n=ro(e),r=io(n.argv),i=await Kd(r,n.argv.slice(1));return no(e,i,t)}async function no(e,t,n){let r=ro(e);if((t.status??0)!==0||t.signal)return{stdout:Buffer.from(Fe(t.stdout,r.query)),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal};let i=io(r.argv),s=Wd(i,r.argv,t.stdout,r.query);if(s===`git empty
46
- `)return{stdout:Buffer.from(s),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal};let o=el(i,s);if(o)return{stdout:Buffer.from(`${o}
47
- `),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:s,oneLine:!0};let a=O(s);if(Vd(i,a,r.full,n))return{stdout:Buffer.from(a),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:s};let c=sl(s);if(!c)return{stdout:Buffer.from(a),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:s};let u=Buffer.byteLength(a),d=await n.store?.mint(Buffer.from(a),{command:e.join(" "),loss:{level:"terse",bytes_elided:u}});if(!d)throw new Error("terse git output requires an elision store");let l=`\u2026 elided ${c.rowsElided} rows (+${u}) \u2014 rsp show ${d}
48
- `;return{stdout:Buffer.from(`${O(c.payload)}
49
- ${l}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:c.payload,mintedHandle:d,bytesElided:u,rowsElided:c.rowsElided,rawOutput:Buffer.from(a)}}function ro(e){let t=se(e),n=[],r=!1;for(let i of t.argv){if(i==="--full"){r=!0;continue}n.push(i)}return{argv:n,query:t.query,full:r}}function Vd(e,t,n,r){if(r.level==="terse")return!1;if(n||r.level==="full"||!Jd(e)||r.level!=="lossless")return!0;let i=il(r.heavyGitByteThreshold,H);return Buffer.byteLength(t)<=i}function Jd(e){return e==="diff"||e==="log"}function io(e){if(e[0]!=="git")throw new Error("expected rsp git <subcommand>");let t=e[1];if(t==="status"||t==="log"||t==="diff"||t==="commit"||t==="push")return t;throw new Error(`unsupported git subcommand: ${t??""}`)}function Hd(e,t){let n=t.slice(1);switch(e){case"status":return["status","--porcelain=v2","-z","-b",...n];case"log":return["log",`--format=%x1e${to.join("%x1f")}`,"-z",...n];case"diff":return["diff","--numstat","-z",...n];case"commit":return["commit",...n];case"push":return["push","--porcelain",...n]}}async function Kd(e,t){let n=Fd("git",Hd(e,t),{stdio:["ignore","pipe","pipe"]}),r=[],i=[];return n.stdout.on("data",s=>r.push(s)),n.stderr.on("data",s=>i.push(s)),await new Promise((s,o)=>{n.on("error",o),n.on("close",(a,c)=>{s({stdout:Buffer.concat(r).toString("utf8"),stderr:Buffer.concat(i).toString("utf8"),status:a,signal:c})})})}function Wd(e,t,n,r){switch(e){case"status":return Yd(t,n,r);case"log":return zd(t,n,r);case"diff":return Qd(t,n,r);case"commit":return ct(Xd(t,n),r,["rsp git status --query <path-or-state>"]);case"push":return ct(Zd(t,n),r,["rsp gh pr list --query <branch>"])}}function Yd(e,t,n){let r="",i=[];for(let a of t.split("\0")){if(!a)continue;if(a.startsWith("# branch.head ")){r=a.slice(14);continue}if(!a.startsWith("1 "))continue;let c=a.split(" "),u=c[1]??"..",d=c.slice(8).join(" ");i.push({path:d,index:u[0]??".",worktree:u[1]??".",state:nl(u)})}if(i.length===0)return`git empty
50
- `;let s=B(i,n),o=rl(s,"state");return ct({command:e.join(" "),branch:r,rows:s,summary:`${n?`${s.length}/${i.length}`:s.length} changes: ${o.added??0} added, ${o.modified??0} modified, ${o.deleted??0} deleted`},n,["rsp git diff --query <path>","rsp git log --query <subject>"])}function zd(e,t,n){let r=t.split("\0").filter(Boolean).map(s=>{let o=s.replace(/^\x1e/,"").split("");return{short:o[0]??"",author:o[1]??"",date:o[2]??"",subject:o[3]??""}}),i=B(r,n);return ct({command:e.join(" "),commits:i,summary:`${n?`${i.length}/${r.length}`:i.length} commits`},n,["rsp git diff --query <path>","rsp gh pr list --query <branch>"])}function Qd(e,t,n){let i=t.split("\0").filter(Boolean).map(a=>{let[c,u,d]=a.split(" ");return{path:d??"",added:c==="-"?null:Number(c??0),deleted:u==="-"?null:Number(u??0)}}),s=B(i,n),o=s.reduce((a,c)=>(a.added+=typeof c.added=="number"?c.added:0,a.deleted+=typeof c.deleted=="number"?c.deleted:0,a),{added:0,deleted:0});return ct({command:e.join(" "),files:s,summary:`${n?`${s.length}/${i.length}`:s.length} files, +${o.added} -${o.deleted}`},n,["rsp git status --query <path>","rsp git log --query <subject>"])}function Xd(e,t){let n=t.split(`
46
+ `)return{stdout:Buffer.from(s),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal};let o=O(s);if(Vd(i,o,r.full,n))return{stdout:Buffer.from(o),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:s};let a=rl(s);if(!a)return{stdout:Buffer.from(o),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:s};let c=Buffer.byteLength(o),u=await n.store?.mint(Buffer.from(o),{command:e.join(" "),loss:{level:"terse",bytes_elided:c}});if(!u)throw new Error("terse git output requires an elision store");let d=`\u2026 elided ${a.rowsElided} rows (+${c}) \u2014 rsp show ${u}
47
+ `;return{stdout:Buffer.from(`${O(a.payload)}
48
+ ${d}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:a.payload,mintedHandle:u,bytesElided:c,rowsElided:a.rowsElided,rawOutput:Buffer.from(o)}}function ro(e){let t=se(e),n=[],r=!1;for(let i of t.argv){if(i==="--full"){r=!0;continue}n.push(i)}return{argv:n,query:t.query,full:r}}function Vd(e,t,n,r){if(r.level==="terse")return!1;if(n||r.level==="full"||!Jd(e)||r.level!=="lossless")return!0;let i=nl(r.heavyGitByteThreshold,H);return Buffer.byteLength(t)<=i}function Jd(e){return e==="diff"||e==="log"}function io(e){if(e[0]!=="git")throw new Error("expected rsp git <subcommand>");let t=e[1];if(t==="status"||t==="log"||t==="diff"||t==="commit"||t==="push")return t;throw new Error(`unsupported git subcommand: ${t??""}`)}function Hd(e,t){let n=t.slice(1);switch(e){case"status":return["status","--porcelain=v2","-z","-b",...n];case"log":return["log",`--format=%x1e${to.join("%x1f")}`,"-z",...n];case"diff":return["diff","--numstat","-z",...n];case"commit":return["commit",...n];case"push":return["push","--porcelain",...n]}}async function Kd(e,t){let n=Fd("git",Hd(e,t),{stdio:["ignore","pipe","pipe"]}),r=[],i=[];return n.stdout.on("data",s=>r.push(s)),n.stderr.on("data",s=>i.push(s)),await new Promise((s,o)=>{n.on("error",o),n.on("close",(a,c)=>{s({stdout:Buffer.concat(r).toString("utf8"),stderr:Buffer.concat(i).toString("utf8"),status:a,signal:c})})})}function Wd(e,t,n,r){switch(e){case"status":return Yd(t,n,r);case"log":return zd(t,n,r);case"diff":return Qd(t,n,r);case"commit":return ct(Xd(t,n),r,["rsp git status --query <path-or-state>"]);case"push":return ct(Zd(t,n),r,["rsp gh pr list --query <branch>"])}}function Yd(e,t,n){let r="",i=[];for(let a of t.split("\0")){if(!a)continue;if(a.startsWith("# branch.head ")){r=a.slice(14);continue}if(!a.startsWith("1 "))continue;let c=a.split(" "),u=c[1]??"..",d=c.slice(8).join(" ");i.push({path:d,index:u[0]??".",worktree:u[1]??".",state:el(u)})}if(i.length===0)return`git empty
49
+ `;let s=B(i,n),o=tl(s,"state");return ct({command:e.join(" "),branch:r,rows:s,summary:`${n?`${s.length}/${i.length}`:s.length} changes: ${o.added??0} added, ${o.modified??0} modified, ${o.deleted??0} deleted`},n,["rsp git diff --query <path>","rsp git log --query <subject>"])}function zd(e,t,n){let r=t.split("\0").filter(Boolean).map(s=>{let o=s.replace(/^\x1e/,"").split("");return{short:o[0]??"",author:o[1]??"",date:o[2]??"",subject:o[3]??""}}),i=B(r,n);return ct({command:e.join(" "),commits:i,summary:`${n?`${i.length}/${r.length}`:i.length} commits`},n,["rsp git diff --query <path>","rsp gh pr list --query <branch>"])}function Qd(e,t,n){let i=t.split("\0").filter(Boolean).map(a=>{let[c,u,d]=a.split(" ");return{path:d??"",added:c==="-"?null:Number(c??0),deleted:u==="-"?null:Number(u??0)}}),s=B(i,n),o=s.reduce((a,c)=>(a.added+=typeof c.added=="number"?c.added:0,a.deleted+=typeof c.deleted=="number"?c.deleted:0,a),{added:0,deleted:0});return ct({command:e.join(" "),files:s,summary:`${n?`${s.length}/${i.length}`:s.length} files, +${o.added} -${o.deleted}`},n,["rsp git status --query <path>","rsp git log --query <subject>"])}function Xd(e,t){let n=t.split(`
51
50
  `)[0]??"",r=/^\[([^ ]+) ([0-9a-f]+)\] (.+)$/.exec(n),i=/(\d+) files? changed/.exec(t),s=/(\d+) insertions?\(\+\)/.exec(t),o=/(\d+) deletions?\(-\)/.exec(t),a=r?.[1]??"",c=r?.[2]??"",u=Number(i?.[1]??0),d=Number(s?.[1]??0),l=Number(o?.[1]??0);return{command:e.join(" "),branch:a,commit:c,subject:r?.[3]??"",files_changed:u,insertions:d,deletions:l,summary:`commit ${c} on ${a}: ${u} files, +${d} -${l}`}}function Zd(e,t){let n=t.split(`
52
- `).filter(Boolean),r=n.find(c=>c.startsWith("To "))?.slice(3)??"",i=n.filter(c=>c.includes(" ")).map(c=>{let[u,d,l=""]=c.split(" "),[p,w]=(d??"").split(":");return{flag:u??"",from:p??"",to:w??"",summary:l}}),s=i.find(c=>c.flag!=="=")??i[0],o=s?.to.startsWith("refs/heads/")?s.to.slice(11):s?.to??"",a=s?.summary.includes("..")?1:0;return{command:e.join(" "),remote:r,refs:i,summary:`pushed ${o} -> ${r} +${a} commits`}}function ct(e,t,n){return t?oe(e,n):e}function el(e,t){if(e==="commit"&&typeof t.commit=="string"&&t.commit.length>0)return String(t.summary??"");if(e==="push"){let n=t.refs;return(Array.isArray(n)?n:[]).filter(s=>tl(s)&&s.flag!=="=").length===1?String(t.summary??""):null}return null}function tl(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function nl(e){return e.includes("A")?"added":e.includes("D")?"deleted":e.includes("R")?"renamed":e.includes("M")?"modified":"changed"}function rl(e,t){let n={};for(let r of e){let i=String(r[t]??"");n[i]=(n[i]??0)+1}return n}function il(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function sl(e){for(let t of["rows","commits","files","refs"]){let n=e[t];if(Array.isArray(n)&&n.length>1)return{payload:{...e,[t]:n.slice(0,1)},rowsElided:n.length-1}}return null}var to,oo=k(()=>{"use strict";Pe();M();Jt();M();to=["%h","%an","%as","%s"]});var bo={};P(bo,{renderGhContract:()=>uo,runGhWrapper:()=>ul});import{spawn as co}from"node:child_process";async function ul(e,t){let n=lo(e),r=await ll(n);return uo(e,r,t)}async function uo(e,t,n){let r=se(e);if((t.status??0)!==0||t.signal)return{stdout:Buffer.from(Fe(t.stdout,r.query)),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal};let i=lo(e),s=Ht(t.stdout),o=ml(i,e,s);if(typeof o=="string")return{stdout:Buffer.from(o),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal};let a=_l(o);if(a){if(!n.store)throw new Error("truncated gh output requires an elision store");let b=await n.store.mint(Buffer.from(a.original),{command:e.join(" "),loss:{level:i.full?"brief":n.level,bytes_elided:a.bytes}});a.target.truncated.handle=b}let c=a?.target.truncated.handle||void 0,u=O(o);if(n.level!=="terse")return{stdout:Buffer.from(u),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o,mintedHandle:c,bytesElided:a?.bytes};let d=Rl(o);if(!d)return{stdout:Buffer.from(u),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o,mintedHandle:c,bytesElided:a?.bytes};let l=Buffer.byteLength(u),p=await n.store?.mint(Buffer.from(u),{command:e.join(" "),loss:{level:"terse",bytes_elided:l}});if(!p)throw new Error("terse gh output requires an elision store");let w=`\u2026 elided ${d.rowsElided} rows (+${l}) \u2014 rsp show ${p}
51
+ `).filter(Boolean),r=n.find(c=>c.startsWith("To "))?.slice(3)??"",i=n.filter(c=>c.includes(" ")).map(c=>{let[u,d,l=""]=c.split(" "),[p,w]=(d??"").split(":");return{flag:u??"",from:p??"",to:w??"",summary:l}}),s=i.find(c=>c.flag!=="=")??i[0],o=s?.to.startsWith("refs/heads/")?s.to.slice(11):s?.to??"",a=s?.summary.includes("..")?1:0;return{command:e.join(" "),remote:r,refs:i,summary:`pushed ${o} -> ${r} +${a} commits`}}function ct(e,t,n){return t?oe(e,n):e}function el(e){return e.includes("A")?"added":e.includes("D")?"deleted":e.includes("R")?"renamed":e.includes("M")?"modified":"changed"}function tl(e,t){let n={};for(let r of e){let i=String(r[t]??"");n[i]=(n[i]??0)+1}return n}function nl(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function rl(e){for(let t of["rows","commits","files","refs"]){let n=e[t];if(Array.isArray(n)&&n.length>1)return{payload:{...e,[t]:n.slice(0,1)},rowsElided:n.length-1}}return null}var to,oo=k(()=>{"use strict";Pe();M();Jt();M();to=["%h","%an","%as","%s"]});var bo={};P(bo,{renderGhContract:()=>uo,runGhWrapper:()=>al});import{spawn as co}from"node:child_process";async function al(e,t){let n=lo(e),r=await ul(n);return uo(e,r,t)}async function uo(e,t,n){let r=se(e);if((t.status??0)!==0||t.signal)return{stdout:Buffer.from(Fe(t.stdout,r.query)),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal};let i=lo(e),s=Ht(t.stdout),o=ll(i,e,s);if(typeof o=="string")return{stdout:Buffer.from(o),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal};let a=wl(o);if(a){if(!n.store)throw new Error("truncated gh output requires an elision store");let b=await n.store.mint(Buffer.from(a.original),{command:e.join(" "),loss:{level:i.full?"brief":n.level,bytes_elided:a.bytes}});a.target.truncated.handle=b}let c=a?.target.truncated.handle||void 0,u=O(o);if(n.level!=="terse")return{stdout:Buffer.from(u),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o,mintedHandle:c,bytesElided:a?.bytes};let d=bl(o);if(!d)return{stdout:Buffer.from(u),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o,mintedHandle:c,bytesElided:a?.bytes};let l=Buffer.byteLength(u),p=await n.store?.mint(Buffer.from(u),{command:e.join(" "),loss:{level:"terse",bytes_elided:l}});if(!p)throw new Error("terse gh output requires an elision store");let w=`\u2026 elided ${d.rowsElided} rows (+${l}) \u2014 rsp show ${p}
53
52
  `;return{stdout:Buffer.from(`${O(d.payload)}
54
- ${w}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:d.payload,mintedHandle:p,bytesElided:l,rowsElided:d.rowsElided,rawOutput:Buffer.from(u)}}function lo(e){let t=se(e);if(t.argv[0]!=="gh")throw new Error("expected rsp gh <surface> <subcommand>");let n=t.argv[1],r=t.argv[2];if(!(n==="pr"||n==="issue"||n==="run"))throw new Error(`unsupported gh surface: ${n??""}`);let i=n==="pr"&&r&&r!=="list"&&r!=="view";if(!(r==="list"||r==="view"||i))throw new Error(`unsupported gh subcommand: ${r??""}`);let s=[],o=!1,a=!1;for(let u of t.argv.slice(3))u==="--full"?o=!0:u==="--wide"?a=!0:s.push(u);return{kind:n,action:i?"combined":r==="list"?"list":"view",target:i?r:void 0,full:o,wide:a,passthrough:s,query:t.query}}function dl(e){if(e.action==="combined")throw new Error("combined gh command uses multiple machine calls");let t=`${e.kind}:${e.action}`,n=e.wide?al[t]:ol[t];return[e.kind,e.action,...e.passthrough,"--json",n.join(",")]}async function ll(e){if(e.action==="combined")return await fl(e);let t=co("gh",dl(e),{stdio:["ignore","pipe","pipe"]}),n=[],r=[];return t.stdout.on("data",i=>n.push(i)),t.stderr.on("data",i=>r.push(i)),await new Promise((i,s)=>{t.on("error",s),t.on("close",(o,a)=>{i({stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(r).toString("utf8"),status:o,signal:a})})})}async function fl(e){let t=e.target??"",n=["number","title","state","body","author","labels","url","baseRefName","headRefName"],r=["comments"],[i,s,o]=await Promise.all([or(["pr","view",t,"--json",n.join(",")]),or(["pr","checks",t,"--json","name,state,bucket,conclusion,link,startedAt,completedAt,workflow"]),or(["pr","view",t,"--comments","--json",r.join(",")])]),a=[i,s,o].find(c=>(c.status??0)!==0||c.signal);return a||{stdout:JSON.stringify({view:Ht(i.stdout),checks:Ht(s.stdout),comments:Ht(o.stdout)}),stderr:[i.stderr,s.stderr,o.stderr].filter(Boolean).join(""),status:0,signal:null}}async function or(e){let t=co("gh",e,{stdio:["ignore","pipe","pipe"]}),n=[],r=[];return t.stdout.on("data",i=>n.push(i)),t.stderr.on("data",i=>r.push(i)),await new Promise((i,s)=>{t.on("error",s),t.on("close",(o,a)=>{i({stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(r).toString("utf8"),status:o,signal:a})})})}function ml(e,t,n){if(e.action==="list"&&Array.isArray(n)&&n.length===0)return hl(e.kind);let r={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let i=Ve(n).map(o=>fo(o,e.wide)),s=B(i,e.query);return Ge({...r,prs:s,summary:`${ar(s.length,i.length,e.query)} ${ao(s,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return Ge({...r,pr:mo(F(n),e),summary:`PR #${ke(F(n),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return pl(e,t,F(n));case"issue:list":{let i=Ve(n).map(o=>po(o,e.wide)),s=B(i,e.query);return Ge({...r,issues:s,summary:`${ar(s.length,i.length,e.query)} ${ao(s,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return Ge({...r,issue:wl(F(n),e),summary:`issue #${ke(F(n),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let i=Ve(n).map(o=>yo(o,e.wide)),s=B(i,e.query);return Ge({...r,runs:s,summary:`${ar(s.length,i.length,e.query)} runs`},e,["rsp gh run view <id>","rsp gh run list --query <workflow-or-status>"])}case"run:view":return Ge({...r,run:bl(F(n),e),summary:`run ${ke(F(n),"databaseId")}`},e,["rsp gh run view <id> --full"])}throw new Error(`unsupported gh command: ${e.kind} ${e.action}`)}function pl(e,t,n){let r=mo(F(n.view),{...e,action:"view",wide:!0}),i=B(Ve(n.checks).map(yl),e.query),s=F(n.comments).comments,o=B(Ve(s).map(gl).slice(-3),e.query);return oe({command:t.join(" "),pr:r,checks:i,comments:o,summary:`PR #${ke(F(n.view),"number")}: ${i.length} checks, ${o.length} comments`},["rsp gh pr view <number> --full","rsp gh pr <number> --query <check-or-comment>","rsp gh run view <id>"])}function yl(e){return{name:v(e,"name"),state:ut(e),bucket:v(e,"bucket"),conclusion:v(e,"conclusion"),workflow:v(e,"workflow"),link:v(e,"link")}}function gl(e){return{author:wo(e.author),body:Kt(e,"body",cr,!1),created:v(e,"createdAt")}}function hl(e){return e==="pr"?`0 open PRs \u2014 try: rsp gh issue list
53
+ ${w}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:d.payload,mintedHandle:p,bytesElided:l,rowsElided:d.rowsElided,rawOutput:Buffer.from(u)}}function lo(e){let t=se(e);if(t.argv[0]!=="gh")throw new Error("expected rsp gh <surface> <subcommand>");let n=t.argv[1],r=t.argv[2];if(!(n==="pr"||n==="issue"||n==="run"))throw new Error(`unsupported gh surface: ${n??""}`);let i=n==="pr"&&r&&r!=="list"&&r!=="view";if(!(r==="list"||r==="view"||i))throw new Error(`unsupported gh subcommand: ${r??""}`);let s=[],o=!1,a=!1;for(let u of t.argv.slice(3))u==="--full"?o=!0:u==="--wide"?a=!0:s.push(u);return{kind:n,action:i?"combined":r==="list"?"list":"view",target:i?r:void 0,full:o,wide:a,passthrough:s,query:t.query}}function cl(e){if(e.action==="combined")throw new Error("combined gh command uses multiple machine calls");let t=`${e.kind}:${e.action}`,n=e.wide?sl[t]:il[t];return[e.kind,e.action,...e.passthrough,"--json",n.join(",")]}async function ul(e){if(e.action==="combined")return await dl(e);let t=co("gh",cl(e),{stdio:["ignore","pipe","pipe"]}),n=[],r=[];return t.stdout.on("data",i=>n.push(i)),t.stderr.on("data",i=>r.push(i)),await new Promise((i,s)=>{t.on("error",s),t.on("close",(o,a)=>{i({stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(r).toString("utf8"),status:o,signal:a})})})}async function dl(e){let t=e.target??"",n=["number","title","state","body","author","labels","url","baseRefName","headRefName"],r=["comments"],[i,s,o]=await Promise.all([or(["pr","view",t,"--json",n.join(",")]),or(["pr","checks",t,"--json","name,state,bucket,conclusion,link,startedAt,completedAt,workflow"]),or(["pr","view",t,"--comments","--json",r.join(",")])]),a=[i,s,o].find(c=>(c.status??0)!==0||c.signal);return a||{stdout:JSON.stringify({view:Ht(i.stdout),checks:Ht(s.stdout),comments:Ht(o.stdout)}),stderr:[i.stderr,s.stderr,o.stderr].filter(Boolean).join(""),status:0,signal:null}}async function or(e){let t=co("gh",e,{stdio:["ignore","pipe","pipe"]}),n=[],r=[];return t.stdout.on("data",i=>n.push(i)),t.stderr.on("data",i=>r.push(i)),await new Promise((i,s)=>{t.on("error",s),t.on("close",(o,a)=>{i({stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(r).toString("utf8"),status:o,signal:a})})})}function ll(e,t,n){if(e.action==="list"&&Array.isArray(n)&&n.length===0)return yl(e.kind);let r={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let i=Ve(n).map(o=>fo(o,e.wide)),s=B(i,e.query);return Ge({...r,prs:s,summary:`${ar(s.length,i.length,e.query)} ${ao(s,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return Ge({...r,pr:mo(F(n),e),summary:`PR #${ke(F(n),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return fl(e,t,F(n));case"issue:list":{let i=Ve(n).map(o=>po(o,e.wide)),s=B(i,e.query);return Ge({...r,issues:s,summary:`${ar(s.length,i.length,e.query)} ${ao(s,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return Ge({...r,issue:gl(F(n),e),summary:`issue #${ke(F(n),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let i=Ve(n).map(o=>yo(o,e.wide)),s=B(i,e.query);return Ge({...r,runs:s,summary:`${ar(s.length,i.length,e.query)} runs`},e,["rsp gh run view <id>","rsp gh run list --query <workflow-or-status>"])}case"run:view":return Ge({...r,run:hl(F(n),e),summary:`run ${ke(F(n),"databaseId")}`},e,["rsp gh run view <id> --full"])}throw new Error(`unsupported gh command: ${e.kind} ${e.action}`)}function fl(e,t,n){let r=mo(F(n.view),{...e,action:"view",wide:!0}),i=B(Ve(n.checks).map(ml),e.query),s=F(n.comments).comments,o=B(Ve(s).map(pl).slice(-3),e.query);return oe({command:t.join(" "),pr:r,checks:i,comments:o,summary:`PR #${ke(F(n.view),"number")}: ${i.length} checks, ${o.length} comments`},["rsp gh pr view <number> --full","rsp gh pr <number> --query <check-or-comment>","rsp gh run view <id>"])}function ml(e){return{name:v(e,"name"),state:ut(e),bucket:v(e,"bucket"),conclusion:v(e,"conclusion"),workflow:v(e,"workflow"),link:v(e,"link")}}function pl(e){return{author:wo(e.author),body:Kt(e,"body",cr,!1),created:v(e,"createdAt")}}function yl(e){return e==="pr"?`0 open PRs \u2014 try: rsp gh issue list
55
54
  `:e==="issue"?`0 open issues \u2014 try: rsp gh issue list --state all
56
55
  `:`0 runs \u2014 try: rsp gh run list --limit 20
57
- `}function fo(e,t){let n={number:ke(e,"number"),title:v(e,"title"),state:ut(e),draft:!!e.isDraft};return t&&Object.assign(n,go(e)),n}function mo(e,t){let n=fo(e,t.wide);return n.body=Kt(e,"body",cr,t.full),t.wide&&(n.base=v(e,"baseRefName"),n.head=v(e,"headRefName")),n}function po(e,t){let n={number:ke(e,"number"),title:v(e,"title"),state:ut(e),labels:ho(e.labels)};return t&&Object.assign(n,go(e)),n}function wl(e,t){let n=po(e,t.wide);return n.body=Kt(e,"body",cr,t.full),n}function yo(e,t){let n={id:ke(e,"databaseId"),name:v(e,"name"),status:ut(e),conclusion:v(e,"conclusion")};return t&&(n.event=v(e,"event"),n.branch=v(e,"headBranch"),n.workflow=v(e,"workflowName"),n.created=v(e,"createdAt")),n}function bl(e,t){let n=yo(e,t.wide),r=Ve(e.jobs).map(i=>({name:v(i,"name"),status:ut(i),conclusion:v(i,"conclusion"),log:Kt(i,"log",cl,t.full)}));return n.jobs=r,n}function Kt(e,t,n,r){let i=v(e,t);if(r||Buffer.byteLength(i)<=n)return i;let s=i.slice(0,n),o={preview:s,truncated:{bytes:Buffer.byteLength(i),shown_bytes:Buffer.byteLength(s),hint:"--full",handle:""}};return Object.defineProperty(o,"__rsp_original",{value:i,enumerable:!1}),o}function _l(e){let t=[e];for(;t.length>0;){let n=t.pop();if(Array.isArray(n))t.push(...n);else if(Je(n)){if(Je(n.truncated)&&n.truncated.handle===""&&typeof n.preview=="string"){let r=typeof n.__rsp_original=="string"?n.__rsp_original:n.preview;return{target:n,original:r,bytes:Number(n.truncated.bytes??0)}}t.push(...Object.values(n))}}return null}function Rl(e){for(let t of["prs","issues","runs","jobs"]){let n=e[t];if(Array.isArray(n)&&n.length>1)return{payload:{...e,[t]:n.slice(0,1)},rowsElided:n.length-1}}return null}function ao(e,t){return e.every(n=>n.state===t)?t:"returned"}function ar(e,t,n){return n?`${e}/${t}`:String(e)}function Ge(e,t,n){return t.query?oe(e,n):e}function ut(e){return(v(e,"state")||v(e,"status")).toLowerCase()}function go(e){return{author:wo(e.author),labels:ho(e.labels),url:v(e,"url"),updated:v(e,"updatedAt")}}function ho(e){return Array.isArray(e)?e.map(t=>Je(t)?v(t,"name"):String(t)).filter(Boolean):[]}function wo(e){return Je(e)?v(e,"login"):""}function Ht(e){return e.trim()?JSON.parse(e):null}function Ve(e){return Array.isArray(e)?e.filter(Je):[]}function F(e){return Je(e)?e:{}}function v(e,t){let n=e[t];return typeof n=="string"?n:""}function ke(e,t){let n=e[t];return typeof n=="number"?n:0}function Je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ol,al,cr,cl,_o=k(()=>{"use strict";Pe();Jt();ol={"pr:list":["number","title","state","isDraft"],"pr:view":["number","title","state","body"],"issue:list":["number","title","state","labels"],"issue:view":["number","title","state","body"],"run:list":["databaseId","name","status","conclusion"],"run:view":["databaseId","name","status","conclusion","jobs"]},al={"pr:list":["number","title","state","isDraft","author","labels","url","updatedAt"],"pr:view":["number","title","state","body","author","labels","url","baseRefName","headRefName"],"issue:list":["number","title","state","labels","author","url","updatedAt"],"issue:view":["number","title","state","body","author","labels","url","updatedAt"],"run:list":["databaseId","name","status","conclusion","event","headBranch","workflowName","createdAt"],"run:view":["databaseId","name","status","conclusion","event","headBranch","workflowName","createdAt","jobs","url"]},cr=160,cl=160});var So={};P(So,{renderTestContract:()=>Ro,runTestWrapper:()=>vl});import{spawn as El}from"node:child_process";async function vl(e,t){let n=se(e),r=await Il(n.argv);return await Ro(e,r,t)}async function Ro(e,t,n){let r=se(e),s=Eo(r.argv)==="vitest"?Pl(t.stdout):$l(t.stdout),o=t.status;if(!s||(o??0)!==0&&s.failed===0)return{stdout:Buffer.from(Fe(t.stdout,r.query)),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal};let a=`${s.failed}/${s.total} failed \xB7 ${s.suites} suites \xB7 ${Ll(s.durationSeconds)}`,c=B(s.failures,r.query);if(n.level==="terse")return await xl(r.argv,t,{...s,failures:c},o,a,n,r.query);let u=[],d,l=0;for(let b of c){let T=await Nl(b.excerpt,r.argv.join(" "),n.store);u.push({suite:b.suite,name:b.name,excerpt:T.text}),d??=T.handle,l+=T.bytesElided}let p={exit_code:o,summary:r.query?`${a} \xB7 ${c.length}/${s.failures.length} failures matched`:a};u.length>0&&(p.failures=u);let w=r.query?oe(p,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):p;return{stdout:Buffer.from(O(w)),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:w,mintedHandle:d,bytesElided:l>0?l:void 0,rowsElided:u.length>0?Math.max(0,s.total-u.length):void 0}}async function xl(e,t,n,r,i,s,o){let a=Ol(n.failures),c={exit_code:r,summary:o?`${i} \xB7 ${n.failures.length} failures matched`:i};a.length>0&&(c.failures=a);let u=o?oe(c,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):c,d=O(u),l=Math.max(0,n.failures.length-a.length),p=a.some((R,m)=>R.excerpt!==n.failures[m].excerpt);if(l===0&&!p)return{stdout:Buffer.from(d),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:u};let w={exit_code:r,summary:i};n.failures.length>0&&(w.failures=n.failures.map(R=>({suite:R.suite,name:R.name,excerpt:R.excerpt})));let b=O(w),T=Buffer.byteLength(b),S=await s.store?.mint(Buffer.from(b),{command:e.join(" "),loss:{level:"terse",bytes_elided:T}});if(!S)throw new Error("terse test output requires an elision store");let f=`\u2026 elided ${l>0?`${l} failures`:"full detail"} (+${T}) \u2014 rsp show ${S}`;return{stdout:Buffer.from(`${d}
58
- ${f}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:u,mintedHandle:S,bytesElided:T,rowsElided:l,rawOutput:Buffer.from(b)}}function Ol(e){let t=[],n=Sl;for(let r of e.slice(0,Tl)){let i=Dl(r.excerpt,Math.min(kl,n));n=Math.max(0,n-Buffer.byteLength(i)),t.push({suite:r.suite,name:r.name,excerpt:i})}return t}function Dl(e,t){if(t<=0)return"";let n=e.split(`
56
+ `}function fo(e,t){let n={number:ke(e,"number"),title:v(e,"title"),state:ut(e),draft:!!e.isDraft};return t&&Object.assign(n,go(e)),n}function mo(e,t){let n=fo(e,t.wide);return n.body=Kt(e,"body",cr,t.full),t.wide&&(n.base=v(e,"baseRefName"),n.head=v(e,"headRefName")),n}function po(e,t){let n={number:ke(e,"number"),title:v(e,"title"),state:ut(e),labels:ho(e.labels)};return t&&Object.assign(n,go(e)),n}function gl(e,t){let n=po(e,t.wide);return n.body=Kt(e,"body",cr,t.full),n}function yo(e,t){let n={id:ke(e,"databaseId"),name:v(e,"name"),status:ut(e),conclusion:v(e,"conclusion")};return t&&(n.event=v(e,"event"),n.branch=v(e,"headBranch"),n.workflow=v(e,"workflowName"),n.created=v(e,"createdAt")),n}function hl(e,t){let n=yo(e,t.wide),r=Ve(e.jobs).map(i=>({name:v(i,"name"),status:ut(i),conclusion:v(i,"conclusion"),log:Kt(i,"log",ol,t.full)}));return n.jobs=r,n}function Kt(e,t,n,r){let i=v(e,t);if(r||Buffer.byteLength(i)<=n)return i;let s=i.slice(0,n),o={preview:s,truncated:{bytes:Buffer.byteLength(i),shown_bytes:Buffer.byteLength(s),hint:"--full",handle:""}};return Object.defineProperty(o,"__rsp_original",{value:i,enumerable:!1}),o}function wl(e){let t=[e];for(;t.length>0;){let n=t.pop();if(Array.isArray(n))t.push(...n);else if(Je(n)){if(Je(n.truncated)&&n.truncated.handle===""&&typeof n.preview=="string"){let r=typeof n.__rsp_original=="string"?n.__rsp_original:n.preview;return{target:n,original:r,bytes:Number(n.truncated.bytes??0)}}t.push(...Object.values(n))}}return null}function bl(e){for(let t of["prs","issues","runs","jobs"]){let n=e[t];if(Array.isArray(n)&&n.length>1)return{payload:{...e,[t]:n.slice(0,1)},rowsElided:n.length-1}}return null}function ao(e,t){return e.every(n=>n.state===t)?t:"returned"}function ar(e,t,n){return n?`${e}/${t}`:String(e)}function Ge(e,t,n){return t.query?oe(e,n):e}function ut(e){return(v(e,"state")||v(e,"status")).toLowerCase()}function go(e){return{author:wo(e.author),labels:ho(e.labels),url:v(e,"url"),updated:v(e,"updatedAt")}}function ho(e){return Array.isArray(e)?e.map(t=>Je(t)?v(t,"name"):String(t)).filter(Boolean):[]}function wo(e){return Je(e)?v(e,"login"):""}function Ht(e){return e.trim()?JSON.parse(e):null}function Ve(e){return Array.isArray(e)?e.filter(Je):[]}function F(e){return Je(e)?e:{}}function v(e,t){let n=e[t];return typeof n=="string"?n:""}function ke(e,t){let n=e[t];return typeof n=="number"?n:0}function Je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var il,sl,cr,ol,_o=k(()=>{"use strict";Pe();Jt();il={"pr:list":["number","title","state","isDraft"],"pr:view":["number","title","state","body"],"issue:list":["number","title","state","labels"],"issue:view":["number","title","state","body"],"run:list":["databaseId","name","status","conclusion"],"run:view":["databaseId","name","status","conclusion","jobs"]},sl={"pr:list":["number","title","state","isDraft","author","labels","url","updatedAt"],"pr:view":["number","title","state","body","author","labels","url","baseRefName","headRefName"],"issue:list":["number","title","state","labels","author","url","updatedAt"],"issue:view":["number","title","state","body","author","labels","url","updatedAt"],"run:list":["databaseId","name","status","conclusion","event","headBranch","workflowName","createdAt"],"run:view":["databaseId","name","status","conclusion","event","headBranch","workflowName","createdAt","jobs","url"]},cr=160,ol=160});var So={};P(So,{renderTestContract:()=>Ro,runTestWrapper:()=>Sl});import{spawn as _l}from"node:child_process";async function Sl(e,t){let n=se(e),r=await Dl(n.argv);return await Ro(e,r,t)}async function Ro(e,t,n){let r=se(e),s=Eo(r.argv)==="vitest"?Al(t.stdout):Il(t.stdout),o=t.status;if(!s||(o??0)!==0&&s.failed===0)return{stdout:Buffer.from(Fe(t.stdout,r.query)),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal};let a=`${s.failed}/${s.total} failed \xB7 ${s.suites} suites \xB7 ${Nl(s.durationSeconds)}`,c=B(s.failures,r.query);if(n.level==="terse")return await Tl(r.argv,t,{...s,failures:c},o,a,n,r.query);let u=[],d,l=0;for(let b of c){let T=await Pl(b.excerpt,r.argv.join(" "),n.store);u.push({suite:b.suite,name:b.name,excerpt:T.text}),d??=T.handle,l+=T.bytesElided}let p={exit_code:o,summary:r.query?`${a} \xB7 ${c.length}/${s.failures.length} failures matched`:a};u.length>0&&(p.failures=u);let w=r.query?oe(p,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):p;return{stdout:Buffer.from(O(w)),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:w,mintedHandle:d,bytesElided:l>0?l:void 0,rowsElided:u.length>0?Math.max(0,s.total-u.length):void 0}}async function Tl(e,t,n,r,i,s,o){let a=vl(n.failures),c={exit_code:r,summary:o?`${i} \xB7 ${n.failures.length} failures matched`:i};a.length>0&&(c.failures=a);let u=o?oe(c,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):c,d=O(u),l=Math.max(0,n.failures.length-a.length),p=a.some((R,m)=>R.excerpt!==n.failures[m].excerpt);if(l===0&&!p)return{stdout:Buffer.from(d),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:u};let w={exit_code:r,summary:i};n.failures.length>0&&(w.failures=n.failures.map(R=>({suite:R.suite,name:R.name,excerpt:R.excerpt})));let b=O(w),T=Buffer.byteLength(b),S=await s.store?.mint(Buffer.from(b),{command:e.join(" "),loss:{level:"terse",bytes_elided:T}});if(!S)throw new Error("terse test output requires an elision store");let f=`\u2026 elided ${l>0?`${l} failures`:"full detail"} (+${T}) \u2014 rsp show ${S}`;return{stdout:Buffer.from(`${d}
57
+ ${f}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:u,mintedHandle:S,bytesElided:T,rowsElided:l,rawOutput:Buffer.from(b)}}function vl(e){let t=[],n=El;for(let r of e.slice(0,kl)){let i=xl(r.excerpt,Math.min(Rl,n));n=Math.max(0,n-Buffer.byteLength(i)),t.push({suite:r.suite,name:r.name,excerpt:i})}return t}function xl(e,t){if(t<=0)return"";let n=e.split(`
59
58
  `),r=n.length<=2?e:`${n[0]}
60
59
  \u2026
61
- ${n[n.length-1]}`,i=Buffer.from(r);return i.length<=t?r:i.subarray(0,t).toString("utf8").replace(/�$/,"")}function Eo(e){if(e[0]==="vitest")return"vitest";if(e[0]==="cargo"&&e[1]==="test")return"cargo";throw new Error(`unsupported test command: ${e.join(" ")}`)}function Al(e){if(Eo(e)==="vitest"){let i=e.slice(1);return{executable:"vitest",args:i.some(o=>o==="--reporter=json"||o==="--reporter"||o.startsWith("--reporter="))?i:["run","--reporter=json",...i]}}let n=e.slice(1);return{executable:"cargo",args:n.some(i=>i==="--message-format=json"||i.startsWith("--message-format="))?n:["test","--message-format=json",...n.slice(1)]}}async function Il(e){let t=Al(e),n=El(t.executable,t.args,{stdio:["ignore","pipe","pipe"]}),r=[],i=[];return n.stdout.on("data",s=>r.push(s)),n.stderr.on("data",s=>i.push(s)),await new Promise((s,o)=>{n.on("error",o),n.on("close",(a,c)=>{s({stdout:Buffer.concat(r).toString("utf8"),stderr:Buffer.concat(i).toString("utf8"),status:a,signal:c})})})}function Pl(e){let t=ko(e);if(!ae(t))return null;let n=Array.isArray(t.testResults)?t.testResults:[],r=[],i=ce(t.numTotalTests),s=ce(t.numFailedTests),o=Cl(ce(t.startTime),ce(t.endTime));for(let a of n){if(!ae(a))continue;let c=G(a.name)||G(a.file)||"",u=Array.isArray(a.assertionResults)?a.assertionResults:[];for(let d of u)ae(d)&&d.status==="failed"&&r.push({suite:c,name:G(d.fullName)||G(d.title)||G(d.name),excerpt:Bl(d.failureMessages)||G(d.failureMessage)})}return i||=n.reduce((a,c)=>!ae(c)||!Array.isArray(c.assertionResults)?a:a+c.assertionResults.length,0),s||=r.length,o||=n.reduce((a,c)=>ae(c)?a+ce(c.perfStats&&ae(c.perfStats)?c.perfStats.runtime:c.duration)/1e3:a,0),{failed:s,total:i,suites:n.length||1,durationSeconds:o,failures:r}}function $l(e){let t=e.split(`
60
+ ${n[n.length-1]}`,i=Buffer.from(r);return i.length<=t?r:i.subarray(0,t).toString("utf8").replace(/�$/,"")}function Eo(e){if(e[0]==="vitest")return"vitest";if(e[0]==="cargo"&&e[1]==="test")return"cargo";throw new Error(`unsupported test command: ${e.join(" ")}`)}function Ol(e){if(Eo(e)==="vitest"){let i=e.slice(1);return{executable:"vitest",args:i.some(o=>o==="--reporter=json"||o==="--reporter"||o.startsWith("--reporter="))?i:["run","--reporter=json",...i]}}let n=e.slice(1);return{executable:"cargo",args:n.some(i=>i==="--message-format=json"||i.startsWith("--message-format="))?n:["test","--message-format=json",...n.slice(1)]}}async function Dl(e){let t=Ol(e),n=_l(t.executable,t.args,{stdio:["ignore","pipe","pipe"]}),r=[],i=[];return n.stdout.on("data",s=>r.push(s)),n.stderr.on("data",s=>i.push(s)),await new Promise((s,o)=>{n.on("error",o),n.on("close",(a,c)=>{s({stdout:Buffer.concat(r).toString("utf8"),stderr:Buffer.concat(i).toString("utf8"),status:a,signal:c})})})}function Al(e){let t=ko(e);if(!ae(t))return null;let n=Array.isArray(t.testResults)?t.testResults:[],r=[],i=ce(t.numTotalTests),s=ce(t.numFailedTests),o=Bl(ce(t.startTime),ce(t.endTime));for(let a of n){if(!ae(a))continue;let c=G(a.name)||G(a.file)||"",u=Array.isArray(a.assertionResults)?a.assertionResults:[];for(let d of u)ae(d)&&d.status==="failed"&&r.push({suite:c,name:G(d.fullName)||G(d.title)||G(d.name),excerpt:$l(d.failureMessages)||G(d.failureMessage)})}return i||=n.reduce((a,c)=>!ae(c)||!Array.isArray(c.assertionResults)?a:a+c.assertionResults.length,0),s||=r.length,o||=n.reduce((a,c)=>ae(c)?a+ce(c.perfStats&&ae(c.perfStats)?c.perfStats.runtime:c.duration)/1e3:a,0),{failed:s,total:i,suites:n.length||1,durationSeconds:o,failures:r}}function Il(e){let t=e.split(`
62
61
  `).filter(Boolean).map(c=>ko(c)).filter(ae);if(t.length===0)return null;let n=[],r=0,i=0,s=0,o=0,a=[];for(let c of t){if(c.type==="suite"){c.event==="started"&&(s+=1,r+=ce(c.test_count)),(c.event==="failed"||c.event==="ok")&&(i+=ce(c.failed),o+=ce(c.exec_time));continue}if(c.type==="test"&&c.event==="failed"){n.push({suite:G(c.name).split("::").slice(0,-1).join("::"),name:G(c.name),excerpt:G(c.stdout)});continue}if(c.reason==="compiler-message"&&ae(c.message)){let u=G(c.message.rendered);u&&a.push(u)}}return n.length===0&&a.length>0&&(n.push({suite:"cargo check",name:"compile-error",excerpt:a.join(`
63
- `)}),s||=1,r||=1,i||=1),i||=n.length,s||=1,r||=Math.max(i,n.length),{failed:i,total:r,suites:s,durationSeconds:o,failures:n}}async function Nl(e,t,n){let r=Buffer.from(e);if(r.length<=ur)return{text:e,bytesElided:0};if(!n)throw new Error("over-limit test failure excerpt requires an elision store");let i=await n.mint(r,{command:t,loss:{level:"brief",bytes_elided:r.length}}),s=r.subarray(0,ur).toString("utf8").replace(/\uFFFD$/,""),o=r.length-Buffer.byteLength(s);return{text:`${s}
64
- \u2026 elided ${o} bytes (+${r.length}) \u2014 rsp show ${i}`,handle:i,bytesElided:r.length}}function ko(e){try{return JSON.parse(e)}catch{return null}}function Bl(e){return Array.isArray(e)?e.map(t=>String(t)).filter(Boolean).join(`
65
- `):""}function Ll(e){return`${Number(e.toFixed(1))}s`}function Cl(e,t){return e>0&&t>e?(t-e)/1e3:0}function ce(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function G(e){return typeof e=="string"?e:""}function ae(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ur,kl,Sl,Tl,To=k(()=>{"use strict";Pe();Jt();ur=320,kl=160,Sl=ur,Tl=3});Pe();import{appendFileSync as vo,existsSync as mr,mkdirSync as jl,readdirSync as Ml}from"node:fs";import{dirname as Ul,join as ql}from"node:path";function Br(e){let t={app:e,version:Oa($e("__RED_BUILD_VERSION__",()=>"2.41.1")??"0.0.0-dev"),gitSha:$e("__RED_BUILD_GIT_SHA__",()=>"51f51f7034e054522493ffa6224020476e721173")??"unknown",buildTime:$e("__RED_BUILD_TIME__",()=>"2026-07-13T02:18:58-03:00")??"unknown",bundleAsset:$e("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},n=$e("__REDDB_SDK_VERSION__",()=>"1.23.1"),r=$e("__REDDB_BINARY_TAG__",()=>"v1.23.1");return n&&(t.reddbSdkVersion=n),r&&(t.reddbBinaryTag=r),t}function Oa(e){return e.startsWith("v")?e.slice(1):e}function $e(e,t){try{let n=t();return typeof n=="string"&&n.length>0?n:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}async function Fl(e=process.argv.slice(2)){let t=Br("rsp"),n=Ql(e);if(n.command==="hook"&&n.positional[1]==="claude-pre-exec"){let{runClaudePreExecHook:g}=await Promise.resolve().then(()=>(li(),di));return await g()}if(n.command==="hook"&&n.positional[1]==="claude-post-exec"){let{runClaudePostExecHook:g}=await Promise.resolve().then(()=>(Ti(),Si));return await g()}if(n.command==="setup"){let{provisionRspRepoStore:g}=await Promise.resolve().then(()=>(fs(),ls)),f=await g(process.cwd());return process.stdout.write(of(f)),0}if(n.command==="mcp"){let{runRspMcpServer:g}=await Promise.resolve().then(()=>(hs(),gs));return await g(),0}let{resolveRspConfig:r}=await Promise.resolve().then(()=>(M(),Gr)),i=r(process.cwd(),process.env,n.storeUri),s=Yl(n.command);if(!i.enabled)return s?await He(dr(),n.positional):(process.stdout.write(`${dr()}
66
- `),0);if(n.command==="git"&&xo(n.positional)&&await Gl(process.cwd())){let g=process.hrtime.bigint();return await dt(n,await Oo(),g)}let{resolveResidentPaths:o,ResidentRspElisionStore:a,ensureResidentServer:c}=await Promise.resolve().then(()=>(Be(),Ot));if(n.command==="server"){let{runResidentServer:g}=await Promise.resolve().then(()=>(Zs(),Xs)),f=ue(n.positional,"--socket")??o(process.cwd()).socketPath,R=r(process.cwd(),process.env,n.storeUri??ue(n.positional,"--store-uri"));return R.enabled?(await g({socketPath:f,storeUri:R.storeUri,ttlDays:I(n.positional,"--ttl-days")??R.ttlDays,byteBudget:I(n.positional,"--byte-budget")??R.byteBudget,telemetryTtlDays:I(n.positional,"--telemetry-ttl-days")??R.telemetryTtlDays,telemetryByteBudget:I(n.positional,"--telemetry-byte-budget")??R.telemetryByteBudget,telemetryDrainIntervalMs:I(n.positional,"--telemetry-drain-interval-ms")??R.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:I(n.positional,"--telemetry-drain-timeout-ms")??R.telemetryDrainTimeoutMs,idleMs:I(n.positional,"--idle-ms"),residentVersion:ue(n.positional,"--resident-version")??t.version}),0):(process.stdout.write(`${dr()}
62
+ `)}),s||=1,r||=1,i||=1),i||=n.length,s||=1,r||=Math.max(i,n.length),{failed:i,total:r,suites:s,durationSeconds:o,failures:n}}async function Pl(e,t,n){let r=Buffer.from(e);if(r.length<=ur)return{text:e,bytesElided:0};if(!n)throw new Error("over-limit test failure excerpt requires an elision store");let i=await n.mint(r,{command:t,loss:{level:"brief",bytes_elided:r.length}}),s=r.subarray(0,ur).toString("utf8").replace(/\uFFFD$/,""),o=r.length-Buffer.byteLength(s);return{text:`${s}
63
+ \u2026 elided ${o} bytes (+${r.length}) \u2014 rsp show ${i}`,handle:i,bytesElided:r.length}}function ko(e){try{return JSON.parse(e)}catch{return null}}function $l(e){return Array.isArray(e)?e.map(t=>String(t)).filter(Boolean).join(`
64
+ `):""}function Nl(e){return`${Number(e.toFixed(1))}s`}function Bl(e,t){return e>0&&t>e?(t-e)/1e3:0}function ce(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function G(e){return typeof e=="string"?e:""}function ae(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ur,Rl,El,kl,To=k(()=>{"use strict";Pe();Jt();ur=320,Rl=160,El=ur,kl=3});Pe();import{appendFileSync as vo,existsSync as mr,mkdirSync as Ll,readdirSync as Cl}from"node:fs";import{dirname as jl,join as Ml}from"node:path";function Br(e){let t={app:e,version:Oa($e("__RED_BUILD_VERSION__",()=>"2.43.0")??"0.0.0-dev"),gitSha:$e("__RED_BUILD_GIT_SHA__",()=>"809ed5c081ab042908db5143230cdec6a0f5a0e1")??"unknown",buildTime:$e("__RED_BUILD_TIME__",()=>"2026-07-13T02:58:29-03:00")??"unknown",bundleAsset:$e("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},n=$e("__REDDB_SDK_VERSION__",()=>"1.23.1"),r=$e("__REDDB_BINARY_TAG__",()=>"v1.23.1");return n&&(t.reddbSdkVersion=n),r&&(t.reddbBinaryTag=r),t}function Oa(e){return e.startsWith("v")?e.slice(1):e}function $e(e,t){try{let n=t();return typeof n=="string"&&n.length>0?n:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}async function Ul(e=process.argv.slice(2)){let t=Br("rsp"),n=Yl(e);if(n.command==="hook"&&n.positional[1]==="claude-pre-exec"){let{runClaudePreExecHook:g}=await Promise.resolve().then(()=>(li(),di));return await g()}if(n.command==="hook"&&n.positional[1]==="claude-post-exec"){let{runClaudePostExecHook:g}=await Promise.resolve().then(()=>(Ti(),Si));return await g()}if(n.command==="setup"){let{provisionRspRepoStore:g}=await Promise.resolve().then(()=>(fs(),ls)),f=await g(process.cwd());return process.stdout.write(rf(f)),0}if(n.command==="mcp"){let{runRspMcpServer:g}=await Promise.resolve().then(()=>(hs(),gs));return await g(),0}let{resolveRspConfig:r}=await Promise.resolve().then(()=>(M(),Gr)),i=r(process.cwd(),process.env,n.storeUri),s=Kl(n.command);if(!i.enabled)return s?await He(dr(),n.positional):(process.stdout.write(`${dr()}
65
+ `),0);if(n.command==="git"&&xo(n.positional)&&await ql(process.cwd())){let g=process.hrtime.bigint();return await dt(n,await Oo(),g)}let{resolveResidentPaths:o,ResidentRspElisionStore:a,ensureResidentServer:c}=await Promise.resolve().then(()=>(Be(),Ot));if(n.command==="server"){let{runResidentServer:g}=await Promise.resolve().then(()=>(Zs(),Xs)),f=ue(n.positional,"--socket")??o(process.cwd()).socketPath,R=r(process.cwd(),process.env,n.storeUri??ue(n.positional,"--store-uri"));return R.enabled?(await g({socketPath:f,storeUri:R.storeUri,ttlDays:I(n.positional,"--ttl-days")??R.ttlDays,byteBudget:I(n.positional,"--byte-budget")??R.byteBudget,telemetryTtlDays:I(n.positional,"--telemetry-ttl-days")??R.telemetryTtlDays,telemetryByteBudget:I(n.positional,"--telemetry-byte-budget")??R.telemetryByteBudget,telemetryDrainIntervalMs:I(n.positional,"--telemetry-drain-interval-ms")??R.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:I(n.positional,"--telemetry-drain-timeout-ms")??R.telemetryDrainTimeoutMs,idleMs:I(n.positional,"--idle-ms"),residentVersion:ue(n.positional,"--resident-version")??t.version}),0):(process.stdout.write(`${dr()}
67
66
  `),0)}if(n.command==="warm-resident"){let g=o(process.cwd()),f=ue(n.positional,"--socket")??g.socketPath,R=ue(n.positional,"--wake-lock")??g.wakeLockPath,m=r(process.cwd(),process.env,n.storeUri??ue(n.positional,"--store-uri"));if(!m.enabled)return 0;let{warmResidentServer:E}=await Promise.resolve().then(()=>(Be(),Ot));return await E({...g,socketPath:f,wakeLockPath:R},{storeUri:m.storeUri,ttlDays:I(n.positional,"--ttl-days")??m.ttlDays,byteBudget:I(n.positional,"--byte-budget")??m.byteBudget,telemetryTtlDays:I(n.positional,"--telemetry-ttl-days")??m.telemetryTtlDays,telemetryByteBudget:I(n.positional,"--telemetry-byte-budget")??m.telemetryByteBudget,telemetryDrainIntervalMs:I(n.positional,"--telemetry-drain-interval-ms")??m.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:I(n.positional,"--telemetry-drain-timeout-ms")??m.telemetryDrainTimeoutMs,clientVersion:t.version}),0}let{existsSync:u}=await import("node:fs"),{fileURLToPath:d}=await import("node:url"),l=o(process.cwd());if(!n.storeUri&&i.storeUri.startsWith("file://")&&!u(d(i.storeUri)))return s?await He("store not provisioned",n.positional,void 0,l.rootDir):(process.stdout.write(`error: rsp repo store is not provisioned - run /red-setup
68
- `),1);let p=()=>Promise.resolve(new a(l,{storeUri:i.storeUri,ttlDays:i.ttlDays,byteBudget:i.byteBudget,telemetryTtlDays:i.telemetryTtlDays,telemetryByteBudget:i.telemetryByteBudget,telemetryDrainIntervalMs:i.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:i.telemetryDrainTimeoutMs,clientVersion:t.version})),w=()=>c(l,{storeUri:i.storeUri,ttlDays:i.ttlDays,byteBudget:i.byteBudget,telemetryTtlDays:i.telemetryTtlDays,telemetryByteBudget:i.telemetryByteBudget,telemetryDrainIntervalMs:i.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:i.telemetryDrainTimeoutMs,clientVersion:t.version}),b=async()=>{let{RspElisionStore:g}=await Promise.resolve().then(()=>(Bt(),jn));return await g.open({uri:i.storeUri,ttlDays:i.ttlDays,byteBudget:i.byteBudget})},T=()=>i.storeUri.endsWith("/red-skills.rdb")?p():b(),S;try{if(!n.command||n.command==="stats"){let g=await T();S=()=>g.close();let f=await g.stats(),R=Jl(g)?await g.telemetryStats(lr(n.positional,30)):Do(lr(n.positional,30));return process.stdout.write(Zl(f,R,Xl(n.positional))),0}if(n.command==="gains"){let g=await T();if(S=()=>g.close(),!Hl(g))return process.stdout.write(`error: rsp gains requires the shared RedDB store
69
- `),1;let f=await g.telemetryGains(lr(n.positional,28));return process.stdout.write(ef(f)),0}if(n.command==="git"){try{await Q(w)}catch(E){return await He("resident unavailable",n.positional,E,l.rootDir)}if(xo(n.positional)){let E=process.hrtime.bigint();return await dt(n,await Oo(),E)}let{runGitWrapper:g}=await Promise.resolve().then(()=>(oo(),so)),f=new lt(()=>Q(p));S=()=>f.close();let R=process.hrtime.bigint(),m=await Q(()=>g(n.positional,{level:n.level,store:f,heavyGitByteThreshold:i.heavyGitByteThreshold}));return await dt(n,m,R,f)}if(n.command==="gh"){try{await Q(w)}catch(E){return await He("resident unavailable",n.positional,E,l.rootDir)}let{runGhWrapper:g}=await Promise.resolve().then(()=>(_o(),bo)),f=new lt(()=>Q(p));S=()=>f.close();let R=process.hrtime.bigint(),m=await Q(()=>g(n.positional,{level:n.level,store:f}));return await dt(n,m,R,f)}if(n.command==="vitest"||n.command==="cargo"){try{await Q(w)}catch(E){return await He("resident unavailable",n.positional,E,l.rootDir)}let{runTestWrapper:g}=await Promise.resolve().then(()=>(To(),So)),f=new lt(()=>Q(p));S=()=>f.close();let R=process.hrtime.bigint(),m=await Q(()=>g(n.positional,{level:n.level,store:f}));return await dt(n,m,R,f)}if(n.command==="show"&&n.handle){let g=await T();S=()=>g.close();let f=await g.get(n.handle);return f&&"original"in f&&f.original?(process.stdout.write(f.original),0):f?.status==="expired"?(process.stdout.write(`expired ${f.expired_at} \u2014 re-run: ${f.command}
67
+ `),1);let p=()=>Promise.resolve(new a(l,{storeUri:i.storeUri,ttlDays:i.ttlDays,byteBudget:i.byteBudget,telemetryTtlDays:i.telemetryTtlDays,telemetryByteBudget:i.telemetryByteBudget,telemetryDrainIntervalMs:i.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:i.telemetryDrainTimeoutMs,clientVersion:t.version})),w=()=>c(l,{storeUri:i.storeUri,ttlDays:i.ttlDays,byteBudget:i.byteBudget,telemetryTtlDays:i.telemetryTtlDays,telemetryByteBudget:i.telemetryByteBudget,telemetryDrainIntervalMs:i.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:i.telemetryDrainTimeoutMs,clientVersion:t.version}),b=async()=>{let{RspElisionStore:g}=await Promise.resolve().then(()=>(Bt(),jn));return await g.open({uri:i.storeUri,ttlDays:i.ttlDays,byteBudget:i.byteBudget})},T=()=>i.storeUri.endsWith("/red-skills.rdb")?p():b(),S;try{if(!n.command||n.command==="stats"){let g=await T();S=()=>g.close();let f=await g.stats(),R=Gl(g)?await g.telemetryStats(lr(n.positional,30)):Do(lr(n.positional,30));return process.stdout.write(Ql(f,R,zl(n.positional))),0}if(n.command==="gains"){let g=await T();if(S=()=>g.close(),!Vl(g))return process.stdout.write(`error: rsp gains requires the shared RedDB store
68
+ `),1;let f=await g.telemetryGains(lr(n.positional,28));return process.stdout.write(Xl(f)),0}if(n.command==="git"){try{await Q(w)}catch(E){return await He("resident unavailable",n.positional,E,l.rootDir)}if(xo(n.positional)){let E=process.hrtime.bigint();return await dt(n,await Oo(),E)}let{runGitWrapper:g}=await Promise.resolve().then(()=>(oo(),so)),f=new lt(()=>Q(p));S=()=>f.close();let R=process.hrtime.bigint(),m=await Q(()=>g(n.positional,{level:n.level,store:f,heavyGitByteThreshold:i.heavyGitByteThreshold}));return await dt(n,m,R,f)}if(n.command==="gh"){try{await Q(w)}catch(E){return await He("resident unavailable",n.positional,E,l.rootDir)}let{runGhWrapper:g}=await Promise.resolve().then(()=>(_o(),bo)),f=new lt(()=>Q(p));S=()=>f.close();let R=process.hrtime.bigint(),m=await Q(()=>g(n.positional,{level:n.level,store:f}));return await dt(n,m,R,f)}if(n.command==="vitest"||n.command==="cargo"){try{await Q(w)}catch(E){return await He("resident unavailable",n.positional,E,l.rootDir)}let{runTestWrapper:g}=await Promise.resolve().then(()=>(To(),So)),f=new lt(()=>Q(p));S=()=>f.close();let R=process.hrtime.bigint(),m=await Q(()=>g(n.positional,{level:n.level,store:f}));return await dt(n,m,R,f)}if(n.command==="show"&&n.handle){let g=await T();S=()=>g.close();let f=await g.get(n.handle);return f&&"original"in f&&f.original?(process.stdout.write(f.original),0):f?.status==="expired"?(process.stdout.write(`expired ${f.expired_at} \u2014 re-run: ${f.command}
70
69
  `),1):(process.stdout.write(`expired unknown \u2014 re-run: ${n.handle}
71
70
  `),1)}return process.stdout.write(`error: usage rsp show el:<id>
72
- `),2}catch(g){if(s)return await He("wrapper failed",n.positional,g,l.rootDir);throw g}finally{await S?.()}}function ue(e,t){let n=e.indexOf(t);return n>=0?e[n+1]:void 0}function I(e,t){let n=ue(e,t);if(n==null)return;let r=Number(n);return Number.isFinite(r)&&r>0?r:void 0}function xo(e){return e.length===2&&e[0]==="git"&&e[1]==="status"}async function Gl(e){let{resolveResidentPaths:t}=await Promise.resolve().then(()=>(Be(),Ot));return mr(t(e).socketPath)}async function Oo(){if(Vl(process.cwd()))return{stdout:Buffer.from(`git empty
71
+ `),2}catch(g){if(s)return await He("wrapper failed",n.positional,g,l.rootDir);throw g}finally{await S?.()}}function ue(e,t){let n=e.indexOf(t);return n>=0?e[n+1]:void 0}function I(e,t){let n=ue(e,t);if(n==null)return;let r=Number(n);return Number.isFinite(r)&&r>0?r:void 0}function xo(e){return e.length===2&&e[0]==="git"&&e[1]==="status"}async function ql(e){let{resolveResidentPaths:t}=await Promise.resolve().then(()=>(Be(),Ot));return mr(t(e).socketPath)}async function Oo(){if(Fl(process.cwd()))return{stdout:Buffer.from(`git empty
73
72
  `),stderr:Buffer.alloc(0),status:0,signal:null};let{spawnSync:e}=await import("node:child_process");if(e("git",["diff-index","--quiet","HEAD","--"],{stdio:"ignore"}).status===0)return{stdout:Buffer.from(`git empty
74
73
  `),stderr:Buffer.alloc(0),status:0,signal:null};let n=e("git",["status","--porcelain=v1"],{encoding:"buffer"});if((n.status??0)!==0)return{stdout:n.stdout,stderr:n.stderr,status:n.status??1,signal:n.signal};let r=n.stdout.length===0?Buffer.from(`git empty
75
- `):n.stdout;return{stdout:r,stderr:n.stderr,status:0,signal:n.signal,rawOutput:r}}function Vl(e){try{return!mr(`${e}/.git`)||mr(`${e}/.git/index`)?!1:Ml(e).every(t=>t===".git")}catch{return!1}}function Jl(e){return typeof e=="object"&&e!==null&&"telemetryStats"in e&&typeof e.telemetryStats=="function"}function Hl(e){return typeof e=="object"&&e!==null&&"telemetryGains"in e&&typeof e.telemetryGains=="function"}var lt=class{constructor(t){this.openStore=t}store;metrics;async mint(...t){let n=await this.open(),r=await n.mint(...t);return this.metrics=n.lastResponseMetrics?.(),r}async close(){if(!this.store)return;let t;try{t=await this.store}catch{return}await t.close()}open(){return this.store??=this.openStore(),this.store}lastResponseMetrics(){return this.metrics}};async function dt(e,t,n,r){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let i=Number(process.hrtime.bigint()-n)/1e6;return r?await Kl(e,t,i,r.lastResponseMetrics()):Wl(e,t,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}async function Kl(e,t,n,r){let i=Buffer.concat([t.stdout,t.stderr]),s=Buffer.concat([t.rawOutput??t.stdout,t.stderr]),{appendTelemetryEvent:o,RSP_TELEMETRY_INVOCATIONS_COLLECTION:a}=await Promise.resolve().then(()=>(Gt(),Zn));await o(process.cwd(),{collection:a,ts:new Date().toISOString(),command:e.positional.join(" "),wrapper:e.command,loss:e.level,elided:!!(t.mintedHandle||t.bytesElided),raw_bytes:s.length,emitted_bytes:i.length,raw_text:s.toString("utf8"),emitted_text:i.toString("utf8"),wrapper_ms:n,store_open_count:r?.storeOpenCount,store_elapsed_ms:r?.storeElapsedMs})}function Wl(e,t,n){try{let r=Buffer.concat([t.stdout,t.stderr]),i=Buffer.concat([t.rawOutput??t.stdout,t.stderr]),s=ql(process.cwd(),".red","tmp","rsp-telemetry.spool.jsonl"),o=`${JSON.stringify({collection:"rsp_telemetry_invocations_v1",ts:new Date().toISOString(),command:e.positional.join(" "),wrapper:e.command,loss:e.level,elided:!!(t.mintedHandle||t.bytesElided),raw_bytes:i.length,emitted_bytes:r.length,wrapper_ms:n})}
76
- `;try{vo(s,o,{encoding:"utf8",mode:384})}catch(a){if(a.code!=="ENOENT")return;jl(Ul(s),{recursive:!0}),vo(s,o,{encoding:"utf8",mode:384})}}catch{}}async function He(e,t,n,r){if(process.env.RSP_DEBUG==="1")throw n instanceof Error?n:new Error(e);process.stderr.write(`rsp: ${e}, passing through
77
- `);let i=await zl(t);if(r){let{appendTelemetryEvent:s,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:o}=await Promise.resolve().then(()=>(Gt(),Zn));await s(r,{collection:o,ts:new Date().toISOString(),command:t.join(" "),reason:e})}return i}function dr(){return"rsp is not enabled in this directory; run /red-setup"}async function Q(e){let t=process.stderr.write;process.stderr.write=()=>!0;try{return await e()}finally{process.stderr.write=t}}function Yl(e){return e==="git"||e==="gh"||e==="vitest"||e==="cargo"}async function zl(e){let t=e[0];if(!t)return 2;let{spawn:n}=await import("node:child_process"),r=n(t,e.slice(1),{stdio:"inherit"});return await new Promise(i=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
78
- `),i(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),i(128);return}i(s??0)})})}function Ql(e){let t={level:"lossless",positional:[]},n=[];for(let r=0;r<e.length;r++){let i=e[r];i==="--store-uri"?t.storeUri=e[++r]:i==="--brief"?t.level="brief":i==="--terse"?t.level="terse":i==="--query"?t.query=e[++r]:i.startsWith("--query=")?t.query=i.slice(8):n.push(i)}return t.query&&n[0]!=="show"&&!n.some(r=>r==="--query"||r.startsWith("--query="))&&n.push("--query",t.query),t.command=n[0],t.handle=n[1],t.positional=n,t}function lr(e,t){let n=ue(e,"--since")??e.find(s=>s.startsWith("--since="))?.slice(8);if(!n)return t;let r=/^(\d+)(d)?$/.exec(n);if(!r)return t;let i=Number(r[1]);return Number.isFinite(i)&&i>0?i:t}function Xl(e){return e.includes("--full")}function Zl(e,t=Do(30),n=!1){let r=t.savings.top_commands.slice(0,n?10:3),i=n?t.savings.daily_tokens_saved:t.savings.daily_tokens_saved.slice(-7);return[`records: ${e.records}`,`bytes: ${e.bytes}`,`oldest: ${e.oldest??"none"}`,`budget: ${e.budget}`,"savings:",` window_days: ${t.window_days}`,` empty: ${t.empty}`,` invocations: ${t.savings.invocations}`,` elided: ${t.savings.elided}`,` raw_bytes: ${t.savings.raw_bytes}`,` emitted_bytes: ${t.savings.emitted_bytes}`,` bytes_saved: ${t.savings.bytes_saved}`,` tokens_saved: ${t.savings.tokens_saved}`," daily_tokens_saved:",...tf(i),...!n&&t.savings.daily_tokens_saved.length>i.length?[` elided_days: ${t.savings.daily_tokens_saved.length-i.length}`," hint: --full"]:[]," top_commands:",...nf(r),"health:",` degradations: ${t.health.degradations}`,` degradation_rate: ${sf(t.health.degradation_rate)}`,` most_recent_degradation_at: ${t.health.most_recent?.timestamp??"none"}`,` most_recent_degradation_reason: ${t.health.most_recent?.reason??"none"}`," degradations_by_reason:",...rf(t.health.by_reason),"latency:",` wrapper_ms_p50: ${fr(t.latency.wrapper_ms_p50)}`,` wrapper_ms_p95: ${fr(t.latency.wrapper_ms_p95)}`,` store_open_count_sum: ${t.latency.store_open_count_sum}`,` store_elapsed_ms_sum: ${t.latency.store_elapsed_ms_sum}`,` store_elapsed_ms_avg: ${fr(t.latency.store_elapsed_ms_avg)}`,""].join(`
79
- `)}function ef(e){return`${O(e)}
80
- `}function tf(e){return e.length===0?[" empty: true"]:e.map(t=>` ${t.date}: ${t.tokens_saved}`)}function nf(e){return e.length===0?[" empty: true"]:e.map(t=>` - command: ${t.command} invocations: ${t.invocations} bytes_saved: ${t.bytes_saved} tokens_saved: ${t.tokens_saved}`)}function rf(e){return e.length===0?[" empty: true"]:e.map(t=>` ${t.reason}: ${t.count}`)}function fr(e){return e==null?"none":String(e)}function sf(e){return e.toFixed(4).replace(/0+$/,"").replace(/\.$/,".0")}function Do(e){return{window_days:e,empty:!0,savings:{invocations:0,elided:0,raw_bytes:0,emitted_bytes:0,bytes_saved:0,tokens_saved:0,daily_tokens_saved:[],top_commands:[]},health:{degradations:0,degradation_rate:0,by_reason:[],most_recent:null},latency:{wrapper_ms_p50:null,wrapper_ms_p95:null,store_open_count_sum:0,store_elapsed_ms_sum:0,store_elapsed_ms_avg:null}}}function of(e){return[`config: ${e.configChanged?"updated":"unchanged"}`,`store: ${e.storeCreated?"created":"existing"}`,""].join(`
81
- `)}import.meta.url===`file://${process.argv[1]}`&&Fl().then(e=>process.exit(e),e=>{process.stdout.write(`error: ${e instanceof Error?e.message:String(e)}
82
- `),process.exit(1)});export{Fl as main,of as renderSetupResult,Zl as renderStats};
74
+ `):n.stdout;return{stdout:r,stderr:n.stderr,status:0,signal:n.signal,rawOutput:r}}function Fl(e){try{return!mr(`${e}/.git`)||mr(`${e}/.git/index`)?!1:Cl(e).every(t=>t===".git")}catch{return!1}}function Gl(e){return typeof e=="object"&&e!==null&&"telemetryStats"in e&&typeof e.telemetryStats=="function"}function Vl(e){return typeof e=="object"&&e!==null&&"telemetryGains"in e&&typeof e.telemetryGains=="function"}var lt=class{constructor(t){this.openStore=t}store;metrics;async mint(...t){let n=await this.open(),r=await n.mint(...t);return this.metrics=n.lastResponseMetrics?.(),r}async close(){if(!this.store)return;let t;try{t=await this.store}catch{return}await t.close()}open(){return this.store??=this.openStore(),this.store}lastResponseMetrics(){return this.metrics}};async function dt(e,t,n,r){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let i=Number(process.hrtime.bigint()-n)/1e6;return r?await Jl(e,t,i,r.lastResponseMetrics()):Hl(e,t,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}async function Jl(e,t,n,r){let i=Buffer.concat([t.stdout,t.stderr]),s=Buffer.concat([t.rawOutput??t.stdout,t.stderr]),{appendTelemetryEvent:o,RSP_TELEMETRY_INVOCATIONS_COLLECTION:a}=await Promise.resolve().then(()=>(Gt(),Zn));await o(process.cwd(),{collection:a,ts:new Date().toISOString(),command:e.positional.join(" "),wrapper:e.command,loss:e.level,elided:!!(t.mintedHandle||t.bytesElided),raw_bytes:s.length,emitted_bytes:i.length,raw_text:s.toString("utf8"),emitted_text:i.toString("utf8"),wrapper_ms:n,store_open_count:r?.storeOpenCount,store_elapsed_ms:r?.storeElapsedMs})}function Hl(e,t,n){try{let r=Buffer.concat([t.stdout,t.stderr]),i=Buffer.concat([t.rawOutput??t.stdout,t.stderr]),s=Ml(process.cwd(),".red","tmp","rsp-telemetry.spool.jsonl"),o=`${JSON.stringify({collection:"rsp_telemetry_invocations_v1",ts:new Date().toISOString(),command:e.positional.join(" "),wrapper:e.command,loss:e.level,elided:!!(t.mintedHandle||t.bytesElided),raw_bytes:i.length,emitted_bytes:r.length,wrapper_ms:n})}
75
+ `;try{vo(s,o,{encoding:"utf8",mode:384})}catch(a){if(a.code!=="ENOENT")return;Ll(jl(s),{recursive:!0}),vo(s,o,{encoding:"utf8",mode:384})}}catch{}}async function He(e,t,n,r){if(process.env.RSP_DEBUG==="1")throw n instanceof Error?n:new Error(e);process.stderr.write(`rsp: ${e}, passing through
76
+ `);let i=await Wl(t);if(r){let{appendTelemetryEvent:s,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:o}=await Promise.resolve().then(()=>(Gt(),Zn));await s(r,{collection:o,ts:new Date().toISOString(),command:t.join(" "),reason:e})}return i}function dr(){return"rsp is not enabled in this directory; run /red-setup"}async function Q(e){let t=process.stderr.write;process.stderr.write=()=>!0;try{return await e()}finally{process.stderr.write=t}}function Kl(e){return e==="git"||e==="gh"||e==="vitest"||e==="cargo"}async function Wl(e){let t=e[0];if(!t)return 2;let{spawn:n}=await import("node:child_process"),r=n(t,e.slice(1),{stdio:"inherit"});return await new Promise(i=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
77
+ `),i(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),i(128);return}i(s??0)})})}function Yl(e){let t={level:"lossless",positional:[]},n=[];for(let r=0;r<e.length;r++){let i=e[r];i==="--store-uri"?t.storeUri=e[++r]:i==="--brief"?t.level="brief":i==="--terse"?t.level="terse":i==="--query"?t.query=e[++r]:i.startsWith("--query=")?t.query=i.slice(8):n.push(i)}return t.query&&n[0]!=="show"&&!n.some(r=>r==="--query"||r.startsWith("--query="))&&n.push("--query",t.query),t.command=n[0],t.handle=n[1],t.positional=n,t}function lr(e,t){let n=ue(e,"--since")??e.find(s=>s.startsWith("--since="))?.slice(8);if(!n)return t;let r=/^(\d+)(d)?$/.exec(n);if(!r)return t;let i=Number(r[1]);return Number.isFinite(i)&&i>0?i:t}function zl(e){return e.includes("--full")}function Ql(e,t=Do(30),n=!1){let r=t.savings.top_commands.slice(0,n?10:3),i=n?t.savings.daily_tokens_saved:t.savings.daily_tokens_saved.slice(-7);return[`records: ${e.records}`,`bytes: ${e.bytes}`,`oldest: ${e.oldest??"none"}`,`budget: ${e.budget}`,"savings:",` window_days: ${t.window_days}`,` empty: ${t.empty}`,` invocations: ${t.savings.invocations}`,` elided: ${t.savings.elided}`,` raw_bytes: ${t.savings.raw_bytes}`,` emitted_bytes: ${t.savings.emitted_bytes}`,` bytes_saved: ${t.savings.bytes_saved}`,` tokens_saved: ${t.savings.tokens_saved}`," daily_tokens_saved:",...Zl(i),...!n&&t.savings.daily_tokens_saved.length>i.length?[` elided_days: ${t.savings.daily_tokens_saved.length-i.length}`," hint: --full"]:[]," top_commands:",...ef(r),"health:",` degradations: ${t.health.degradations}`,` degradation_rate: ${nf(t.health.degradation_rate)}`,` most_recent_degradation_at: ${t.health.most_recent?.timestamp??"none"}`,` most_recent_degradation_reason: ${t.health.most_recent?.reason??"none"}`," degradations_by_reason:",...tf(t.health.by_reason),"latency:",` wrapper_ms_p50: ${fr(t.latency.wrapper_ms_p50)}`,` wrapper_ms_p95: ${fr(t.latency.wrapper_ms_p95)}`,` store_open_count_sum: ${t.latency.store_open_count_sum}`,` store_elapsed_ms_sum: ${t.latency.store_elapsed_ms_sum}`,` store_elapsed_ms_avg: ${fr(t.latency.store_elapsed_ms_avg)}`,""].join(`
78
+ `)}function Xl(e){return`${O(e)}
79
+ `}function Zl(e){return e.length===0?[" empty: true"]:e.map(t=>` ${t.date}: ${t.tokens_saved}`)}function ef(e){return e.length===0?[" empty: true"]:e.map(t=>` - command: ${t.command} invocations: ${t.invocations} bytes_saved: ${t.bytes_saved} tokens_saved: ${t.tokens_saved}`)}function tf(e){return e.length===0?[" empty: true"]:e.map(t=>` ${t.reason}: ${t.count}`)}function fr(e){return e==null?"none":String(e)}function nf(e){return e.toFixed(4).replace(/0+$/,"").replace(/\.$/,".0")}function Do(e){return{window_days:e,empty:!0,savings:{invocations:0,elided:0,raw_bytes:0,emitted_bytes:0,bytes_saved:0,tokens_saved:0,daily_tokens_saved:[],top_commands:[]},health:{degradations:0,degradation_rate:0,by_reason:[],most_recent:null},latency:{wrapper_ms_p50:null,wrapper_ms_p95:null,store_open_count_sum:0,store_elapsed_ms_sum:0,store_elapsed_ms_avg:null}}}function rf(e){return[`config: ${e.configChanged?"updated":"unchanged"}`,`store: ${e.storeCreated?"created":"existing"}`,""].join(`
80
+ `)}import.meta.url===`file://${process.argv[1]}`&&Ul().then(e=>process.exit(e),e=>{process.stdout.write(`error: ${e instanceof Error?e.message:String(e)}
81
+ `),process.exit(1)});export{Ul as main,rf as renderSetupResult,Ql as renderStats};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reddb-io/red-skills",
3
- "version": "2.41.1",
3
+ "version": "2.43.0",
4
4
  "description": "RedSkills plugin runtime bundles (dev, code-nav, memory, brain) distributed over npm — the v2 client transport (ADR 0091). Carries the platform-independent JS bundles inside the tarball plus thin bin shims; no postinstall download.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",