@reddb-io/red-skills 3.5.1 → 3.6.1

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.
@@ -1,91 +1,74 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
3
- var zE=Object.create;var ya=Object.defineProperty;var YE=Object.getOwnPropertyDescriptor;var QE=Object.getOwnPropertyNames;var XE=Object.getPrototypeOf,ZE=Object.prototype.hasOwnProperty;var h=(e,t)=>()=>(e&&(t=e(e=0)),t);var Qd=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),K=(e,t)=>{for(var r in t)ya(e,r,{get:t[r],enumerable:!0})},eR=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of QE(t))!ZE.call(e,s)&&s!==r&&ya(e,s,{get:()=>t[s],enumerable:!(n=YE(t,s))||n.enumerable});return e};var ba=(e,t,r)=>(r=e!=null?zE(XE(e)):{},eR(t||!e||!e.__esModule?ya(r,"default",{value:e,enumerable:!0}):r,e));function rR(e,t){return typeof t=="string"?{separator:e,to:t,typed:!1,prefix:!1}:{separator:e,to:t.to,typed:t.typed??!1,prefix:t.prefix??!1}}function nR(e=Xd){return Object.entries(e).map(([t,r])=>rR(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function sR(e){return/^-\d+(\.\d+)?$/.test(e)}function Mr(e){return!(!e||e.startsWith("-")&&!sR(e))}function Zs(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e}function Zd(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(e.startsWith("[")&&e.endsWith("]")||e.startsWith("{")&&e.endsWith("}"))try{return JSON.parse(e)}catch{}let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e.includes(",")?e.split(",").map(r=>Zd(r.trim())):e}function lr(e,t){switch(t){case"boolean":return oR(e);case"number":return iR(e);case"array":return e.split(",").map(r=>Zs(r.trim()));case"string":default:return e}}function oR(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function iR(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let t=Number(e);if(Number.isNaN(t))throw new TypeError(`Cannot convert "${e}" to number`);return t}function jt(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function aR(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function q(e,t){return{type:e,value:t}}function cR(e){let t=[],r=lR(e);if(t.push(q("section-header","Usage:"),q("text"," "),q("usage-text",r),q("newline",`
4
- `),q("newline",`
5
- `)),e.positional&&e.positional.length>0){t.push(q("section-header","Arguments:"),q("newline",`
6
- `));for(let n of e.positional)if(n.description){let s=n.variadic?`${n.name}...`:n.name;t.push(q("indent"," "),q("positional-name",`<${s}>`)),n.required||t.push(q("positional-optional"," (optional)")),t.push(q("newline",`
7
- `),q("indent"," "),q("option-description",n.description),q("newline",`
8
- `))}t.push(q("newline",`
9
- `))}if(e.options&&Object.keys(e.options).length>0){t.push(q("section-header","Options:"),q("newline",`
10
- `));let n=dR(e.options);t.push(...n)}return t}function uR(e,t){let r=cR(e);return aR(r,t)}function lR(e){let t=["[options]"];if(e.positional)for(let r of e.positional)r.variadic?t.push(r.required?`<${r.name}...>`:`[${r.name}...]`):t.push(r.required?`<${r.name}>`:`[${r.name}]`);return t.join(" ")}function dR(e,t=!1){let r=[],n=[],s=t?"global-option-flag":"option-flag",o=t?"global-option-type":"option-type",i=t?"global-option-default":"option-default",a=t?"global-option-description":"option-description";for(let[u,l]of Object.entries(e)){if(l.hidden)continue;let p=[],d=k=>{p.includes(k)||p.push(k)};l.short&&d(`-${l.short}`),d(`--${u}`);for(let k of l.aliases??[])k.length===1?d(`-${k}`):d(`--${k}`);let g=p.join(", "),f=l.type&&l.type!=="boolean"?`<${l.type}>`:void 0;n.push({flags:g,type:f,desc:l.description??"",default:l.default!==void 0?String(l.default):void 0})}let c=Math.max(...n.map(u=>u.flags.length+(u.type?u.type.length+1:0)),20);for(let u of n){let l=u.flags.length+(u.type?u.type.length+1:0),p=" ".repeat(c-l+2);r.push(q("indent"," ")),r.push(q(s,u.flags)),u.type&&(r.push(q("text"," ")),r.push(q(o,u.type))),r.push(q("text",p)),r.push(q(a,u.desc)),u.default!==void 0&&(r.push(q("text"," ")),r.push(q(i,`(default: ${u.default})`))),r.push(q("newline",`
11
- `))}return r}function ep(e){let t=bR(e.options??{},e.autoShort??!1),r=nR(e.separators??Xd);return{schema:e,parse(n){return pR(n,e,t,r)},help(){return uR(e,e.formatter)}}}function pR(e,t,r,n){let s={positional:{},options:{},errors:[],rest:[]},o=new Set(n.map(l=>l.to));for(let l of o)s[l]={};let i=0,a=t.positional??[],c=0,u=!1;for(;c<e.length;){let l=e[c];if(t.stopEarly&&i>0){s.rest=e.slice(c);break}if(l==="--"&&!u){u=!0,c++;continue}if(u){if(i<a.length){let d=a[i];if(d.variadic){let g=[];for(;c<e.length;){let f=e[c];g.push(d.type?lr(f,d.type):f),c++}s.positional[d.name]=g,i++}else{let g=d.type?lr(l,d.type):l;s.positional[d.name]=g,i++,c++}}else t.allowUnknown!==!1&&(s.rest=s.rest??[],s.rest.push(l)),c++;continue}if(l.startsWith("--")){c=hR(l,c,e,s,r,t);continue}if(l.startsWith("-")&&l.length>1&&!kR(l)){c=yR(l,c,e,s,r,t);continue}let p=mR(l,n);if(p){let{key:d,value:g,config:f}=p,k=s,E=k[f.to]??(k[f.to]={});E[d]=f.typed?Zd(g):jt(g),c++;continue}if(i<a.length){let d=a[i];if(d.variadic){let f=[];for(;c<e.length&&!e[c].startsWith("-");){let k=e[c];f.push(d.type?lr(k,d.type):k),c++}s.positional[d.name]=f,i++;continue}let g=d.type?lr(l,d.type):l;s.positional[d.name]=g,i++}else t.allowUnknown!==!1?s.rest.push(l):s.errors.push(`Unexpected positional argument: ${l}`);c++}return _R(s,t,r),ER(s,t,a),RR(s,t,r),s}function mR(e,t){if(tR.test(e))return null;for(let r of t){if(r.prefix&&e.startsWith(r.separator)){let s=e.slice(r.separator.length),o=s.indexOf(":");if(o>0){let i=s.slice(0,o),a=s.slice(o+1);if(fR(i))return{key:i,value:a,config:r}}continue}let n=e.indexOf(r.separator);if(n>0){let s=e.slice(0,n),o=e.slice(n+r.separator.length);if(gR(s,o,r))return{key:s,value:o,config:r}}}return null}function fR(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function gR(e,t,r){return e?r.separator===":"?e.includes("/")||e.includes(".")||/^\d+$/.test(t)?!1:/^[A-Z][a-zA-Z0-9-]*$/.test(e):!((r.separator==="="||r.separator===":=")&&e.includes("/")):!1}function hR(e,t,r,n,s,o){let i=e.slice(2);if(i.startsWith("no-")){let c=i.slice(3),u=s.get(c);if(u?.negatable!==!1&&u?.type==="boolean")return n.options[u.name]=!1,t+1}if(i.includes("=")){let c=i.indexOf("="),u=i.slice(0,c),l=i.slice(c+1);return eo(u,l,t+1,n,s,o)}let a=s.get(i);if(a){if(a.type!=="boolean"){let c=r[t+1];return Mr(c)?eo(a.name,c,t+2,n,s,o):(n.errors.push(`Option --${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}return o.strict?n.errors.push(`Unknown option: --${i}`):o.allowUnknown!==!1&&(n.options[i]=!0),t+1}function yR(e,t,r,n,s,o){let i=e.slice(1);if(i.includes("=")){let a=i.indexOf("="),c=i.slice(0,a),u=i.slice(a+1),l=wa(c,s);return l?eo(l.name,u,t+1,n,s,o):(o.strict?n.errors.push(`Unknown option: -${c}`):o.allowUnknown!==!1&&(n.options[c]=Zs(jt(u))),t+1)}if(i.length===1){let a=wa(i,s);if(a){if(a.type!=="boolean"){let c=r[t+1];return Mr(c)?eo(a.name,c,t+2,n,s,o):(n.errors.push(`Option -${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}if(o.strict)n.errors.push(`Unknown option: -${i}`);else if(o.allowUnknown!==!1){let c=r[t+1];if(Mr(c))return n.options[i]=Zs(jt(c)),t+2;n.options[i]=!0}return t+1}for(let a of i){let c=wa(a,s);c?c.type==="boolean"?n.options[c.name]=!0:n.errors.push(`Option -${a} requires a value`):o.strict?n.errors.push(`Unknown option: -${a}`):o.allowUnknown!==!1&&(n.options[a]=!0)}return t+1}function eo(e,t,r,n,s,o){let i=s.get(e);if(i){if(i.choices){let c=i.type?lr(jt(t),i.type):jt(t);if(!i.choices.includes(c))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?lr(jt(t),i.type):jt(t);if(i.type==="array"){let c=n.options[e];Array.isArray(c)?c.push(...a):n.options[e]=a}else n.options[e]=a}else o.strict?n.errors.push(`Unknown option: --${e}`):o.allowUnknown!==!1&&(n.options[e]=Zs(jt(t)));return r}function bR(e,t=!1){let r=new Map,n=Object.entries(e).sort(([o],[i])=>o.localeCompare(i)),s=new Set;for(let[,o]of n)o.short&&s.add(o.short);for(let[o,i]of n){let a=i.short??"";t&&!a&&(a=wR(o,s),a&&s.add(a));let c={name:o,short:a,aliases:i.aliases??[],type:i.type??"string",description:i.description??"",required:i.required??!1,hidden:i.hidden??!1,negatable:i.negatable??!0,default:i.default,choices:i.choices,env:i.env,validate:i.validate};r.set(o,c);for(let u of c.aliases)r.set(u,c)}return r}function wR(e,t){for(let r of e){if(!/[a-zA-Z]/.test(r))continue;let n=r.toLowerCase();if(!t.has(n))return n;let s=r.toUpperCase();if(!t.has(s))return s}return""}function wa(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function _R(e,t,r){for(let n of r.values())if(e.options[n.name]===void 0)if(n.env&&process.env[n.env]!==void 0){let s=process.env[n.env];e.options[n.name]=n.type?lr(s,n.type):s}else n.default!==void 0&&(e.options[n.name]=n.default);for(let n of t.positional??[])e.positional[n.name]===void 0&&n.default!==void 0&&(e.positional[n.name]=n.default)}function ER(e,t,r){if(t.options)for(let[n,s]of Object.entries(t.options))s.required&&e.options[n]===void 0&&e.errors.push(`Missing required option: --${n}`);for(let n of r)n.required&&e.positional[n.name]===void 0&&e.errors.push(`Missing required argument: <${n.name}>`)}function RR(e,t,r){for(let n of r.values()){let s=e.options[n.name];if(n.validate&&s!==void 0){let o=n.validate(s);o!==!0&&e.errors.push(o)}}for(let n of t.positional??[]){let s=e.positional[n.name];if(n.validate&&s!==void 0){let o=n.validate(s);o!==!0&&e.errors.push(o)}}}function kR(e){return/^-\d+(\.\d+)?$/.test(e)}var Xd,tR,tp=h(()=>{Xd={"=":"data",":=":{to:"data",typed:!0},":":"meta"},tR=/^[a-z][a-z0-9+.-]*:\/\//i});function SR(e){let t={};for(let[r,n]of Object.entries(e))t[r]={type:n.kind==="boolean"?"boolean":"string",...r.length===1?{short:r}:{},...n.aliases===void 0?{}:{aliases:n.aliases}};return t}function TR(e,t){let r=new Map;for(let[s,o]of Object.entries(t))if(!(o.kind!=="value"||o.type!=="array")){r.set(s,s);for(let i of o.aliases??[])r.set(i,s)}let n=new Map;for(let s=0;s<e.length;s+=1){let o=e[s];if(o==="--")break;let i=o.match(/^--([^=]+)(?:=(.*))?$/)??o.match(/^-([^=])(?:=(.*))?$/);if(i===null)continue;let a=r.get(i[1]);if(a===void 0)continue;let c=i[2];if(c===void 0&&Mr(e[s+1])&&(c=e[s+1],s+=1),c===void 0)continue;let u=n.get(a)??[];u.push(c),n.set(a,u)}return n}function Gn(e,t,r={}){let s=ep({options:SR(t),separators:{},allowUnknown:!0}).parse([...e]),o={},i=TR(e,t),a=s.errors.find(c=>/^Option --?\S+ requires a value$/.test(c));if(a!==void 0)throw new Error(a.replace(/^Option /,""));if(s.errors.length>0)throw new Error(s.errors[0]);if(r.unknownFlags==="error"){let c=new Set(Object.keys(t));for(let u of Object.keys(s.options))if(!c.has(u))throw new _a(u.length===1?`-${u}`:`--${u}`,Object.keys(t).map(l=>l.length===1?`-${l}`:`--${l}`))}for(let[c,u]of Object.entries(t)){let l=s.options[c];l!==void 0&&(u.kind==="boolean"?o[c]=l:u.type==="array"?o[c]=(i.get(c)??[]).map(p=>u.coerce(p)):o[c]=u.coerce(String(l)))}return{values:o,positionals:s.rest}}function CR(e){let t=new Map;for(let[r,n]of Object.entries(e)){t.set(r,r);for(let s of n.aliases??[])t.set(s,r)}return t}function dr(e,t,r={}){let n=CR(t),s=r.stopAtSeparator??!0,o={},i=[];for(let a=0;a<e.length;a+=1){let c=e[a];if(c==="--"&&s){i.push(...e.slice(a));break}let u=vR.exec(c)??xR.exec(c),l=u===null?void 0:n.get(u[1]),p=l===void 0?void 0:t[l];if(l===void 0||p===void 0){i.push(c);continue}if(p.kind==="boolean"){o[l]=!0;continue}let d=u[2];if(d===void 0&&Mr(e[a+1])&&(d=e[a+1],a+=1),d===void 0)throw new Error(`${c} requires a value`);if(p.type==="array"){let g=o[l]??[];g.push(p.coerce(d)),o[l]=g}else o[l]=p.coerce(d)}return{values:o,rest:i}}function Ea(e,t){let[r,...n]=e;if(r!==void 0){for(let[o,i]of Object.entries(t.commands))if(r===o||(i.aliases??[]).includes(r))return{command:o,args:n};if(t.errorOnUnknownCommand&&!r.startsWith("-"))throw new Dn(r,Object.keys(t.commands))}let s=t.keepArgvOnDefault??!0;return{command:t.default,args:s?[...e]:n}}var _a,vR,xR,Dn,Ra=h(()=>{tp();_a=class extends Error{flag;known;constructor(t,r){super(`unknown flag '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownFlagError",this.flag=t,this.known=r}};vR=/^--([^=]+)(?:=([\s\S]*))?$/,xR=/^-([^-=])(?:=([\s\S]*))?$/;Dn=class extends Error{token;known;constructor(t,r){super(`unknown command '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownCommandError",this.token=t,this.known=r}}});function np(e){return OR.test(e)}var OR,rp,sp=h(()=>{OR=/rate limit exceeded|secondary rate limit|abuse detection mechanism|API rate limit|API rate limited|RATE_LIMITED|too many requests|\b429\b/i,rp="wait for the GitHub rate limit window to reset, then retry: gh api rate_limit"});var op=h(()=>{});function x(e,t){return new Br(e,t)}function j(e,t){return new pr(e,t)}function jr(e){return e instanceof pr?e:e instanceof Br?new pr(e.line,e.reason):new pr(0,String(e&&e.message?e.message:e))}var Br,pr,kt=h(()=>{Br=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},pr=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}}});var ip,mr,ap,Ur=h(()=>{ip=["type","kind","event"],mr="|",ap=new Set(["order","discriminator","rows","common"])});function to(e){let t=e.split(`
12
- `);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function it(e){return x(e,"invalid quoted string")}function Ge(e,t){if(e==="")return"";if(e.startsWith('"'))return lp(e,t);if(e.includes('"'))throw it(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:AR(e)?Number(e):e}function qe(e,t){let r=e.trim();if(r.startsWith('"'))return[lp(r,t),!0];if(r.includes('"')||/\s/.test(r))throw x(t,"expected non-empty field name");return[r,!1]}function lp(e,t){if(e.charCodeAt(0)!==34)throw it(t);let r="",n=1;for(;n<e.length;){cp.lastIndex=n;let s=cp.exec(e);if(s===null)break;if(s[0]==='"'){if(e.slice(s.index+1).trim()==="")return r+e.slice(n,s.index);throw it(t)}if(s[0]!=="\\")throw it(t);r+=e.slice(n,s.index);let o=e[s.index+1];switch(n=s.index+2,o){case'"':r+='"';break;case"\\":r+="\\";break;case"n":r+=`
13
- `;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw it(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw it(t);r+=String.fromCharCode(a),n+=4;break}default:throw it(t)}}throw it(t)}function dp(e,t,r){for(;;){let n=e.indexOf('"',t),s=e.indexOf("\\",t);if(s!==-1&&(n===-1||s<n)){if(s===e.length-1)throw it(r);t=s+2;continue}if(n===-1)throw it(r);return n+1}}function We(e,t,r){if(e==="")return[];let n=[],s=0,o=0;for(;o<e.length;){let i=e.indexOf('"',o),a=e.indexOf(t,o);if(a!==-1&&(i===-1||a<i))n.push(e.slice(s,a).trim()),s=a+1,o=a+1;else if(i!==-1)o=dp(e,i+1,r);else break}return n.push(e.slice(s).trim()),n}function _e(e,t,r){let n=0;for(;n<e.length;){let s=e.indexOf('"',n),o=e.indexOf(t,n);if(o!==-1&&(s===-1||o<s))return o;if(s===-1)return-1;n=dp(e,s+1,r)}return-1}function AR(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function PR(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function IR(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw x(0,"number is not representable in TOON");return String(e)}function at(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function Ee(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return IR(e);if(typeof e=="string")return DR(e,t);throw x(0,"not a primitive")}function LR(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ae(e){return LR(e)?e:ro(e)}function DR(e,t){return ka(e,t)?ro(e):e}function ka(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||PR(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}function ro(e){let t='"',r=0;up.lastIndex=0;let n;for(;(n=up.exec(e))!==null;){let s=e.charCodeAt(n.index),o;s===34?o='\\"':s===92?o="\\\\":s===10?o="\\n":s===13?o="\\r":s===9?o="\\t":o=`\\u${s.toString(16).padStart(4,"0")}`,t+=e.slice(r,n.index)+o,r=n.index+1}return`${t}${e.slice(r)}"`}function Je(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var Q,cp,up,fr=h(()=>{kt();Q=",";cp=/["\\\u0000-\u0008\u000a-\u001f]/g;up=/["\\\u0000-\u001f]/g});function X(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var $n=h(()=>{});function pp(e={}){let t=e.maxDepth??1e3,r=t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t));return{indent:Math.max(1,e.indent??2),strict:e.strict??!0,expandPaths:e.expandPaths==="safe"||e.expandPaths===!0,cyclicDiscriminatedArrays:e.cyclicDiscriminatedArrays!==!1,maxDepth:r}}function mp(e,t){let r=[],n=!1;return to(e).forEach((s,o)=>{let i=o+1;if(s.trim()===""){n=!0;return}let a=s.length-s.replace(/^ +/,"").length;if(s[a]===" ")throw x(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw x(i,"invalid indentation");let c=Math.floor(a/t.indent);ct(c,i,t),r.push({number:i,depth:c,content:s.slice(a),blankBefore:n}),n=!1}),r}function ct(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw x(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function Mn(e,t,r){if(r.maxDepth===0)return;let n=0,s=!1,o=!1;for(let i of e){if(o){o=!1;continue}if(s&&i==="\\"){o=!0;continue}if(i==='"'){s=!s;continue}s||(i==="{"?(n+=1,ct(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}var Sa=h(()=>{kt();fr();Ur()});function hp(e){if(!X(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let s=GR(n,1);if(s===void 0)return e;Je(t,r,s)}return t}function GR(e,t){if(!X(e)||!$R(e))return;let{order:r,discriminator:n,rows:s}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(s)||s<0)throw me(t);let o=NR(r,s,t),i=e.common,a=i===void 0?Array.from({length:s},()=>({})):i;if(!Array.isArray(a)||a.length!==s||!a.every(X))throw yp(t);let c=new Map;for(let[p,d]of Object.entries(e))if(!ap.has(p)){if(!Array.isArray(d)||!d.every(X))throw me(t);c.set(p,d)}if(c.size===0)throw me(t);let u=new Map,l=o.map((p,d)=>{let g=c.get(p);if(g===void 0)throw Ta(t);let f=u.get(p)??0,k=g[f];if(k===void 0)throw Ta(t);return u.set(p,f+1),FR(n,p,a[d],k,t)});for(let[p,d]of c)if((u.get(p)??0)!==d.length)throw Ta(t);return l}function $R(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function NR(e,t,r){if(!e.startsWith("cycle("))throw me(r);let n=e.slice(6),s=n.indexOf(")*");if(s===-1)throw me(r);let o=n.slice(0,s),i=n.slice(s+2);if(o===""||i.includes("+tail("))throw me(r);let a=o.split(",").map(l=>UR(l,r));if(a.some(l=>l===""))throw me(r);let c=jR(i,r),u=a.length*c;if(!Number.isSafeInteger(u))throw me(r);if(u!==t)throw yp(r);return Array.from({length:u},(l,p)=>a[p%a.length])}function FR(e,t,r,n,s){let o={};Je(o,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw me(s);Je(o,i,a)}for(let[i,a]of Object.entries(MR(n,s))){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw me(s);Je(o,i,a)}return o}function MR(e,t){let r={};for(let[n,s]of Object.entries(e))BR(r,n.split("."),s,t);return no(r,t)}function BR(e,t,r,n){if(t.some(o=>o===""))throw me(n);let s=e;for(let o=0;o<t.length;o+=1){let i=t[o];if(o===t.length-1){s[i]=r;return}if(s[i]??={},s=s[i],!X(s))throw me(n)}}function no(e,t){return Array.isArray(e)?e.map(r=>no(r,t)):X(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw me(t);return no(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,no(n,t)])):e}function jR(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw me(t);let r=Number(e);if(!Number.isSafeInteger(r))throw me(t);return r}function UR(e,t){try{return decodeURIComponent(e)}catch{throw me(t)}}function fp(e){return encodeURIComponent(e)}function me(e){return x(e,"invalid cyclic array wire")}function yp(e){return x(e,"cyclic array length mismatch")}function Ta(e){return x(e,"cyclic array group length mismatch")}function bp(e){if(!X(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[s,o]of t){let i=HR(o);if(i===void 0)return;r.push([s,i])}let n=[];for(let[s,o]of r)VR(n,s,o);return n.join("")}function HR(e){if(!Array.isArray(e)||e.length===0||!e.every(X))return;let t=qR(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=WR(r);if(n===void 0)return;let s=JR(e,t),o=new Map;for(let a of e){let c=a[t];o.has(c)||o.set(c,[]);let u={};for(let[l,p]of Object.entries(a))if(l!==t&&!s.includes(l)&&!va(p,l,u))return;o.get(c).push(u)}let i=[];for(let a of n.cycle){let c=o.get(a),u=zR(c);if(u===void 0||u.length===0)return;i.push({fields:u,label:a,rows:c})}return{common:s,commonRows:e.map(a=>Object.fromEntries(s.map(c=>[c,a[c]]))),discriminator:t,groups:i,order:n,rows:e}}function qR(e){return ip.find(t=>e.every(r=>typeof r[t]=="string"))}function WR(e){if(!(e.length<12))for(let t=2;t<=Math.min(8,Math.floor(e.length/3));t+=1){if(e.length%t!==0)continue;let r=e.slice(0,t);if(new Set(r).size<2||!e.every((i,a)=>i===r[a%t]))continue;let n=e.length/t;if(n<3)continue;let s=e.map(fp).join(","),o=`cycle(${r.map(fp).join(",")})*${n}`;if(o.length<=s.length*.4)return{cycle:r,encoded:o,repeats:n}}}function JR(e,t){let r=[],n=Object.keys(e[0]),s=n.indexOf(t)+1;for(let o of n.slice(s).filter(i=>i!==t)){if(!KR(o)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,o))||!e.every(i=>at(i[o])))break;r.push(o)}return r}function VR(e,t,r){e.push(ae(t),`:
3
+ var mR=Object.create;var ka=Object.defineProperty;var fR=Object.getOwnPropertyDescriptor;var gR=Object.getOwnPropertyNames;var hR=Object.getPrototypeOf,yR=Object.prototype.hasOwnProperty;var h=(e,t)=>()=>(e&&(t=e(e=0)),t);var cp=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),K=(e,t)=>{for(var r in t)ka(e,r,{get:t[r],enumerable:!0})},bR=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of gR(t))!yR.call(e,s)&&s!==r&&ka(e,s,{get:()=>t[s],enumerable:!(n=fR(t,s))||n.enumerable});return e};var Sa=(e,t,r)=>(r=e!=null?mR(hR(e)):{},bR(t||!e||!e.__esModule?ka(r,"default",{value:e,enumerable:!0}):r,e));function _R(e,t){return typeof t=="string"?{separator:e,to:t,typed:!1,prefix:!1}:{separator:e,to:t.to,typed:t.typed??!1,prefix:t.prefix??!1}}function ER(e=up){return Object.entries(e).map(([t,r])=>_R(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function RR(e){return/^-\d+(\.\d+)?$/.test(e)}function Mr(e){return!(!e||e.startsWith("-")&&!RR(e))}function to(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e}function lp(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(e.startsWith("[")&&e.endsWith("]")||e.startsWith("{")&&e.endsWith("}"))try{return JSON.parse(e)}catch{}let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e.includes(",")?e.split(",").map(r=>lp(r.trim())):e}function lr(e,t){switch(t){case"boolean":return kR(e);case"number":return SR(e);case"array":return e.split(",").map(r=>to(r.trim()));case"string":default:return e}}function kR(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function SR(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let t=Number(e);if(Number.isNaN(t))throw new TypeError(`Cannot convert "${e}" to number`);return t}function Ut(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function TR(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function W(e,t){return{type:e,value:t}}function vR(e){let t=[],r=CR(e);if(t.push(W("section-header","Usage:"),W("text"," "),W("usage-text",r),W("newline",`
4
+ `),W("newline",`
5
+ `)),e.positional&&e.positional.length>0){t.push(W("section-header","Arguments:"),W("newline",`
6
+ `));for(let n of e.positional)if(n.description){let s=n.variadic?`${n.name}...`:n.name;t.push(W("indent"," "),W("positional-name",`<${s}>`)),n.required||t.push(W("positional-optional"," (optional)")),t.push(W("newline",`
7
+ `),W("indent"," "),W("option-description",n.description),W("newline",`
8
+ `))}t.push(W("newline",`
9
+ `))}if(e.options&&Object.keys(e.options).length>0){t.push(W("section-header","Options:"),W("newline",`
10
+ `));let n=OR(e.options);t.push(...n)}return t}function xR(e,t){let r=vR(e);return TR(r,t)}function CR(e){let t=["[options]"];if(e.positional)for(let r of e.positional)r.variadic?t.push(r.required?`<${r.name}...>`:`[${r.name}...]`):t.push(r.required?`<${r.name}>`:`[${r.name}]`);return t.join(" ")}function OR(e,t=!1){let r=[],n=[],s=t?"global-option-flag":"option-flag",o=t?"global-option-type":"option-type",i=t?"global-option-default":"option-default",a=t?"global-option-description":"option-description";for(let[u,l]of Object.entries(e)){if(l.hidden)continue;let d=[],p=k=>{d.includes(k)||d.push(k)};l.short&&p(`-${l.short}`),p(`--${u}`);for(let k of l.aliases??[])k.length===1?p(`-${k}`):p(`--${k}`);let g=d.join(", "),f=l.type&&l.type!=="boolean"?`<${l.type}>`:void 0;n.push({flags:g,type:f,desc:l.description??"",default:l.default!==void 0?String(l.default):void 0})}let c=Math.max(...n.map(u=>u.flags.length+(u.type?u.type.length+1:0)),20);for(let u of n){let l=u.flags.length+(u.type?u.type.length+1:0),d=" ".repeat(c-l+2);r.push(W("indent"," ")),r.push(W(s,u.flags)),u.type&&(r.push(W("text"," ")),r.push(W(o,u.type))),r.push(W("text",d)),r.push(W(a,u.desc)),u.default!==void 0&&(r.push(W("text"," ")),r.push(W(i,`(default: ${u.default})`))),r.push(W("newline",`
11
+ `))}return r}function dp(e){let t=$R(e.options??{},e.autoShort??!1),r=ER(e.separators??up);return{schema:e,parse(n){return AR(n,e,t,r)},help(){return xR(e,e.formatter)}}}function AR(e,t,r,n){let s={positional:{},options:{},errors:[],rest:[]},o=new Set(n.map(l=>l.to));for(let l of o)s[l]={};let i=0,a=t.positional??[],c=0,u=!1;for(;c<e.length;){let l=e[c];if(t.stopEarly&&i>0){s.rest=e.slice(c);break}if(l==="--"&&!u){u=!0,c++;continue}if(u){if(i<a.length){let p=a[i];if(p.variadic){let g=[];for(;c<e.length;){let f=e[c];g.push(p.type?lr(f,p.type):f),c++}s.positional[p.name]=g,i++}else{let g=p.type?lr(l,p.type):l;s.positional[p.name]=g,i++,c++}}else t.allowUnknown!==!1&&(s.rest=s.rest??[],s.rest.push(l)),c++;continue}if(l.startsWith("--")){c=GR(l,c,e,s,r,t);continue}if(l.startsWith("-")&&l.length>1&&!jR(l)){c=DR(l,c,e,s,r,t);continue}let d=PR(l,n);if(d){let{key:p,value:g,config:f}=d,k=s,E=k[f.to]??(k[f.to]={});E[p]=f.typed?lp(g):Ut(g),c++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;c<e.length&&!e[c].startsWith("-");){let k=e[c];f.push(p.type?lr(k,p.type):k),c++}s.positional[p.name]=f,i++;continue}let g=p.type?lr(l,p.type):l;s.positional[p.name]=g,i++}else t.allowUnknown!==!1?s.rest.push(l):s.errors.push(`Unexpected positional argument: ${l}`);c++}return FR(s,t,r),MR(s,t,a),BR(s,t,r),s}function PR(e,t){if(wR.test(e))return null;for(let r of t){if(r.prefix&&e.startsWith(r.separator)){let s=e.slice(r.separator.length),o=s.indexOf(":");if(o>0){let i=s.slice(0,o),a=s.slice(o+1);if(IR(i))return{key:i,value:a,config:r}}continue}let n=e.indexOf(r.separator);if(n>0){let s=e.slice(0,n),o=e.slice(n+r.separator.length);if(LR(s,o,r))return{key:s,value:o,config:r}}}return null}function IR(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function LR(e,t,r){return e?r.separator===":"?e.includes("/")||e.includes(".")||/^\d+$/.test(t)?!1:/^[A-Z][a-zA-Z0-9-]*$/.test(e):!((r.separator==="="||r.separator===":=")&&e.includes("/")):!1}function GR(e,t,r,n,s,o){let i=e.slice(2);if(i.startsWith("no-")){let c=i.slice(3),u=s.get(c);if(u?.negatable!==!1&&u?.type==="boolean")return n.options[u.name]=!1,t+1}if(i.includes("=")){let c=i.indexOf("="),u=i.slice(0,c),l=i.slice(c+1);return ro(u,l,t+1,n,s,o)}let a=s.get(i);if(a){if(a.type!=="boolean"){let c=r[t+1];return Mr(c)?ro(a.name,c,t+2,n,s,o):(n.errors.push(`Option --${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}return o.strict?n.errors.push(`Unknown option: --${i}`):o.allowUnknown!==!1&&(n.options[i]=!0),t+1}function DR(e,t,r,n,s,o){let i=e.slice(1);if(i.includes("=")){let a=i.indexOf("="),c=i.slice(0,a),u=i.slice(a+1),l=Ta(c,s);return l?ro(l.name,u,t+1,n,s,o):(o.strict?n.errors.push(`Unknown option: -${c}`):o.allowUnknown!==!1&&(n.options[c]=to(Ut(u))),t+1)}if(i.length===1){let a=Ta(i,s);if(a){if(a.type!=="boolean"){let c=r[t+1];return Mr(c)?ro(a.name,c,t+2,n,s,o):(n.errors.push(`Option -${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}if(o.strict)n.errors.push(`Unknown option: -${i}`);else if(o.allowUnknown!==!1){let c=r[t+1];if(Mr(c))return n.options[i]=to(Ut(c)),t+2;n.options[i]=!0}return t+1}for(let a of i){let c=Ta(a,s);c?c.type==="boolean"?n.options[c.name]=!0:n.errors.push(`Option -${a} requires a value`):o.strict?n.errors.push(`Unknown option: -${a}`):o.allowUnknown!==!1&&(n.options[a]=!0)}return t+1}function ro(e,t,r,n,s,o){let i=s.get(e);if(i){if(i.choices){let c=i.type?lr(Ut(t),i.type):Ut(t);if(!i.choices.includes(c))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?lr(Ut(t),i.type):Ut(t);if(i.type==="array"){let c=n.options[e];Array.isArray(c)?c.push(...a):n.options[e]=a}else n.options[e]=a}else o.strict?n.errors.push(`Unknown option: --${e}`):o.allowUnknown!==!1&&(n.options[e]=to(Ut(t)));return r}function $R(e,t=!1){let r=new Map,n=Object.entries(e).sort(([o],[i])=>o.localeCompare(i)),s=new Set;for(let[,o]of n)o.short&&s.add(o.short);for(let[o,i]of n){let a=i.short??"";t&&!a&&(a=NR(o,s),a&&s.add(a));let c={name:o,short:a,aliases:i.aliases??[],type:i.type??"string",description:i.description??"",required:i.required??!1,hidden:i.hidden??!1,negatable:i.negatable??!0,default:i.default,choices:i.choices,env:i.env,validate:i.validate};r.set(o,c);for(let u of c.aliases)r.set(u,c)}return r}function NR(e,t){for(let r of e){if(!/[a-zA-Z]/.test(r))continue;let n=r.toLowerCase();if(!t.has(n))return n;let s=r.toUpperCase();if(!t.has(s))return s}return""}function Ta(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function FR(e,t,r){for(let n of r.values())if(e.options[n.name]===void 0)if(n.env&&process.env[n.env]!==void 0){let s=process.env[n.env];e.options[n.name]=n.type?lr(s,n.type):s}else n.default!==void 0&&(e.options[n.name]=n.default);for(let n of t.positional??[])e.positional[n.name]===void 0&&n.default!==void 0&&(e.positional[n.name]=n.default)}function MR(e,t,r){if(t.options)for(let[n,s]of Object.entries(t.options))s.required&&e.options[n]===void 0&&e.errors.push(`Missing required option: --${n}`);for(let n of r)n.required&&e.positional[n.name]===void 0&&e.errors.push(`Missing required argument: <${n.name}>`)}function BR(e,t,r){for(let n of r.values()){let s=e.options[n.name];if(n.validate&&s!==void 0){let o=n.validate(s);o!==!0&&e.errors.push(o)}}for(let n of t.positional??[]){let s=e.positional[n.name];if(n.validate&&s!==void 0){let o=n.validate(s);o!==!0&&e.errors.push(o)}}}function jR(e){return/^-\d+(\.\d+)?$/.test(e)}var up,wR,pp=h(()=>{up={"=":"data",":=":{to:"data",typed:!0},":":"meta"},wR=/^[a-z][a-z0-9+.-]*:\/\//i});function UR(e){let t={};for(let[r,n]of Object.entries(e))t[r]={type:n.kind==="boolean"?"boolean":"string",...r.length===1?{short:r}:{},...n.aliases===void 0?{}:{aliases:n.aliases}};return t}function HR(e,t){let r=new Map;for(let[s,o]of Object.entries(t))if(!(o.kind!=="value"||o.type!=="array")){r.set(s,s);for(let i of o.aliases??[])r.set(i,s)}let n=new Map;for(let s=0;s<e.length;s+=1){let o=e[s];if(o==="--")break;let i=o.match(/^--([^=]+)(?:=(.*))?$/)??o.match(/^-([^=])(?:=(.*))?$/);if(i===null)continue;let a=r.get(i[1]);if(a===void 0)continue;let c=i[2];if(c===void 0&&Mr(e[s+1])&&(c=e[s+1],s+=1),c===void 0)continue;let u=n.get(a)??[];u.push(c),n.set(a,u)}return n}function Dn(e,t,r={}){let s=dp({options:UR(t),separators:{},allowUnknown:!0}).parse([...e]),o={},i=HR(e,t),a=s.errors.find(c=>/^Option --?\S+ requires a value$/.test(c));if(a!==void 0)throw new Error(a.replace(/^Option /,""));if(s.errors.length>0)throw new Error(s.errors[0]);if(r.unknownFlags==="error"){let c=new Set(Object.keys(t));for(let u of Object.keys(s.options))if(!c.has(u))throw new va(u.length===1?`-${u}`:`--${u}`,Object.keys(t).map(l=>l.length===1?`-${l}`:`--${l}`))}for(let[c,u]of Object.entries(t)){let l=s.options[c];l!==void 0&&(u.kind==="boolean"?o[c]=l:u.type==="array"?o[c]=(i.get(c)??[]).map(d=>u.coerce(d)):o[c]=u.coerce(String(l)))}return{values:o,positionals:s.rest}}function JR(e){let t=new Map;for(let[r,n]of Object.entries(e)){t.set(r,r);for(let s of n.aliases??[])t.set(s,r)}return t}function dr(e,t,r={}){let n=JR(t),s=r.stopAtSeparator??!0,o={},i=[];for(let a=0;a<e.length;a+=1){let c=e[a];if(c==="--"&&s){i.push(...e.slice(a));break}let u=qR.exec(c)??WR.exec(c),l=u===null?void 0:n.get(u[1]),d=l===void 0?void 0:t[l];if(l===void 0||d===void 0){i.push(c);continue}if(d.kind==="boolean"){o[l]=!0;continue}let p=u[2];if(p===void 0&&Mr(e[a+1])&&(p=e[a+1],a+=1),p===void 0)throw new Error(`${c} requires a value`);if(d.type==="array"){let g=o[l]??[];g.push(d.coerce(p)),o[l]=g}else o[l]=d.coerce(p)}return{values:o,rest:i}}function xa(e,t){let[r,...n]=e;if(r!==void 0){for(let[o,i]of Object.entries(t.commands))if(r===o||(i.aliases??[]).includes(r))return{command:o,args:n};if(t.errorOnUnknownCommand&&!r.startsWith("-"))throw new Gn(r,Object.keys(t.commands))}let s=t.keepArgvOnDefault??!0;return{command:t.default,args:s?[...e]:n}}var va,qR,WR,Gn,Ca=h(()=>{pp();va=class extends Error{flag;known;constructor(t,r){super(`unknown flag '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownFlagError",this.flag=t,this.known=r}};qR=/^--([^=]+)(?:=([\s\S]*))?$/,WR=/^-([^-=])(?:=([\s\S]*))?$/;Gn=class extends Error{token;known;constructor(t,r){super(`unknown command '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownCommandError",this.token=t,this.known=r}}});function fp(e){return VR.test(e)}var VR,mp,gp=h(()=>{VR=/rate limit exceeded|secondary rate limit|abuse detection mechanism|API rate limit|API rate limited|RATE_LIMITED|too many requests|\b429\b/i,mp="wait for the GitHub rate limit window to reset, then retry: gh api rate_limit"});var hp=h(()=>{});function v(e,t){return new Br(e,t)}function j(e,t){return new pr(e,t)}function jr(e){return e instanceof pr?e:e instanceof Br?new pr(e.line,e.reason):new pr(0,String(e&&e.message?e.message:e))}var Br,pr,Rt=h(()=>{Br=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},pr=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}}});var yp,mr,bp,Ur=h(()=>{yp=["type","kind","event"],mr="|",bp=new Set(["order","discriminator","rows","common"])});function no(e){let t=e.split(`
12
+ `);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function st(e){return v(e,"invalid quoted string")}function Fe(e,t){if(e==="")return"";if(e.startsWith('"'))return Ep(e,t);if(e.includes('"'))throw st(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:KR(e)?Number(e):e}function Je(e,t){let r=e.trim();if(r.startsWith('"'))return[Ep(r,t),!0];if(r.includes('"')||/\s/.test(r))throw v(t,"expected non-empty field name");return[r,!1]}function Ep(e,t){if(e.charCodeAt(0)!==34)throw st(t);let r="",n=1;for(;n<e.length;){wp.lastIndex=n;let s=wp.exec(e);if(s===null)break;if(s[0]==='"'){if(e.slice(s.index+1).trim()==="")return r+e.slice(n,s.index);throw st(t)}if(s[0]!=="\\")throw st(t);r+=e.slice(n,s.index);let o=e[s.index+1];switch(n=s.index+2,o){case'"':r+='"';break;case"\\":r+="\\";break;case"n":r+=`
13
+ `;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw st(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw st(t);r+=String.fromCharCode(a),n+=4;break}default:throw st(t)}}throw st(t)}function Rp(e,t,r){for(;;){let n=e.indexOf('"',t),s=e.indexOf("\\",t);if(s!==-1&&(n===-1||s<n)){if(s===e.length-1)throw st(r);t=s+2;continue}if(n===-1)throw st(r);return n+1}}function Ve(e,t,r){if(e==="")return[];let n=[],s=0,o=0;for(;o<e.length;){let i=e.indexOf('"',o),a=e.indexOf(t,o);if(a!==-1&&(i===-1||a<i))n.push(e.slice(s,a).trim()),s=a+1,o=a+1;else if(i!==-1)o=Rp(e,i+1,r);else break}return n.push(e.slice(s).trim()),n}function _e(e,t,r){let n=0;for(;n<e.length;){let s=e.indexOf('"',n),o=e.indexOf(t,n);if(o!==-1&&(s===-1||o<s))return o;if(s===-1)return-1;n=Rp(e,s+1,r)}return-1}function KR(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function zR(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function YR(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw v(0,"number is not representable in TOON");return String(e)}function ot(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function Ee(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return YR(e);if(typeof e=="string")return XR(e,t);throw v(0,"not a primitive")}function QR(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ie(e){return QR(e)?e:so(e)}function XR(e,t){return Oa(e,t)?so(e):e}function Oa(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||zR(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}function so(e){let t='"',r=0;_p.lastIndex=0;let n;for(;(n=_p.exec(e))!==null;){let s=e.charCodeAt(n.index),o;s===34?o='\\"':s===92?o="\\\\":s===10?o="\\n":s===13?o="\\r":s===9?o="\\t":o=`\\u${s.toString(16).padStart(4,"0")}`,t+=e.slice(r,n.index)+o,r=n.index+1}return`${t}${e.slice(r)}"`}function Ke(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var Q,wp,_p,fr=h(()=>{Rt();Q=",";wp=/["\\\u0000-\u0008\u000a-\u001f]/g;_p=/["\\\u0000-\u001f]/g});function Z(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var $n=h(()=>{});function kp(e={}){let t=e.maxDepth??1e3,r=t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t));return{indent:Math.max(1,e.indent??2),strict:e.strict??!0,expandPaths:e.expandPaths==="safe"||e.expandPaths===!0,cyclicDiscriminatedArrays:e.cyclicDiscriminatedArrays!==!1,maxDepth:r}}function Sp(e,t){let r=[],n=!1;return no(e).forEach((s,o)=>{let i=o+1;if(s.trim()===""){n=!0;return}let a=s.length-s.replace(/^ +/,"").length;if(s[a]===" ")throw v(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw v(i,"invalid indentation");let c=Math.floor(a/t.indent);it(c,i,t),r.push({number:i,depth:c,content:s.slice(a),blankBefore:n}),n=!1}),r}function it(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw v(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function Mn(e,t,r){if(r.maxDepth===0)return;let n=0,s=!1,o=!1;for(let i of e){if(o){o=!1;continue}if(s&&i==="\\"){o=!0;continue}if(i==='"'){s=!s;continue}s||(i==="{"?(n+=1,it(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}var Aa=h(()=>{Rt();fr();Ur()});function xp(e){if(!Z(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let s=ZR(n,1);if(s===void 0)return e;Ke(t,r,s)}return t}function ZR(e,t){if(!Z(e)||!ek(e))return;let{order:r,discriminator:n,rows:s}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(s)||s<0)throw fe(t);let o=tk(r,s,t),i=e.common,a=i===void 0?Array.from({length:s},()=>({})):i;if(!Array.isArray(a)||a.length!==s||!a.every(Z))throw Cp(t);let c=new Map;for(let[d,p]of Object.entries(e))if(!bp.has(d)){if(!Array.isArray(p)||!p.every(Z))throw fe(t);c.set(d,p)}if(c.size===0)throw fe(t);let u=new Map,l=o.map((d,p)=>{let g=c.get(d);if(g===void 0)throw Pa(t);let f=u.get(d)??0,k=g[f];if(k===void 0)throw Pa(t);return u.set(d,f+1),rk(n,d,a[p],k,t)});for(let[d,p]of c)if((u.get(d)??0)!==p.length)throw Pa(t);return l}function ek(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function tk(e,t,r){if(!e.startsWith("cycle("))throw fe(r);let n=e.slice(6),s=n.indexOf(")*");if(s===-1)throw fe(r);let o=n.slice(0,s),i=n.slice(s+2);if(o===""||i.includes("+tail("))throw fe(r);let a=o.split(",").map(l=>ik(l,r));if(a.some(l=>l===""))throw fe(r);let c=ok(i,r),u=a.length*c;if(!Number.isSafeInteger(u))throw fe(r);if(u!==t)throw Cp(r);return Array.from({length:u},(l,d)=>a[d%a.length])}function rk(e,t,r,n,s){let o={};Ke(o,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw fe(s);Ke(o,i,a)}for(let[i,a]of Object.entries(nk(n,s))){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw fe(s);Ke(o,i,a)}return o}function nk(e,t){let r={};for(let[n,s]of Object.entries(e))sk(r,n.split("."),s,t);return oo(r,t)}function sk(e,t,r,n){if(t.some(o=>o===""))throw fe(n);let s=e;for(let o=0;o<t.length;o+=1){let i=t[o];if(o===t.length-1){s[i]=r;return}if(s[i]??={},s=s[i],!Z(s))throw fe(n)}}function oo(e,t){return Array.isArray(e)?e.map(r=>oo(r,t)):Z(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw fe(t);return oo(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,oo(n,t)])):e}function ok(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw fe(t);let r=Number(e);if(!Number.isSafeInteger(r))throw fe(t);return r}function ik(e,t){try{return decodeURIComponent(e)}catch{throw fe(t)}}function Tp(e){return encodeURIComponent(e)}function fe(e){return v(e,"invalid cyclic array wire")}function Cp(e){return v(e,"cyclic array length mismatch")}function Pa(e){return v(e,"cyclic array group length mismatch")}function Op(e){if(!Z(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[s,o]of t){let i=ak(o);if(i===void 0)return;r.push([s,i])}let n=[];for(let[s,o]of r)dk(n,s,o);return n.join("")}function ak(e){if(!Array.isArray(e)||e.length===0||!e.every(Z))return;let t=ck(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=uk(r);if(n===void 0)return;let s=lk(e,t),o=new Map;for(let a of e){let c=a[t];o.has(c)||o.set(c,[]);let u={};for(let[l,d]of Object.entries(a))if(l!==t&&!s.includes(l)&&!Ia(d,l,u))return;o.get(c).push(u)}let i=[];for(let a of n.cycle){let c=o.get(a),u=mk(c);if(u===void 0||u.length===0)return;i.push({fields:u,label:a,rows:c})}return{common:s,commonRows:e.map(a=>Object.fromEntries(s.map(c=>[c,a[c]]))),discriminator:t,groups:i,order:n,rows:e}}function ck(e){return yp.find(t=>e.every(r=>typeof r[t]=="string"))}function uk(e){if(!(e.length<12))for(let t=2;t<=Math.min(8,Math.floor(e.length/3));t+=1){if(e.length%t!==0)continue;let r=e.slice(0,t);if(new Set(r).size<2||!e.every((i,a)=>i===r[a%t]))continue;let n=e.length/t;if(n<3)continue;let s=e.map(Tp).join(","),o=`cycle(${r.map(Tp).join(",")})*${n}`;if(o.length<=s.length*.4)return{cycle:r,encoded:o,repeats:n}}}function lk(e,t){let r=[],n=Object.keys(e[0]),s=n.indexOf(t)+1;for(let o of n.slice(s).filter(i=>i!==t)){if(!pk(o)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,o))||!e.every(i=>ot(i[o])))break;r.push(o)}return r}function dk(e,t,r){e.push(ie(t),`:
14
14
  `),e.push(" order: ",Ee(r.order.encoded,mr),`
15
15
  `),e.push(" discriminator: ",Ee(r.discriminator,mr),`
16
16
  `),e.push(" rows: ",String(r.rows.length),`
17
- `),r.common.length>0&&gp(e,"common",r.common,r.commonRows);for(let n of r.groups)gp(e,n.label,n.fields,n.rows)}function gp(e,t,r,n){e.push(" ",ae(t),"[",String(n.length),mr,"]{",r.map(ae).join(mr),`}:
17
+ `),r.common.length>0&&vp(e,"common",r.common,r.commonRows);for(let n of r.groups)vp(e,n.label,n.fields,n.rows)}function vp(e,t,r,n){e.push(" ",ie(t),"[",String(n.length),mr,"]{",r.map(ie).join(mr),`}:
18
18
  `);for(let s of n)e.push(" ",r.map(o=>Ee(s[o],mr)).join(mr),`
19
- `)}function KR(e){return e!==""&&xa(e)}function va(e,t,r,n=new Set){if(!xa(t))return!1;if(at(e))return r[t]=e,!0;if(Array.isArray(e)){if(n.has(e))return!1;n.add(e),r[`${t}.length`]=e.length;let s=e.every((o,i)=>va(o,`${t}.${i}`,r,n));return n.delete(e),s}if(X(e)){if(n.has(e))return!1;n.add(e);let s=Object.entries(e).every(([o,i])=>!o.includes(".")&&va(i,`${t}.${o}`,r,n));return n.delete(e),s}return!1}function zR(e){let t=Object.keys(e[0]??{});if(e.every(r=>YR(Object.keys(r),t)))return t.every(xa)?t:void 0}function YR(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function xa(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}var Ca=h(()=>{kt();fr();Ur();$n()});function Hr(e,t){let r=e[t]??e[e.length-1];return x(r===void 0?1:r.number,"array length mismatch")}function so(e,t){if(t===-1)throw x(0,"array header missing colon");let r=e.slice(0,t),n=_e(r,"[",0);if(n===-1)throw x(0,"invalid array header");let s,o;try{[s,o]=qe(r.slice(0,n),0)}catch{throw x(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw x(0,"invalid array header");let c=i.slice(0,a),u=/^[0-9]*/.exec(c)[0];if(u===""||u.length>1&&u.startsWith("0"))throw x(0,"invalid array header");let l=Number.parseInt(u,10),p;switch(c.slice(u.length)){case"":p=",";break;case" ":p=" ";break;case"|":p="|";break;default:throw x(0,"invalid array header")}let d=i.slice(a+1),g,f;if(d==="")g=void 0,f=void 0;else if(d.startsWith("{")&&d.endsWith("}")&&d.length>=2)try{f=XR(d.slice(1,-1),p),g=Aa(f)}catch(k){throw x(0,k.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw x(0,"invalid array header");return{key:s,keyQuoted:o,len:l,delimiter:p,fields:g,fieldTree:f}}function wp(e){let t=_e(e,"{",0);if(t===-1||!e.endsWith("}"))throw x(0,"invalid keyed map header");let r,n;try{[r,n]=qe(e.slice(0,t),0)}catch{throw x(0,"invalid keyed map header")}if(r===""&&!n)throw x(0,"expected non-empty field name");let s=e.slice(t+1,-1),o=Q;(s.startsWith("|")||s.startsWith(" "))&&(o=s[0],s=s.slice(1));let i;try{i=QR(s,o,o)}catch(a){throw x(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:o,fields:i}}function QR(e,t,r){let n=[],s=0;function o(c,u){let l=0;for(;s<e.length&&!(u&&e[s]==="}");){if(e[s]===t||e[s]==="}")throw x(0,"invalid array header");let p=s;for(;s<e.length;){let f=e[s];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;s+=1}let[d,g]=qe(e.slice(p,s),0);if(d===""&&!g)throw x(0,"invalid array header");if(l+=1,e[s]==="["){s+=1;let f=s;for(;s<e.length&&e[s]!=="]";)s+=1;if(s>=e.length)throw x(0,"invalid array header");let k=e.slice(f,s);if(!_p(k,r))throw x(0,"invalid array header");s+=1,n.push({path:[...c,d],listDelimiter:k})}else if(e[s]==="{"){s+=1;let f=n.length;if(o([...c,d],!0),e[s]!=="}"||n.length===f)throw x(0,"invalid array header");s+=1}else n.push({path:[...c,d],listDelimiter:void 0});if(e[s]===t){if(s+=1,s>=e.length||e[s]==="}")throw x(0,"invalid array header");continue}if(u?e[s]==="}":s===e.length)break;throw x(0,"invalid array header")}if(l===0)throw x(0,"invalid array header")}function i(){for(s+=1;s<e.length;){let c=e[s];if(s+=1,c==="\\")s+=1;else if(c==='"')return}}if(o([],!1),s!==e.length)throw x(0,"invalid array header");let a=new Set;for(let c=0;c<n.length;c+=1)for(let u=c+1;u<n.length;u+=1)if(Ep(n[c].path,n[u].path)||Bn(n[c].path,n[u].path)||Bn(n[u].path,n[c].path))throw x(0,"duplicate key");for(let c of n){let l=c.path.join("\0");if(a.has(l))throw x(0,"duplicate key");a.add(l)}return n}function XR(e,t){if(t!==Q&&e.includes(Q)&&(e.includes("[")||e.includes("{")))return Oa(e,Q,t);try{return Oa(e,t,t)}catch(r){if(t!==Q&&r.reason!=="duplicate key")return Oa(e,Q,t);throw r}}function Oa(e,t,r){let n=0;function s(c){let u=[];for(;n<e.length&&!(c&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw x(0,"invalid array header");let l=n;for(;n<e.length;){let f=e[n];if(f==='"'){o();continue}if(f===t||f==="{"||f==="}"||f==="[")break;n+=1}let[p,d]=qe(e.slice(l,n),0);if(p===""&&!d)throw x(0,"invalid array header");let g={key:p};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw x(0,"invalid array header");let k=e.slice(f,n);n+=1;let E=ZR(k);if(E!==void 0){if(E.delimiter!==r)throw x(0,"invalid array header");g.fixedLength=E.len,g.fixedDelimiter=E.delimiter}else if(_p(k,r))g.listDelimiter=k;else throw x(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=s(!0),e[n]!=="}"||g.children.length===0)throw x(0,"invalid array header");n+=1}if(u.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw x(0,"invalid array header");continue}if(c?e[n]==="}":n===e.length)break;throw x(0,"invalid array header")}if(u.length===0)throw x(0,"invalid array header");return u}function o(){for(n+=1;n<e.length;){let c=e[n];if(n+=1,c==="\\")n+=1;else if(c==='"')return}}let i=s(!1);if(n!==e.length)throw x(0,"invalid array header");let a=Aa(i);for(let c=0;c<a.length;c+=1)for(let u=c+1;u<a.length;u+=1)if(Ep(a[c].path,a[u].path)||Bn(a[c].path,a[u].path)||Bn(a[u].path,a[c].path))throw x(0,"duplicate key");return i}function ZR(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=Q;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function Aa(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?Aa(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function oo(e,t,r){return e.listDelimiter===void 0?Ge(t,r):We(t,e.listDelimiter,r).map(n=>Ge(n,r))}function _p(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Ep(e,t){return e.length===t.length&&Bn(e,t)}function Bn(e,t){return t.every((r,n)=>e[n]===r)}function io(e,t){return x(t,e.reason??String(e.message))}var Rp=h(()=>{kt();fr()});function H(e,t){let r=pp(t),n=mp(e,r),s=n[0];if(s===void 0)return{};if(s.depth!==0)throw x(s.number,"invalid indentation");let o=n.length===1;if(o&&s.content.trim()==="[]")return[];if(s.content.startsWith("[")){Mn(s.content,s.number,r);let u;try{u=so(s.content,_e(s.content,":",s.number))}catch(l){if(r.strict)throw io(l,s.number);u=void 0}if(u!==void 0)return rk(u,n,r)}if(o&&_e(s.content,":",s.number)===-1)return Ge(s.content.trim(),s.number);let i={index:0},a=Ia(n,i,0,r),c=n[i.index];if(c!==void 0)throw x(c.number,"expected end of document");return r.cyclicDiscriminatedArrays?hp(a):a}function Ia(e,t,r,n){let s={};for(;t.index<e.length;){let o=e[t.index];if(o.depth<r)break;if(o.depth>r)throw x(o.number,"invalid indentation");let{key:i,quoted:a,value:c}=ek(e,t,r,n);Op(s,i,a,c,n,o.number)}return s}function ek(e,t,r,n){let s=e[t.index],o=s.content,i=_e(o,":",s.number);if(i===-1)throw x(s.number,"expected `key: value`");let a=o.slice(0,i),c=o.slice(i+1),u=_e(a,"[",s.number),l=_e(a,"{",s.number);if(l!==-1&&(u===-1||l<u)){Mn(a,s.number,n);let f;try{f=wp(a)}catch(E){if(n.strict)throw io(E,s.number);t.index+=1;let y=Pa(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:y}}if(c.trim()!=="")throw x(s.number,"expected keyed map rows");let k=tk(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:k}}if(u!==-1){Mn(a,s.number,n);let f;try{f=so(a,i)}catch(E){if(n.strict)throw io(E,s.number);t.index+=1;let y=Pa(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:y}}if(f.key===""&&!f.keyQuoted)throw x(s.number,"expected non-empty field name");let k=La(f,c,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:k}}let[p,d]=qe(a,s.number);if(p===""&&!d)throw x(s.number,"expected non-empty field name");t.index+=1;let g=Pa(e,t,r,c,s.number,n);return{key:p,quoted:d,value:g}}function Pa(e,t,r,n,s,o){let i=n.trim();if(i==="[]")return[];if(i!=="")return Ge(i,s);let a=e[t.index];return a!==void 0&&a.depth>r?Ia(e,t,r+1,o):{}}function tk(e,t,r,n,s){let o={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw x(i.number,"invalid indentation");if(i.blankBefore&&s.strict)throw x(i.number,"blank line inside keyed map");let a=_e(i.content,":",i.number);if(a===-1)throw x(i.number,"expected `key: value`");let[c,u]=qe(i.content.slice(0,a),i.number);if(c===""&&!u)throw x(i.number,"expected non-empty field name");let l=We(i.content.slice(a+1).trim(),e.delimiter,i.number);if(l.length!==e.fields.length)throw x(i.number,"keyed map row length mismatch");let p={};e.fields.forEach((d,g)=>{Wr(p,d.path,oo(d,l[g],i.number),s,i.number)}),Op(o,c,u,p,s,i.number),r.index+=1}return o}function rk(e,t,r){let n=t[0],s=_e(n.content,":",n.number);if(s===-1)throw x(n.number,"expected `key: value`");let o=n.content.slice(s+1),i={index:0},a=La(e,o,t,i,0,r),c=t[i.index];if(c!==void 0)throw x(c.number,"expected end of document");return a}function La(e,t,r,n,s,o){let i=r[n.index].number,a=t.trim();if(n.index+=1,e.fields!==void 0){if(a!=="")throw x(i,"expected tabular rows");return nk(e,e.fields,r,n,s+1,o)}if(a!==""){let c=We(a,e.delimiter,i).map(u=>Ge(u,i));if(c.length!==e.len)throw x(i,"array length mismatch");return c}return lk(e,r,n,s+1,o)}function nk(e,t,r,n,s,o){if(e.fieldTree!==void 0&&ck(e.fieldTree))return sk(e,r,n,s,o);let i=[];for(;i.length<e.len;){let c=r[n.index];if(c===void 0)throw Hr(r,n.index);if(c.depth<s)break;if(c.depth>s)throw x(c.number,"invalid indentation");if(c.blankBefore&&o.strict)throw x(c.number,"blank line inside array");if(!qr(c.content,e.delimiter,c.number))break;let u=We(c.content,e.delimiter,c.number);if(u.length!==t.length)throw x(c.number,"array row length mismatch");let l={};t.forEach((p,d)=>{Wr(l,p.path,oo(p,u[d],c.number),o,c.number)}),i.push(l),n.index+=1}if(i.length!==e.len)throw Hr(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=s&&qr(a.content,e.delimiter,a.number))throw x(a.number,"array length mismatch");return i}function sk(e,t,r,n,s){return kp(e.len,e.fieldTree,e.delimiter,t,r,n,s,!0)}function kp(e,t,r,n,s,o,i,a){let c=[],u=Tp(e,t,r,n,s.index,o,i);for(;c.length<e;){let p=n[s.index];if(p===void 0)throw Hr(n,s.index);if(p.depth<o)break;if(p.depth>o)throw x(p.number,"invalid indentation");if(p.blankBefore&&i.strict)throw x(p.number,"blank line inside array");if(!qr(p.content,r,p.number))break;let d=We(p.content,r,p.number),g={cellIndex:0,nextIndex:s.index+1,flatWidth:ao(t),childTableFields:u},f=Sp(t,d,p.number,n,g,o+1,r,i);if(g.cellIndex!==d.length)throw x(p.number,"array row length mismatch");c.push(ak(t,f,a)),s.index=g.nextIndex}if(c.length!==e)throw Hr(n,s.index);let l=n[s.index];if(l!==void 0&&l.depth>=o&&qr(l.content,r,l.number))throw x(l.number,"array length mismatch");return c}function Sp(e,t,r,n,s,o,i,a){let c={};return e.forEach((u,l)=>{let p=e.slice(l+1),d=ok(u,p,t,r,n,s,o,i,a);Wr(c,[u.key],d,a,r)}),c}function ok(e,t,r,n,s,o,i,a,c){if(e.fixedLength!==void 0){if(o.cellIndex+e.fixedLength>r.length)throw x(n,"array row length mismatch");let l=r.slice(o.cellIndex,o.cellIndex+e.fixedLength).map(p=>Ge(p,n));return o.cellIndex+=e.fixedLength,l}if(e.children!==void 0){let l=ao(e.children),p=r[o.cellIndex],d=xp(p),g=r.length-o.cellIndex-1,f=s[o.nextIndex],k=f!==void 0&&f.depth===i,E=o.childTableFields===void 0?void 0:o.childTableFields.has(e);if(E===void 0?d!==void 0&&(k||r.length!==o.flatWidth&&g<l+uk(t)):E){if(d===void 0)throw x(n,"array row length mismatch");return o.cellIndex+=1,kp(d,e.children,a,s,{get index(){return o.nextIndex},set index(_){o.nextIndex=_}},i,c,!1)}return Sp(e.children,r,n,s,o,i,a,c)}let u=r[o.cellIndex];if(u===void 0)throw x(n,"array row length mismatch");return o.cellIndex+=1,oo(e,u,n)}function Tp(e,t,r,n,s,o,i){let a=t.filter(l=>l.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let c,u=1<<a.length;for(let l=0;l<u;l+=1){let p=new Set;a.forEach((g,f)=>{l&1<<f&&p.add(g)});let d=vp(e,t,p,r,n,s,o,i);d!==void 0&&(c===void 0||d.consumedChildRows>c.consumedChildRows||d.consumedChildRows===c.consumedChildRows&&p.size<c.childTableFields.size)&&(c={childTableFields:p,consumedChildRows:d.consumedChildRows})}return c?.childTableFields}function vp(e,t,r,n,s,o,i,a){let c=o,u=0;try{for(let p=0;p<e;p+=1){let d=s[c];if(d===void 0||d.depth!==i||d.blankBefore&&a.strict||!qr(d.content,n,d.number))return;let g=We(d.content,n,d.number),f=ik(t,r,g,n,s,c+1,i+1,a);if(f===void 0||s[f.nextIndex]?.depth>i)return;u+=f.consumedChildRows,c=f.nextIndex}let l=s[c];if(l!==void 0&&l.depth>=i&&qr(l.content,n,l.number))return}catch{return}return{nextIndex:c,consumedChildRows:u}}function ik(e,t,r,n,s,o,i,a){let c=0,u=o,l=0;for(let p of e){if(p.fixedLength!==void 0)c+=p.fixedLength;else if(p.children!==void 0)if(t.has(p)){let d=xp(r[c]);if(d===void 0)return;c+=1;let g=Tp(d,p.children,n,s,u,i,a);if(g===void 0)return;let f=vp(d,p.children,g,n,s,u,i,a);if(f===void 0)return;u=f.nextIndex,l+=d+f.consumedChildRows}else c+=ao(p.children);else c+=1;if(c>r.length)return}if(c===r.length)return{nextIndex:u,consumedChildRows:l}}function ak(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function xp(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function ck(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function ao(e){return e.reduce((t,r)=>t+Cp(r),0)}function Cp(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?ao(e.children):1}function uk(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Cp(r),0)}function qr(e,t,r){let n=_e(e,":",r);if(n===-1)return!0;let s=_e(e,t,r);return s===-1?!1:s<n}function lk(e,t,r,n,s){let o=[];for(;o.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw Hr(t,r.index);if(a.depth>n)throw x(a.number,"invalid indentation");if(a.blankBefore&&s.strict)throw x(a.number,"blank line inside array");o.push(dk(t,r,n,s))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw x(i.number,"array length mismatch");return o}function dk(e,t,r,n){let s=e[t.index];if(!s.content.startsWith("-"))throw x(s.number,"expected array item");let o=s.content.slice(1).replace(/^\s+/,"");if(o==="")return t.index+=1,{};if(o.startsWith("[")){let i=_e(o,":",s.number);Mn(o,s.number,n);let a;try{a=so(o,i)}catch{a=void 0}if(a!==void 0){let c=o.slice(i+1);return La(a,c,e,t,r,n)}}if(_e(o,":",s.number)!==-1){let i=[{number:s.number,depth:r+1,content:o,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return Ia(i,{index:0},r+1,n)}return t.index+=1,Ge(o,s.number)}function Op(e,t,r,n,s,o){if(s.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(pk)){Wr(e,i,n,s,o);return}}Wr(e,[t],n,s,o)}function Wr(e,t,r,n,s){ct(t.length-1,s,n);let o=t[0],i=Object.prototype.hasOwnProperty.call(e,o);if(t.length===1){if(i&&n.strict)throw x(s,"duplicate key");Je(e,o,r);return}if(i&&!X(e[o])){if(n.strict)throw x(s,"path expansion conflict");Je(e,o,{})}else i||Je(e,o,{});Wr(e[o],t.slice(1),r,n,s)}function pk(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var Ap=h(()=>{kt();fr();Ur();$n();Sa();Ca();Rp()});function $(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??Q;if(![Q,"|"," "].includes(n))throw x(0,"invalid array header");let s={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(s.cyclicDiscriminatedArrays){let i=bp(e);if(i!==void 0)return i}let o=[];return Array.isArray(e)?Na(o,void 0,e,0,!1,s):X(e)?Pp(o,e,0,s):o.push(Ee(e,n)),o.join("")}function Jr(e,t){e.push(" ".repeat(t*2))}function Pp(e,t,r,n){ct(r,0,n);for(let[s,o]of Object.entries(t))Jr(e,r),Ga(e,s,o,r,n)}function Ga(e,t,r,n,s){if(ct(n,0,s),Array.isArray(r)){Na(e,t,r,n,!1,s);return}if(X(r)){let o=s.keyedMapCollapse?fk(r,s,n+1):void 0;if(o!==void 0){e.push(ae(t),"{",Fa(s.delimiter),o.fields.map(i=>ja(i,s.delimiter)).join(s.delimiter),`}:
20
- `);for(let[i,a]of Object.entries(r)){Jr(e,n+1);let c=[];e.push(ae(i),": ",o.paths.map(u=>Ua(Ba(a,u.path),u,s.delimiter,s,c,n+2)).join(s.delimiter),`
21
- `),e.push(...c)}return}e.push(ae(t),`:
22
- `),Pp(e,r,n+1,s);return}e.push(ae(t),": ",Ee(r,s.delimiter),`
23
- `)}function Na(e,t,r,n,s,o){if(ct(n,0,o),r.length===0){t!==void 0?e.push(ae(t),`: []
19
+ `)}function pk(e){return e!==""&&La(e)}function Ia(e,t,r,n=new Set){if(!La(t))return!1;if(ot(e))return r[t]=e,!0;if(Array.isArray(e)){if(n.has(e))return!1;n.add(e),r[`${t}.length`]=e.length;let s=e.every((o,i)=>Ia(o,`${t}.${i}`,r,n));return n.delete(e),s}if(Z(e)){if(n.has(e))return!1;n.add(e);let s=Object.entries(e).every(([o,i])=>!o.includes(".")&&Ia(i,`${t}.${o}`,r,n));return n.delete(e),s}return!1}function mk(e){let t=Object.keys(e[0]??{});if(e.every(r=>fk(Object.keys(r),t)))return t.every(La)?t:void 0}function fk(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function La(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}var Ga=h(()=>{Rt();fr();Ur();$n()});function Hr(e,t){let r=e[t]??e[e.length-1];return v(r===void 0?1:r.number,"array length mismatch")}function io(e,t){if(t===-1)throw v(0,"array header missing colon");let r=e.slice(0,t),n=_e(r,"[",0);if(n===-1)throw v(0,"invalid array header");let s,o;try{[s,o]=Je(r.slice(0,n),0)}catch{throw v(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw v(0,"invalid array header");let c=i.slice(0,a),u=/^[0-9]*/.exec(c)[0];if(u===""||u.length>1&&u.startsWith("0"))throw v(0,"invalid array header");let l=Number.parseInt(u,10),d;switch(c.slice(u.length)){case"":d=",";break;case" ":d=" ";break;case"|":d="|";break;default:throw v(0,"invalid array header")}let p=i.slice(a+1),g,f;if(p==="")g=void 0,f=void 0;else if(p.startsWith("{")&&p.endsWith("}")&&p.length>=2)try{f=hk(p.slice(1,-1),d),g=$a(f)}catch(k){throw v(0,k.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw v(0,"invalid array header");return{key:s,keyQuoted:o,len:l,delimiter:d,fields:g,fieldTree:f}}function Ap(e){let t=_e(e,"{",0);if(t===-1||!e.endsWith("}"))throw v(0,"invalid keyed map header");let r,n;try{[r,n]=Je(e.slice(0,t),0)}catch{throw v(0,"invalid keyed map header")}if(r===""&&!n)throw v(0,"expected non-empty field name");let s=e.slice(t+1,-1),o=Q;(s.startsWith("|")||s.startsWith(" "))&&(o=s[0],s=s.slice(1));let i;try{i=gk(s,o,o)}catch(a){throw v(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:o,fields:i}}function gk(e,t,r){let n=[],s=0;function o(c,u){let l=0;for(;s<e.length&&!(u&&e[s]==="}");){if(e[s]===t||e[s]==="}")throw v(0,"invalid array header");let d=s;for(;s<e.length;){let f=e[s];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;s+=1}let[p,g]=Je(e.slice(d,s),0);if(p===""&&!g)throw v(0,"invalid array header");if(l+=1,e[s]==="["){s+=1;let f=s;for(;s<e.length&&e[s]!=="]";)s+=1;if(s>=e.length)throw v(0,"invalid array header");let k=e.slice(f,s);if(!Pp(k,r))throw v(0,"invalid array header");s+=1,n.push({path:[...c,p],listDelimiter:k})}else if(e[s]==="{"){s+=1;let f=n.length;if(o([...c,p],!0),e[s]!=="}"||n.length===f)throw v(0,"invalid array header");s+=1}else n.push({path:[...c,p],listDelimiter:void 0});if(e[s]===t){if(s+=1,s>=e.length||e[s]==="}")throw v(0,"invalid array header");continue}if(u?e[s]==="}":s===e.length)break;throw v(0,"invalid array header")}if(l===0)throw v(0,"invalid array header")}function i(){for(s+=1;s<e.length;){let c=e[s];if(s+=1,c==="\\")s+=1;else if(c==='"')return}}if(o([],!1),s!==e.length)throw v(0,"invalid array header");let a=new Set;for(let c=0;c<n.length;c+=1)for(let u=c+1;u<n.length;u+=1)if(Ip(n[c].path,n[u].path)||Bn(n[c].path,n[u].path)||Bn(n[u].path,n[c].path))throw v(0,"duplicate key");for(let c of n){let l=c.path.join("\0");if(a.has(l))throw v(0,"duplicate key");a.add(l)}return n}function hk(e,t){if(t!==Q&&e.includes(Q)&&(e.includes("[")||e.includes("{")))return Da(e,Q,t);try{return Da(e,t,t)}catch(r){if(t!==Q&&r.reason!=="duplicate key")return Da(e,Q,t);throw r}}function Da(e,t,r){let n=0;function s(c){let u=[];for(;n<e.length&&!(c&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw v(0,"invalid array header");let l=n;for(;n<e.length;){let f=e[n];if(f==='"'){o();continue}if(f===t||f==="{"||f==="}"||f==="[")break;n+=1}let[d,p]=Je(e.slice(l,n),0);if(d===""&&!p)throw v(0,"invalid array header");let g={key:d};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw v(0,"invalid array header");let k=e.slice(f,n);n+=1;let E=yk(k);if(E!==void 0){if(E.delimiter!==r)throw v(0,"invalid array header");g.fixedLength=E.len,g.fixedDelimiter=E.delimiter}else if(Pp(k,r))g.listDelimiter=k;else throw v(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=s(!0),e[n]!=="}"||g.children.length===0)throw v(0,"invalid array header");n+=1}if(u.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw v(0,"invalid array header");continue}if(c?e[n]==="}":n===e.length)break;throw v(0,"invalid array header")}if(u.length===0)throw v(0,"invalid array header");return u}function o(){for(n+=1;n<e.length;){let c=e[n];if(n+=1,c==="\\")n+=1;else if(c==='"')return}}let i=s(!1);if(n!==e.length)throw v(0,"invalid array header");let a=$a(i);for(let c=0;c<a.length;c+=1)for(let u=c+1;u<a.length;u+=1)if(Ip(a[c].path,a[u].path)||Bn(a[c].path,a[u].path)||Bn(a[u].path,a[c].path))throw v(0,"duplicate key");return i}function yk(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=Q;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function $a(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?$a(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function ao(e,t,r){return e.listDelimiter===void 0?Fe(t,r):Ve(t,e.listDelimiter,r).map(n=>Fe(n,r))}function Pp(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Ip(e,t){return e.length===t.length&&Bn(e,t)}function Bn(e,t){return t.every((r,n)=>e[n]===r)}function co(e,t){return v(t,e.reason??String(e.message))}var Lp=h(()=>{Rt();fr()});function H(e,t){let r=kp(t),n=Sp(e,r),s=n[0];if(s===void 0)return{};if(s.depth!==0)throw v(s.number,"invalid indentation");let o=n.length===1;if(o&&s.content.trim()==="[]")return[];if(s.content.startsWith("[")){Mn(s.content,s.number,r);let u;try{u=io(s.content,_e(s.content,":",s.number))}catch(l){if(r.strict)throw co(l,s.number);u=void 0}if(u!==void 0)return _k(u,n,r)}if(o&&_e(s.content,":",s.number)===-1)return Fe(s.content.trim(),s.number);let i={index:0},a=Fa(n,i,0,r),c=n[i.index];if(c!==void 0)throw v(c.number,"expected end of document");return r.cyclicDiscriminatedArrays?xp(a):a}function Fa(e,t,r,n){let s={};for(;t.index<e.length;){let o=e[t.index];if(o.depth<r)break;if(o.depth>r)throw v(o.number,"invalid indentation");let{key:i,quoted:a,value:c}=bk(e,t,r,n);Bp(s,i,a,c,n,o.number)}return s}function bk(e,t,r,n){let s=e[t.index],o=s.content,i=_e(o,":",s.number);if(i===-1)throw v(s.number,"expected `key: value`");let a=o.slice(0,i),c=o.slice(i+1),u=_e(a,"[",s.number),l=_e(a,"{",s.number);if(l!==-1&&(u===-1||l<u)){Mn(a,s.number,n);let f;try{f=Ap(a)}catch(E){if(n.strict)throw co(E,s.number);t.index+=1;let y=Na(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:y}}if(c.trim()!=="")throw v(s.number,"expected keyed map rows");let k=wk(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:k}}if(u!==-1){Mn(a,s.number,n);let f;try{f=io(a,i)}catch(E){if(n.strict)throw co(E,s.number);t.index+=1;let y=Na(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:y}}if(f.key===""&&!f.keyQuoted)throw v(s.number,"expected non-empty field name");let k=Ma(f,c,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:k}}let[d,p]=Je(a,s.number);if(d===""&&!p)throw v(s.number,"expected non-empty field name");t.index+=1;let g=Na(e,t,r,c,s.number,n);return{key:d,quoted:p,value:g}}function Na(e,t,r,n,s,o){let i=n.trim();if(i==="[]")return[];if(i!=="")return Fe(i,s);let a=e[t.index];return a!==void 0&&a.depth>r?Fa(e,t,r+1,o):{}}function wk(e,t,r,n,s){let o={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw v(i.number,"invalid indentation");if(i.blankBefore&&s.strict)throw v(i.number,"blank line inside keyed map");let a=_e(i.content,":",i.number);if(a===-1)throw v(i.number,"expected `key: value`");let[c,u]=Je(i.content.slice(0,a),i.number);if(c===""&&!u)throw v(i.number,"expected non-empty field name");let l=Ve(i.content.slice(a+1).trim(),e.delimiter,i.number);if(l.length!==e.fields.length)throw v(i.number,"keyed map row length mismatch");let d={};e.fields.forEach((p,g)=>{Wr(d,p.path,ao(p,l[g],i.number),s,i.number)}),Bp(o,c,u,d,s,i.number),r.index+=1}return o}function _k(e,t,r){let n=t[0],s=_e(n.content,":",n.number);if(s===-1)throw v(n.number,"expected `key: value`");let o=n.content.slice(s+1),i={index:0},a=Ma(e,o,t,i,0,r),c=t[i.index];if(c!==void 0)throw v(c.number,"expected end of document");return a}function Ma(e,t,r,n,s,o){let i=r[n.index].number,a=t.trim();if(n.index+=1,e.fields!==void 0){if(a!=="")throw v(i,"expected tabular rows");return Ek(e,e.fields,r,n,s+1,o)}if(a!==""){let c=Ve(a,e.delimiter,i).map(u=>Fe(u,i));if(c.length!==e.len)throw v(i,"array length mismatch");return c}return Ck(e,r,n,s+1,o)}function Ek(e,t,r,n,s,o){if(e.fieldTree!==void 0&&vk(e.fieldTree))return Rk(e,r,n,s,o);let i=[];for(;i.length<e.len;){let c=r[n.index];if(c===void 0)throw Hr(r,n.index);if(c.depth<s)break;if(c.depth>s)throw v(c.number,"invalid indentation");if(c.blankBefore&&o.strict)throw v(c.number,"blank line inside array");if(!qr(c.content,e.delimiter,c.number))break;let u=Ve(c.content,e.delimiter,c.number);if(u.length!==t.length)throw v(c.number,"array row length mismatch");let l={};t.forEach((d,p)=>{Wr(l,d.path,ao(d,u[p],c.number),o,c.number)}),i.push(l),n.index+=1}if(i.length!==e.len)throw Hr(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=s&&qr(a.content,e.delimiter,a.number))throw v(a.number,"array length mismatch");return i}function Rk(e,t,r,n,s){return Gp(e.len,e.fieldTree,e.delimiter,t,r,n,s,!0)}function Gp(e,t,r,n,s,o,i,a){let c=[],u=$p(e,t,r,n,s.index,o,i);for(;c.length<e;){let d=n[s.index];if(d===void 0)throw Hr(n,s.index);if(d.depth<o)break;if(d.depth>o)throw v(d.number,"invalid indentation");if(d.blankBefore&&i.strict)throw v(d.number,"blank line inside array");if(!qr(d.content,r,d.number))break;let p=Ve(d.content,r,d.number),g={cellIndex:0,nextIndex:s.index+1,flatWidth:uo(t),childTableFields:u},f=Dp(t,p,d.number,n,g,o+1,r,i);if(g.cellIndex!==p.length)throw v(d.number,"array row length mismatch");c.push(Tk(t,f,a)),s.index=g.nextIndex}if(c.length!==e)throw Hr(n,s.index);let l=n[s.index];if(l!==void 0&&l.depth>=o&&qr(l.content,r,l.number))throw v(l.number,"array length mismatch");return c}function Dp(e,t,r,n,s,o,i,a){let c={};return e.forEach((u,l)=>{let d=e.slice(l+1),p=kk(u,d,t,r,n,s,o,i,a);Wr(c,[u.key],p,a,r)}),c}function kk(e,t,r,n,s,o,i,a,c){if(e.fixedLength!==void 0){if(o.cellIndex+e.fixedLength>r.length)throw v(n,"array row length mismatch");let l=r.slice(o.cellIndex,o.cellIndex+e.fixedLength).map(d=>Fe(d,n));return o.cellIndex+=e.fixedLength,l}if(e.children!==void 0){let l=uo(e.children),d=r[o.cellIndex],p=Fp(d),g=r.length-o.cellIndex-1,f=s[o.nextIndex],k=f!==void 0&&f.depth===i,E=o.childTableFields===void 0?void 0:o.childTableFields.has(e);if(E===void 0?p!==void 0&&(k||r.length!==o.flatWidth&&g<l+xk(t)):E){if(p===void 0)throw v(n,"array row length mismatch");return o.cellIndex+=1,Gp(p,e.children,a,s,{get index(){return o.nextIndex},set index(_){o.nextIndex=_}},i,c,!1)}return Dp(e.children,r,n,s,o,i,a,c)}let u=r[o.cellIndex];if(u===void 0)throw v(n,"array row length mismatch");return o.cellIndex+=1,ao(e,u,n)}function $p(e,t,r,n,s,o,i){let a=t.filter(l=>l.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let c,u=1<<a.length;for(let l=0;l<u;l+=1){let d=new Set;a.forEach((g,f)=>{l&1<<f&&d.add(g)});let p=Np(e,t,d,r,n,s,o,i);p!==void 0&&(c===void 0||p.consumedChildRows>c.consumedChildRows||p.consumedChildRows===c.consumedChildRows&&d.size<c.childTableFields.size)&&(c={childTableFields:d,consumedChildRows:p.consumedChildRows})}return c?.childTableFields}function Np(e,t,r,n,s,o,i,a){let c=o,u=0;try{for(let d=0;d<e;d+=1){let p=s[c];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!qr(p.content,n,p.number))return;let g=Ve(p.content,n,p.number),f=Sk(t,r,g,n,s,c+1,i+1,a);if(f===void 0||s[f.nextIndex]?.depth>i)return;u+=f.consumedChildRows,c=f.nextIndex}let l=s[c];if(l!==void 0&&l.depth>=i&&qr(l.content,n,l.number))return}catch{return}return{nextIndex:c,consumedChildRows:u}}function Sk(e,t,r,n,s,o,i,a){let c=0,u=o,l=0;for(let d of e){if(d.fixedLength!==void 0)c+=d.fixedLength;else if(d.children!==void 0)if(t.has(d)){let p=Fp(r[c]);if(p===void 0)return;c+=1;let g=$p(p,d.children,n,s,u,i,a);if(g===void 0)return;let f=Np(p,d.children,g,n,s,u,i,a);if(f===void 0)return;u=f.nextIndex,l+=p+f.consumedChildRows}else c+=uo(d.children);else c+=1;if(c>r.length)return}if(c===r.length)return{nextIndex:u,consumedChildRows:l}}function Tk(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function Fp(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function vk(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function uo(e){return e.reduce((t,r)=>t+Mp(r),0)}function Mp(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?uo(e.children):1}function xk(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Mp(r),0)}function qr(e,t,r){let n=_e(e,":",r);if(n===-1)return!0;let s=_e(e,t,r);return s===-1?!1:s<n}function Ck(e,t,r,n,s){let o=[];for(;o.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw Hr(t,r.index);if(a.depth>n)throw v(a.number,"invalid indentation");if(a.blankBefore&&s.strict)throw v(a.number,"blank line inside array");o.push(Ok(t,r,n,s))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw v(i.number,"array length mismatch");return o}function Ok(e,t,r,n){let s=e[t.index];if(!s.content.startsWith("-"))throw v(s.number,"expected array item");let o=s.content.slice(1).replace(/^\s+/,"");if(o==="")return t.index+=1,{};if(o.startsWith("[")){let i=_e(o,":",s.number);Mn(o,s.number,n);let a;try{a=io(o,i)}catch{a=void 0}if(a!==void 0){let c=o.slice(i+1);return Ma(a,c,e,t,r,n)}}if(_e(o,":",s.number)!==-1){let i=[{number:s.number,depth:r+1,content:o,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return Fa(i,{index:0},r+1,n)}return t.index+=1,Fe(o,s.number)}function Bp(e,t,r,n,s,o){if(s.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(Ak)){Wr(e,i,n,s,o);return}}Wr(e,[t],n,s,o)}function Wr(e,t,r,n,s){it(t.length-1,s,n);let o=t[0],i=Object.prototype.hasOwnProperty.call(e,o);if(t.length===1){if(i&&n.strict)throw v(s,"duplicate key");Ke(e,o,r);return}if(i&&!Z(e[o])){if(n.strict)throw v(s,"path expansion conflict");Ke(e,o,{})}else i||Ke(e,o,{});Wr(e[o],t.slice(1),r,n,s)}function Ak(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var jp=h(()=>{Rt();fr();Ur();$n();Aa();Ga();Lp()});function $(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??Q;if(![Q,"|"," "].includes(n))throw v(0,"invalid array header");let s={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(s.cyclicDiscriminatedArrays){let i=Op(e);if(i!==void 0)return i}let o=[];return Array.isArray(e)?Ha(o,void 0,e,0,!1,s):Z(e)?Up(o,e,0,s):o.push(Ee(e,n)),o.join("")}function Jr(e,t){e.push(" ".repeat(t*2))}function Up(e,t,r,n){it(r,0,n);for(let[s,o]of Object.entries(t))Jr(e,r),ja(e,s,o,r,n)}function ja(e,t,r,n,s){if(it(n,0,s),Array.isArray(r)){Ha(e,t,r,n,!1,s);return}if(Z(r)){let o=s.keyedMapCollapse?Ik(r,s,n+1):void 0;if(o!==void 0){e.push(ie(t),"{",qa(s.delimiter),o.fields.map(i=>Va(i,s.delimiter)).join(s.delimiter),`}:
20
+ `);for(let[i,a]of Object.entries(r)){Jr(e,n+1);let c=[];e.push(ie(i),": ",o.paths.map(u=>Ka(Ja(a,u.path),u,s.delimiter,s,c,n+2)).join(s.delimiter),`
21
+ `),e.push(...c)}return}e.push(ie(t),`:
22
+ `),Up(e,r,n+1,s);return}e.push(ie(t),": ",Ee(r,s.delimiter),`
23
+ `)}function Ha(e,t,r,n,s,o){if(it(n,0,o),r.length===0){t!==void 0?e.push(ie(t),`: []
24
24
  `):s?e.push(`[0]:
25
25
  `):e.push(`[]
26
- `);return}if(r.every(at)){Da(e,t,r.length,void 0,o.delimiter),e.push(" "),e.push(r.map(a=>Ee(a,o.delimiter)).join(o.delimiter)),e.push(`
27
- `);return}let i=s?void 0:Ip(r,o,n+1);if(i!==void 0){Da(e,t,r.length,i.fields,o.delimiter),e.push(`
28
- `);for(let a of r){Jr(e,n+1);let c=[];e.push(i.paths.map(u=>Ua(Ba(a,u.path),u,o.delimiter,o,c,n+2)).join(o.delimiter)),e.push(`
29
- `),e.push(...c)}return}Da(e,t,r.length,void 0,o.delimiter),e.push(`
30
- `);for(let a of r)Jr(e,n+1),mk(e,a,n+1,o)}function mk(e,t,r,n){if(ct(r,0,n),Array.isArray(t)){e.push("- "),Na(e,void 0,t,r,!0,n);return}if(X(t)){let s=Object.entries(t);if(s.length===0){e.push(`-
31
- `);return}e.push("- "),Ga(e,s[0][0],s[0][1],r+1,n);for(let[o,i]of s.slice(1))Jr(e,r+1),Ga(e,o,i,r+1,n);return}e.push("- ",Ee(t,n.delimiter),`
32
- `)}function Da(e,t,r,n,s){t!==void 0&&e.push(ae(t)),e.push("[",String(r),Fa(s),"]"),n!==void 0&&e.push("{",n.map(o=>ja(o,s)).join(s),"}"),e.push(":")}function Fa(e){return e===Q?"":e}function Ip(e,t,r){let n=gk(e,t);if(n!==void 0)return n;let s=$a(e.map(o=>({value:o})),t,r);return s===void 0?void 0:{fields:s,paths:Ma(s)}}function fk(e,t,r){let n=Object.values(e);if(!(n.length<2))return Ip(n,t,r)}function $a(e,t,r){ct(r,0,t);let n=e[0]?.value;if(!X(n))return;let s=Object.keys(n).map(o=>({key:o}));if(s.length!==0){for(let{value:o}of e)if(!X(o)||Object.keys(o).length!==s.length||s.some(a=>!Object.prototype.hasOwnProperty.call(o,a.key)))return;for(let o of s){let i=e.map(({value:c})=>({value:c[o.key]}));if(i.every(({value:c})=>at(c)))continue;if(t.primitiveArrayColumns&&i.every(({value:c})=>Array.isArray(c)&&c.every(at))){o.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:c})=>Array.isArray(c))){let c=Lp(i.map(({value:l})=>l));if(c!==void 0){o.fixedLength=c.fixedLength,o.fixedDelimiter=t.delimiter;continue}let u=$a(i.flatMap(({value:l})=>l.map(p=>({value:p}))),t,r+1);if(u!==void 0){o.children=u,o.childTable=!0;continue}}if(!t.nestedTabularHeaders)return;let a=$a(i,t,r+1);if(a===void 0)return;o.children=a}return s}}function gk(e,t){if(!t.objectArrayColumns)return;let r=Lp(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function Lp(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(at)))return{fixedLength:t}}function Ma(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.childTable===!0?[{path:n,childFields:r.children}]:r.fixedLength!==void 0?[{path:n,fixedLength:r.fixedLength}]:r.children===void 0?[{path:n,listDelimiter:r.listDelimiter}]:Ma(r.children,n)})}function Ba(e,t){let r=e;for(let n of t)r=r[n];return r}function ja(e,t){return e.listDelimiter!==void 0?`${ae(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ae(e.key)}[${e.fixedLength}${Fa(t)}]`:e.children===void 0?ae(e.key):`${ae(e.key)}{${e.children.map(r=>ja(r,t)).join(t)}}`}function Ua(e,t,r,n,s,o){return t.childFields!==void 0?(hk(s,e,t.childFields,n,o),String(e.length)):t.fixedLength!==void 0?e.map(i=>Ee(i,r)).join(r):t.listDelimiter===void 0?Ee(e,r):e.map(i=>yk(i,r,t.listDelimiter)).join(t.listDelimiter)}function hk(e,t,r,n,s){for(let o of t){Jr(e,s);let i=[];e.push(Ma(r).map(a=>Ua(Ba(o,a.path),a,n.delimiter,n,i,s+1)).join(n.delimiter)),e.push(`
33
- `),e.push(...i)}}function yk(e,t,r){return typeof e!="string"?Ee(e,t):ka(e,t)||e.includes(r)?ro(e):e}var Dp=h(()=>{kt();fr();Ur();$n();Sa();Ca()});var jn=h(()=>{Ur();Ap();$n();Dp()});var Gp=h(()=>{jn()});function Ek(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw j(t,"invalid trailer count");return Number.parseInt(r,10)}function Jp(e,t){if(!Wp.test(e))throw j(t,"invalid tag")}function Rk(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!Wp.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw j(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function kk(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw j(t,"invalid header");let s=r.slice(0,n),o=s.startsWith("~"),i=o?s.slice(1):s;if(!o&&i.startsWith("="))return null;if(!Hp.includes(i)&&i!=="")throw j(t,"invalid header delimiter");let a=i===""?Q:i,c=r.slice(n+1),u=null;if(!o&&c.startsWith("<")){let d=c.indexOf(">");if(d===-1)throw j(t,"invalid tag");if(u=c.slice(1,d),Jp(u,t),i!=="")throw j(t,"invalid header delimiter");c=c.slice(d+1)}if(!c.startsWith("{")||!c.endsWith("}:"))throw j(t,"invalid header");let l=c.slice(1,-2),p;try{p=We(l,a,t).map(d=>qe(d,t)[0])}catch(d){throw jr(d)}if(p.length===0||p.some(d=>d===""))throw j(t,"invalid header fields");return{delimiter:a,fields:p,fieldText:l,continuation:o,tag:u}}function Sk(e,t,r){if(e===null||e.delimiter===void 0)throw j(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw j(r,"continuation header mismatch")}function $p(e,t,r,n){let s;try{s=We(e,t,n)}catch(o){throw jr(o)}if(s.length!==r)throw j(n,"row arity mismatch");for(let o of s)try{Ge(o,n)}catch(i){throw jr(i)}return s}function Tk(e,t,r){let n={};return e.forEach((s,o)=>{try{Je(n,s,Ge(t[o],r))}catch(i){throw jr(i)}}),n}function vk(e,t,r){if(e.startsWith("- "))throw j(t,"reserved line prefix");let n=Ek(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw j(t,"trailer without header");if(r.rowCount!==n)throw j(t,"trailer count mismatch");return{kind:"trailer"}}let s=kk(e,t);if(s!==null)return s.continuation?(Sk(r,s,t),{kind:"continuation"}):s.tag!==null?{kind:"tag-header",header:s}:{kind:"header",header:s};let o=Rk(e,t);if(o!==null){let i=r?.taggedLanes?.get(o.tag);if(i===void 0)throw j(t,"unknown tag");return{kind:"tagged-row",tag:o.tag,cells:$p(o.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw j(t,"row before header");return{kind:"row",cells:$p(e,r.delimiter,r.fields.length,t)}}function xk(e,t={}){let r=[],n=new Map,s=[],o=[],i=null,a=!1,c=!1;function u(g,f){let k=o.at(-1);if(k!==void 0&&k.lane===g.lane&&k.delimiter===g.delimiter&&k.fieldText===g.fieldText){k.rows.push(f);return}o.push({lane:g.lane,delimiter:g.delimiter,fields:g.fields,fieldText:g.fieldText,rows:[f]})}function l(){i!==null&&s.push({delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,lane:i.lane,rows:i.rows})}function p(g,f,k){let E=n.get(g);if(E===void 0){if(n.size>=qp)throw j(k,"too many tagged lanes");E={segments:[],current:null},n.set(g,E),r.push(g)}else E.current!==null&&E.segments.push(E.current);E.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},E.delimiter=f.delimiter,E.fields=f.fields,E.fieldText=f.fieldText}if(to(e).forEach((g,f)=>{let k=f+1;if(g==="")return;let E=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},y=vk(g,k,E);if(y.kind==="trailer"){l(),i=null;return}if(y.kind!=="continuation"){if(y.kind==="tag-header"){c=!0,p(y.header.tag,y.header,k);return}if(y.kind==="header"){l(),a||(r.push(null),a=!0),i={lane:null,delimiter:y.header.delimiter,fields:y.header.fields,fieldText:y.header.fieldText,rows:[]};return}if(y.kind==="tagged-row"){c=!0;let _=n.get(y.tag).current;_.rows.push(y.cells),u(_,y.cells);return}if(i===null)throw j(k,"row before header");i.rows.push(y.cells),u(i,y.cells)}}),!c)return l(),t.preserveInterleaving===!0,s;let d=[];l();for(let g of r){if(g===null){d.push(...s);continue}let f=n.get(g);d.push(...f.segments),f.current!==null&&d.push(f.current)}return t.preserveInterleaving===!0?o:d}function Ut(e){return xk(e).flatMap(t=>t.rows.map(r=>Tk(t.fields,r,0)))}function Ck(e){if(!Hp.includes(e))throw j(0,"invalid header delimiter")}function Np(e,t,r=!1){return`[${`${r?"~":""}${e===Q?"":e}`}]{${t}}:
34
- `}function Fp(e,t){return`[]<${e}>{${t}}:
35
- `}function Ha(e,t){return t.map(ae).join(e)}function Ok(e){if(!Array.isArray(e)||e.length===0)throw j(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=qe(String(t),0)}catch(n){throw jr(n)}if(r==="")throw j(0,"TOONL header requires fields");return r})}function Mp(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Bp(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw j(0,"TOONL continuation cadence must be positive")}function Ak(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function jp(e){if(e===null||typeof e!="object"||Array.isArray(e))throw j(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw j(0,"TOONL output requires object rows");if(t.some(r=>!at(e[r])))throw j(0,"TOONL rows must be flat objects");return t}function Pk(e){return JSON.stringify([...e].sort())}function Up(e,t){let r=Pk(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function Ht({delimiter:e=Q,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){Ck(e),Bp(r),Bp(n);let s=null,o="",i=new Map,a=0,c=0,u=0,l=new Map,p=!1,d={continuationEveryRows:r,continuationEveryBytes:n},g=()=>s===null||!t?"":`[=${a}]
36
- `,f=()=>Ak(d,c,u)?(c=0,u=0,Np(e,o,!0)):"",k=E=>{Jp(E,0);let y=l.get(E);if(y===void 0){if(l.size>=qp)throw j(0,"too many tagged lanes");y={fields:null,fieldsByShape:new Map},l.set(E,y)}return y};return{push(E){if(p)throw j(0,"TOONL encoder is closed");let y=Up(jp(E),i),_="";(s===null||s.length!==y.length||s.some((G,B)=>G!==y[B]))&&(_+=g(),s=y,o=Ha(e,s),a=0,c=0,u=0,_+=Np(e,o));let T=s.map(G=>Ee(E[G],e));_+=f();let v=`${T.join(e)}
37
- `;return _+=v,a+=1,c+=1,u+=v.length,_},declareLane(E,y){if(p)throw j(0,"TOONL encoder is closed");let _=Ok(y),T=Ha(Q,_),v=k(E);return Mp(v.fields,_)?"":(v.fields=_,Fp(E,T))},pushTagged(E,y){if(p)throw j(0,"TOONL encoder is closed");let _=k(E),T=Up(jp(y),_.fieldsByShape),v=Ha(Q,T),G=T.map(V=>Ee(y[V],Q)),B="";return Mp(_.fields,T)||(_.fields=T,B+=Fp(E,v)),`${B}${E}:${G.join(Q)}
38
- `},end(){return p?"":(p=!0,g())}}}var Hp,qp,Wp,gN,hN,Vp=h(()=>{kt();jn();fr();Hp=[Q,"|"," "],qp=8,Wp=/^[A-Za-z0-9_-]+$/,gN=new TextEncoder,hN=new TextDecoder});var W=h(()=>{op();kt();jn();jn();Gp();Vp()});function Lk(e){return e==="no-op"?0:e==="usage"?2:1}function J(e){return Buffer.from(`${$(qa(e))}
39
- `)}function qa(e){let t={command:e.command,category:e.category,exit_code:e.exitCode??Lk(e.category),error:e.error,help:[e.help]};return e.validFlags&&e.validFlags.length>0&&(t.valid_flags=[...e.validFlags]),e.diagnostics&&(t.diagnostics=Dk(e.diagnostics,3)),t}function Ve(e,t,r){let s=([r,t].find(i=>i.trim())??"").trim(),o=s.toLowerCase();return/\bgh\b/.test(e)&&np(s)?{command:e,category:"transient",error:Un(s)||"GitHub API rate limit exceeded",help:rp,diagnostics:s}:/\bgh\b/.test(e)&&(o.includes("gh_token")||o.includes("not logged in")||o.includes("authentication"))?{command:e,category:"real-error",error:Un(s)||"GitHub authentication failed",help:"gh auth login",diagnostics:s}:o.includes("not a git repository")?{command:e,category:"real-error",error:Un(s)||"not a git repository",help:"git status",diagnostics:s}:o.includes("repository not found")||o.includes("could not resolve host")?{command:e,category:"real-error",error:Un(s)||"repository is unavailable",help:e.startsWith("gh ")?"gh repo view":"git remote -v",diagnostics:s}:{command:e,category:"real-error",error:Un(s)||"command failed",help:`${e} --help`,diagnostics:s}}function Kp(e,t,r,n){return J({command:e,category:"usage",error:`unknown flag: ${t}`,help:n,validFlags:r})}function Un(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function Dk(e,t){return e.split(/\r?\n/).slice(0,t).join(`
40
- `).trim()}var ut=h(()=>{"use strict";sp();W()});function lo(e){let t={app:e,version:Wk(Kr("__RED_BUILD_VERSION__",()=>"3.5.1")??"0.0.0-dev"),gitSha:Kr("__RED_BUILD_GIT_SHA__",()=>"3a85e059fd10de65880fd7233fc71449463b03d1")??"unknown",buildTime:Kr("__RED_BUILD_TIME__",()=>"2026-08-05T02:34:10Z")??"unknown",bundleAsset:Kr("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},r=Kr("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=Kr("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function Wk(e){return e.startsWith("v")?e.slice(1):e}function nm(e){return`${e.app} ${e.version} ${e.gitSha}`}function Kr(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Ja=h(()=>{});import{isAbsolute as Jk,join as St,resolve as Va}from"node:path";function zk(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}function om(e){return St(zk(e),sm)}function im(e){return St(om(e),"state")}function am(e){return St(om(e),"tmp")}function ne(e){return St(im(e),"rsp")}function Yk(e){return St(im(e),"red-skills.rdb")}function Qk(e){return St(am(e),"red-skills.rdb")}function lm(e,t){let r=Yk(e);if(t(r))return r;let n=Qk(e);if(t(n))throw Xk();return r}function Xk(){return new Error("Legacy shared store found at .red/tmp/red-skills.rdb. Run `rsp setup` to migrate it to .red/state/red-skills.rdb before using rsp, memory, or brain.")}function dm(e){return St(am(e),"waits")}function pm(e){let t=e.overrideEnvVars??Ka;for(let n of t){let s=e.env[n];if(s)return Jk(s)?s:Va(e.startDir,s)}let r=Va(e.startDir);for(;;){if(e.exists(St(r,sm)))return r;let n=St(r,".."),s=Va(n);if(s===r)break;r=s}return e.startDir}var sm,Vk,Kk,Ka,cm,um,$e=h(()=>{sm=".red",Vk="MEMORY_ROOT",Kk="RED_BRAIN_ROOT",Ka=[Vk,Kk];cm=".red/state/red-skills.rdb";um=".red/tmp/red-skills.rdb"});function se(e){return $(e,{keyedMapCollapse:!0})}var Zk,eS,XN,Tt=h(()=>{W();$e();Zk=[{id:"memory.config",plugin:"memory",legacyPath:".red/memory/config.json",toonPath:".red/memory/config.toon",kind:"toon"}],eS=[{id:"dev.afk-history",plugin:"dev",legacyPath:".red/state/afk-history.jsonl",toonPath:".red/state/castle/history.toonl",kind:"toonl"},{id:"dev.agent-log",plugin:"dev",legacyPath:".red/tmp/agent.log.toonl",toonPath:".red/tmp/agent.log.toonl",kind:"toonl"},{id:"dev.supervisor-firehose",plugin:"dev",legacyPath:".red/tmp/afk-supervisor.log.toonl",toonPath:".red/tmp/supervisors/default/supervisor.log.toonl",kind:"toonl",migration:"sniff-read"},{id:"dev.code-understanding-bench-runs",plugin:"dev",legacyPath:".red/tmp/bench/code-understanding/runs.jsonl",toonPath:".red/tmp/bench/code-understanding/runs.toonl",kind:"toonl"},{id:"dev.attempt-state",plugin:"dev",legacyPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",toonPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",kind:"toon"},{id:"dev.statusline-count-cache",plugin:"dev",legacyPath:".red/tmp/statusline-cache.json",toonPath:".red/state/statusline/statusline-cache.toon",kind:"toon"},{id:"dev.statusline-repo-cache",plugin:"dev",legacyPath:".red/tmp/statusline-repo-cache.json",toonPath:".red/state/statusline/statusline-repo-cache.toon",kind:"toon"},{id:"dev.rsp-resident-registry",plugin:"dev",legacyPath:".red/state/rsp/rsp-resident.pid.json",toonPath:".red/state/rsp/rsp-resident.pid.json",kind:"toon"},{id:"dev.rsp-status-summary",plugin:"dev",legacyPath:".red/state/rsp/rsp-status-summary.json",toonPath:".red/state/rsp/rsp-status-summary.json",kind:"toon"},{id:"dev.rsp-wait-registry",plugin:"dev",legacyPath:".red/tmp/waits/*.json",toonPath:".red/tmp/waits/*.json",kind:"toon"}],XN=[...Zk,...eS]});function Hn(e){let{values:t,rest:r}=dr(e,{query:mm.query},fm);return{argv:r,query:t.query?.trim()||void 0}}function gm(e){let{values:t,rest:r}=dr(e,mm,fm);return{argv:r,query:t.query?.trim()||void 0,full:t.full===!0}}function tS(e,t){if(!t)return!0;let r=za(e).toLowerCase();return t.toLowerCase().split(/\s+/).filter(Boolean).every(n=>r.includes(n))}function Re(e,t){return t?e.filter(r=>tS(r,t)):[...e]}function vt(e,t){return Ya(e,t,{includeLegacyHelp:!0})}function Ya(e,t,r={}){let n=t.filter(Boolean);return n.length===0?e:{...e,...r.includeLegacyHelp?{help:n}:{},next_steps:n}}function za(e){return Array.isArray(e)?e.map(za).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(za).join(" "):String(e??"")}var mm,fm,qn=h(()=>{"use strict";Ra();mm={query:{kind:"value",coerce:e=>e},full:{kind:"boolean"}},fm={stopAtSeparator:!1}});var wo={};K(wo,{DEFAULT_RSP_MAX_OVERHEAD_MS:()=>po,DEFAULT_RSP_MAX_SELF_STATE_BYTES:()=>mo,DEFAULT_RSP_OVERHEAD_CEILING:()=>Ke,DEFAULT_RSP_OVERHEAD_CONSECUTIVE_BREACHES:()=>go,DEFAULT_RSP_OVERHEAD_COOLDOWN_MS:()=>ho,DEFAULT_RSP_OVERHEAD_NET_LOSS_FLOOR_BYTES:()=>fo,RSP_OVERHEAD_FAMILIES:()=>cS,RSP_OVERHEAD_LEDGER_FILE:()=>bm,RSP_OVERHEAD_SCHEMA_VERSION:()=>wm,classifyOverheadSample:()=>Za,noteChildProcessMs:()=>Em,noteSelfStateBytesRead:()=>Vn,overheadCounters:()=>Kn,overheadFamilyDisabled:()=>tc,overheadHealth:()=>Wt,overheadLedgerPath:()=>ec,overheadMsOf:()=>_m,overheadTelemetryFields:()=>yo,readOverheadLedger:()=>Wn,readSelfStateFile:()=>bo,readSelfStateFileSync:()=>dS,recordOverheadSample:()=>Jn,resetOverheadCounters:()=>lS,resetOverheadLedger:()=>uS,startChildProcessTimer:()=>ke});import{existsSync as rS,mkdirSync as nS,readFileSync as hm,renameSync as sS,writeFileSync as oS}from"node:fs";import{readFile as iS}from"node:fs/promises";import{dirname as aS,join as ym}from"node:path";function _m(e){let t=e.wrapperMs-e.childMs;return Number.isFinite(t)?Math.max(0,Xa(t)):0}function Za(e,t=Ke){let r=_m(e),n=[];return r>t.maxOverheadMs&&n.push("wall-clock-ceiling"),e.selfStateBytesRead>t.maxSelfStateBytes&&n.push("self-state-byte-ceiling"),e.selfStateBytesRead>t.netLossFloorBytes&&e.selfStateBytesRead>e.bytesSaved&&n.push("overhead-exceeds-savings"),{overhead_ms:r,breached:n.length>0,reasons:n}}function yo(e,t=Ke){let r=Za(e,t);return{wrapper_ms:Xa(e.wrapperMs),overhead_ms:r.overhead_ms,child_ms:Xa(Math.max(0,e.childMs)),self_state_bytes_read:Math.max(0,Math.trunc(e.selfStateBytesRead)),bytes_saved:Math.max(0,Math.trunc(e.bytesSaved)),overhead_breached:r.breached,overhead_breach_reasons:r.reasons.join(",")}}function ec(e){return ym(ne(e),bm)}function Wn(e){try{let t=hm(ec(e),"utf8"),r=gS(t);if(hS(r))return r}catch{}return{version:1,families:{}}}function Jn(e,t,r=Ke,n=Date.now()){let s=Wn(e),o=Za(t,r),i=s.families[t.family]??fS(t.family,n),a=sc(i,n)?Rm(i):i,c=o.breached?a.consecutive_breaches+1:0,u={...a,family:t.family,invocations:a.invocations+1,breaches:a.breaches+(o.breached?1:0),consecutive_breaches:c,breached:o.breached,reasons:o.reasons,last_overhead_ms:o.overhead_ms,last_self_state_bytes_read:Math.max(0,Math.trunc(t.selfStateBytesRead)),last_bytes_saved:Math.max(0,Math.trunc(t.bytesSaved)),updated_at:new Date(n).toISOString()};return o.breached?c>=r.consecutiveBreaches&&(u.disabled=!0,u.disabled_at=new Date(n).toISOString(),u.disabled_until=new Date(n+r.cooldownMs).toISOString(),u.disabled_reason=pS(t.family,c,o,r)):(u.disabled=!1,u.disabled_at=null,u.disabled_until=null,u.disabled_reason=null),s.families[t.family]=u,km(e,s),u}function tc(e,t,r=Date.now()){let n=Wn(e).families[t];return!n?.disabled||sc(n,r)?null:n}function uS(e,t){let r=Wn(e);return t?delete r.families[t]:r.families={},km(e,r),r}function Wt(e,t=Ke,r=Date.now()){let n=Object.values(Wn(e).families).map(a=>sc(a,r)?Rm(a):a).sort((a,c)=>a.family.localeCompare(c.family)),s=n.filter(a=>a.disabled),o=n.filter(a=>a.consecutive_breaches>0),i=s.length>0||o.length>0?"red":"green";return{schema_version:wm,verdict:i,summary:mS(i,s,o),ceiling:t,breaching_families:o,disabled_families:s,families:n}}function Vn(e){Number.isFinite(e)&&e>0&&(rc+=e)}function Em(e){Number.isFinite(e)&&e>0&&(nc+=e)}function Kn(){return{selfStateBytesRead:rc,childMs:nc}}function lS(){rc=0,nc=0}function ke(){let e=process.hrtime.bigint(),t=!1;return()=>{t||(t=!0,Em(Number(process.hrtime.bigint()-e)/1e6))}}async function bo(e){let t=await iS(e,"utf8");return Vn(Buffer.byteLength(t)),t}function dS(e){let t=hm(e,"utf8");return Vn(Buffer.byteLength(t)),t}function pS(e,t,r,n){let s=r.reasons.map(o=>o==="wall-clock-ceiling"?`added ${r.overhead_ms}ms > ${n.maxOverheadMs}ms`:o==="self-state-byte-ceiling"?`self-state read > ${n.maxSelfStateBytes}B`:"self-state read exceeded bytes saved").join("; ");return`rsp ${e} exceeded its overhead ceiling on ${t} consecutive invocations (${s}); wrapper self-disabled, commands pass through raw`}function mS(e,t,r){if(e==="green")return"every wrapper family is inside its overhead ceiling";let n=[];return t.length>0&&n.push(`self-disabled: ${t.map(s=>`${s.family} (${s.reasons.join(",")||"ceiling"})`).join(", ")}`),r.length>0&&n.push(`breaching: ${r.map(s=>`${s.family} x${s.consecutive_breaches}`).join(", ")}`),n.join("; ")}function sc(e,t){if(!e.disabled||!e.disabled_until)return!1;let r=Date.parse(e.disabled_until);return Number.isFinite(r)&&r<=t}function Rm(e){return{...e,disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,consecutive_breaches:0,breached:!1,reasons:[]}}function fS(e,t){return{family:e,invocations:0,breaches:0,consecutive_breaches:0,breached:!1,reasons:[],disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,last_overhead_ms:0,last_self_state_bytes_read:0,last_bytes_saved:0,updated_at:new Date(t).toISOString()}}function km(e,t){try{let r=ec(e);if(!rS(ym(e,".red")))return;nS(aS(r),{recursive:!0});let n=`${r}.${process.pid}.tmp`;oS(n,`${$(t)}
41
- `,{encoding:"utf8",mode:384}),sS(n,r)}catch{}}function gS(e){try{return JSON.parse(e)}catch{return H(e)}}function hS(e){return!Qa(e)||e.version!==1||!Qa(e.families)?!1:Object.values(e.families).every(yS)}function yS(e){return Qa(e)&&typeof e.family=="string"&&typeof e.consecutive_breaches=="number"&&typeof e.disabled=="boolean"}function Qa(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Xa(e){return Number.isFinite(e)?Math.round(e*1e3)/1e3:0}var bm,wm,po,mo,fo,go,ho,cS,Ke,rc,nc,oe=h(()=>{"use strict";$e();W();bm="overhead-budget.toon",wm="red.rsp.overhead.v1",po=250,mo=1024*1024,fo=64*1024,go=3,ho=6*60*60*1e3,cS=["git","gh","gh-api-json","vitest","cargo","cat","exec","proxy"],Ke={maxOverheadMs:po,maxSelfStateBytes:mo,netLossFloorBytes:fo,consecutiveBreaches:go,cooldownMs:ho};rc=0,nc=0});function vm(e){return e.trimStart().startsWith("{")?"json":"toon"}function ic(e){let t=0;for(;e[t]===`
42
- `||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=vm(r);if(n==="json"){let o=r.indexOf(`
26
+ `);return}if(r.every(ot)){Ba(e,t,r.length,void 0,o.delimiter),e.push(" "),e.push(r.map(a=>Ee(a,o.delimiter)).join(o.delimiter)),e.push(`
27
+ `);return}let i=s?void 0:Hp(r,o,n+1);if(i!==void 0){Ba(e,t,r.length,i.fields,o.delimiter),e.push(`
28
+ `);for(let a of r){Jr(e,n+1);let c=[];e.push(i.paths.map(u=>Ka(Ja(a,u.path),u,o.delimiter,o,c,n+2)).join(o.delimiter)),e.push(`
29
+ `),e.push(...c)}return}Ba(e,t,r.length,void 0,o.delimiter),e.push(`
30
+ `);for(let a of r)Jr(e,n+1),Pk(e,a,n+1,o)}function Pk(e,t,r,n){if(it(r,0,n),Array.isArray(t)){e.push("- "),Ha(e,void 0,t,r,!0,n);return}if(Z(t)){let s=Object.entries(t);if(s.length===0){e.push(`-
31
+ `);return}e.push("- "),ja(e,s[0][0],s[0][1],r+1,n);for(let[o,i]of s.slice(1))Jr(e,r+1),ja(e,o,i,r+1,n);return}e.push("- ",Ee(t,n.delimiter),`
32
+ `)}function Ba(e,t,r,n,s){t!==void 0&&e.push(ie(t)),e.push("[",String(r),qa(s),"]"),n!==void 0&&e.push("{",n.map(o=>Va(o,s)).join(s),"}"),e.push(":")}function qa(e){return e===Q?"":e}function Hp(e,t,r){let n=Lk(e,t);if(n!==void 0)return n;let s=Ua(e.map(o=>({value:o})),t,r);return s===void 0?void 0:{fields:s,paths:Wa(s)}}function Ik(e,t,r){let n=Object.values(e);if(!(n.length<2))return Hp(n,t,r)}function Ua(e,t,r){it(r,0,t);let n=e[0]?.value;if(!Z(n))return;let s=Object.keys(n).map(o=>({key:o}));if(s.length!==0){for(let{value:o}of e)if(!Z(o)||Object.keys(o).length!==s.length||s.some(a=>!Object.prototype.hasOwnProperty.call(o,a.key)))return;for(let o of s){let i=e.map(({value:c})=>({value:c[o.key]}));if(i.every(({value:c})=>ot(c)))continue;if(t.primitiveArrayColumns&&i.every(({value:c})=>Array.isArray(c)&&c.every(ot))){o.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:c})=>Array.isArray(c))){let c=qp(i.map(({value:l})=>l));if(c!==void 0){o.fixedLength=c.fixedLength,o.fixedDelimiter=t.delimiter;continue}let u=Ua(i.flatMap(({value:l})=>l.map(d=>({value:d}))),t,r+1);if(u!==void 0){o.children=u,o.childTable=!0;continue}}if(!t.nestedTabularHeaders)return;let a=Ua(i,t,r+1);if(a===void 0)return;o.children=a}return s}}function Lk(e,t){if(!t.objectArrayColumns)return;let r=qp(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function qp(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(ot)))return{fixedLength:t}}function Wa(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.childTable===!0?[{path:n,childFields:r.children}]:r.fixedLength!==void 0?[{path:n,fixedLength:r.fixedLength}]:r.children===void 0?[{path:n,listDelimiter:r.listDelimiter}]:Wa(r.children,n)})}function Ja(e,t){let r=e;for(let n of t)r=r[n];return r}function Va(e,t){return e.listDelimiter!==void 0?`${ie(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ie(e.key)}[${e.fixedLength}${qa(t)}]`:e.children===void 0?ie(e.key):`${ie(e.key)}{${e.children.map(r=>Va(r,t)).join(t)}}`}function Ka(e,t,r,n,s,o){return t.childFields!==void 0?(Gk(s,e,t.childFields,n,o),String(e.length)):t.fixedLength!==void 0?e.map(i=>Ee(i,r)).join(r):t.listDelimiter===void 0?Ee(e,r):e.map(i=>Dk(i,r,t.listDelimiter)).join(t.listDelimiter)}function Gk(e,t,r,n,s){for(let o of t){Jr(e,s);let i=[];e.push(Wa(r).map(a=>Ka(Ja(o,a.path),a,n.delimiter,n,i,s+1)).join(n.delimiter)),e.push(`
33
+ `),e.push(...i)}}function Dk(e,t,r){return typeof e!="string"?Ee(e,t):Oa(e,t)||e.includes(r)?so(e):e}var Wp=h(()=>{Rt();fr();Ur();$n();Aa();Ga()});var jn=h(()=>{Ur();jp();$n();Wp()});var Jp=h(()=>{jn()});function Mk(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw j(t,"invalid trailer count");return Number.parseInt(r,10)}function nm(e,t){if(!rm.test(e))throw j(t,"invalid tag")}function Bk(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!rm.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw j(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function jk(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw j(t,"invalid header");let s=r.slice(0,n),o=s.startsWith("~"),i=o?s.slice(1):s;if(!o&&i.startsWith("="))return null;if(!em.includes(i)&&i!=="")throw j(t,"invalid header delimiter");let a=i===""?Q:i,c=r.slice(n+1),u=null;if(!o&&c.startsWith("<")){let p=c.indexOf(">");if(p===-1)throw j(t,"invalid tag");if(u=c.slice(1,p),nm(u,t),i!=="")throw j(t,"invalid header delimiter");c=c.slice(p+1)}if(!c.startsWith("{")||!c.endsWith("}:"))throw j(t,"invalid header");let l=c.slice(1,-2),d;try{d=Ve(l,a,t).map(p=>Je(p,t)[0])}catch(p){throw jr(p)}if(d.length===0||d.some(p=>p===""))throw j(t,"invalid header fields");return{delimiter:a,fields:d,fieldText:l,continuation:o,tag:u}}function Uk(e,t,r){if(e===null||e.delimiter===void 0)throw j(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw j(r,"continuation header mismatch")}function Vp(e,t,r,n){let s;try{s=Ve(e,t,n)}catch(o){throw jr(o)}if(s.length!==r)throw j(n,"row arity mismatch");for(let o of s)try{Fe(o,n)}catch(i){throw jr(i)}return s}function Hk(e,t,r){let n={};return e.forEach((s,o)=>{try{Ke(n,s,Fe(t[o],r))}catch(i){throw jr(i)}}),n}function qk(e,t,r){if(e.startsWith("- "))throw j(t,"reserved line prefix");let n=Mk(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw j(t,"trailer without header");if(r.rowCount!==n)throw j(t,"trailer count mismatch");return{kind:"trailer"}}let s=jk(e,t);if(s!==null)return s.continuation?(Uk(r,s,t),{kind:"continuation"}):s.tag!==null?{kind:"tag-header",header:s}:{kind:"header",header:s};let o=Bk(e,t);if(o!==null){let i=r?.taggedLanes?.get(o.tag);if(i===void 0)throw j(t,"unknown tag");return{kind:"tagged-row",tag:o.tag,cells:Vp(o.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw j(t,"row before header");return{kind:"row",cells:Vp(e,r.delimiter,r.fields.length,t)}}function Wk(e,t={}){let r=[],n=new Map,s=[],o=[],i=null,a=!1,c=!1;function u(g,f){let k=o.at(-1);if(k!==void 0&&k.lane===g.lane&&k.delimiter===g.delimiter&&k.fieldText===g.fieldText){k.rows.push(f);return}o.push({lane:g.lane,delimiter:g.delimiter,fields:g.fields,fieldText:g.fieldText,rows:[f]})}function l(){i!==null&&s.push({delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,lane:i.lane,rows:i.rows})}function d(g,f,k){let E=n.get(g);if(E===void 0){if(n.size>=tm)throw j(k,"too many tagged lanes");E={segments:[],current:null},n.set(g,E),r.push(g)}else E.current!==null&&E.segments.push(E.current);E.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},E.delimiter=f.delimiter,E.fields=f.fields,E.fieldText=f.fieldText}if(no(e).forEach((g,f)=>{let k=f+1;if(g==="")return;let E=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},y=qk(g,k,E);if(y.kind==="trailer"){l(),i=null;return}if(y.kind!=="continuation"){if(y.kind==="tag-header"){c=!0,d(y.header.tag,y.header,k);return}if(y.kind==="header"){l(),a||(r.push(null),a=!0),i={lane:null,delimiter:y.header.delimiter,fields:y.header.fields,fieldText:y.header.fieldText,rows:[]};return}if(y.kind==="tagged-row"){c=!0;let _=n.get(y.tag).current;_.rows.push(y.cells),u(_,y.cells);return}if(i===null)throw j(k,"row before header");i.rows.push(y.cells),u(i,y.cells)}}),!c)return l(),t.preserveInterleaving===!0,s;let p=[];l();for(let g of r){if(g===null){p.push(...s);continue}let f=n.get(g);p.push(...f.segments),f.current!==null&&p.push(f.current)}return t.preserveInterleaving===!0?o:p}function kt(e){return Wk(e).flatMap(t=>t.rows.map(r=>Hk(t.fields,r,0)))}function Jk(e){if(!em.includes(e))throw j(0,"invalid header delimiter")}function Kp(e,t,r=!1){return`[${`${r?"~":""}${e===Q?"":e}`}]{${t}}:
34
+ `}function zp(e,t){return`[]<${e}>{${t}}:
35
+ `}function za(e,t){return t.map(ie).join(e)}function Vk(e){if(!Array.isArray(e)||e.length===0)throw j(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=Je(String(t),0)}catch(n){throw jr(n)}if(r==="")throw j(0,"TOONL header requires fields");return r})}function Yp(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Qp(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw j(0,"TOONL continuation cadence must be positive")}function Kk(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function Xp(e){if(e===null||typeof e!="object"||Array.isArray(e))throw j(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw j(0,"TOONL output requires object rows");if(t.some(r=>!ot(e[r])))throw j(0,"TOONL rows must be flat objects");return t}function zk(e){return JSON.stringify([...e].sort())}function Zp(e,t){let r=zk(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function St({delimiter:e=Q,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){Jk(e),Qp(r),Qp(n);let s=null,o="",i=new Map,a=0,c=0,u=0,l=new Map,d=!1,p={continuationEveryRows:r,continuationEveryBytes:n},g=()=>s===null||!t?"":`[=${a}]
36
+ `,f=()=>Kk(p,c,u)?(c=0,u=0,Kp(e,o,!0)):"",k=E=>{nm(E,0);let y=l.get(E);if(y===void 0){if(l.size>=tm)throw j(0,"too many tagged lanes");y={fields:null,fieldsByShape:new Map},l.set(E,y)}return y};return{push(E){if(d)throw j(0,"TOONL encoder is closed");let y=Zp(Xp(E),i),_="";(s===null||s.length!==y.length||s.some((L,F)=>L!==y[F]))&&(_+=g(),s=y,o=za(e,s),a=0,c=0,u=0,_+=Kp(e,o));let T=s.map(L=>Ee(E[L],e));_+=f();let C=`${T.join(e)}
37
+ `;return _+=C,a+=1,c+=1,u+=C.length,_},declareLane(E,y){if(d)throw j(0,"TOONL encoder is closed");let _=Vk(y),T=za(Q,_),C=k(E);return Yp(C.fields,_)?"":(C.fields=_,zp(E,T))},pushTagged(E,y){if(d)throw j(0,"TOONL encoder is closed");let _=k(E),T=Zp(Xp(y),_.fieldsByShape),C=za(Q,T),L=T.map(q=>Ee(y[q],Q)),F="";return Yp(_.fields,T)||(_.fields=T,F+=zp(E,C)),`${F}${E}:${L.join(Q)}
38
+ `},end(){return d?"":(d=!0,g())}}}var em,tm,rm,eF,tF,sm=h(()=>{Rt();jn();fr();em=[Q,"|"," "],tm=8,rm=/^[A-Za-z0-9_-]+$/,eF=new TextEncoder,tF=new TextDecoder});var J=h(()=>{hp();Rt();jn();jn();Jp();sm()});function Qk(e){return e==="no-op"?0:e==="usage"?2:1}function V(e){return Buffer.from(`${$(Ya(e))}
39
+ `)}function Ya(e){let t={command:e.command,category:e.category,exit_code:e.exitCode??Qk(e.category),error:e.error,help:[e.help]};return e.validFlags&&e.validFlags.length>0&&(t.valid_flags=[...e.validFlags]),e.diagnostics&&(t.diagnostics=Xk(e.diagnostics,3)),t}function ze(e,t,r){let s=([r,t].find(i=>i.trim())??"").trim(),o=s.toLowerCase();return/\bgh\b/.test(e)&&fp(s)?{command:e,category:"transient",error:Un(s)||"GitHub API rate limit exceeded",help:mp,diagnostics:s}:/\bgh\b/.test(e)&&(o.includes("gh_token")||o.includes("not logged in")||o.includes("authentication"))?{command:e,category:"real-error",error:Un(s)||"GitHub authentication failed",help:"gh auth login",diagnostics:s}:o.includes("not a git repository")?{command:e,category:"real-error",error:Un(s)||"not a git repository",help:"git status",diagnostics:s}:o.includes("repository not found")||o.includes("could not resolve host")?{command:e,category:"real-error",error:Un(s)||"repository is unavailable",help:e.startsWith("gh ")?"gh repo view":"git remote -v",diagnostics:s}:{command:e,category:"real-error",error:Un(s)||"command failed",help:`${e} --help`,diagnostics:s}}function om(e,t,r,n){return V({command:e,category:"usage",error:`unknown flag: ${t}`,help:n,validFlags:r})}function Un(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function Xk(e,t){return e.split(/\r?\n/).slice(0,t).join(`
40
+ `).trim()}var at=h(()=>{"use strict";gp();J()});function mo(e){let t={app:e,version:uS(Kr("__RED_BUILD_VERSION__",()=>"3.6.1")??"0.0.0-dev"),gitSha:Kr("__RED_BUILD_GIT_SHA__",()=>"5f73bf02fefcc45a6db23cb383cdf200334eb379")??"unknown",buildTime:Kr("__RED_BUILD_TIME__",()=>"2026-08-05T05:56:23Z")??"unknown",bundleAsset:Kr("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},r=Kr("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=Kr("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function uS(e){return e.startsWith("v")?e.slice(1):e}function fm(e){return`${e.app} ${e.version} ${e.gitSha}`}function Kr(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Xa=h(()=>{});import{isAbsolute as lS,join as Tt,resolve as Za}from"node:path";function mS(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}function hm(e){return Tt(mS(e),gm)}function ym(e){return Tt(hm(e),"state")}function bm(e){return Tt(hm(e),"tmp")}function X(e){return Tt(ym(e),"rsp")}function fS(e){return Tt(ym(e),"red-skills.rdb")}function gS(e){return Tt(bm(e),"red-skills.rdb")}function Em(e,t){let r=fS(e);if(t(r))return r;let n=gS(e);if(t(n))throw hS();return r}function hS(){return new Error("Legacy shared store found at .red/tmp/red-skills.rdb. Run `rsp setup` to migrate it to .red/state/red-skills.rdb before using rsp, memory, or brain.")}function Rm(e){return Tt(bm(e),"waits")}function km(e){let t=e.overrideEnvVars??ec;for(let n of t){let s=e.env[n];if(s)return lS(s)?s:Za(e.startDir,s)}let r=Za(e.startDir);for(;;){if(e.exists(Tt(r,gm)))return r;let n=Tt(r,".."),s=Za(n);if(s===r)break;r=s}return e.startDir}var gm,dS,pS,ec,wm,_m,Le=h(()=>{gm=".red",dS="MEMORY_ROOT",pS="RED_BRAIN_ROOT",ec=[dS,pS];wm=".red/state/red-skills.rdb";_m=".red/tmp/red-skills.rdb"});function ne(e){return $(e,{keyedMapCollapse:!0})}var yS,bS,NF,vt=h(()=>{J();Le();yS=[{id:"memory.config",plugin:"memory",legacyPath:".red/memory/config.json",toonPath:".red/memory/config.toon",kind:"toon"}],bS=[{id:"dev.afk-history",plugin:"dev",legacyPath:".red/state/afk-history.jsonl",toonPath:".red/state/castle/history.toonl",kind:"toonl"},{id:"dev.agent-log",plugin:"dev",legacyPath:".red/tmp/agent.log.toonl",toonPath:".red/tmp/agent.log.toonl",kind:"toonl"},{id:"dev.supervisor-firehose",plugin:"dev",legacyPath:".red/tmp/afk-supervisor.log.toonl",toonPath:".red/tmp/supervisors/default/supervisor.log.toonl",kind:"toonl",migration:"sniff-read"},{id:"dev.code-understanding-bench-runs",plugin:"dev",legacyPath:".red/tmp/bench/code-understanding/runs.jsonl",toonPath:".red/tmp/bench/code-understanding/runs.toonl",kind:"toonl"},{id:"dev.attempt-state",plugin:"dev",legacyPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",toonPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",kind:"toon"},{id:"dev.statusline-count-cache",plugin:"dev",legacyPath:".red/tmp/statusline-cache.json",toonPath:".red/state/statusline/statusline-cache.toon",kind:"toon"},{id:"dev.statusline-repo-cache",plugin:"dev",legacyPath:".red/tmp/statusline-repo-cache.json",toonPath:".red/state/statusline/statusline-repo-cache.toon",kind:"toon"},{id:"dev.rsp-resident-registry",plugin:"dev",legacyPath:".red/state/rsp/rsp-resident.pid.json",toonPath:".red/state/rsp/rsp-resident.pid.json",kind:"toon"},{id:"dev.rsp-status-summary",plugin:"dev",legacyPath:".red/state/rsp/rsp-status-summary.json",toonPath:".red/state/rsp/rsp-status-summary.json",kind:"toon"},{id:"dev.rsp-wait-registry",plugin:"dev",legacyPath:".red/tmp/waits/*.json",toonPath:".red/tmp/waits/*.json",kind:"toon"}],NF=[...yS,...bS]});function Hn(e){let{values:t,rest:r}=dr(e,{query:Sm.query},Tm);return{argv:r,query:t.query?.trim()||void 0}}function vm(e){let{values:t,rest:r}=dr(e,Sm,Tm);return{argv:r,query:t.query?.trim()||void 0,full:t.full===!0}}function wS(e,t){if(!t)return!0;let r=tc(e).toLowerCase();return t.toLowerCase().split(/\s+/).filter(Boolean).every(n=>r.includes(n))}function Re(e,t){return t?e.filter(r=>wS(r,t)):[...e]}function xt(e,t){return rc(e,t,{includeLegacyHelp:!0})}function rc(e,t,r={}){let n=t.filter(Boolean);return n.length===0?e:{...e,...r.includeLegacyHelp?{help:n}:{},next_steps:n}}function tc(e){return Array.isArray(e)?e.map(tc).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(tc).join(" "):String(e??"")}var Sm,Tm,qn=h(()=>{"use strict";Ca();Sm={query:{kind:"value",coerce:e=>e},full:{kind:"boolean"}},Tm={stopAtSeparator:!1}});var Eo={};K(Eo,{DEFAULT_RSP_MAX_OVERHEAD_MS:()=>fo,DEFAULT_RSP_MAX_SELF_STATE_BYTES:()=>go,DEFAULT_RSP_OVERHEAD_CEILING:()=>Ct,DEFAULT_RSP_OVERHEAD_CONSECUTIVE_BREACHES:()=>yo,DEFAULT_RSP_OVERHEAD_COOLDOWN_MS:()=>bo,DEFAULT_RSP_OVERHEAD_NET_LOSS_FLOOR_BYTES:()=>ho,RSP_OVERHEAD_FAMILIES:()=>vS,RSP_OVERHEAD_LEDGER_FILE:()=>Om,RSP_OVERHEAD_SCHEMA_VERSION:()=>Am,classifyOverheadSample:()=>oc,noteChildProcessMs:()=>Im,noteSelfStateBytesRead:()=>Jn,overheadCounters:()=>lc,overheadFamilyDisabled:()=>xS,overheadHealth:()=>qt,overheadLedgerPath:()=>ic,overheadMsOf:()=>Pm,overheadTelemetryFields:()=>wo,readOverheadLedger:()=>Wn,readSelfStateFile:()=>_o,readSelfStateFileSync:()=>AS,recordOverheadSample:()=>ac,resetOverheadCounters:()=>OS,resetOverheadLedger:()=>CS,startChildProcessTimer:()=>Ge});import{existsSync as _S,mkdirSync as ES,readFileSync as xm,renameSync as RS,writeFileSync as kS}from"node:fs";import{readFile as SS}from"node:fs/promises";import{dirname as TS,join as Cm}from"node:path";function Pm(e){let t=e.wrapperMs-e.childMs;return Number.isFinite(t)?Math.max(0,sc(t)):0}function oc(e,t=Ct){let r=Pm(e),n=[];return r>t.maxOverheadMs&&n.push("wall-clock-ceiling"),e.selfStateBytesRead>t.maxSelfStateBytes&&n.push("self-state-byte-ceiling"),e.selfStateBytesRead>t.netLossFloorBytes&&e.selfStateBytesRead>e.bytesSaved&&n.push("overhead-exceeds-savings"),{overhead_ms:r,breached:n.length>0,reasons:n}}function wo(e,t=Ct){let r=oc(e,t);return{wrapper_ms:sc(e.wrapperMs),overhead_ms:r.overhead_ms,child_ms:sc(Math.max(0,e.childMs)),self_state_bytes_read:Math.max(0,Math.trunc(e.selfStateBytesRead)),bytes_saved:Math.max(0,Math.trunc(e.bytesSaved)),overhead_breached:r.breached,overhead_breach_reasons:r.reasons.join(",")}}function ic(e){return Cm(X(e),Om)}function Wn(e){try{let t=xm(ic(e),"utf8"),r=GS(t);if(DS(r))return r}catch{}return{version:1,families:{}}}function ac(e,t,r=Ct,n=Date.now()){let s=Wn(e),o=oc(t,r),i=s.families[t.family]??LS(t.family,n),a=dc(i,n)?Lm(i):i,c=o.breached?a.consecutive_breaches+1:0,u={...a,family:t.family,invocations:a.invocations+1,breaches:a.breaches+(o.breached?1:0),consecutive_breaches:c,breached:o.breached,reasons:o.reasons,last_overhead_ms:o.overhead_ms,last_self_state_bytes_read:Math.max(0,Math.trunc(t.selfStateBytesRead)),last_bytes_saved:Math.max(0,Math.trunc(t.bytesSaved)),updated_at:new Date(n).toISOString()};return o.breached?c>=r.consecutiveBreaches&&(u.disabled=!0,u.disabled_at=new Date(n).toISOString(),u.disabled_until=new Date(n+r.cooldownMs).toISOString(),u.disabled_reason=PS(t.family,c,o,r)):(u.disabled=!1,u.disabled_at=null,u.disabled_until=null,u.disabled_reason=null),s.families[t.family]=u,Gm(e,s),u}function xS(e,t,r=Date.now()){let n=Wn(e).families[t];return!n?.disabled||dc(n,r)?null:n}function CS(e,t){let r=Wn(e);return t?delete r.families[t]:r.families={},Gm(e,r),r}function qt(e,t=Ct,r=Date.now()){let n=Object.values(Wn(e).families).map(a=>dc(a,r)?Lm(a):a).sort((a,c)=>a.family.localeCompare(c.family)),s=n.filter(a=>a.disabled),o=n.filter(a=>a.consecutive_breaches>0),i=s.length>0||o.length>0?"red":"green";return{schema_version:Am,verdict:i,summary:IS(i,s,o),ceiling:t,breaching_families:o,disabled_families:s,families:n}}function Jn(e){Number.isFinite(e)&&e>0&&(cc+=e)}function Im(e){Number.isFinite(e)&&e>0&&(uc+=e)}function lc(){return{selfStateBytesRead:cc,childMs:uc}}function OS(){cc=0,uc=0}function Ge(){let e=process.hrtime.bigint(),t=!1;return()=>{t||(t=!0,Im(Number(process.hrtime.bigint()-e)/1e6))}}async function _o(e){let t=await SS(e,"utf8");return Jn(Buffer.byteLength(t)),t}function AS(e){let t=xm(e,"utf8");return Jn(Buffer.byteLength(t)),t}function PS(e,t,r,n){let s=r.reasons.map(o=>o==="wall-clock-ceiling"?`added ${r.overhead_ms}ms > ${n.maxOverheadMs}ms`:o==="self-state-byte-ceiling"?`self-state read > ${n.maxSelfStateBytes}B`:"self-state read exceeded bytes saved").join("; ");return`rsp ${e} exceeded its overhead ceiling on ${t} consecutive invocations (${s}); wrapper self-disabled, commands pass through raw`}function IS(e,t,r){if(e==="green")return"every wrapper family is inside its overhead ceiling";let n=[];return t.length>0&&n.push(`self-disabled: ${t.map(s=>`${s.family} (${s.reasons.join(",")||"ceiling"})`).join(", ")}`),r.length>0&&n.push(`breaching: ${r.map(s=>`${s.family} x${s.consecutive_breaches}`).join(", ")}`),n.join("; ")}function dc(e,t){if(!e.disabled||!e.disabled_until)return!1;let r=Date.parse(e.disabled_until);return Number.isFinite(r)&&r<=t}function Lm(e){return{...e,disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,consecutive_breaches:0,breached:!1,reasons:[]}}function LS(e,t){return{family:e,invocations:0,breaches:0,consecutive_breaches:0,breached:!1,reasons:[],disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,last_overhead_ms:0,last_self_state_bytes_read:0,last_bytes_saved:0,updated_at:new Date(t).toISOString()}}function Gm(e,t){try{let r=ic(e);if(!_S(Cm(e,".red")))return;ES(TS(r),{recursive:!0});let n=`${r}.${process.pid}.tmp`;kS(n,`${$(t)}
41
+ `,{encoding:"utf8",mode:384}),RS(n,r)}catch{}}function GS(e){try{return JSON.parse(e)}catch{return H(e)}}function DS(e){return!nc(e)||e.version!==1||!nc(e.families)?!1:Object.values(e.families).every($S)}function $S(e){return nc(e)&&typeof e.family=="string"&&typeof e.consecutive_breaches=="number"&&typeof e.disabled=="boolean"}function nc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function sc(e){return Number.isFinite(e)?Math.round(e*1e3)/1e3:0}var Om,Am,fo,go,ho,yo,bo,vS,Ct,cc,uc,ae=h(()=>{"use strict";Le();J();Om="overhead-budget.toon",Am="red.rsp.overhead.v1",fo=250,go=1024*1024,ho=64*1024,yo=3,bo=6*60*60*1e3,vS=["git","gh","gh-api-json","vitest","cargo","cat","exec","proxy"],Ct={maxOverheadMs:fo,maxSelfStateBytes:go,netLossFloorBytes:ho,consecutiveBreaches:yo,cooldownMs:bo};cc=0,uc=0});function Nm(e){return e.trimStart().startsWith("{")?"json":"toon"}function mc(e){let t=0;for(;e[t]===`
42
+ `||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=Nm(r);if(n==="json"){let o=r.indexOf(`
43
43
  `);return o<0?null:{frame:r.slice(0,o),dialect:n,rest:r.slice(o+1)}}let s=r.indexOf(`
44
44
 
45
- `);return s<0?null:{frame:r.slice(0,s+1),dialect:n,rest:r.slice(s+2)}}function ac(e){let t=vm(e)==="json"?oc:Sm,r=t===oc?Sm:oc;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function oc(e){return JSON.parse(e)}function Sm(e){return H(e)}function cc(e,t){if(t==="toon"){let r=wS(e);if(r!==null)return r.endsWith(`
45
+ `);return s<0?null:{frame:r.slice(0,s+1),dialect:n,rest:r.slice(s+2)}}function fc(e){let t=Nm(e)==="json"?pc:Dm,r=t===pc?Dm:pc;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function pc(e){return JSON.parse(e)}function Dm(e){return H(e)}function gc(e,t){if(t==="toon"){let r=FS(e);if(r!==null)return r.endsWith(`
46
46
  `)?`${r}
47
47
  `:`${r}
48
48
 
49
49
  `}return`${JSON.stringify(e)}
50
- `}function wS(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=$(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function xm(e,t){return!Tm(e)||!Tm(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Tm(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Om(e){return Cm.has(e)?"json":bS}function Am(e){Cm.add(e)}var bS,Cm,Pm=h(()=>{W();bS="toon";Cm=new Set});import{createHash as _S}from"node:crypto";import{constants as uc}from"node:fs";import{mkdir as Lm,open as ES,readFile as RS,rm as Dm,stat as kS}from"node:fs/promises";import{createConnection as SS}from"node:net";import{tmpdir as TS}from"node:os";import{dirname as Gm,join as zn}from"node:path";async function $m(e,t,r="resident server"){let n=e.wire,s=n??Om(e.socketPath),o=await Im(e,t,r,s);return n||s==="json"||!xm(t,o)?o:(Am(e.socketPath),await Im(e,t,r,"json"))}async function Im(e,t,r,n){let s=e.timeoutMs??1e3;return await new Promise((o,i)=>{let a=SS(e.socketPath),c=!1,u="",l=setTimeout(()=>{p(()=>i(new Error(`${r} timed out`))),a.destroy()},s);function p(d){c||(c=!0,clearTimeout(l),d())}a.on("connect",()=>{a.write(cc(t,n))}),a.on("data",d=>{u+=d.toString("utf8");let g=ic(u);g&&(u=g.rest,p(()=>{try{o(ac(g.frame))}catch(f){i(f)}}),a.end())}),a.on("error",d=>p(()=>i(d))),a.on("close",()=>{c||p(()=>i(new Error(`${r} closed without response`)))})})}function Nm(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",s=>{n+=s;let o=ic(n);if(!o)return;n=o.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(cc(a,o.dialect))}catch{}};(async()=>{let a;try{a=ac(o.frame),await t(a,i)}catch(c){r(c,a,i)}finally{e.end()}})()})}async function lc(e){await Lm(Gm(e),{recursive:!0,mode:448});try{return await ES(e,uc.O_CREAT|uc.O_EXCL|uc.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}async function Mm(e,t={}){let r=t.maxAgeMs??xS,n=t.now??Date.now,s=t.pid??process.pid,o=t.isPidAlive??Jt;await Lm(Gm(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let c=await lc(e);if(c)return await c.writeFile(`${Fm} pid=${s} taken=${new Date(n()).toISOString()}
51
- `).catch(()=>{}),{acquired:!0,lockPath:e,handle:c,reaped:i};let u=await AS(e),l=await IS(e,u,n());if(a>=CS||l==null)return{acquired:!1,lockPath:e,holder:u,ageMs:l};let p=OS(u,l,r,o);if(p==null)return{acquired:!1,lockPath:e,holder:u,ageMs:l};let d={lockPath:e,reason:p,holder:u,ageMs:l};await Dm(e,{force:!0}),i.push(d),t.onReap?.(d)}}async function Bm(e){await e.handle.close().catch(()=>{}),await Dm(e.lockPath,{force:!0})}function OS(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function jm(e){let t=e.ageMs==null?"of unknown age":`taken ${Math.round(e.ageMs/1e3)}s ago`,r=e.holder==null?"an owner it does not name":`pid ${e.holder.pid} (at ${e.holder.takenAt})`;return`no spawn was attempted: the spawn lock ${JSON.stringify(e.lockPath)} is held by ${r}, ${t}. If that process is gone, remove the file to clear it`}async function AS(e){try{return PS(await RS(e,"utf8"))}catch{return null}}function PS(e){let t=e.split(`
52
- `,1)[0]?.trim()??"";if(!t.startsWith(Fm))return null;let r=Number(/\bpid=(\d+)\b/.exec(t)?.[1]??""),n=/\btaken=(\S+)/.exec(t)?.[1]??"";return!Number.isInteger(r)||r<=0||!Number.isFinite(Date.parse(n))?null:{pid:r,takenAt:n}}async function IS(e,t,r){let n=t==null?Number.NaN:Date.parse(t.takenAt);if(Number.isFinite(n))return Math.max(0,r-n);try{return Math.max(0,r-(await kS(e)).mtimeMs)}catch{return null}}function Jt(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function dc(e,t=1e3){if(!Jt(e))return;try{process.kill(e,"SIGTERM")}catch{return}let r=Date.now()+t;for(;Date.now()<r;){if(!Jt(e))return;await new Promise(n=>setTimeout(n,50))}try{process.kill(e,"SIGKILL")}catch{}}function Um(e){let t=e.env??process.env,r=_S("sha256").update(e.key).digest("hex").slice(0,20),n=c=>zn(c,e.socketFileName).length<vS,s=t.XDG_RUNTIME_DIR;if(s){let c=zn(s,"red-skills",r);if(n(c))return c}let o=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=zn(`red-skills-${o}`,r),a=zn(TS(),i);return n(a)||process.platform==="win32"?a:zn(LS,i)}var vS,xS,Fm,CS,LS,_o=h(()=>{Pm();vS=108;xS=6e4,Fm="resident-spawn-lock v1",CS=3;LS="/tmp"});async function zr(e,t){return await $m(e,t,"resident rsp server")}var pc=h(()=>{_o()});var Hm=h(()=>{"use strict";pc()});import{existsSync as DS,readdirSync as GS}from"node:fs";import{homedir as $S}from"node:os";import{basename as fc,dirname as mc,join as Ne,resolve as Eo}from"node:path";function NS(e){return"command"in e}function Ro(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??DS,s=t.execPath??process.execPath,o=t.execArgv??process.execArgv,i=t.callerEntry===void 0?process.argv[1]:t.callerEntry,a=(u,l)=>({command:s,args:[...o,u],source:l});if(r.RSP_BIN)return{command:r.RSP_BIN,args:[],source:"env-rsp-bin"};if(i&&BS(i))return a(Eo(i),"caller-entry");let c=[];for(let[u,l]of US(i,t.rootDir,r,t.listDir??JS))if(c.push(u),n(u))return a(u,l);return{diagnostic:xt,searched:c,...i?{callerEntry:Eo(i)}:{}}}function Wm(e={},t={}){let r=Ro(e,t);if(NS(r))return r;throw new Yr(r)}function BS(e){let t=fc(e);return t===gr||gc.test(t)||t==="rsp"||t==="rsp.mjs"||t==="rsp.js"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:jS(Eo(e))}function jS(e){let t=mc(e);for(let r=0;r<4;r++){if(fc(t)==="rsp")return!0;let n=mc(t);if(n===t)return!1;t=n}return!1}function*US(e,t,r,n){if(e){let o=mc(Eo(e));yield[Ne(o,gr),"caller-sibling-bundle"];let i=FS.exec(fc(e));i&&(yield[Ne(o,`rsp-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Ne(o,"..","dist",gr),"caller-sibling-bundle"]}for(let o of MS){let i=r[o];i&&(yield[Ne(i,"dist",gr),"plugin-root-bundle"],yield[Ne(i,"..","..","dist",gr),"plugin-root-bundle"])}t&&(yield[Ne(t,"dist",gr),"repo-bundle"],yield[Ne(t,"apps","rsp","dist","cli.js"),"workspace-entry"],yield[Ne(t,"node_modules","@reddb-io","rsp","dist","cli.js"),"node-modules-entry"]);let s=HS(r);yield[Ne(s,gr),"bundle-cache"];for(let o of qS(s,n))yield[Ne(s,o),"bundle-cache"]}function HS(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Ne(e.HOME||$S(),".cache");return Ne(t,"red-skills","bundles")}function qS(e,t){return t(e).filter(r=>gc.test(r)).sort((r,n)=>WS(qm(n),qm(r)))}function qm(e){return gc.exec(e)?.[1]??""}function WS(e,t){let r=o=>o.split(".").map(i=>Number.parseInt(i,10)),[n,s]=[r(e),r(t)];for(let o=0;o<Math.max(n.length,s.length);o++){let[i,a]=[n[o],s[o]];if(Number.isNaN(i)||i===void 0)return Number.isNaN(a)||a===void 0?e.localeCompare(t):-1;if(Number.isNaN(a)||a===void 0)return 1;if(i!==a)return i-a}return 0}function JS(e){try{return GS(e)}catch{return[]}}var xt,Yr,gr,FS,gc,MS,hc=h(()=>{xt="rsp-resident-entry-unresolved";Yr=class extends Error{code=xt;searched;callerEntry;constructor(t){super(`${xt}: no rsp entrypoint found for the resident auto-spawn${t.callerEntry?` (caller entry: ${t.callerEntry})`:""}
50
+ `}function FS(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=$(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function Fm(e,t){return!$m(e)||!$m(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function $m(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Bm(e){return Mm.has(e)?"json":NS}function jm(e){Mm.add(e)}var NS,Mm,Um=h(()=>{J();NS="toon";Mm=new Set});import{createHash as MS}from"node:crypto";import{constants as hc}from"node:fs";import{mkdir as qm,open as BS,readFile as jS,rm as Wm,stat as US}from"node:fs/promises";import{createConnection as HS}from"node:net";import{tmpdir as qS}from"node:os";import{dirname as Jm,join as Vn}from"node:path";async function Vm(e,t,r="resident server"){let n=e.wire,s=n??Bm(e.socketPath),o=await Hm(e,t,r,s);return n||s==="json"||!Fm(t,o)?o:(jm(e.socketPath),await Hm(e,t,r,"json"))}async function Hm(e,t,r,n){let s=e.timeoutMs??1e3;return await new Promise((o,i)=>{let a=HS(e.socketPath),c=!1,u="",l=setTimeout(()=>{d(()=>i(new Error(`${r} timed out`))),a.destroy()},s);function d(p){c||(c=!0,clearTimeout(l),p())}a.on("connect",()=>{a.write(gc(t,n))}),a.on("data",p=>{u+=p.toString("utf8");let g=mc(u);g&&(u=g.rest,d(()=>{try{o(fc(g.frame))}catch(f){i(f)}}),a.end())}),a.on("error",p=>d(()=>i(p))),a.on("close",()=>{c||d(()=>i(new Error(`${r} closed without response`)))})})}function Km(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",s=>{n+=s;let o=mc(n);if(!o)return;n=o.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(gc(a,o.dialect))}catch{}};(async()=>{let a;try{a=fc(o.frame),await t(a,i)}catch(c){r(c,a,i)}finally{e.end()}})()})}async function yc(e){await qm(Jm(e),{recursive:!0,mode:448});try{return await BS(e,hc.O_CREAT|hc.O_EXCL|hc.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}async function Ym(e,t={}){let r=t.maxAgeMs??JS,n=t.now??Date.now,s=t.pid??process.pid,o=t.isPidAlive??Wt;await qm(Jm(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let c=await yc(e);if(c)return await c.writeFile(`${zm} pid=${s} taken=${new Date(n()).toISOString()}
51
+ `).catch(()=>{}),{acquired:!0,lockPath:e,handle:c,reaped:i};let u=await zS(e),l=await QS(e,u,n());if(a>=VS||l==null)return{acquired:!1,lockPath:e,holder:u,ageMs:l};let d=KS(u,l,r,o);if(d==null)return{acquired:!1,lockPath:e,holder:u,ageMs:l};let p={lockPath:e,reason:d,holder:u,ageMs:l};await Wm(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function Qm(e){await e.handle.close().catch(()=>{}),await Wm(e.lockPath,{force:!0})}function KS(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function Xm(e){let t=e.ageMs==null?"of unknown age":`taken ${Math.round(e.ageMs/1e3)}s ago`,r=e.holder==null?"an owner it does not name":`pid ${e.holder.pid} (at ${e.holder.takenAt})`;return`no spawn was attempted: the spawn lock ${JSON.stringify(e.lockPath)} is held by ${r}, ${t}. If that process is gone, remove the file to clear it`}async function zS(e){try{return YS(await jS(e,"utf8"))}catch{return null}}function YS(e){let t=e.split(`
52
+ `,1)[0]?.trim()??"";if(!t.startsWith(zm))return null;let r=Number(/\bpid=(\d+)\b/.exec(t)?.[1]??""),n=/\btaken=(\S+)/.exec(t)?.[1]??"";return!Number.isInteger(r)||r<=0||!Number.isFinite(Date.parse(n))?null:{pid:r,takenAt:n}}async function QS(e,t,r){let n=t==null?Number.NaN:Date.parse(t.takenAt);if(Number.isFinite(n))return Math.max(0,r-n);try{return Math.max(0,r-(await US(e)).mtimeMs)}catch{return null}}function Wt(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function bc(e,t=1e3){if(!Wt(e))return;try{process.kill(e,"SIGTERM")}catch{return}let r=Date.now()+t;for(;Date.now()<r;){if(!Wt(e))return;await new Promise(n=>setTimeout(n,50))}try{process.kill(e,"SIGKILL")}catch{}}function Zm(e){let t=e.env??process.env,r=MS("sha256").update(e.key).digest("hex").slice(0,20),n=c=>Vn(c,e.socketFileName).length<WS,s=t.XDG_RUNTIME_DIR;if(s){let c=Vn(s,"red-skills",r);if(n(c))return c}let o=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Vn(`red-skills-${o}`,r),a=Vn(qS(),i);return n(a)||process.platform==="win32"?a:Vn(XS,i)}var WS,JS,zm,VS,XS,Ro=h(()=>{Um();WS=108;JS=6e4,zm="resident-spawn-lock v1",VS=3;XS="/tmp"});async function zr(e,t){return await Vm(e,t,"resident rsp server")}var wc=h(()=>{Ro()});var ef=h(()=>{"use strict";wc()});import{existsSync as ZS,readdirSync as eT}from"node:fs";import{homedir as tT}from"node:os";import{basename as Ec,dirname as _c,join as Me,resolve as ko}from"node:path";function rT(e){return"command"in e}function So(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??ZS,s=t.execPath??process.execPath,o=t.execArgv??process.execArgv,i=t.callerEntry===void 0?process.argv[1]:t.callerEntry,a=(u,l)=>({command:s,args:[...o,u],source:l});if(r.RSP_BIN)return{command:r.RSP_BIN,args:[],source:"env-rsp-bin"};if(i&&oT(i))return a(ko(i),"caller-entry");let c=[];for(let[u,l]of aT(i,t.rootDir,r,t.listDir??dT))if(c.push(u),n(u))return a(u,l);return{diagnostic:Ot,searched:c,...i?{callerEntry:ko(i)}:{}}}function rf(e={},t={}){let r=So(e,t);if(rT(r))return r;throw new Yr(r)}function oT(e){let t=Ec(e);return t===gr||Rc.test(t)||t==="rsp"||t==="rsp.mjs"||t==="rsp.js"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:iT(ko(e))}function iT(e){let t=_c(e);for(let r=0;r<4;r++){if(Ec(t)==="rsp")return!0;let n=_c(t);if(n===t)return!1;t=n}return!1}function*aT(e,t,r,n){if(e){let o=_c(ko(e));yield[Me(o,gr),"caller-sibling-bundle"];let i=nT.exec(Ec(e));i&&(yield[Me(o,`rsp-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Me(o,"..","dist",gr),"caller-sibling-bundle"]}for(let o of sT){let i=r[o];i&&(yield[Me(i,"dist",gr),"plugin-root-bundle"],yield[Me(i,"..","..","dist",gr),"plugin-root-bundle"])}t&&(yield[Me(t,"dist",gr),"repo-bundle"],yield[Me(t,"apps","rsp","dist","cli.js"),"workspace-entry"],yield[Me(t,"node_modules","@reddb-io","rsp","dist","cli.js"),"node-modules-entry"]);let s=cT(r);yield[Me(s,gr),"bundle-cache"];for(let o of uT(s,n))yield[Me(s,o),"bundle-cache"]}function cT(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Me(e.HOME||tT(),".cache");return Me(t,"red-skills","bundles")}function uT(e,t){return t(e).filter(r=>Rc.test(r)).sort((r,n)=>lT(tf(n),tf(r)))}function tf(e){return Rc.exec(e)?.[1]??""}function lT(e,t){let r=o=>o.split(".").map(i=>Number.parseInt(i,10)),[n,s]=[r(e),r(t)];for(let o=0;o<Math.max(n.length,s.length);o++){let[i,a]=[n[o],s[o]];if(Number.isNaN(i)||i===void 0)return Number.isNaN(a)||a===void 0?e.localeCompare(t):-1;if(Number.isNaN(a)||a===void 0)return 1;if(i!==a)return i-a}return 0}function dT(e){try{return eT(e)}catch{return[]}}var Ot,Yr,gr,nT,Rc,sT,kc=h(()=>{Ot="rsp-resident-entry-unresolved";Yr=class extends Error{code=Ot;searched;callerEntry;constructor(t){super(`${Ot}: no rsp entrypoint found for the resident auto-spawn${t.callerEntry?` (caller entry: ${t.callerEntry})`:""}
53
53
  searched:
54
54
  ${t.searched.map(r=>` ${r}`).join(`
55
- `)}`),this.name="RspResidentEntryError",this.searched=t.searched,this.callerEntry=t.callerEntry}},gr="rsp.bundle.min.mjs",FS=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,gc=/^rsp-(.+)\.bundle\.min\.mjs$/,MS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});import{randomUUID as Ym}from"node:crypto";import{spawn as Qm}from"node:child_process";import{readFileSync as VS}from"node:fs";import{mkdir as wc,readFile as Xm,rename as KS,rm as Ot,stat as zS,writeFile as YS}from"node:fs/promises";import{dirname as hr,join as Ct,resolve as _c}from"node:path";import{fileURLToPath as QS}from"node:url";function lt(e){let t=uT(e)??_c(e),r=cT(t),n=ne(t);return{rootDir:t,socketPath:Ct(r,"rsp.sock"),pidPath:Ct(r,"rsp.pid"),lockPath:Ct(r,"rsp.lock"),wakeLockPath:Ct(t,".red","tmp","rsp","wake.lock"),summaryPath:Ct(n,"rsp-status-summary.json"),registryPath:Ct(n,"rsp-resident.pid.json")}}async function ko(e,t){if(await wc(hr(e.socketPath),{recursive:!0,mode:448}),await Km(e.socketPath,t))return;await Vm(e,t);let r=await Mm(e.lockPath,{onReap:n=>process.stderr.write(`rsp: reaped the resident spawn lock ${JSON.stringify(n.lockPath)} (${n.reason}, ${Math.round(n.ageMs/1e3)}s old)
56
- `)});if(r.acquired)try{if(await Km(e.socketPath,t))return;await Vm(e,t),await eT(e.socketPath);let n=rT(e,t);await Jm(e.socketPath,n);return}finally{await Bm(r)}try{await Jm(e.socketPath)}catch(n){throw new Error(`${n instanceof Error?n.message:String(n)}; ${jm(r)}`)}}async function yr(e,t=200){try{return await ef(e,t)!=null}catch{return!1}}async function ef(e,t=200){let r=await zr({socketPath:e,timeoutMs:t},{id:Ym(),op:"ping"});return r.ok?of(r.value)?{version:mT(r.value.version)}:{}:null}async function So(e,t){if(await wc(hr(e.socketPath),{recursive:!0,mode:448}),await yr(e.socketPath,50))return!1;let r=await tT(e.wakeLockPath);if(!r)return!1;await r.close();let[n,s]=nf(e,t);return Qm(n,[...s,"warm-resident","--socket",e.socketPath,"--pid-file",e.pidPath,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours??6),"--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),"--idle-ms",String(t.idleMs??3e5),"--resident-version",t.clientVersion??"0.0.0-dev","--registry",e.registryPath,"--wake-lock",e.wakeLockPath],{cwd:e.rootDir,detached:!0,stdio:"ignore",env:{...process.env,RSP_RESIDENT_WARMER:"1"}}).unref(),!0}async function tf(e,t){try{await ko(e,t)}finally{await Ot(e.wakeLockPath,{force:!0})}}async function Qn(e){try{let t=oT(await Xm(e,"utf8"));return fT(t)?t:null}catch{return null}}async function To(e,t){let r={version:Zm,pid:t.pid??process.pid,socket_path:t.socket_path,store_uri:t.store_uri,resident_version:t.resident_version,started_at:t.started_at??new Date().toISOString()};await wc(hr(e),{recursive:!0});let n=`${e}.${process.pid}.${Date.now()}.tmp`;await YS(n,`${$(r)}
57
- `,{encoding:"utf8",mode:384}),await KS(n,e)}async function vo(e,t=process.pid){try{let r=await Qn(e);if(r&&r.pid!==t)return;await Ot(e,{force:!0})}catch{}}async function Yn(e){let t=await Qn(e.registryPath);if(!t)try{return await Xm(e.registryPath,"utf8"),{registry_path:e.registryPath,state:"invalid"}}catch{return{registry_path:e.registryPath,state:"missing"}}if(!Jt(t.pid))return{registry_path:e.registryPath,state:"registered-dead",entry:t};let r=await yr(t.socket_path,100);return r&&await aT(t.store_uri)?{registry_path:e.registryPath,state:"registered-alive-store-missing",entry:t}:{registry_path:e.registryPath,state:r?"registered-alive-socket-healthy":"registered-alive-socket-dead",entry:t}}async function rf(e){let t=await Yn(e);return t.state==="registered-dead"||t.state==="invalid"?(await Ot(e.registryPath,{force:!0}),await Yn(e)):(t.state==="registered-alive-socket-dead"||t.state==="registered-alive-store-missing")&&t.entry?(await dc(t.entry.pid),await Ot(e.registryPath,{force:!0}),await Ot(t.entry.socket_path,{force:!0}),await Yn(e)):t}async function Jm(e,t){let r=Date.now()+ZS(),n;for(;Date.now()<r;){if(await yr(e))return;if(t){let s=t.spawnError();if(s)throw new Error(yc("resident rsp server spawn failed",t,s));if(t.child.exitCode!=null||t.child.signalCode!=null)throw new Error(yc("resident rsp server exited before ready",t))}await new Promise(s=>setTimeout(s,50))}throw n instanceof Error?n:new Error(t?yc("resident rsp server did not start",t):"resident rsp server did not start")}function ZS(){let e=Number(process.env.RSP_RESIDENT_READY_TIMEOUT_MS??"");return Number.isFinite(e)&&e>0?e:XS}async function eT(e){await Ot(e,{force:!0})}function rT(e,t){let[r,n]=nf(e,t),s=process.env.RSP_DEBUG==="1",o,i="",a=Qm(r,[...n,"server","--socket",e.socketPath,"--pid-file",e.pidPath,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours??6),"--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),"--idle-ms",String(t.idleMs??3e5),"--resident-version",t.clientVersion??"0.0.0-dev","--registry",e.registryPath],{cwd:e.rootDir,detached:!0,stdio:s?["ignore","ignore","pipe"]:"ignore",env:{...process.env,RSP_RESIDENT_SERVER:"1"}});return a.on("error",c=>{o=c}),s&&(a.stderr?.setEncoding("utf8"),a.stderr?.on("data",c=>{i=sT(`${i}${c}`,nT)})),a.unref(),{child:a,stderrTail:()=>i,spawnError:()=>o}}function yc(e,t,r){let n=[e];r&&n.push(`error: ${r.message}`),t.child.exitCode!=null&&n.push(`exit code: ${t.child.exitCode}`),t.child.signalCode!=null&&n.push(`signal: ${t.child.signalCode}`);let s=t.stderrTail().trimEnd();return s&&n.push(`stderr tail:
55
+ `)}`),this.name="RspResidentEntryError",this.searched=t.searched,this.callerEntry=t.callerEntry}},gr="rsp.bundle.min.mjs",nT=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Rc=/^rsp-(.+)\.bundle\.min\.mjs$/,sT=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});import{randomUUID as cf}from"node:crypto";import{spawn as uf}from"node:child_process";import{readFileSync as pT}from"node:fs";import{mkdir as vc,readFile as lf,rename as mT,rm as Pt,stat as fT,writeFile as gT}from"node:fs/promises";import{dirname as hr,join as At,resolve as xc}from"node:path";import{fileURLToPath as hT}from"node:url";function ct(e){let t=CT(e)??xc(e),r=xT(t),n=X(t);return{rootDir:t,socketPath:At(r,"rsp.sock"),pidPath:At(r,"rsp.pid"),lockPath:At(r,"rsp.lock"),wakeLockPath:At(t,".red","tmp","rsp","wake.lock"),summaryPath:At(n,"rsp-status-summary.json"),registryPath:At(n,"rsp-resident.pid.json")}}async function To(e,t){if(await vc(hr(e.socketPath),{recursive:!0,mode:448}),await of(e.socketPath,t))return;await sf(e,t);let r=await Ym(e.lockPath,{onReap:n=>process.stderr.write(`rsp: reaped the resident spawn lock ${JSON.stringify(n.lockPath)} (${n.reason}, ${Math.round(n.ageMs/1e3)}s old)
56
+ `)});if(r.acquired)try{if(await of(e.socketPath,t))return;await sf(e,t),await wT(e.socketPath);let n=ET(e,t);await nf(e.socketPath,n);return}finally{await Qm(r)}try{await nf(e.socketPath)}catch(n){throw new Error(`${n instanceof Error?n.message:String(n)}; ${Xm(r)}`)}}async function yr(e,t=200){try{return await pf(e,t)!=null}catch{return!1}}async function pf(e,t=200){let r=await zr({socketPath:e,timeoutMs:t},{id:cf(),op:"ping"});return r.ok?yf(r.value)?{version:IT(r.value.version)}:{}:null}async function vo(e,t){if(await vc(hr(e.socketPath),{recursive:!0,mode:448}),await yr(e.socketPath,50))return!1;let r=await _T(e.wakeLockPath);if(!r)return!1;await r.close();let[n,s]=gf(e,t);return uf(n,[...s,"warm-resident","--socket",e.socketPath,"--pid-file",e.pidPath,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours??6),"--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),"--idle-ms",String(t.idleMs??3e5),"--resident-version",t.clientVersion??"0.0.0-dev","--registry",e.registryPath,"--wake-lock",e.wakeLockPath],{cwd:e.rootDir,detached:!0,stdio:"ignore",env:{...process.env,RSP_RESIDENT_WARMER:"1"}}).unref(),!0}async function mf(e,t){try{await To(e,t)}finally{await Pt(e.wakeLockPath,{force:!0})}}async function zn(e){try{let t=ST(await lf(e,"utf8"));return LT(t)?t:null}catch{return null}}async function xo(e,t){let r={version:df,pid:t.pid??process.pid,socket_path:t.socket_path,store_uri:t.store_uri,resident_version:t.resident_version,started_at:t.started_at??new Date().toISOString()};await vc(hr(e),{recursive:!0});let n=`${e}.${process.pid}.${Date.now()}.tmp`;await gT(n,`${$(r)}
57
+ `,{encoding:"utf8",mode:384}),await mT(n,e)}async function Co(e,t=process.pid){try{let r=await zn(e);if(r&&r.pid!==t)return;await Pt(e,{force:!0})}catch{}}async function Kn(e){let t=await zn(e.registryPath);if(!t)try{return await lf(e.registryPath,"utf8"),{registry_path:e.registryPath,state:"invalid"}}catch{return{registry_path:e.registryPath,state:"missing"}}if(!Wt(t.pid))return{registry_path:e.registryPath,state:"registered-dead",entry:t};let r=await yr(t.socket_path,100);return r&&await vT(t.store_uri)?{registry_path:e.registryPath,state:"registered-alive-store-missing",entry:t}:{registry_path:e.registryPath,state:r?"registered-alive-socket-healthy":"registered-alive-socket-dead",entry:t}}async function ff(e){let t=await Kn(e);return t.state==="registered-dead"||t.state==="invalid"?(await Pt(e.registryPath,{force:!0}),await Kn(e)):(t.state==="registered-alive-socket-dead"||t.state==="registered-alive-store-missing")&&t.entry?(await bc(t.entry.pid),await Pt(e.registryPath,{force:!0}),await Pt(t.entry.socket_path,{force:!0}),await Kn(e)):t}async function nf(e,t){let r=Date.now()+bT(),n;for(;Date.now()<r;){if(await yr(e))return;if(t){let s=t.spawnError();if(s)throw new Error(Sc("resident rsp server spawn failed",t,s));if(t.child.exitCode!=null||t.child.signalCode!=null)throw new Error(Sc("resident rsp server exited before ready",t))}await new Promise(s=>setTimeout(s,50))}throw n instanceof Error?n:new Error(t?Sc("resident rsp server did not start",t):"resident rsp server did not start")}function bT(){let e=Number(process.env.RSP_RESIDENT_READY_TIMEOUT_MS??"");return Number.isFinite(e)&&e>0?e:yT}async function wT(e){await Pt(e,{force:!0})}function ET(e,t){let[r,n]=gf(e,t),s=process.env.RSP_DEBUG==="1",o,i="",a=uf(r,[...n,"server","--socket",e.socketPath,"--pid-file",e.pidPath,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours??6),"--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),"--idle-ms",String(t.idleMs??3e5),"--resident-version",t.clientVersion??"0.0.0-dev","--registry",e.registryPath],{cwd:e.rootDir,detached:!0,stdio:s?["ignore","ignore","pipe"]:"ignore",env:{...process.env,RSP_RESIDENT_SERVER:"1"}});return a.on("error",c=>{o=c}),s&&(a.stderr?.setEncoding("utf8"),a.stderr?.on("data",c=>{i=kT(`${i}${c}`,RT)})),a.unref(),{child:a,stderrTail:()=>i,spawnError:()=>o}}function Sc(e,t,r){let n=[e];r&&n.push(`error: ${r.message}`),t.child.exitCode!=null&&n.push(`exit code: ${t.child.exitCode}`),t.child.signalCode!=null&&n.push(`signal: ${t.child.signalCode}`);let s=t.stderrTail().trimEnd();return s&&n.push(`stderr tail:
58
58
  ${s}`),n.join(`
59
- `)}function sT(e,t){let r=Buffer.byteLength(e,"utf8");return r<=t?e:Buffer.from(e,"utf8").subarray(r-t).toString("utf8").replace(/^\uFFFD+/,"")}function oT(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return H(t)}}async function Vm(e,t){try{let r=await Qn(e.registryPath);if(!r||r.socket_path!==e.socketPath||r.store_uri!==t.storeUri)return;if(!Jt(r.pid)){await Ot(e.registryPath,{force:!0});return}if(await yr(r.socket_path,100))return;if(sf(t.clientVersion,r.resident_version)&&(await iT(r.pid,1500),!Jt(r.pid))){await Ot(e.registryPath,{force:!0});return}await dc(r.pid),await Ot(e.registryPath,{force:!0})}catch{}}async function iT(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(!Jt(e))return;await new Promise(n=>setTimeout(n,50))}}async function aT(e){if(!e.startsWith("file://"))return!1;try{return await zS(QS(e)),!1}catch(t){return t.code==="ENOENT"}}function nf(e,t){let r=Wm(t,{rootDir:e.rootDir});return[r.command,r.args]}function cT(e){return Um({key:e,socketFileName:"rsp.sock"})}function uT(e){let t=_c(e);for(let r=0;r<32;r++){try{let s=bc(Ct(t,".git"));if(s!=null)return lT(t,s)??t;if(bc(Ct(t,".git","HEAD"))!=null||bc(Ct(t,".red","config.yaml"))!=null)return t}catch{}let n=hr(t);if(n===t)return null;t=n}return null}function lT(e,t){let r=/^gitdir:\s*(.+?)\s*$/m.exec(t);if(!r)return null;let n=_c(e,r[1]);return/[/\\]worktrees[/\\][^/\\]+$/.test(n)?hr(hr(hr(n))):null}function bc(e){try{return VS(e,"utf8")}catch{return null}}async function Km(e,t){let r=await ef(e).catch(()=>null);return r?sf(t.clientVersion,r.version)?(await dT(e,t.clientVersion),await gT(e),!1):!0:!1}async function dT(e,t){try{await zr({socketPath:e,timeoutMs:200},{id:Ym(),op:"handover",clientVersion:t})}catch{}}function sf(e,t){return!e||!t?!1:pT(e,t)>0}function pT(e,t){let r=zm(e),n=zm(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}function zm(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 of(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function mT(e){return typeof e=="string"&&e.length>0?e:void 0}function fT(e){return of(e)&&e.version===Zm&&Number.isInteger(e.pid)&&typeof e.socket_path=="string"&&typeof e.store_uri=="string"&&typeof e.resident_version=="string"&&typeof e.started_at=="string"}async function gT(e){let t=Date.now()+1e3;for(;Date.now()<t;){if(!await yr(e,50))return;await new Promise(r=>setTimeout(r,50))}}var Zm,XS,tT,nT,xo=h(()=>{W();$e();_o();pc();hc();hc();Zm=1,XS=5e3;tT=lc;nT=8*1024});var br={};K(br,{RSP_ENTRY_UNRESOLVED:()=>xt,ResidentRspElisionStore:()=>Xn,RspResidentEntryError:()=>Yr,ensureResidentServer:()=>ko,kickResidentServer:()=>So,pingResident:()=>yr,readResidentRegistry:()=>Qn,removeResidentRegistry:()=>vo,residentRegistryStatus:()=>Yn,resolveResidentPaths:()=>lt,resolveRspEntry:()=>Ro,sweepResidentRegistry:()=>rf,warmResidentServer:()=>tf,writeResidentRegistry:()=>To});import{randomUUID as hT}from"node:crypto";function af(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Xn,dt=h(()=>{"use strict";Hm();xo();Xn=class{constructor(t,r,n={}){this.paths=t;this.config=r;this.opts=n}metrics;lastResponseMetrics(){return this.metrics}async mint(t,r){let s=(await this.request({op:"mint",original:Buffer.from(t).toString("base64"),meta:r})).handle;if(!s?.startsWith("el:"))throw new Error("resident rsp returned invalid handle");return s}async get(t){let r=await this.request({op:"get",handle:t});return r?af(r)&&r.status==="expired"?r:!af(r)||typeof r.original!="string"?null:{...r,original:Buffer.from(r.original,"base64")}:null}async stats(){return await this.request({op:"stats"})}async recoveryHandles(t=5){return await this.request({op:"recovery-handles",limit:t})}async accountingStats(t){return await this.request({op:"accounting-stats",byteBudget:t})}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,r){return await this.request({op:"memory",action:t,payload:r})}async close(){}async request(t){this.opts.ensureResident!==!1&&await ko(this.paths,this.config);let r=await zr(this.paths,{...t,id:hT()});if(!r.ok)throw new Error(r.error);return this.metrics={storeOpenCount:r.storeOpenCount,storeElapsedMs:r.storeElapsedMs},r.value}}});function Rc(e,t,r=cf){let n=Math.max(0,Math.floor(e)),s=r in uf?r:cf,o=uf[s],i=t?Math.floor(n*(1-.25)):null,a=t?Math.ceil(n*(1+.25)):null;return{tokens_saved:n,tokens_saved_estimated:t,token_estimate_range_pct:t?.25:null,tokens_saved_low:i,tokens_saved_high:a,dollars_saved_estimate_usd:Ec(n,o),dollars_saved_low_usd:i==null?null:Ec(i,o),dollars_saved_high_usd:a==null?null:Ec(a,o),pricing_model_family:s,pricing_input_usd_per_million_tokens:o,pricing_note:yT}}function Ec(e,t){return bT(Math.max(0,e)/1e6*t)}function Zn(e){return`$${e.toFixed(6)}`}function bT(e){return Math.round(e*1e6)/1e6}var cf,uf,yT,kc=h(()=>{"use strict";cf="gpt-5",uf={"gpt-5":1.25,"gpt-5-mini":.25,"gpt-5-nano":.05,"gpt-4.1":2,"gpt-4.1-mini":.4,"gpt-4o":2.5,"gpt-4o-mini":.15,"claude-opus-4.1":15,"claude-opus-4":15,"claude-sonnet-4.5":3,"claude-sonnet-4":3,"claude-haiku-4.5":1,"claude-haiku-3.5":.8},yT="estimate derived from byte-based token estimate when token counts are estimated"});var es={};K(es,{isResidentEntryUnresolved:()=>pf,reportResidentEntryDiagnostic:()=>Tc,residentConfigFor:()=>df,residentElisionStore:()=>Sc});function df(e,t){return{storeUri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,telemetryTtlDays:e.telemetryTtlDays,telemetryByteBudget:e.telemetryByteBudget,telemetryDrainIntervalMs:e.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:e.telemetryDrainTimeoutMs,idleMs:e.idleMs,...t?{clientVersion:t}:{}}}function Sc(e,t,r={}){let n=r.paths??lt(e);return new Xn(n,df(t,lo("rsp").version),{ensureResident:r.ensureResident})}function Tc(e){return pf(e)?(lf||(lf=!0,process.stderr.write(`rsp: ${xt} \u2014 elision is off until an rsp entry is installed
59
+ `)}function kT(e,t){let r=Buffer.byteLength(e,"utf8");return r<=t?e:Buffer.from(e,"utf8").subarray(r-t).toString("utf8").replace(/^\uFFFD+/,"")}function ST(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return H(t)}}async function sf(e,t){try{let r=await zn(e.registryPath);if(!r||r.socket_path!==e.socketPath||r.store_uri!==t.storeUri)return;if(!Wt(r.pid)){await Pt(e.registryPath,{force:!0});return}if(await yr(r.socket_path,100))return;if(hf(t.clientVersion,r.resident_version)&&(await TT(r.pid,1500),!Wt(r.pid))){await Pt(e.registryPath,{force:!0});return}await bc(r.pid),await Pt(e.registryPath,{force:!0})}catch{}}async function TT(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(!Wt(e))return;await new Promise(n=>setTimeout(n,50))}}async function vT(e){if(!e.startsWith("file://"))return!1;try{return await fT(hT(e)),!1}catch(t){return t.code==="ENOENT"}}function gf(e,t){let r=rf(t,{rootDir:e.rootDir});return[r.command,r.args]}function xT(e){return Zm({key:e,socketFileName:"rsp.sock"})}function CT(e){let t=xc(e);for(let r=0;r<32;r++){try{let s=Tc(At(t,".git"));if(s!=null)return OT(t,s)??t;if(Tc(At(t,".git","HEAD"))!=null||Tc(At(t,".red","config.yaml"))!=null)return t}catch{}let n=hr(t);if(n===t)return null;t=n}return null}function OT(e,t){let r=/^gitdir:\s*(.+?)\s*$/m.exec(t);if(!r)return null;let n=xc(e,r[1]);return/[/\\]worktrees[/\\][^/\\]+$/.test(n)?hr(hr(hr(n))):null}function Tc(e){try{return pT(e,"utf8")}catch{return null}}async function of(e,t){let r=await pf(e).catch(()=>null);return r?hf(t.clientVersion,r.version)?(await AT(e,t.clientVersion),await GT(e),!1):!0:!1}async function AT(e,t){try{await zr({socketPath:e,timeoutMs:200},{id:cf(),op:"handover",clientVersion:t})}catch{}}function hf(e,t){return!e||!t?!1:PT(e,t)>0}function PT(e,t){let r=af(e),n=af(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}function af(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 yf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function IT(e){return typeof e=="string"&&e.length>0?e:void 0}function LT(e){return yf(e)&&e.version===df&&Number.isInteger(e.pid)&&typeof e.socket_path=="string"&&typeof e.store_uri=="string"&&typeof e.resident_version=="string"&&typeof e.started_at=="string"}async function GT(e){let t=Date.now()+1e3;for(;Date.now()<t;){if(!await yr(e,50))return;await new Promise(r=>setTimeout(r,50))}}var df,yT,_T,RT,Oo=h(()=>{J();Le();Ro();wc();kc();kc();df=1,yT=5e3;_T=yc;RT=8*1024});var br={};K(br,{RSP_ENTRY_UNRESOLVED:()=>Ot,ResidentRspElisionStore:()=>Yn,RspResidentEntryError:()=>Yr,ensureResidentServer:()=>To,kickResidentServer:()=>vo,pingResident:()=>yr,readResidentRegistry:()=>zn,removeResidentRegistry:()=>Co,residentRegistryStatus:()=>Kn,resolveResidentPaths:()=>ct,resolveRspEntry:()=>So,sweepResidentRegistry:()=>ff,warmResidentServer:()=>mf,writeResidentRegistry:()=>xo});import{randomUUID as DT}from"node:crypto";function bf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Yn,ut=h(()=>{"use strict";ef();Oo();Yn=class{constructor(t,r,n={}){this.paths=t;this.config=r;this.opts=n}metrics;lastResponseMetrics(){return this.metrics}async mint(t,r){let s=(await this.request({op:"mint",original:Buffer.from(t).toString("base64"),meta:r})).handle;if(!s?.startsWith("el:"))throw new Error("resident rsp returned invalid handle");return s}async get(t){let r=await this.request({op:"get",handle:t});return r?bf(r)&&r.status==="expired"?r:!bf(r)||typeof r.original!="string"?null:{...r,original:Buffer.from(r.original,"base64")}:null}async stats(){return await this.request({op:"stats"})}async recoveryHandles(t=5){return await this.request({op:"recovery-handles",limit:t})}async accountingStats(t){return await this.request({op:"accounting-stats",byteBudget:t})}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,r){return await this.request({op:"memory",action:t,payload:r})}async githubRead(t){return await this.request({op:"github-read",args:[...t.args],path:t.path,actor:t.actor,...t.params?{params:{...t.params}}:{}})}async close(){}async request(t){this.opts.ensureResident!==!1&&await To(this.paths,this.config);let r=await zr(this.paths,{...t,id:DT()});if(!r.ok)throw new Error(r.error);return this.metrics={storeOpenCount:r.storeOpenCount,storeElapsedMs:r.storeElapsedMs},r.value}}});function Oc(e,t,r=wf){let n=Math.max(0,Math.floor(e)),s=r in _f?r:wf,o=_f[s],i=t?Math.floor(n*(1-.25)):null,a=t?Math.ceil(n*(1+.25)):null;return{tokens_saved:n,tokens_saved_estimated:t,token_estimate_range_pct:t?.25:null,tokens_saved_low:i,tokens_saved_high:a,dollars_saved_estimate_usd:Cc(n,o),dollars_saved_low_usd:i==null?null:Cc(i,o),dollars_saved_high_usd:a==null?null:Cc(a,o),pricing_model_family:s,pricing_input_usd_per_million_tokens:o,pricing_note:$T}}function Cc(e,t){return NT(Math.max(0,e)/1e6*t)}function Qn(e){return`$${e.toFixed(6)}`}function NT(e){return Math.round(e*1e6)/1e6}var wf,_f,$T,Ac=h(()=>{"use strict";wf="gpt-5",_f={"gpt-5":1.25,"gpt-5-mini":.25,"gpt-5-nano":.05,"gpt-4.1":2,"gpt-4.1-mini":.4,"gpt-4o":2.5,"gpt-4o-mini":.15,"claude-opus-4.1":15,"claude-opus-4":15,"claude-sonnet-4.5":3,"claude-sonnet-4":3,"claude-haiku-4.5":1,"claude-haiku-3.5":.8},$T="estimate derived from byte-based token estimate when token counts are estimated"});var Zn={};K(Zn,{isResidentEntryUnresolved:()=>kf,reportResidentEntryDiagnostic:()=>Pc,residentConfigFor:()=>Rf,residentElisionStore:()=>Xn});function Rf(e,t){return{storeUri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,telemetryTtlDays:e.telemetryTtlDays,telemetryByteBudget:e.telemetryByteBudget,telemetryDrainIntervalMs:e.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:e.telemetryDrainTimeoutMs,idleMs:e.idleMs,...t?{clientVersion:t}:{}}}function Xn(e,t,r={}){let n=r.paths??ct(e);return new Yn(n,Rf(t,mo("rsp").version),{ensureResident:r.ensureResident})}function Pc(e){return kf(e)?(Ef||(Ef=!0,process.stderr.write(`rsp: ${Ot} \u2014 elision is off until an rsp entry is installed
60
60
  `),process.env.RSP_DEBUG==="1"&&e instanceof Error&&process.stderr.write(`${e.message}
61
- `)),!0):!1}function pf(e){return typeof e=="object"&&e!==null&&e.code===xt}var lf,wr=h(()=>{"use strict";Ja();dt();lf=!1});function Dc(e){return e==="success"?0:e==="failure"?1:2}function Gc(e){return e==="cmd"||e==="pr"||e==="run"||e==="release"}function At(e,t,r){return{status:e,exitCode:Dc(e),summary:t,...r?{details:r}:{}}}function fe(e,t){return{status:"indeterminate",exitCode:2,summary:e,...t?{details:t}:{}}}function Xr(e,t){return{status:"running",exitCode:2,summary:e,...t?{details:t}:{}}}var yf,bf,wf,Ic,_f,Ef,Rf,kf,Lc,_r=h(()=>{"use strict";yf="rsp.wait.result",bf="rsp.wait.registry",wf="rsp.wait.list",Ic={cmd:18e5,pr:27e5,run:27e5,release:72e5},_f=16*1024,Ef=1e4,Rf=2e3,kf=6e4,Lc={cmd:"local-cmd:event-driven",pr:"github-pr:15-20s-backoff-jitter",run:"github-run:15-20s-backoff-jitter",release:"release:60s"}});import{readdir as ST,readFile as TT}from"node:fs/promises";async function Zr(e,t){let r=e.pid;if(!r)return{cleaned:!0,escalation:"none",survivors:[]};let n=await Ao(r),s=[r,...n];if(s.every(c=>!Er(c)))return{cleaned:!0,escalation:"none",survivors:[]};if(Sf(e,"SIGTERM"),Oo(n,"SIGTERM"),await Tf(s,t))return{cleaned:!0,escalation:"term",survivors:[]};let o=[...new Set([...s,...await Ao(r)])];Sf(e,"SIGKILL"),Oo(o,"SIGKILL");let i=Math.max(1e3,t);await vT(e,i);let a=await Tf(o,i);return{cleaned:a,escalation:"kill",survivors:a?[]:o.filter(Er)}}function Sf(e,t){let r=e.pid;if(r)try{process.platform!=="win32"?process.kill(-r,t):e.kill(t)}catch{try{e.kill(t)}catch{}}}function Oo(e,t){for(let r of e)try{process.kill(r,t)}catch{}}async function vT(e,t){return e.exitCode!==null||e.signalCode!==null?!0:await new Promise(r=>{let n=setTimeout(()=>r(!1),t);e.once("close",()=>{clearTimeout(n),r(!0)})})}async function Tf(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(e.every(n=>!Er(n)))return!0;await xT(Math.min(25,Math.max(1,r-Date.now())))}return e.every(n=>!Er(n))}async function Ao(e){if(process.platform!=="linux")return[];let t=new Map;for(let s of await ST("/proc").catch(()=>[])){if(!/^[1-9][0-9]*$/.test(s))continue;let o=Number(s),i=await vf(o);if(!i)continue;let a=Number(i[1]);if(!Number.isSafeInteger(a))continue;let c=t.get(a)??[];c.push(o),t.set(a,c)}let r=[],n=[...t.get(e)??[]];for(;n.length>0;){let s=n.shift();r.push(s),n.push(...t.get(s)??[])}return r.reverse()}async function ts(e){return(await vf(e))?.[19]}async function en(e,t){if(!Er(e))return!1;if(!t)return!0;let r=await ts(e);return r===void 0?process.platform!=="linux":r===t}function Er(e){try{return process.kill(e,0),!0}catch{return!1}}async function vf(e){if(process.platform!=="linux")return null;try{let t=await TT(`/proc/${e}/stat`,"utf8"),r=t.lastIndexOf(")");return r<0?null:t.slice(r+2).trim().split(/\s+/)}catch{return null}}async function xT(e){await new Promise(t=>setTimeout(t,e))}var Pt=h(()=>{"use strict"});import{constants as CT}from"node:os";async function xf(e){let t=e[1],r={timeoutMs:Ic.cmd,reason:"",signal:"SIGUSR1",notifyTimeoutMs:Ef,terminateGraceMs:Rf,probeTimeoutMs:kf,format:"toon",captureBytes:_f},n={kind:t,options:r};if(!t||t==="--help"||t==="-h")return{...n,kind:"help"};if(t!=="ls"&&t!=="cmd"&&t!=="pr"&&t!=="run"&&t!=="release")return{...n,kind:void 0};t!=="ls"&&(r.timeoutMs=Ic[t]);let s=e.indexOf("--"),o=s>=0?s:e.length;for(let i=2;i<o;i++){let a=e[i];a==="--timeout"?r.timeoutMs=rs(e[++i]??""):a==="--reason"?r.reason=e[++i]??"":a==="--signal-pid"?r.signalPid=Number(e[++i]):a==="--signal"?r.signal=PT(e[++i]??""):a==="--notify-cmd"?r.notifyCmd=e[++i]??"":a==="--notify-timeout"?r.notifyTimeoutMs=rs(e[++i]??""):a==="--terminate-grace"?r.terminateGraceMs=rs(e[++i]??""):a==="--probe-timeout"?r.probeTimeoutMs=rs(e[++i]??""):a==="--result-file"?r.resultFile=e[++i]??"":a==="--json"?r.format="json":a==="--capture-bytes"?r.captureBytes=AT(e[++i]??"","capture bytes"):t==="run"&&a==="--branch"?n.branch=e[++i]??"":t==="run"&&a==="--latest"?n.latest=!0:t==="release"&&a==="--tag"?n.tagGlob=e[++i]??"":!a.startsWith("--")&&!n.target&&(n.target=a)}return await OT(r),t==="cmd"&&(n.commandLine=s>=0?e.slice(s+1).join(" "):""),n}async function OT(e){if(!(e.signal in CT.signals))throw new Error(`invalid signal: ${e.signal}`);if(e.signalPid!==void 0){if(!Number.isSafeInteger(e.signalPid)||e.signalPid<=0)throw new Error(`invalid signal pid: ${e.signalPid}`);if(!Er(e.signalPid))throw new Error(`signal pid is not running: ${e.signalPid}`);e.signalPidStartTime=await ts(e.signalPid)}if(e.resultFile!==void 0&&!e.resultFile.trim())throw new Error("invalid result file: empty path")}function rs(e){let t=/^([1-9][0-9]*)(ms|s|m|h)?$/.exec(e);if(!t)throw new Error(`invalid timeout: ${e}`);let r=Number(t[1]),n=t[2]??"ms";return n==="ms"?r:n==="s"?r*1e3:n==="m"?r*6e4:r*60*6e4}function ns(e,t,r=process.env){let n=r[e];if(!n)return t;try{return rs(n)}catch{return t}}function AT(e,t){if(!/^[1-9][0-9]*$/.test(e))throw new Error(`invalid ${t}: ${e}`);return Number(e)}function PT(e){return e.startsWith("SIG")?e:`SIG${e}`}var Cf=h(()=>{"use strict";_r();Pt()});import{existsSync as $c,readFileSync as IT,statSync as LT}from"node:fs";import{basename as Of,dirname as Po,isAbsolute as DT,join as Af,resolve as ss}from"node:path";function Io(e,t=process.env){let r=ss(e);if(Ka.map(i=>t[i]).find(Boolean))return pm({startDir:r,env:t,exists:$c});let s=$T(r),o=GT(r,s);return o||(s??r)}function GT(e,t){let r=e;for(;;){if($c(Af(r,".red")))return r;if(t&&r===t)return null;let n=ss(r,"..");if(n===r)return null;r=n}}function $T(e){let t=e;for(;;){let r=Af(t,".git");if($c(r))return MT(r)?t:NT(r)??t;let n=ss(t,"..");if(n===t)return null;t=n}}function NT(e){let t=FT(e);if(!t)return null;let r=Po(t),n=Po(r);return Of(r)!=="worktrees"||Of(n)!==".git"?null:Po(n)}function FT(e){let t;try{t=IT(e,"utf8")}catch{return null}let r=/^gitdir:\s*(.+)$/m.exec(t.trim());if(!r)return null;let n=r[1].trim();return DT(n)?ss(n):ss(Po(e),n)}function MT(e){try{return LT(e).isDirectory()}catch{return!1}}var Nc=h(()=>{$e()});import{join as BT}from"node:path";function UT(e,t=process.env){return Io(e,t)}function tn(e,t=process.env){return dm(UT(e,t))}function Pf(e,t=process.env){return BT(tn(e,t),jT)}var jT,Fc=h(()=>{"use strict";$e();Nc();jT="spool"});import{randomUUID as HT}from"node:crypto";import{existsSync as qT}from"node:fs";import{mkdir as WT,readdir as JT,readFile as VT,rename as KT,rm as Mc,writeFile as zT}from"node:fs/promises";import{dirname as YT,join as Lf}from"node:path";function Df(e,t,r=process.env){return Lf(tn(e,r),`${t}${QT}`)}async function rn(e,t){await Bc(e,`${se(t)}
62
- `)}async function Lo(e,t,r){t.status=r,await rn(e,t)}async function Do(e,t=process.env){let r=tn(e,t);if(!qT(r))return[];let n=await JT(r).catch(()=>[]),s=[];for(let o of n.filter(i=>XT.some(a=>i.endsWith(a)))){let i=Lf(r,o),a=await ZT(i);if(!a){await Mc(i,{force:!0});continue}if(!await ev(a)){await Mc(i,{force:!0});continue}s.push(a)}return s}async function ZT(e){let t;try{t=await VT(e,"utf8")}catch{return null}let r=t.trim();if(!r)return null;let n=tv(r);return n&&Object.keys(n).length>0?n:null}async function ev(e){let t=typeof e.pid=="number"?e.pid:0;if(!t||!Number.isSafeInteger(t)||t<=0)return!1;let r=typeof e.pid_start_time=="string"?e.pid_start_time:void 0;return await en(t,r)}function tv(e){try{let t=H(e);if(If(t))return t}catch{}try{let t=JSON.parse(e);if(If(t))return t}catch{}return null}async function Bc(e,t){await WT(YT(e),{recursive:!0});let r=`${e}.tmp-${process.pid}-${HT()}`;try{await zT(r,t,"utf8"),await KT(r,e)}finally{await Mc(r,{force:!0})}}function jc(e){return{schema:bf,version:1,...e}}function If(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var QT,XT,is=h(()=>{"use strict";W();Tt();_r();Fc();Pt();QT=".toon",XT=[".toon",".json"]});function nn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function pt(e){return nn(e)?e:{}}function Rr(e){return Array.isArray(e)?e.filter(nn):[]}function ge(e,t){let r=e[t];return typeof r=="string"?r:""}function sn(e,t){let r=e[t];return typeof r=="number"?r:0}function Uc(e){let t=JSON.parse(e);if(!nn(t))throw new Error("expected JSON object");return t}function Go(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}var $o=h(()=>{"use strict"});import{spawn as rv}from"node:child_process";import{resolve as nv}from"node:path";async function Gf(e,t,r){let n=[];if(e.signalPid){let s=await sv(e);s&&n.push(s)}if(e.notifyCmd?.trim()){let s=await ov(e,t,r);s&&n.push({hook:"notify-cmd",...s})}return n.length===0?{status:"success"}:{status:"failure",errors:n}}async function sv(e){let t=e.signalPid;if(!await en(t,e.signalPidStartTime))return{hook:"signal-pid",error:"target process is no longer the process the wait was asked to signal",pid:t,signal:e.signal};try{return process.kill(t,e.signal),null}catch(r){return{hook:"signal-pid",error:$f(r),pid:t,signal:e.signal}}}async function ov(e,t,r){let n=pt(t.wait),s=pt(t.verdict);return await iv(e.notifyCmd,r,e.notifyTimeoutMs,e.terminateGraceMs,{...process.env,RSP_WAIT_RESULT_JSON:JSON.stringify(t),RSP_WAIT_RESULT_FILE:e.resultFile?nv(r,e.resultFile):"",RSP_WAIT_STATUS:String(n.status??"indeterminate"),RSP_WAIT_EXIT_CODE:String(s.target_exit_code??2),RSP_WAIT_TARGET:String(n.target??""),RSP_WAIT_RESULT_SCHEMA:"rsp.wait.result@1"})}async function iv(e,t,r,n,s){return await new Promise(o=>{let i=!1,a=!1,c=p=>{i||(i=!0,o(p))},u=rv(e,{cwd:t,shell:!0,stdio:"ignore",env:s,detached:process.platform!=="win32"}),l=setTimeout(()=>{a=!0,Zr(u,n).then(p=>c({error:`timed out after ${r}ms`,...p.cleaned?{}:{survivors:p.survivors}}))},r);u.once("error",p=>{clearTimeout(l),c({error:$f(p)})}),u.once("close",(p,d)=>{clearTimeout(l),!a&&c(p===0?null:{error:`exited with ${d??p??"unknown"}`,status:p??null,signal:d??null})})})}function $f(e){return e instanceof Error?e.message:String(e)}var Nf=h(()=>{"use strict";$o();Pt()});import{resolve as av}from"node:path";async function Ff(e){let{kind:t,entry:r,options:n,cwd:s}=e,o=cv(e.verdict,e.cleanupProven,e.survivors),i=new Date().toISOString(),a=as(t,r,o,{status:"pending"},i);await cs(n.resultFile,a,n.format);let c=await Gf(n,a,s),u=as(t,r,o,c,i);return await cs(n.resultFile,u,n.format),{result:u,exitCode:Mf(o,c)}}function Mf(e,t){return t.status!=="success"||e.status==="running"?2:Dc(e.status)}function cv(e,t,r=[]){return t!==!1?e:{status:"indeterminate",exitCode:2,summary:`${e.summary}; could not verify process cleanup`,details:{...e.details??{},cleanup:{verified:!1,survivors:r}}}}function as(e,t,r,n,s){return{schema:yf,version:1,wait:{id:t.id,target:t.target,kind:e,status:r.status,reason:t.reason,started_at:t.started_at,completed_at:s,poll_tier:t.poll_tier},verdict:{exit_code:Mf(r,n),target_exit_code:r.exitCode,summary:r.summary,delivery:n,...r.details?{details:r.details}:{}}}}async function cs(e,t,r){e&&await Bc(av(e),on(t,r))}function on(e,t){return t==="json"?`${JSON.stringify(e,null,2)}
63
- `:`${se(e)}
64
- `}var Bf=h(()=>{"use strict";Tt();_r();is();Nf()});import{createWriteStream as uv,mkdirSync as lv}from"node:fs";import{readFile as dv,rm as pv}from"node:fs/promises";import{dirname as mv}from"node:path";import{join as jf}from"node:path";function Uf(e,t,r){return{stdout:new No(r,jf(e,`${t}.stdout.bin`)),stderr:new No(r,jf(e,`${t}.stderr.bin`))}}function fv(e){let t=e.toString("utf8");return Buffer.from(t,"utf8").equals(e)&&!gv(e)?{inline:t}:{inline:e.toString("base64"),inline_encoding:"base64"}}function gv(e){for(let t of e)if(t<=8||t>=11&&t<=31&&t!==13||t===127)return!0;return!1}var No,Hf=h(()=>{"use strict";No=class{constructor(t,r){this.limit=t;this.spoolPath=r}head=[];headBytes=0;total=0;spool=null;spoolReady=Promise.resolve();spoolError=null;closed=!1;write(t){if(this.closed)return;this.total+=t.length;let r=this.limit-this.headBytes;if(r>0){let n=t.subarray(0,r);this.head.push(n),this.headBytes+=n.length}if(this.total>this.limit){let n=r>0?t.subarray(r):t;this.openSpool(),n.length>0&&this.appendSpool(n)}}async finish(t,r){this.closed=!0;let n=Buffer.concat(this.head),s=this.total>this.headBytes,o={bytes:this.total,...fv(n),truncated:s};if(!s)return await this.discardSpool(),o;if(await this.closeSpool(),this.spoolError)return o.recovery_error=this.spoolError,o;try{let i=await dv(this.spoolPath);o.handle=await t.mint(Buffer.concat([n,i]),{command:r,loss:{level:"terse",bytes_elided:this.total-this.headBytes}}),await this.discardSpool()}catch(i){o.recovery_error=i instanceof Error?i.message:String(i),o.spool_path=this.spoolPath}return o}async discard(){this.closed=!0,await this.closeSpool(),await this.discardSpool()}openSpool(){if(this.spool||this.spoolError)return;let t;try{lv(mv(this.spoolPath),{recursive:!0}),t=uv(this.spoolPath,{flags:"w"})}catch(r){this.spoolError=r instanceof Error?r.message:String(r);return}t.on("error",r=>{this.spoolError=r instanceof Error?r.message:String(r)}),this.spool=t}appendSpool(t){let r=this.spool;r&&(this.spoolReady=this.spoolReady.then(()=>new Promise(n=>{r.write(t)?n():r.once("drain",()=>n())})))}async closeSpool(){let t=this.spool;t&&(this.spool=null,await this.spoolReady.catch(()=>{}),await new Promise(r=>t.end(()=>r())))}async discardSpool(){await pv(this.spoolPath,{force:!0}).catch(()=>{})}}});import{existsSync as hv,readFileSync as MM}from"node:fs";import{dirname as yv,join as bv}from"node:path";function qf(e,t){let r=e;for(let n=0;n<16;n++){let s=bv(r,t);if(hv(s))return s;let o=yv(r);if(o===r)break;r=o}return null}function wv(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function Fo(e,t){let r=[];for(let n of e.split(`
65
- `)){let s=n.replace(/\r$/,""),o=s.trim();if(!o||o.startsWith("#"))continue;let i=s.indexOf(":");if(i<0)continue;let a=s.length-s.trimStart().length,c=s.slice(0,i).trim();if(!c)continue;let u=s.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:c}),u&&r.map(p=>p.key).join(".")===t)return wv(u)}}var Wf=h(()=>{});var tg={};K(tg,{DEFAULT_GH_ETAG_CACHE_MAX_BYTES:()=>cn,GH_ETAG_CACHE_DIR_NAME:()=>zf,LEGACY_GH_ETAG_CACHE_FILE:()=>Yf,LEGACY_GH_ETAG_CACHE_JSON_FILE:()=>Qf,enforceGhEtagCacheCeiling:()=>Kc,ghEtagCacheDir:()=>Mo,ghEtagEntryPath:()=>Bo,isCacheEntry:()=>Uo,legacyGhEtagCachePaths:()=>Wc,migrateLegacyGhEtagCache:()=>Yc,readGhEtagCache:()=>jo,readGhEtagEntry:()=>Jc,resetGhEtagCacheMigrationMemo:()=>vv,sweepGhEtagCache:()=>zc,writeGhEtagEntry:()=>Vc});import{existsSync as _v}from"node:fs";import{mkdir as Ev,readdir as Rv,rename as kv,rm as Jf,stat as Vf,unlink as Kf,writeFile as Sv}from"node:fs/promises";import{dirname as Tv,join as an}from"node:path";function Mo(e){return an(ne(e),zf)}function Bo(e,t){return an(Mo(e),`${Av(t)}.toon`)}function Wc(e){let t=ne(e);return[an(t,Yf),an(t,Qf)]}async function Jc(e,t){await Yc(e);try{let r=eg(await bo(Bo(e,t)));return Uo(r)?r:void 0}catch{return}}async function Vc(e,t,r={}){return await Zf(Bo(e,t.key),t),await Kc(e,r.maxBytes??cn)}async function Kc(e,t=cn){let r=await Cv(e),n=r.reduce((o,i)=>o+i.bytes,0);if(n<=t)return{evictedEntries:0,bytes:n};r.sort((o,i)=>o.mtimeMs-i.mtimeMs||o.path.localeCompare(i.path));let s=0;for(let o of r){if(n<=t)break;try{await Kf(o.path),n-=o.bytes,s+=1}catch{}}return{evictedEntries:s,bytes:n}}async function zc(e,t={}){let r=await Yc(e,{force:!0}),n=await xv(e);return{...await Kc(e,t.maxBytes??cn),reclaimedTmp:n,migratedEntries:r}}async function jo(e){for(let t of Wc(e))try{let r=eg(await bo(t));if(Pv(r))return r}catch{}return{version:1,entries:{}}}async function Yc(e,t={}){if(!t.force&&Hc.has(e))return 0;Hc.add(e);let r=Wc(e).filter(o=>_v(o));if(r.length===0)return 0;let n=await jo(e),s=0;for(let[o,i]of Object.entries(n.entries)){if(!Uo(i))continue;let a=Bo(e,o);await Ov(a)||(await Zf(a,{...i,key:o}),s+=1)}for(let o of r)await Jf(o,{force:!0});return s}function vv(){Hc.clear()}async function xv(e){let t=0;for(let r of[ne(e),Mo(e)])for(let n of await Xf(r))if(n.endsWith(".tmp"))try{await Kf(an(r,n)),t+=1}catch{}return t}async function Cv(e){let t=Mo(e),r=[];for(let n of await Xf(t)){if(!n.endsWith(".toon"))continue;let s=an(t,n);try{let o=await Vf(s);o.isFile()&&r.push({path:s,bytes:o.size,mtimeMs:o.mtimeMs})}catch{}}return r}async function Xf(e){try{return await Rv(e)}catch{return[]}}async function Ov(e){try{return await Vf(e),!0}catch{return!1}}async function Zf(e,t){await Ev(Tv(e),{recursive:!0});let r=`${e}.${process.pid}.${Date.now()}.tmp`;try{await Sv(r,`${$(t)}
66
- `,{encoding:"utf8",mode:384}),await kv(r,e)}catch(n){throw await Jf(r,{force:!0}),n}}function Av(e){if(!/^[A-Za-z0-9_-]{1,128}$/.test(e))throw new Error(`unsafe gh etag cache key: ${e}`);return e}function eg(e){try{return JSON.parse(e)}catch{return H(e)}}function Pv(e){return qc(e)&&e.version===1&&qc(e.entries)&&Object.values(e.entries).every(Uo)}function Uo(e){return qc(e)&&typeof e.key=="string"&&typeof e.request=="string"&&typeof e.etag=="string"&&typeof e.body=="string"&&typeof e.updated_at=="string"}function qc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var zf,Yf,Qf,cn,Hc,us=h(()=>{"use strict";$e();W();oe();zf="gh-etag",Yf="gh-etag-cache.toon",Qf="gh-etag-cache.json",cn=4*1024*1024;Hc=new Set});var ag={};K(ag,{DEFAULT_RSP_BYTE_BUDGET:()=>Qe,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Ye,DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>It,DEFAULT_RSP_IDLE_MS:()=>Wo,DEFAULT_RSP_MEASUREMENT_HOLDOUT_SHARE:()=>ig,DEFAULT_RSP_STORE_PATH:()=>Qc,DEFAULT_RSP_TELEMETRY_BYTE_BUDGET:()=>qo,DEFAULT_RSP_TELEMETRY_DRAIN_INTERVAL_MS:()=>ng,DEFAULT_RSP_TELEMETRY_DRAIN_TIMEOUT_MS:()=>sg,DEFAULT_RSP_TELEMETRY_TTL_DAYS:()=>Ho,DEFAULT_RSP_TTL_DAYS:()=>ze,MIN_RSP_IDLE_MS:()=>og,resolveRspConfig:()=>Xe});import{existsSync as Iv,readFileSync as Lv}from"node:fs";import{join as Dv,resolve as rg}from"node:path";function Xe(e,t,r){let n=qf(rg(e),Dv(".red","config.yaml")),s=n?Lv(n,"utf8"):"",o=Fo(s,"rsp.enabled")==="true",i=Fo(s,"rsp.proxy.enabled"),a=i===void 0?o:i==="true",c=Se(ce(s,"rsp.ttlDays"),ze),u=Se(mt(t.RSP_EPHEMERAL_TTL_HOURS)??ce(s,"rsp.ephemeralTtlHours"),Ye),l=Se(ce(s,"rsp.byteBudget"),Qe),p=Se(ce(s,"rsp.telemetryTtlDays"),Ho),d=Se(ce(s,"rsp.telemetryByteBudget")??ce(s,"rsp.byteBudget"),qo),g=Se(mt(t.RSP_TELEMETRY_DRAIN_INTERVAL_MS)??ce(s,"rsp.telemetryDrainIntervalMs"),ng),f=Se(mt(t.RSP_TELEMETRY_DRAIN_TIMEOUT_MS)??ce(s,"rsp.telemetryDrainTimeoutMs"),sg),k=Gv(mt(t.RSP_IDLE_MS)??ce(s,"rsp.idleMs"),Wo,og),E=Se(mt(t.RSP_HEAVY_GIT_BYTE_THRESHOLD)??ce(s,"rsp.heavyGitByteThreshold"),It),y=$v(mt(t.RSP_MEASUREMENT_HOLDOUT_SHARE)??ce(s,"rsp.measurement.holdoutShare"),ig),_=Se(mt(t.RSP_GH_ETAG_CACHE_MAX_BYTES)??ce(s,"rsp.ghEtagCacheMaxBytes"),cn),T={maxOverheadMs:Se(mt(t.RSP_MAX_OVERHEAD_MS)??ce(s,"rsp.overhead.maxOverheadMs"),po),maxSelfStateBytes:Se(mt(t.RSP_MAX_SELF_STATE_BYTES)??ce(s,"rsp.overhead.maxSelfStateBytes"),mo),netLossFloorBytes:Se(ce(s,"rsp.overhead.netLossFloorBytes"),fo),consecutiveBreaches:Se(mt(t.RSP_OVERHEAD_CONSECUTIVE_BREACHES)??ce(s,"rsp.overhead.consecutiveBreaches"),go),cooldownMs:Se(ce(s,"rsp.overhead.cooldownMs"),ho)},v=lt(e).rootDir,G=r??t.RSP_STORE_URI??`file://${lm(rg(v),Iv)}`;return{enabled:o,proxyEnabled:a,storeUri:G,ttlDays:c,ephemeralTtlHours:u,byteBudget:l,telemetryTtlDays:p,telemetryByteBudget:d,telemetryDrainIntervalMs:g,telemetryDrainTimeoutMs:f,idleMs:k,heavyGitByteThreshold:E,measurementHoldoutShare:y,ghEtagCacheMaxBytes:_,overhead:T}}function ce(e,t){let r=Fo(e,t);if(r==null)return;let n=Number(r);return Number.isFinite(n)?n:void 0}function Se(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function Gv(e,t,r){let n=Se(e,t);return Math.max(n,r)}function $v(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e<=0?0:e>=1?1:e}function mt(e){if(e==null||e.trim()==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}var It,Qc,ze,Ye,Qe,Ho,qo,ng,sg,Wo,og,ig,Ze=h(()=>{"use strict";Wf();$e();xo();oe();us();It=8*1024,Qc=cm,ze=7,Ye=6,Qe=64*1024*1024,Ho=90,qo=4*1024*1024,ng=3e4,sg=2e3,Wo=5*6e4,og=5e3,ig=0});function cg(e,t=process.env){return{async mint(r,n){let{residentElisionStore:s}=await Promise.resolve().then(()=>(wr(),es)),o=s(e,Xe(e,t));try{return await o.mint(r,n)}finally{await o.close()}}}}var ug=h(()=>{"use strict";Ze()});import{spawn as Nv}from"node:child_process";async function dg(e){let{commandLine:t,options:r,cwd:n,registryPath:s,entry:o,signal:i}=e;if(!t.trim())return{verdict:fe("missing command line")};let a=e.store??cg(n),c=Uf(e.spoolDir,o.id,r.captureBytes);return await new Promise(u=>{let l=!1,p=!1,d=async y=>{l||(l=!0,i.removeEventListener("abort",k),await Lo(s,o,y.verdict.status).catch(()=>{}),u(y))},g=Nv(t,{cwd:n,shell:!0,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"});g.stdout?.on("data",y=>c.stdout.write(Buffer.from(y))),g.stderr?.on("data",y=>c.stderr.write(Buffer.from(y)));let f=async(y,_)=>{if(l||p)return;p=!0,clearTimeout(E);let T=await Zr(g,r.terminateGraceMs),v=await lg(null,null,c,a,t);await d({verdict:{status:y,exitCode:2,summary:_,details:v},cleanupProven:T.cleaned,survivors:T.survivors})},k=()=>void f("indeterminate","command interrupted");i.addEventListener("abort",k,{once:!0});let E=setTimeout(()=>{f("timeout",`command timed out after ${pg(r.timeoutMs)}`)},r.timeoutMs);g.once("error",y=>{clearTimeout(E),c.stdout.discard(),c.stderr.discard(),d({verdict:{status:"failure",exitCode:1,summary:y.message}})}),g.once("close",(y,_)=>{if(clearTimeout(E),l||p)return;let T=y===0;lg(y,_,c,a,t).then(v=>d({verdict:{status:T?"success":"failure",exitCode:T?0:1,summary:T?"command exited successfully":`command exited with ${_??y??"unknown"}`,details:v}}))}),i.aborted&&k()})}async function Jo(e){let{probe:t,timeoutMs:r,baseSleepMs:n,registryPath:s,entry:o,signal:i}=e,a=Date.now()+r,c=0,u;for(;Date.now()<a;){if(i.aborted)return{verdict:Fv(u,c,o.last_poll_at)};let l;try{l=await t()}catch(k){l=fe(k instanceof Error?k.message:String(k))}if(u=l,o.attempts=++c,o.last_poll_at=new Date().toISOString(),o.last_observation=Xc(l),await rn(s,o).catch(()=>{}),l.status!=="running"&&l.status!=="indeterminate")return await Lo(s,o,l.status).catch(()=>{}),{verdict:l};let p=Math.min(n*4,Math.round(n*Math.pow(1.25,c-1))),d=Math.floor(Math.random()*1e3),g=Math.min(p+d,Math.max(0,a-Date.now())),f=e.makeWakeSignal?.();await Mv(g,i,f)}return await Lo(s,o,"timeout").catch(()=>{}),{verdict:{status:"timeout",exitCode:2,summary:`timed out after ${pg(r)}`,details:u?{attempts:c,last_poll_at:o.last_poll_at??null,last_observation:Xc(u)}:{attempts:c}}}}async function lg(e,t,r,n,s){let[o,i]=await Promise.all([r.stdout.finish(n,`${s} # stdout`),r.stderr.finish(n,`${s} # stderr`)]);return{status:e??null,signal:t??null,stdout:o,stderr:i}}function Xc(e){return{status:e.status,exit_code:e.exitCode,summary:e.summary,...e.details?{details:e.details}:{}}}function Fv(e,t,r){return fe("wait interrupted",{attempts:t,last_poll_at:r??null,...e?{last_observation:Xc(e)}:{}})}async function Mv(e,t,r){t.aborted||e<=0||r?.aborted||await new Promise(n=>{let s=setTimeout(o,e);function o(){clearTimeout(s),t.removeEventListener("abort",i),r?.removeEventListener("abort",a),n()}let i=()=>o(),a=()=>o();t.addEventListener("abort",i,{once:!0}),r?.addEventListener("abort",a,{once:!0})})}function pg(e){return e%36e5===0?`${e/36e5}h`:e%6e4===0?`${e/6e4}m`:e%1e3===0?`${e/1e3}s`:`${e}ms`}var mg=h(()=>{"use strict";Hf();ug();_r();Pt();is()});var Zc,eu,tu,Ce,he,Fe,ft,ls,Vo=h(()=>{"use strict";Zc="rsp-telemetry.spool.toonl",eu="rsp-telemetry.spool.jsonl",tu="rsp-telemetry.spool.corrections.toonl",Ce="rsp_accounting_events_v1",he="rsp_decisions_v1",Fe="rsp_telemetry_invocations_v1",ft="rsp_telemetry_degradations_v1",ls="rsp_telemetry_index_v1"});function un(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Me(e){return Vt(e)??0}function Vt(e){return typeof e=="number"&&Number.isFinite(e)?e:null}var ru=h(()=>{"use strict"});import{randomUUID as su,createHash as Bv}from"node:crypto";import{appendFileSync as bg,existsSync as jv,mkdirSync as wg}from"node:fs";import{mkdir as _g,readdir as Uv,readFile as Eg,rename as Hv,rm as Rg,writeFile as ou}from"node:fs/promises";import{basename as nu,dirname as ds,join as ln,resolve as fg}from"node:path";function zo(e){if(!e)return null;let t=fg(e);for(;;){if(jv(ln(t,".red")))return t;let r=fg(ln(t,".."));if(r===t)break;t=r}return null}function Lt(e){return ln(ne(e),Zc)}function Yo(e){return ln(ne(e),eu)}function au(e){return ln(ne(e),tu)}async function Dt(e,t){Kt(e,t)}function Kt(e,t){try{let r=zo(e);if(!r)return;let n=Lt(r);wg(ds(n),{recursive:!0}),bg(n,zv({spool_id:su(),event:Wv(t)}),{encoding:"utf8",mode:384})}catch{}}function Wv(e){return gg(gg(e,"raw_text","raw_bytes"),"emitted_text","emitted_bytes")}function gg(e,t,r){let n=e[t];if(typeof n!="string")return e;let s=Buffer.byteLength(n,"utf8");if(s<=qv)return e;let o={...e};return delete o[t],Me(o[r])===0&&(o[r]=s),o.estimated=!0,o}async function Jv(e){let t=zo(e);if(!t)return[];let r=Lt(t);await _g(ds(r),{recursive:!0}).catch(()=>{});let n=await Tg(t),s=[...await vg(t),...await Qv(n)];return await Promise.all(n.map(o=>Rg(o,{force:!0}))),s.map(o=>JSON.stringify(o.event))}async function cu(e,t){let r=zo(e);if(!r)return;let n=Lt(r);await _g(ds(n),{recursive:!0}).catch(()=>{}),await Yv(r);for(let s of await Vv(r))await hg(r,s,t);for(let s of await vg(r))await kg(r,s,t,!0);for(let s of await Tg(r))await hg(r,s,t)}async function Vv(e){let t=[Lt(e),Yo(e)],r=ds(t[0]);return(await Uv(r).catch(()=>[])).filter(s=>t.some(o=>s.startsWith(`${nu(o)}.`)&&s.endsWith(".drain"))).filter(s=>{let o=t.find(c=>s.startsWith(`${nu(c)}.`));if(!o)return!1;let i=`${nu(o)}.`,a=Number(s.slice(i.length).split(".")[0]);return!(Number.isInteger(a)&&a!==process.pid&&Kv(a))}).sort().map(s=>ln(r,s))}function Kv(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function hg(e,t,r){try{let n=await Sg(t);for(let s of xg(n))await kg(e,s,r,!1)}finally{await Rg(t,{force:!0})}}async function kg(e,t,r,n){let s=t.event?JSON.stringify(t.event):t.raw_line??"";try{if(await r(s)){n&&yg(e,{correction_id:su(),target_spool_id:t.spool_id,action:"resolved",created_at:new Date().toISOString()});return}}catch{}yg(e,{correction_id:su(),target_spool_id:t.spool_id,action:"retry",created_at:new Date().toISOString(),event_json:t.event?JSON.stringify(t.event):void 0})}async function Sg(e){let t="";for(let r=0;r<5;r++){let n=await Eg(e,"utf8").catch(()=>"");if(n===t)return n;t=n,await new Promise(s=>setTimeout(s,2))}return t}function dn(e){try{let t=JSON.parse(e);return!un(t)||t.collection!==Ce&&t.collection!==he&&t.collection!==Fe&&t.collection!==ft?null:t}catch{return null}}function zv(e){return Ht().push(ex(e))}function yg(e,t){try{let r=zo(e);if(!r)return;let n=au(r);wg(ds(n),{recursive:!0});let s=Ht();bg(n,s.push({correction_id:t.correction_id,target_spool_id:t.target_spool_id,action:t.action,created_at:t.created_at,event_json:t.event_json??null}),{encoding:"utf8",mode:384})}catch{}}async function Tg(e){let t=[Lt(e),Yo(e)],r=[];for(let n of t){let s=`${n}.${process.pid}.${Date.now()}.drain`;try{await Hv(n,s),await ou(n,"",{flag:"wx"}).catch(()=>{}),r.push(s)}catch(o){if(o.code!=="ENOENT")continue}}return r}async function Yv(e){await Promise.all([ou(Lt(e),"",{flag:"a"}),ou(Yo(e),"",{flag:"a"})]).catch(()=>{})}async function Qv(e){let t=[];for(let r of e)t.push(...xg(await Sg(r)));return t}async function vg(e){let t=await Eg(au(e),"utf8").catch(()=>""),r=new Map;for(let n of Xv(t))r.set(n.target_spool_id,n);return[...r.values()].filter(n=>n.action==="retry"&&n.event_json).map(n=>({spool_id:n.target_spool_id,event:dn(n.event_json)??void 0})).filter(n=>n.event!==void 0)}function xg(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s){try{let o=JSON.parse(s);if(un(o)){let i=dn(JSON.stringify(o));t.push(i?{spool_id:Ko(JSON.stringify(o)),event:i}:{spool_id:Ko(s),raw_line:s})}continue}catch{}if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r){t.push({spool_id:Ko(s),raw_line:s});continue}try{for(let o of Ut(`${r}
67
- ${s}
68
- `))iu(o)&&tx(o)&&t.push({spool_id:o.spool_id,event:Cg(o)})}catch{s.startsWith("{")&&t.push({spool_id:Ko(s),raw_line:s})}}}return t}function Xv(e){return Zv(e).map(rx).filter(t=>t!==null)}function Zv(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s)try{let o=JSON.parse(s);iu(o)&&t.push(o)}catch{if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r)continue;try{for(let o of Ut(`${r}
69
- ${s}
70
- `))iu(o)&&t.push(o)}catch{}}}return t}function Ko(e){return`legacy:${Bv("sha256").update(e).digest("hex").slice(0,24)}`}function ex(e){let t={spool_id:e.spool_id};for(let[r,n]of Object.entries(e.event??{}))r!=="spool_id"&&(typeof n=="string"||typeof n=="number"||typeof n=="boolean"||n===null?t[r]=n:n!==void 0&&(t[r]=JSON.stringify(n)));return t}function Cg(e){let{spool_id:t,...r}=e;return dn(JSON.stringify(r))}function tx(e){return typeof e.spool_id=="string"&&Cg(e)!==null}function rx(e){return typeof e.correction_id=="string"&&typeof e.target_spool_id=="string"&&(e.action==="retry"||e.action==="resolved")&&typeof e.created_at=="string"&&(e.event_json===null||typeof e.event_json=="string")?{correction_id:e.correction_id,target_spool_id:e.target_spool_id,action:e.action,created_at:e.created_at,event_json:e.event_json??void 0}:null}function iu(e){return un(e)?Object.values(e).every(t=>typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null):!1}var qv,Og=h(()=>{"use strict";$e();W();Vo();ru();qv=64*1024});function Qo(e){return e.trim().split(/\s+/).filter(Boolean)}function ps(e){return e.split(/&&|[;|]/).map(t=>t.trim()).filter(Boolean)}function ms(e){return e.split(/[ \t]+/).filter(Boolean).map(t=>t.replace(/^env$/,""))}function Be(e){let t=Qo(e);return t.length===0?"unknown":t[0]==="git"&&t[1]?`git ${t[1]}`:kr(t)&&t[1]&&t[2]?`gh ${t[1]} ${t[2]} json-jq`:kr(t)&&t[1]?`gh ${t[1]} json-jq`:kr(t)?"gh json-jq":t[0]==="gh"&&t[1]&&t[2]?`gh ${t[1]} ${t[2]}`:t[0]==="gh"&&t[1]?`gh ${t[1]}`:t[0]==="cargo"&&t[1]?`cargo ${t[1]}`:t[0]==="vitest"?"vitest":t[0]}function kr(e){return e[0]==="gh"&&e.some(nx)}function nx(e){return e==="--json"||e==="--jq"||e.startsWith("--json=")||e.startsWith("--jq=")}function pn(e){return/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(e)}var fs=h(()=>{"use strict"});var ue,Xo=h(()=>{"use strict";Ze();ue="rsp_elisions_v1"});import{spawnSync as ys}from"node:child_process";import{createHash as du}from"node:crypto";import{existsSync as sx}from"node:fs";import{mkdir as ox,readFile as ix,readdir as Ag,rename as ax,writeFile as cx}from"node:fs/promises";import{homedir as ux}from"node:os";import{basename as lx,dirname as dx,join as gs}from"node:path";import{fileURLToPath as px}from"node:url";import{gunzipSync as mx,gzipSync as fx}from"node:zlib";function bs(e,t){return`el:${du("sha256").update("rsp-elision-v1\0").update(e).update("\0").update(JSON.stringify({command:t.command,loss:t.loss})).digest("hex").slice(0,12)}`}function zt(e){return`record:${e.slice(3)}`}function Tr(e){return`expired:${e.slice(3)}`}function ti(){return"index:v1"}function gx(e){return`blob:${e}`}function Pg(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid RedDB identifier: ${e}`);return e}function Gt(e){let t=Qo(e),r=t[0]??"";if(r==="cat")return"derivable";if(r==="git"){let n=t[1]??"";return n==="log"||n==="diff"||n==="blame"||n==="show"?"derivable":ri(t)?"re-executable":"ephemeral"}return"ephemeral"}function ws(e){return ii(e.storage_class)?e.storage_class:Gt(e.command)}function Ig(e){return ii(e.storage_class)?e.storage_class:Gt(e.command)}function pu(e){let t=bx(),r={derivable:new Set,"re-executable":new Set,ephemeral:new Set};for(let n of e){let s=Ig(n);if(t[s].records+=1,t[s].raw_bytes+=n.raw_bytes??n.bytes,n.blob_key){if(r[s].has(n.blob_key))continue;r[s].add(n.blob_key)}t[s].bytes+=n.bytes}return t}function mu(e,t,r){let n=t.getTime();return[...e].sort((s,o)=>o.created_at.localeCompare(s.created_at)).slice(0,Math.max(0,r)).map(s=>{let o=Math.max(0,Math.floor((n-Date.parse(s.created_at))/1e3));return{handle:s.handle,command:s.command,created_at:s.created_at,expires_at:s.expires_at,age_seconds:o,age_display:hx(o),storage_class:Ig(s),recover:`rsp show ${s.handle}`}})}function hx(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);return r<24?`${r}h`:`${Math.floor(r/24)}d`}function fu(e,t,r,n){let s=t==="ephemeral"?n*60*60*1e3:r*24*60*60*1e3;return new Date(e.getTime()+s).toISOString()}function vr(e){let t=0,r=new Set;for(let n of e){if(n.blob_key){if(r.has(n.blob_key))continue;r.add(n.blob_key)}t+=n.bytes}return t}function gu(e,t){let r=process.cwd(),n=ys("git",["rev-parse","--is-inside-work-tree"],{cwd:r,encoding:"utf8"});if(n.status!==0||n.stdout.trim()!=="true")return null;let s=ys("git",["hash-object","-w","--stdin"],{cwd:r,input:e,encoding:"buffer"});if(s.status!==0)return null;let o=s.stdout.toString("utf8").trim();return/^[0-9a-f]{40,64}$/.test(o)?{kind:"git-blob",command:t,cwd:r,object_ids:[o],working_tree_fingerprint:yx(r),original_bytes:e.length}:null}function yx(e){let t=uu(e,["rev-parse","HEAD"])||"unborn",r=uu(e,["write-tree"])||"no-index",n=uu(e,["status","--porcelain=v1","-z"])||"";return du("sha256").update(t).update("\0").update(r).update("\0").update(n).digest("hex")}function uu(e,t){let r=ys("git",t,{cwd:e,encoding:"utf8"});return r.status===0?r.stdout.trim():null}function hu(e,t){let r=Qo(t);if(!ri(r))return null;let n=$g(process.cwd(),r,e.length);return!n||Sr(n)!==Sr(e)?null:{kind:"command",command:t,cwd:process.cwd(),argv:r,original_bytes:e.length,content_hash:Sr(e)}}function ri(e){return e[0]==="git"?e[1]==="status"?!0:e[1]!=="branch"?!1:e.length===2||e.slice(2).every(t=>/^-[avvr]+$/.test(t)):!1}function Sr(e){return du("sha256").update("rsp-reexecutable-content-v1\0").update(e).digest("hex")}function yu(e,t,r,n){return t?Buffer.byteLength(JSON.stringify(t),"utf8"):r?Buffer.byteLength(JSON.stringify(r),"utf8"):n?n.stored_bytes:e.length}function bu(e){return typeof e.stored_bytes=="number"?e.stored_bytes:e.derivation_recipe?Buffer.byteLength(JSON.stringify(e.derivation_recipe),"utf8"):e.reexecution_recipe?Buffer.byteLength(JSON.stringify(e.reexecution_recipe),"utf8"):e.blob_key?typeof e.stored_bytes=="number"?e.stored_bytes:0:e.original_bytes}function wu(e,t,r){let n=fx(e);return{key:gx(t),content_hash:t,encoding:"gzip+base64",bytes:n.toString("base64"),original_bytes:e.length,stored_bytes:n.length,created_at:r}}function Lg(e){try{let t=mx(Buffer.from(e.bytes,"base64"));return t.length===e.original_bytes?t:null}catch{return null}}function Dg(e){let t=e.object_ids[0];if(!t)return null;let r=ys("git",["cat-file","-p",t],{cwd:e.cwd,encoding:"buffer",maxBuffer:Math.max(e.original_bytes+1024,1024*1024)});return r.status!==0||r.stdout.length!==e.original_bytes?null:r.stdout}function Gg(e){if(!ri(e.argv))return null;let t=$g(e.cwd,e.argv,e.original_bytes);return t?Sr(t)===e.content_hash?t:Buffer.concat([Buffer.from(`reconstructed after state moved - current snapshot follows
71
- `,"utf8"),t]):null}function $g(e,t,r){let n=t[0];if(!n)return null;let s=ys(n,t.slice(1),{cwd:e,encoding:"buffer",maxBuffer:Math.max(r+1024,1024*1024)});return s.status!==0||s.signal?null:s.stdout}function bx(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}function _s(e){return/^el:[a-f0-9]{12}$/.test(e)}function ei(e){return/^blob:[a-f0-9]{64}$/.test(e)}function Ng(e){if(!hs(e))throw new Error("memory recall payload must be an object");let t=e.query;if(typeof t!="string"||t.trim()==="")throw new Error("memory recall query is required");let r=typeof e.limit=="number"&&Number.isFinite(e.limit)?e.limit:10;return{query:t,limit:r,options:{includeSuperseded:e.includeSuperseded===!0,scope:hs(e.scope)?e.scope:void 0,ranking:hs(e.ranking)?e.ranking:void 0}}}function Fg(e){if(!hs(e))throw new Error("memory ingest payload must be an object");let t=e.cwd;if(typeof t!="string"||t.trim()==="")throw new Error("memory ingest cwd is required");let r=typeof e.maxFiles=="number"&&Number.isFinite(e.maxFiles)?e.maxFiles:void 0,n=Array.isArray(e.ignore)?e.ignore.filter(s=>typeof s=="string"):void 0;return{cwd:t,maxFiles:r,ignore:n}}function hs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Mg(e,t,r){let n=[],s=new Set([".git","node_modules",".red",...r]);async function o(i){if(n.length>=t)return;let a=await Ag(i,{withFileTypes:!0}).catch(()=>[]);for(let c of a){if(n.length>=t)return;if(s.has(c.name))continue;let u=gs(i,c.name);c.isDirectory()?await o(u):c.isFile()&&/\.(md|mdx|txt|ts|tsx|js|jsx|json|yaml|yml|toml|rs|go|py|sql)$/i.test(c.name)&&n.push(u)}}return await o(e),n}function Bg(e,t){let r=Number(e.red_entity_id??e.rid);if(!Number.isFinite(r))return null;let n=e.properties??e.PROPERTIES,s=hs(n)?n:{},o=String(e.label??e.LABEL??s.title??`memory-${r}`),i=String(e.node_type??e.NODE_TYPE??"concept"),a=String(s.content??s.summary??s.title??o),c=`${o} ${a}`.toLowerCase(),u=t.filter(l=>c.includes(l));return u.length===0&&t.length>0?null:{id:String(r),rid:r,label:o,node_type:i,score:u.length||1,excerpt:a.slice(0,500)}}function ni(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function Es(e){if(!je(e))return!1;let t=typeof e.original=="string"&&e.original_encoding==="base64",r=_x(e.derivation_recipe),n=Ex(e.reexecution_recipe),s=e.blob_key,o=typeof s=="string"&&ei(s);return e.collection===ue&&typeof e.handle=="string"&&_s(e.handle)&&(t||r||n||o)&&typeof e.original_bytes=="number"&&(e.content_hash===void 0||Eu(e.content_hash))&&(e.stored_bytes===void 0||typeof e.stored_bytes=="number")&&(s===void 0||typeof s=="string"&&ei(s))&&typeof e.command=="string"&&typeof e.created_at=="string"&&typeof e.expires_at=="string"&&wx(e.loss)&&(e.storage_class===void 0||ii(e.storage_class))}function _u(e){return!je(e)||e.version!==1||!Array.isArray(e.records)?!1:e.records.every(t=>{if(!je(t))return!1;let r=t.blob_key;return typeof t.handle=="string"&&_s(t.handle)&&typeof t.key=="string"&&typeof t.bytes=="number"&&(t.raw_bytes===void 0||typeof t.raw_bytes=="number")&&typeof t.command=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&(t.storage_class===void 0||ii(t.storage_class))&&(r===void 0||typeof r=="string"&&ei(r))})}function si(e){return je(e)&&typeof e.key=="string"&&ei(e.key)&&Eu(e.content_hash)&&e.encoding==="gzip+base64"&&typeof e.bytes=="string"&&typeof e.original_bytes=="number"&&typeof e.stored_bytes=="number"&&typeof e.created_at=="string"}function oi(e){return je(e)&&e.status==="expired"&&typeof e.expired_at=="string"&&typeof e.command=="string"}function wx(e){return je(e)&&typeof e.level=="string"&&typeof e.bytes_elided=="number"}function ii(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"}function _x(e){return je(e)&&e.kind==="git-blob"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.object_ids)&&e.object_ids.every(t=>typeof t=="string"&&/^[0-9a-f]{40,64}$/.test(t))&&typeof e.working_tree_fingerprint=="string"&&typeof e.original_bytes=="number"}function Ex(e){return je(e)&&e.kind==="command"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.argv)&&e.argv.every(t=>typeof t=="string")&&ri(e.argv)&&typeof e.original_bytes=="number"&&Eu(e.content_hash)}function Eu(e){return typeof e=="string"&&/^[0-9a-f]{64}$/.test(e)}function je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function jg(e){try{let n=(await ix(e,"utf8")).trim();if(n==="")return Zo();let s;try{s=JSON.parse(n)}catch{s=H(n)}if(Rx(s))return{...s,blobs:s.blobs??{}}}catch(r){if(r.code==="ENOENT"){let s=Zo();return await mn(e,s),s}let n=Zo();return await mn(e,n),n}let t=Zo();return await mn(e,t),t}async function Ug(e){try{return e}catch(t){if(t.code==="ENOENT")return e;throw t}}function Hg(e){return lx(e)==="red-skills.rdb"}async function ai(){if(process.env.REDDB_BIN)return;let e=process.env.RED_SKILLS_CACHE_DIR??(process.env.XDG_CACHE_HOME?gs(process.env.XDG_CACHE_HOME,"red-skills","bundles"):gs(ux(),".cache","red-skills","bundles")),t=gs(e,"reddb"),r;try{r=await Ag(t)}catch{return}r.sort().reverse();for(let n of r){let s=gs(t,n,process.platform==="win32"?"red.exe":"red");if(sx(s)){process.env.REDDB_BIN=s;return}}}async function mn(e,t){await ox(dx(e),{recursive:!0});let r=`${e}.${process.pid}.tmp`;await cx(r,`${$(lu(t))}
72
- `,"utf8"),await ax(r,e)}function lu(e){if(e==null)return null;if(typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)?e:null;if(Array.isArray(e))return e.map(t=>lu(t));if(typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))n!==void 0&&(t[r]=lu(n));return t}return String(e)}function Zo(){return{version:1,records:{},blobs:{},tombstones:{},index:{version:1,records:[]}}}function Rx(e){return je(e)&&e.version===1&&je(e.records)&&Object.values(e.records).every(Es)&&(e.blobs===void 0||je(e.blobs)&&Object.values(e.blobs).every(si))&&je(e.tombstones)&&Object.values(e.tombstones).every(oi)&&_u(e.index)}function qg(e){if(!e.startsWith("file://"))throw new Error("rsp elision store requires a file:// URI");return px(e)}var ci=h(()=>{"use strict";W();fs();Xo()});async function Wg(e,t){return kx?vx(e,t):Sx?Cx(e,t):Tx(e,t)}async function Tx(e,t){let{spawn:r}=await import("node:child_process"),n=r(e,t,{stdio:["pipe","pipe","inherit"]});return{runtime:"node",stdin:{write(s){return new Promise((o,i)=>{n.stdin.write(s,a=>a?i(a):o())})},end(){n.stdin.end()}},stdout:n.stdout,kill(){n.kill("SIGTERM")},wait(){return new Promise(s=>{n.on("exit",o=>s(o??0))})}}}function vx(e,t){let r=globalThis.Bun.spawn({cmd:[e,...t],stdin:"pipe",stdout:"pipe",stderr:"inherit"}),n=r.stdin.getWriter?r.stdin.getWriter():null;return{runtime:"bun",stdin:{async write(s){n?await n.write(s):(r.stdin.write(s),await r.stdin.flush())},end(){n?n.close():r.stdin.end()}},stdout:xx(r.stdout),kill(){r.kill()},wait(){return r.exited}}}async function*xx(e){let t=e.getReader();try{for(;;){let{value:r,done:n}=await t.read();if(n)return;yield r}}finally{t.releaseLock()}}async function Cx(e,t){let n=new globalThis.Deno.Command(e,{args:t,stdin:"piped",stdout:"piped",stderr:"inherit"}).spawn(),s=n.stdin.getWriter();return{runtime:"deno",stdin:{async write(o){await s.write(o)},end(){try{s.close()}catch{}}},stdout:Ox(n.stdout),kill(){try{n.kill("SIGTERM")}catch{}},async wait(){return(await n.status).code??0}}}async function*Ox(e){let t=e.getReader();try{for(;;){let{value:r,done:n}=await t.read();if(n)return;yield r}}finally{t.releaseLock()}}var kx,Sx,Jg=h(()=>{kx=typeof globalThis.Bun<"u"&&typeof globalThis.Bun.spawn=="function",Sx=typeof globalThis.Deno<"u"&&typeof globalThis.Deno.Command=="function"});import{existsSync as Ax}from"node:fs";import{join as Px}from"node:path";function Vg(e){if(!e||typeof e!="object")throw new TypeError("resolveBin: options object required");let{name:t,packageRoot:r,envVar:n}=e;if(typeof t!="string"||t==="")throw new TypeError("resolveBin: `name` must be a non-empty string");if(typeof r!="string"||r==="")throw new TypeError("resolveBin: `packageRoot` must be a non-empty string");if(typeof n!="string"||n==="")throw new TypeError("resolveBin: `envVar` must be a non-empty string");let s=process.env?.[n];if(typeof s=="string"&&s!=="")return s;let o=Px(r,"bin",t);if(Ax(o))return o;throw new Error(`reddb: binary "${t}" not found.
73
- expected at: ${o}
74
- override: set ${n}=/path/to/${t}
75
- fix: re-run \`pnpm install\` (the postinstall script downloads it),
76
- or check the postinstall log for a download error.`)}var Kg=h(()=>{});import{fileURLToPath as Ix}from"node:url";import{dirname as Lx,resolve as Dx,join as HB}from"node:path";function Nx(){return typeof process<"u"&&process.platform==="win32"?"red.exe":"red"}function zg(){let e=process.env?.REDDB_BINARY_PATH;return typeof e=="string"&&e!==""&&!process.env?.REDDB_BIN?e:Vg({name:Nx(),packageRoot:$x,envVar:"REDDB_BIN"})}var Gx,$x,Yg=h(()=>{Kg();Gx=Lx(Ix(import.meta.url)),$x=Dx(Gx,"..")});var Fx,Mx,D,ui,Yt=h(()=>{Fx=new TextEncoder,Mx=new TextDecoder("utf-8"),D=class extends Error{constructor(t,r,n){super(r),this.name="RedDBError",this.code=t,this.data=n??null}},ui=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,r={}){if(this.closed)return Promise.reject(new D("CLIENT_CLOSED",`client is closed: ${this.closeReason??"unknown"}`));let n=this.nextId++,s=JSON.stringify({jsonrpc:"2.0",id:n,method:t,params:r});return new Promise((o,i)=>{this.pending.set(n,{resolve:o,reject:i}),this.child.stdin.write(Fx.encode(s+`
77
- `)).catch(a=>{this.pending.delete(n),i(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 r of this.child.stdout){let n=new Uint8Array(t.length+r.length);n.set(t,0),n.set(r,t.length),t=n;let s=0;for(let o=0;o<t.length;o++)if(t[o]===10){let i=t.subarray(s,o);this.#r(Mx.decode(i)),s=o+1}s>0&&(t=t.subarray(s))}}catch(r){this.#e(`stdout reader error: ${r.message}`);return}this.#e("server stdout closed")}#r(t){if(!t.trim())return;let r;try{r=JSON.parse(t)}catch(o){this.#e(`malformed server response: ${o.message}`);return}let n=r.id;if(n==null)return;let s=this.pending.get(n);s&&(this.pending.delete(n),r.error?s.reject(new D(r.error.code??"UNKNOWN",r.error.message??"unknown error",r.error.data)):s.resolve(r.result))}#e(t){if(this.closed)return;this.closed=!0,this.closeReason=t;let r=new D("CLIENT_CLOSED",t);for(let{reject:n}of this.pending.values())n(r);this.pending.clear()}}});function ku(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:/"?Bx(e):jx(e)}function Bx(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 r;try{r=new URL(t)}catch(l){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${l.message}`)}let n=r.searchParams,s=(n.get("proto")||"").toLowerCase(),o=r.pathname&&r.pathname!=="/"?r.pathname:"";if(r.hostname==="embedded.local")return o?{kind:"embedded",path:o,params:n,originalUri:e}:{kind:"embedded",params:n,originalUri:e};let i=Ux(s),a=r.port?Number(r.port):Ru(i),c=r.username?decodeURIComponent(r.username):void 0,u=r.password?decodeURIComponent(r.password):void 0;return{kind:i,host:r.hostname,port:a,path:o||void 0,username:c,password:u,token:n.get("token")??void 0,apiKey:n.get("apiKey")??n.get("api_key")??void 0,loginUrl:n.get("loginUrl")??n.get("login_url")??void 0,params:n,originalUri:e}}function jx(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],r;try{r=new URL("https://"+e.slice(`${t}://`.length))}catch(o){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${o.message}`)}if(!r.hostname)throw new TypeError(`invalid ${t}:// URI: missing host in '${e}'`);let n=t==="reds"?"reds":t==="grpcs"?"grpcs":"grpc",s=r.searchParams;return{kind:n,host:r.hostname,port:r.port?Number(r.port):Ru(n),username:r.username?decodeURIComponent(r.username):void 0,password:r.password?decodeURIComponent(r.password):void 0,token:s.get("token")??void 0,apiKey:s.get("apiKey")??s.get("api_key")??void 0,loginUrl:s.get("loginUrl")??s.get("login_url")??void 0,params:s,originalUri:e}}if(e.startsWith("http://")||e.startsWith("https://")){let t;try{t=new URL(e)}catch(r){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${r.message}`)}return{kind:t.protocol==="https:"?"https":"http",host:t.hostname,port:t.port?Number(t.port):Ru(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 D("UNSUPPORTED_SCHEME",`unsupported URI: '${e}'. Use 'red://...' or one of memory://, file://, grpc://, http(s)://`)}function Ux(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 D("UNSUPPORTED_PROTO",`unknown proto='${e}'. Supported: red | reds | grpc | grpcs | http | https | pg`)}}function Ru(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 Su=h(()=>{Yt()});function qx(e){if(typeof e=="string"){let t=new TextEncoder().encode(e);return Qg(t)}if(e instanceof Uint8Array||typeof Buffer<"u"&&Buffer.isBuffer(e))return Qg(e);throw new TypeError("cache value must be a string, Uint8Array, or Buffer")}function Qg(e){if(typeof Buffer<"u")return Buffer.from(e).toString("base64");let t="";for(let r of e)t+=String.fromCharCode(r);return btoa(t)}function Wx(e){if(typeof Buffer<"u")return new Uint8Array(Buffer.from(e,"base64"));let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}var Hx,Rs,Tu=h(()=>{Yt();Hx=new Set(["embedded"]),Rs=class{constructor(t,r){this._client=t,this._transport=r??null}_guard(t){if(this._transport&&Hx.has(this._transport))throw new D("UNSUPPORTED_TRANSPORT",`cache.${t} is not available on '${this._transport}' transport; use @reddb-io/client for remote cache endpoints.`)}async get(t,r){this._guard("get");let n=await this._client.call("cache.get",{namespace:t,key:r});return n==null||n.value==null?null:Wx(n.value)}async put(t,r,n,s={}){this._guard("put");let o=qx(n);await this._client.call("cache.put",{namespace:t,key:r,value:o,...s})}async exists(t,r){return this._guard("exists"),(await this._client.call("cache.exists",{namespace:t,key:r}))?.status??"maybe"}async invalidate(t,r){this._guard("invalidate"),await this._client.call("cache.invalidate",{namespace:t,key:r})}async invalidatePrefix(t,r){return this._guard("invalidatePrefix"),(await this._client.call("cache.invalidate_prefix",{namespace:t,prefix:r}))?.removed??0}async invalidateTags(t,r){return this._guard("invalidateTags"),(await this._client.call("cache.invalidate_tags",{namespace:t,tags:r}))?.removed??0}async flushNamespace(t){this._guard("flushNamespace"),await this._client.call("cache.flush_namespace",{namespace:t})}}});function vu(e,t){return`${xu(e)}.${Jx(t)}`}function xu(e){let t=String(e),r=t.match(/[^A-Za-z0-9_]/);if(r)throw new D("INVALID_KV_KEY",`invalid KV key "${t}": character "${r[0]}" is not supported`);return t}function Jx(e){let t=String(e);return/^[A-Za-z0-9_]+$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function Vx(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 Xg(e){return`'${String(e).replace(/'/g,"''")}'`}var fn,Cu=h(()=>{Yt();fn=class{constructor(t,r="kv_default"){this.client=t,this.collection=r}put(t,r,n={}){let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Xg).join(", ")}]`:"",i=n.expireMs!=null?` EXPIRE ${Number(n.expireMs)} ms`:"";return this.client.call("query",{sql:`KV PUT ${vu(s,t)} = ${Vx(r)}${i}${o}`})}set(t,r,n={}){return this.put(t,r,n)}async get(t,r={}){let n=r.collection??this.collection;return(await this.client.call("query",{sql:`KV GET ${vu(n,t)}`}))?.rows?.[0]?.value??null}async getMany(t,r={}){let n=[];for(let s of t)n.push(await this.get(s,r));return n}async exists(t,r={}){return{exists:await this.get(t,r)!==null}}async delete(t,r={}){let n=r.collection??this.collection,s=await this.client.call("query",{sql:`KV DELETE ${vu(n,t)}`}),o=s.affected??s.affected_rows??0;return{affected:o,deleted:o>0}}async list(t={}){let r=t.collection??this.collection,n=t.limit==null?100:Number(t.limit);if(!Number.isInteger(n)||n<=0)throw new D("INVALID_ARGUMENT","kv.list limit must be a positive integer");let s=t.prefix==null?"":String(t.prefix),i=(await this.client.call("query",{sql:`SELECT key, value FROM ${xu(r)} ORDER BY key ASC LIMIT ${n}`})).rows??[];return{items:s.length>0?i.filter(c=>String(c.key).startsWith(s)):i}}async invalidateTags(t,r={}){let n=r.collection??this.collection,s=await this.client.call("query",{sql:`INVALIDATE TAGS [${t.map(Xg).join(", ")}] FROM ${xu(n)}`});return s.affected??s.affected_rows??s.rows?.[0]?.invalidated??0}async*watch(t,r={}){if(!this.client.baseUrl)throw new D("UNSUPPORTED_TRANSPORT","kv.watch requires the HTTP transport");let n=r.collection??this.collection,s=new URLSearchParams;r.sinceLsn!=null&&s.set("since_lsn",String(r.sinceLsn)),r.limit!=null&&s.set("limit",String(r.limit));let o=s.toString()?`?${s}`:"",i=`${this.client.baseUrl}/collections/${encodeURIComponent(n)}/kv/${encodeURIComponent(String(t))}/watch${o}`,a=await fetch(i,this.client.attachAuth({method:"GET"}));if(!a.ok)throw new D("HTTP_ERROR",`kv.watch failed with HTTP ${a.status}`);let c=await a.text();for(let u of c.split(`
78
-
79
- `)){let l=u.split(`
80
- `).find(p=>p.startsWith("data: "));l&&(yield JSON.parse(l.slice(6)))}}watchPrefix(t,r={}){return this.watch(`${t}.*`,r)}}});function Kx(e,t,r){let{waitMs:n,group:s=null,count:o=null}=r??{};if(!Number.isInteger(n)||n<0)throw new D("INVALID_QUEUE_WAIT","queue readWait requires an explicit non-negative integer waitMs (no infinite wait)");let i=$t(e),a=$t(t),c=s!=null?` GROUP ${$t(s)}`:"",u=o!=null?Au(o):"";return`QUEUE READ ${i}${c} CONSUMER ${a}${u} WAIT ${n}ms`}function $t(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_QUEUE_NAME",`invalid queue name "${t}": expected an SQL identifier`);return t}function Au(e){if(e==null)return"";if(!Number.isInteger(e)||e<0)throw new D("INVALID_QUEUE_COUNT","queue count must be a non-negative integer");return` COUNT ${e}`}function zx(e){if(!Number.isInteger(e))throw new D("INVALID_QUEUE_PRIORITY","queue priority must be an integer");return String(e)}function Yx(e){if(e.key!=null&&(e.delay!=null||e.at!=null))throw new D("INVALID_ARGUMENT","QUEUE PUSH KEY cannot be combined with DELAY / AVAILABLE AT");let t="";return e.priority!=null&&(t+=` PRIORITY ${zx(e.priority)}`),e.key!=null&&(t+=` KEY ${Pu(e.key)}`),e.dedup!=null&&(t+=` DEDUP ${Pu(e.dedup)}`),e.delay!=null&&(t+=` DELAY ${e.delay}`),e.at!=null&&(t+=` AVAILABLE AT ${e.at}`),t}function Qx(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="string"?Pu(e):JSON.stringify(e)}function Pu(e){return`'${String(e).replace(/'/g,"''")}'`}function Ou(e){return Array.isArray(e?.rows)?e.rows.map(t=>t.payload):[]}var ks,Iu=h(()=>{Yt();ks=class{constructor(t){this.client=t}create(t){return this.client.call("query",{sql:`CREATE QUEUE IF NOT EXISTS ${$t(t)}`})}push(t,r,n={}){let s=Yx(n);return this.client.call("query",{sql:`QUEUE PUSH ${$t(t)} ${Qx(r)}${s}`})}async pop(t,r){let n=await this.client.call("query",{sql:`QUEUE POP ${$t(t)}${Au(r)}`});return Ou(n)}async peek(t,r){let n=await this.client.call("query",{sql:`QUEUE PEEK ${$t(t)}${Au(r)}`});return Ou(n)}async len(t){let r=await this.client.call("query",{sql:`QUEUE LEN ${$t(t)}`});return Number(r?.rows?.[0]?.len??0)}purge(t){return this.client.call("query",{sql:`QUEUE PURGE ${$t(t)}`})}async readWait(t,r,n={}){let s=Kx(t,r,n),o=await this.client.call("query",{sql:s});return Ou(o)}}});function Zg(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new D("INVALID_ARGUMENT",`${t} must be an object`)}function Xx(e){if(e==null)return 100;if(!Number.isInteger(e)||e<=0)throw new D("INVALID_ARGUMENT","limit must be a positive integer");return e}function li(e){return String(e).split(".").map(eh).join(".")}function eh(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_ARGUMENT",`invalid SQL identifier "${t}"`);return t}function Zx(e){return th(JSON.stringify(e))}function eC(e){return JSON.stringify(e)}function tC(e){return e==null?"NULL":typeof e=="number"||typeof e=="boolean"?String(e):typeof e=="object"?Zx(e):th(e)}function th(e){return`'${String(e).replace(/'/g,"''")}'`}var Ss,Lu=h(()=>{Yt();Ss=class{constructor(t){this.db=t}async insert(t,r){Zg(r,"documents.insert document"),await this.ensureCollection(t);let n=await this.db.query(`INSERT INTO ${li(t)} DOCUMENT VALUES (${eC(r)}) RETURNING *`),s=n.rows?.[0];if(!s||s.rid==null)throw new D("INVALID_RESPONSE","documents.insert expected one returned item with rid");return{affected:n.affected??1,rid:s.rid,item:s}}async get(t,r){let n=await this.db.get(t,r);if(!n.entity)throw new D("NOT_FOUND",`document ${String(r)} was not found`);return n.entity}async list(t,r={}){let n=Xx(r.limit),s=r.orderBy??r.order_by??"rid ASC",o=r.filter?` WHERE ${String(r.filter)}`:"";return{items:(await this.db.query(`SELECT * FROM ${li(t)}${o} ORDER BY ${s} LIMIT ${n}`)).rows??[]}}async patch(t,r,n){Zg(n,"documents.patch patch");let s=Object.entries(n);if(s.length===0)throw new D("INVALID_ARGUMENT","documents.patch patch must be a non-empty object");for(let[c]of s)if(c.includes("/"))throw new D("INVALID_ARGUMENT","documents.patch currently accepts top-level document fields");let o=s.map(([c,u])=>`${eh(c)} = ${tC(u)}`).join(", "),a=(await this.db.query(`UPDATE ${li(t)} SET ${o} WHERE rid = $1 RETURNING *`,r)).rows?.[0];if(!a)throw new D("NOT_FOUND",`document ${String(r)} was not found`);return a}async delete(t,r){let s=(await this.db.delete(t,r)).affected??0;return{affected:s,deleted:s>0}}async ensureCollection(t){try{await this.db.query(`CREATE DOCUMENT ${li(t)}`)}catch(r){if(!String(r?.message??"").includes("already exists"))throw r}}}});function rC(e,t){if(t.secretRef){let{collection:r,key:n}=t.secretRef;return`SECRET_REF(vault, ${Qt(r)}.${Qt(n)})`}return sC(e)}function nC(e,t){for(let r of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[r]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function Qt(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function sC(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):rh(e)}function rh(e){return`'${String(e).replace(/'/g,"''")}'`}var Ts,Du=h(()=>{Ts=class{constructor(t,r="red.config"){this.client=t,this.collection=r}put(t,r,n={}){nC(n,"config");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(rh).join(", ")}]`:"";return this.client.call("query",{sql:`PUT CONFIG ${Qt(s)} ${Qt(t)} = ${rC(r,n)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`GET CONFIG ${Qt(n)} ${Qt(t)}`})}resolve(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`RESOLVE CONFIG ${Qt(n)} ${Qt(t)}`})}}});function oC(e,t){for(let r of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[r]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function gn(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function iC(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):nh(e)}function nh(e){return`'${String(e).replace(/'/g,"''")}'`}var vs,Gu=h(()=>{vs=class{constructor(t,r="red.vault"){this.client=t,this.collection=r}put(t,r,n={}){oC(n,"vault");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(nh).join(", ")}]`:"";return this.client.call("query",{sql:`VAULT PUT ${gn(s)}.${gn(t)} = ${iC(r)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`VAULT GET ${gn(n)}.${gn(t)}`})}unseal(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`UNSEAL VAULT ${gn(n)}.${gn(t)}`})}}});async function oh(e){return((await e.query("SHOW COLLECTIONS")).rows??[]).map(aC)}async function ih(e,t){return((await e.query(`SHOW COLLECTIONS WHERE name = ${uC(t)}`)).rows??[]).some(n=>n.name===String(t))}function aC(e){return{...e,name:String(e.name),model:String(e.model),capabilities:Array.isArray(e.capabilities)?e.capabilities:[]}}function sh(e){return String(e).split(".").map(cC).join(".")}function cC(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_IDENTIFIER",`invalid SQL identifier "${t}"`);return t}function uC(e){return`'${String(e).replace(/'/g,"''")}'`}var xs,$u=h(()=>{Yt();xs=class e{constructor(t,r,n=null,s=[],o=[]){this.db=t,this.collection=r,this.columns=n,this.whereClauses=s,this.params=o}select(...t){let r=t.length===1&&Array.isArray(t[0])?t[0]:t,n=r.length===1&&r[0]==="*"?null:r;return new e(this.db,this.collection,n!=null&&n.length>0?n:null,this.whereClauses,this.params)}where(t,...r){if(typeof t!="string"||t.trim().length===0)throw new D("INVALID_QUERY_BUILDER","where() requires a non-empty SQL condition");let n=r.length===1&&Array.isArray(r[0])?r[0]:r;return new e(this.db,this.collection,this.columns,[...this.whereClauses,t.trim()],[...this.params,...n])}async run(){let t=this.columns==null?"*":this.columns.map(sh).join(", "),r=this.whereClauses.length>0?` WHERE ${this.whereClauses.map(i=>`(${i})`).join(" AND ")}`:"",n=`SELECT ${t} FROM ${sh(this.collection)}${r}`,o=(this.params.length>0?await this.db.query(n,this.params):await this.db.query(n)).rows??[];return this.columns==null?o:o.map(i=>{let a={};for(let c of this.columns)a[c]=i[c];return a})}}});async function mi(e,t={}){let r=ku(e);if(wC(r),r.kind==="embedded"){let n=bC(r,t.auth);if(n.token||n.username)throw new D("AUTH_NOT_APPLICABLE","auth is only meaningful for remote connections; embedded modes inherit caller privileges.");let s=yC(r),o=t.binary??zg(),i=await Wg(o,s),a=new ui(i);return await a.call("version",{}),new Fu(a,{transport:"embedded"})}}function ch(e){return pC(e),e instanceof Float32Array||e instanceof Float64Array?Array.from(e):e instanceof Date?{$ts:String(BigInt(e.getTime())*1000000n)}:e instanceof Uint8Array||typeof Buffer<"u"&&e instanceof Buffer?{$bytes:fC(e)}:typeof e=="number"&&!Number.isFinite(e)?Number.isNaN(e)?{$float:"NaN"}:{$float:e>0?"Infinity":"-Infinity"}:typeof e=="string"&&hC(e)?{$uuid:e}:e}function pC(e){if(e!=null&&!(typeof e=="boolean"||typeof e=="number"||typeof e=="string")){if(e instanceof Date){if(Number.isNaN(e.getTime()))throw new D("UNSUPPORTED_PARAM","cannot encode invalid Date query parameter");return}if(!(e instanceof Uint8Array||e instanceof Float32Array||e instanceof Float64Array||typeof Buffer<"u"&&e instanceof Buffer)){if(Array.isArray(e)){if(e.every(t=>typeof t=="number"))return;throw new D("UNSUPPORTED_PARAM","array query parameters must contain only numbers")}if(!(typeof e=="object"&&Object.getPrototypeOf(e)===Object.prototype))throw new D("UNSUPPORTED_PARAM",`cannot encode query parameter of type ${typeof e}`)}}}function mC(e){return e.length===0?null:e.length===1&&Array.isArray(e[0])?e[0].map(ch):e.map(ch)}function fC(e){let t=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(typeof Buffer<"u")return Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("base64");let r="";for(let n of t)r+=String.fromCharCode(n);return btoa(r)}function gC(e){if(typeof Buffer<"u"){let n=Buffer.from(e,"base64");return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function hC(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}function di(e){if(Array.isArray(e))return e.map(di);if(e&&typeof e=="object"){if(Object.keys(e).length===1){if(typeof e.$bytes=="string")return gC(e.$bytes);if(typeof e.$uuid=="string")return e.$uuid;if(typeof e.$float=="string"){if(e.$float==="NaN")return Number.NaN;if(e.$float==="Infinity"||e.$float==="+Infinity")return 1/0;if(e.$float==="-Infinity")return-1/0}if(typeof e.$ts=="string"||typeof e.$ts=="number"){let n=typeof e.$ts=="string"?BigInt(e.$ts):BigInt(Math.trunc(e.$ts));return new Date(Number(n/1000000n))}}let r={};for(let[n,s]of Object.entries(e))r[n]=di(s);return r}return e}function yC(e){return e.path?["rpc","--stdio","--path",e.path]:["rpc","--stdio"]}function bC(e,t){let r={token:e.token??e.apiKey??null,username:e.username??null,password:e.password??null,loginUrl:e.loginUrl??null};if(t==null)return r;if(typeof t!="object")throw new TypeError("options.auth must be an object");if(t.token!=null){if(typeof t.token!="string"||t.token.length===0)throw new TypeError("options.auth.token must be a non-empty string");r.token=t.token}if(t.apiKey!=null){if(typeof t.apiKey!="string"||t.apiKey.length===0)throw new TypeError("options.auth.apiKey must be a non-empty string");r.token=t.apiKey}if(t.username!=null){if(typeof t.username!="string"||t.username.length===0)throw new TypeError("options.auth.username must be a non-empty string");r.username=t.username}if(t.password!=null){if(typeof t.password!="string"||t.password.length===0)throw new TypeError("options.auth.password must be a non-empty string");r.password=t.password}return t.loginUrl!=null&&(r.loginUrl=t.loginUrl),r}function wC(e){if(e.kind!=="embedded")throw new D("EMBEDDED_ONLY",lC)}function Mu(){return new D(ah,`${ah}: nested transactions are not supported on one connection`)}function lh(e,t){if(e&&typeof e=="object")try{e.rollbackError=t}catch{}}function _C(e,t){if(!e||typeof e!="object"||e.rid==null&&e.id==null)throw new D("ENGINE_TOO_OLD",`${t}() requires RedDB engine >= ${uh} with insert id support`);return e.rid==null&&(e.rid=e.id),e.id==null&&(e.id=e.rid),e}function EC(e,t){if(!e||typeof e!="object"||!Array.isArray(e.rids)&&!Array.isArray(e.ids))throw new D("ENGINE_TOO_OLD",`bulkInsert() requires RedDB engine >= ${uh} with bulk insert id support`);if(Array.isArray(e.rids)||(e.rids=e.ids),Array.isArray(e.ids)||(e.ids=e.rids),e.rids.length!==t)throw new D("INVALID_RESPONSE",`bulkInsert() expected ${t} rids, got ${e.rids.length}`);return e}var lC,dC,uh,ah,pi,Nu,Fu,dh=h(()=>{Jg();Yg();Yt();Su();Tu();Cu();Iu();Lu();Du();Gu();$u();Tu();Cu();Iu();Lu();Du();Gu();$u();Su();lC="remote URIs are not supported in @reddb-io/sdk; install @reddb-io/client for grpc/http/red transports",dC="1.0",uh="1.0.9",ah="NESTED_TX_NOT_SUPPORTED";pi=class{constructor(t){this.db=t}query(t,...r){return this.db.query(t,...r)}execute(t,...r){return this.db.execute(t,...r)}insert(t,r){return this.db.insert(t,r)}bulkInsert(t,r){return this.db.bulkInsert(t,r)}async transaction(){throw Mu()}},Nu=class{constructor(t){this.db=t,this.active=!1}async begin(){if(this.db.inTransaction)throw Mu();this.db.inTransaction=!0,this.active=!0;try{return await this.db.query("BEGIN")}catch(t){throw this.db.inTransaction=!1,this.active=!1,t}}async commit(){if(!this.active)throw new D("INVALID_ARGUMENT","tx.commit() called without an open transaction");try{return await this.db.query("COMMIT")}finally{this.active=!1,this.db.inTransaction=!1}}async rollback(){if(!this.active)throw new D("INVALID_ARGUMENT","tx.rollback() called without an open transaction");try{return await this.db.query("ROLLBACK")}finally{this.active=!1,this.db.inTransaction=!1}}async run(t){if(typeof t!="function")throw new TypeError("tx.run(callback) requires a function");if(this.db.inTransaction)throw new D("INVALID_ARGUMENT","nested tx.run() is not supported; issue savepoints via tx.query() instead");await this.begin();try{let r=await t(new pi(this.db));return await this.commit(),r}catch(r){if(this.active)try{await this.rollback()}catch(n){lh(r,n)}throw r}}},Fu=class{constructor(t,r={}){this.client=t,this.transport=r.transport??null,this.helperSpecVersion=dC,this.cache=new Rs(t,this.transport),this.queue=new ks(t),this.queues=this.queue,this.documents=new Ss(this);let n=new fn(t);this.kv=Object.assign((s="kv_default")=>new fn(t,s),{put:n.put.bind(n),invalidateTags:n.invalidateTags.bind(n),watch:n.watch.bind(n),watchPrefix:n.watchPrefix.bind(n)}),this.config=(s="red.config")=>new Ts(t,s),this.vault=(s="red.vault")=>new vs(t,s),this.inTransaction=!1}query(t,...r){if(typeof t!="string"||t.trim().length===0)return Promise.reject(new D("INVALID_ARGUMENT","query() requires a non-empty SQL string"));let n=mC(r);return n==null?this.client.call("query",{sql:t}).then(di):this.client.call("query",{sql:t,params:n}).then(di)}execute(t,...r){return this.query(t,...r)}async insert(t,r){let n=await this.client.call("insert",{collection:t,payload:r});return _C(n,"insert")}async bulkInsert(t,r){if(Array.isArray(r)&&r.length===0)return{affected:0,rids:[],ids:[]};let n=await this.client.call("bulk_insert",{collection:t,payloads:r});return EC(n,r.length)}tx(){return new Nu(this)}async transaction(t){if(this.inTransaction)throw Mu();if(typeof t!="function")throw new TypeError("transaction(callback) requires a function");this.inTransaction=!0;let r=!1;try{await this.query("BEGIN"),r=!0;let n=await t(new pi(this));return await this.query("COMMIT"),n}catch(n){if(r)try{await this.query("ROLLBACK")}catch(s){lh(n,s)}throw n}finally{this.inTransaction=!1}}exists(t){return ih(this,t)}list(){return oh(this)}from(t){return new xs(this,t)}get(t,r){return this.client.call("get",{collection:t,id:String(r)})}delete(t,r){return this.client.call("delete",{collection:t,id:String(r)})}health(){return this.client.call("health",{})}version(){return this.client.call("version",{})}login(t,r){return this.client.call("auth.login",{username:t,password:r})}whoami(){return this.client.call("auth.whoami",{})}changePassword(t,r){return this.client.call("auth.change_password",{current_password:t,new_password:r})}createApiKey({username:t,role:r}={}){return this.client.call("auth.create_api_key",{username:t,role:r})}revokeApiKey(t){return this.client.call("auth.revoke_api_key",{key:t})}close(){return this.client.close()}}});import{createHash as RC}from"node:crypto";import{existsSync as ph}from"node:fs";import{mkdir as kC,readFile as SC,rename as Bu,rm as Cs,stat as ju}from"node:fs/promises";import{basename as TC,dirname as vC}from"node:path";async function mh(e){await(await xr.open({...e,allowResidentOpen:!0})).close()}var xr,fh=h(()=>{"use strict";dh();Xo();ci();xr=class e{constructor(t,r){this.opts=r;this.path=t}document;db;path;dirty=!1;static async open(t){if(process.env.RSP_FAIL_IF_STORE_OPEN==="1"&&!t.allowResidentOpen)throw new Error("RSP_FAIL_IF_STORE_OPEN blocked store open");let r=qg(t.uri),n=await Ug(r),s=new e(n,{uri:t.uri,ttlDays:ni(t.ttlDays,ze),ephemeralTtlHours:ni(t.ephemeralTtlHours,Ye),byteBudget:ni(t.byteBudget,Qe),now:t.now??(()=>new Date)});return Hg(n)?(await ai(),await kC(vC(n),{recursive:!0}),s.db=await mi(`file://${n}`),await s.ensureRedDbCollections(),await s.ensureRedDbStore()):s.document=await jg(s.path),s}async close(){await this.db?.close()}redDb(){return this.db}async mint(t,r){if(this.db)return await this.mintRedDb(t,r);let n=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=bs(n,r),a=zt(i),c=Gt(r.command),u=c==="derivable"?gu(n,r.command):null,l=c==="re-executable"?hu(n,r.command):null,p=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,d=fu(s,p,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Sr(n),f=p==="ephemeral"?wu(n,g,o):null,k=yu(n,u,l,f);f&&!this.document.blobs[f.key]&&(this.document.blobs[f.key]=f,this.dirty=!0);let E={collection:ue,handle:i,original_bytes:n.length,stored_bytes:k,command:r.command,created_at:o,expires_at:d,loss:r.loss,storage_class:p,content_hash:g,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};return delete this.document.tombstones[Tr(i)],this.document.records[a]=E,this.upsertIndex({handle:i,key:a,bytes:k,raw_bytes:n.length,command:r.command,created_at:o,expires_at:d,storage_class:p,blob_key:f?.key}),this.prune(),await this.flush(),i}async get(t){if(this.db)return await this.getRedDb(t);if(!_s(t))return null;let r=this.tombstone(t);if(r)return r;let n=this.document.records[zt(t)];if(!Es(n))return null;if(Date.parse(n.expires_at)<=this.opts.now().getTime()){let o={status:"expired",expired_at:n.expires_at,command:n.command};return this.expireEntry({handle:n.handle,key:zt(n.handle),bytes:bu(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:ws(n),blob_key:n.blob_key},n.expires_at),await this.flush(),o}let s=await this.readOriginal(n);return!s&&(n.derivation_recipe||n.reexecution_recipe)?{status:"expired",expired_at:n.expires_at,command:n.command}:s?{collection:ue,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:ws(n)}:null}async stats(){if(this.db)return await this.statsRedDb();this.prune(),await this.flush();let r=this.readIndex().records;return{records:r.length,bytes:vr(r),oldest:r.reduce((n,s)=>n==null||s.created_at<n?s.created_at:n,null),budget:this.opts.byteBudget,storage_classes:pu(r)}}async recoveryHandles(t=5){return this.db?await this.recoveryHandlesRedDb(t):(this.prune(),await this.flush(),mu(this.readIndex().records,this.opts.now(),t))}readIndex(){return this.document.index}writeIndex(t){this.document.index=t}upsertIndex(t){let n=this.readIndex().records.filter(s=>s.handle!==t.handle);n.push(t),this.writeIndex({version:1,records:n}),this.dirty=!0}prune(){let t=this.opts.now().getTime(),r=new Date(t).toISOString(),n=this.readIndex(),s=[];for(let i of n.records)Date.parse(i.expires_at)<=t?this.expireEntry(i,i.expires_at):s.push(i);let o=vr(s);for(s.sort((i,a)=>i.created_at.localeCompare(a.created_at));o>this.opts.byteBudget&&s.length>0;){let i=s.shift();this.expireEntry(i,r),o=vr(s)}s.length<n.records.length&&this.writeIndex({version:1,records:s}),this.deleteUnreferencedLocalBlobs(s)}expireEntry(t,r){delete this.document.records[t.key],this.document.tombstones[Tr(t.handle)]={status:"expired",expired_at:r,command:t.command},this.dirty=!0}tombstone(t){let r=this.document.tombstones[Tr(t)];return oi(r)?r:null}async readOriginal(t){if(t.original)return Buffer.from(t.original,"base64");if(t.derivation_recipe)return Dg(t.derivation_recipe);if(t.reexecution_recipe)return Gg(t.reexecution_recipe);if(t.blob_key){let r=this.db?await this.kvGet(t.blob_key):this.document.blobs[t.blob_key];return si(r)?Lg(r):null}return null}deleteUnreferencedLocalBlobs(t){let r=new Set(t.map(n=>n.blob_key).filter(n=>typeof n=="string"));for(let n of Object.keys(this.document.blobs))r.has(n)||(delete this.document.blobs[n],this.dirty=!0)}async flush(){this.dirty&&(await mn(this.path,this.document),this.dirty=!1),await this.rotateLocalGenerationIfOversized()}async rotateLocalGenerationIfOversized(){let t=await ju(this.path).then(a=>a.size,()=>0);if(t<=this.opts.byteBudget)return;let r=this.readIndex().records,n=new Set(r.map(a=>a.key)),s=new Set(r.map(a=>a.blob_key).filter(a=>typeof a=="string")),o={version:1,records:Object.fromEntries(Object.entries(this.document.records).filter(([a])=>n.has(a))),blobs:Object.fromEntries(Object.entries(this.document.blobs).filter(([a])=>s.has(a))),tombstones:{},index:{version:1,records:r}},i=Buffer.byteLength(`${JSON.stringify(o)}
81
- `,"utf8");i>this.opts.byteBudget||i>=t||(this.document=o,await mn(this.path,this.document))}kv(){if(!this.db)throw new Error("rsp RedDB store is not open");return this.db.kv(ue)}async kvGet(t){let r=await this.kv().get(t);if(typeof r!="string")return r;try{return JSON.parse(r)}catch{return r}}async ensureRedDbStore(){let t=await this.readRedDbIndex();await this.writeRedDbIndex(t)}async ensureRedDbCollections(){if(!this.db)throw new Error("rsp RedDB store is not open");let t=(await this.db.list()).find(r=>r.name===ue);if(!t){await this.db.query(`CREATE KV IF NOT EXISTS ${ue}`);return}if(t.model!=="kv"){if(t.model!=="table")throw new Error(`cannot self-heal elision collection ${ue}: unsupported model ${t.model}`);await this.db.query(`DROP TABLE ${ue}`),await this.db.query(`CREATE KV IF NOT EXISTS ${ue}`)}}async mintRedDb(t,r){let n=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=bs(n,r),a=zt(i),c=Gt(r.command),u=c==="derivable"?gu(n,r.command):null,l=c==="re-executable"?hu(n,r.command):null,p=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,d=fu(s,p,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Sr(n),f=p==="ephemeral"?wu(n,g,o):null,k=yu(n,u,l,f);f&&!si(await this.kvGet(f.key))&&await this.kv().put(f.key,f);let E={collection:ue,handle:i,original_bytes:n.length,stored_bytes:k,command:r.command,created_at:o,expires_at:d,loss:r.loss,storage_class:p,content_hash:g,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};await this.kv().delete(Tr(i)),await this.kv().put(a,E);let _=(await this.readRedDbIndex()).records.filter(T=>T.handle!==i);return _.push({handle:i,key:a,bytes:k,raw_bytes:n.length,command:r.command,created_at:o,expires_at:d,storage_class:p,blob_key:f?.key}),await this.pruneRedDb({version:1,records:_},!0),await this.assertRedDbMintPersisted(i,k),i}async getRedDb(t){if(!_s(t))return null;let r=await this.kvGet(Tr(t));if(oi(r))return r;let n=await this.kvGet(zt(t));if(!Es(n))return null;if(Date.parse(n.expires_at)<=this.opts.now().getTime()){let o={status:"expired",expired_at:n.expires_at,command:n.command};return await this.expireRedDbEntry({handle:n.handle,key:zt(n.handle),bytes:bu(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:ws(n),blob_key:n.blob_key},n.expires_at),o}let s=await this.readOriginal(n);return!s&&(n.derivation_recipe||n.reexecution_recipe)?{status:"expired",expired_at:n.expires_at,command:n.command}:s?{collection:ue,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:ws(n)}:null}async statsRedDb(){let t=await this.pruneRedDb(await this.readRedDbIndex());return{records:t.records.length,bytes:vr(t.records),oldest:t.records.reduce((r,n)=>r==null||n.created_at<r?n.created_at:r,null),budget:this.opts.byteBudget,storage_classes:pu(t.records)}}async recoveryHandlesRedDb(t){let r=await this.pruneRedDb(await this.readRedDbIndex());return mu(r.records,this.opts.now(),t)}async memory(t,r){if(!this.db)throw new Error("resident memory operations require the shared RedDB store");if(await this.ensureMemoryGraphStore(),t==="recall"){let n=Ng(r);return await this.memoryRecallRedDb(n.query,n.limit)}if(t==="ingest"){let n=Fg(r);return await this.memoryIngestRedDb(n)}throw new Error(`unsupported memory action: ${t}`)}async ensureMemoryGraphStore(){if(!this.db)throw new Error("rsp RedDB store is not open");await this.db.execute("CREATE GRAPH IF NOT EXISTS memory_nodes"),await this.db.execute("CREATE GRAPH IF NOT EXISTS memory_edges")}async memoryIngestRedDb(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await Mg(t.cwd,t.maxFiles??200,t.ignore??[]),n=0;for(let s of r){let i=(await SC(s,"utf8").catch(()=>"")).trim();if(!i)continue;let a=TC(s),c=RC("sha256").update("resident-memory-v1\0").update(s).update("\0").update(i).digest("hex");if(await this.db.kv("memory_kv").get(`resident-node-hash:${c}`)!=null)continue;let u=Date.now(),l={title:a,content:i,source:s,confidence:"EXTRACTED",hash:c,project:"default",scope:"project",importance:1,tier:"durable",provenance_tier:"oracle",created_at:u,updated_at:u,accessed_at:u,access_count:0,provenance:{source_kind:"system",writer:"rsp-resident",confidence:"EXTRACTED",evidence:[s],created_at:u,updated_at:u}},p=await this.db.query("INSERT INTO memory_nodes NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *",a,"concept",c,l),d=Number(p.rows[0]?.red_entity_id??p.rows[0]?.rid);Number.isFinite(d)&&await this.db.kv("memory_kv").put(`resident-node-hash:${c}`,d),n+=1}return{files:r.length,nodes:n,edges:0,docs:r.length,added:n,updated:0,skipped:r.length-n,stale:0,semantic:{enabled:!1,nodes:0,edges:0,token_cost:{input:0,output:0}},durationMs:0}}async memoryRecallRedDb(t,r){if(!this.db)throw new Error("rsp RedDB store is not open");let n=await this.db.query("SELECT * FROM memory_nodes"),s=t.toLowerCase().split(/\s+/).filter(Boolean),o=n.rows.map(i=>Bg(i,s)).filter(i=>i!=null).sort((i,a)=>a.score-i.score).slice(0,Math.max(1,Math.min(100,r)));return{hits:o,context_md:o.map(i=>`- memory_nodes:${i.rid} ${i.label}: ${i.excerpt}`).join(`
82
- `),diagnostics:{vector:{status:"unavailable",candidates:0,contributed:0,reason:"resident-basic-recall"}}}}async readRedDbIndex(){let t=await this.kvGet(ti());return _u(t)?t:{version:1,records:[]}}async writeRedDbIndex(t){await this.kv().put(ti(),t)}async pruneRedDb(t,r=!1){let n=this.opts.now().getTime(),s=new Date(n).toISOString(),o=[];for(let c of t.records)Date.parse(c.expires_at)<=n?await this.expireRedDbEntry(c,c.expires_at):o.push(c);let i=vr(o);for(o.sort((c,u)=>c.created_at.localeCompare(u.created_at));i>this.opts.byteBudget&&o.length>0;){let c=o.shift();await this.expireRedDbEntry(c,s),i=vr(o)}let a={version:1,records:o};return(r||o.length<t.records.length)&&await this.writeRedDbIndex(a),await this.deleteUnreferencedRedDbBlobs(o),await this.rotateRedDbGenerationIfOversized(a),a}async rotateRedDbGenerationIfOversized(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await ju(this.path).then(u=>u.size,()=>0);if(r<=this.opts.byteBudget)return;let n=await this.snapshotRedDbKvCollections(t);if(!n)return;let s=`${process.pid}.${Date.now()}`,o=`${this.path}.${s}.compact`,i=`${this.path}.${s}.old`;await Cs(o,{force:!0}),await Cs(i,{force:!0});let a=await mi(`file://${o}`);try{for(let u of n){await a.query(`CREATE KV IF NOT EXISTS ${Pg(u.name)}`);let l=a.kv(u.name);for(let p of u.items)await l.put(p.key,p.value)}}finally{await a.close()}let c=await ju(o).then(u=>u.size,()=>0);if(c===0||c>this.opts.byteBudget||c>=r){await Cs(o,{force:!0});return}await this.db.close(),this.db=void 0;try{await Bu(this.path,i),await Bu(o,this.path),await Cs(i,{force:!0})}catch(u){throw!ph(this.path)&&ph(i)&&await Bu(i,this.path),await Cs(o,{force:!0}),u}finally{this.db=await mi(`file://${this.path}`)}}async snapshotRedDbKvCollections(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await this.db.list();if(r.some(o=>o.model!=="kv"))return null;let n=[],s=!1;for(let o of r){let i=String(o.name??"").trim();if(i===ue){n.push(await this.snapshotRedDbElisions(t)),s=!0;continue}let a=await this.db.kv(i).list({limit:1e4});if(a.items.length>=1e4)return null;n.push({name:i,items:a.items})}return s||n.push(await this.snapshotRedDbElisions(t)),n}async snapshotRedDbElisions(t){let r=[{key:ti(),value:t}],n=new Set;for(let s of t.records)n.add(s.key),s.blob_key&&n.add(s.blob_key);for(let s of n){let o=await this.kvGet(s);o!=null&&r.push({key:s,value:o})}return{name:ue,items:r}}async expireRedDbEntry(t,r){await this.kv().delete(t.key),await this.kv().put(Tr(t.handle),{status:"expired",expired_at:r,command:t.command})}async deleteUnreferencedRedDbBlobs(t){let r=new Set(t.map(s=>s.blob_key).filter(s=>typeof s=="string")),n=await this.kv().list({limit:1e4}).catch(()=>({items:[]}));for(let s of n.items)s.key.startsWith("blob:")&&!r.has(s.key)&&await this.kv().delete(s.key)}async assertRedDbMintPersisted(t,r){let n=await this.kvGet(zt(t));if(!Es(n))throw new Error(`rsp resident failed to persist elision record ${t}`);let o=(await this.readRedDbIndex()).records.find(i=>i.handle===t);if(!o||o.bytes!==r)throw new Error(`rsp resident failed to persist elision index ${t}`)}}});var gh={};K(gh,{DEFAULT_RSP_BYTE_BUDGET:()=>Qe,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Ye,DEFAULT_RSP_TTL_DAYS:()=>ze,RSP_ELISION_COLLECTION:()=>ue,RspElisionStore:()=>xr,contentHandle:()=>bs,ensureReddbBinaryFromWarmCache:()=>ai,provisionElisionStore:()=>mh,storageClassForCommand:()=>Gt});var fi=h(()=>{"use strict";Xo();ci();ci();fh()});async function gi(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:30,s=r.getTime()-n*24*60*60*1e3,o=await bh(e,s),i=(await Os(e,he)).filter(P=>yn(P)>=s),a=o.filter(P=>F(P.event_type)!=="show"&&F(P.degradation_reason)===""),c=o.filter(P=>F(P.event_type)==="show"),u=o.filter(P=>F(P.degradation_reason)!==""),l=0,p=0,d=0,g=0,f=!1,k=new Map,E=new Map,y=[],_=0,T=0,v=0;for(let P of a){P.elided===!0&&l++;let M=Me(P.raw_bytes),De=Me(P.emitted_bytes),_t=Math.max(0,M-De),Mt=bn(P,"raw"),O=bn(P,"emitted"),N=Math.max(0,Mt.tokens-O.tokens);f||=(P.estimated===!0||Mt.estimated||O.estimated)&&N>0,p+=M,d+=De,g+=N;let Et=Cr(P).slice(0,10);Et&&k.set(Et,(k.get(Et)??0)+N);let st=F(P.command)||"unknown",ve=E.get(st)??{command:st,invocations:0,bytes_saved:0,tokens_saved:0};ve.invocations++,ve.bytes_saved+=_t,ve.tokens_saved+=N,E.set(st,ve);let xe=Vt(P.wrapper_ms);xe!=null&&y.push(xe),_+=Me(P.store_open_count);let Rt=Vt(P.store_elapsed_ms);Rt!=null&&(T+=Rt,v++)}let G=new Map,B=new Map,V=[],te=null;for(let P of u){let M=F(P.degradation_reason)||F(P.reason)||"unknown",De=F(P.wrapper_family)||Be(F(P.command));G.set(M,(G.get(M)??0)+1),B.set(De,(B.get(De)??0)+1);let _t=Cr(P);V.push({timestamp:_t,family:De,command:F(P.command)||"unknown",reason:M,exit_code:Vt(P.wrapper_exit_code),stderr_head:F(P.stderr_head)||null}),(!te||_t>te.timestamp)&&(te={timestamp:_t,reason:M,command:F(P.command)||"unknown"})}let re=a.length+u.length,He=c.filter(P=>P.hit===!0).length,de=Rc(g,f),Ft=xC(i);return{window_days:n,empty:o.length===0,savings:{invocations:a.length,elided:l,raw_bytes:p,emitted_bytes:d,bytes_saved:Math.max(0,p-d),tokens_saved:g,tokens_saved_estimated:de.tokens_saved_estimated,token_estimate_range_pct:de.token_estimate_range_pct,tokens_saved_low:de.tokens_saved_low,tokens_saved_high:de.tokens_saved_high,dollars_saved_estimate_usd:de.dollars_saved_estimate_usd,dollars_saved_low_usd:de.dollars_saved_low_usd,dollars_saved_high_usd:de.dollars_saved_high_usd,pricing_model_family:de.pricing_model_family,pricing_input_usd_per_million_tokens:de.pricing_input_usd_per_million_tokens,pricing_note:de.pricing_note,daily_tokens_saved:[...k.entries()].sort(([P],[M])=>P.localeCompare(M)).map(([P,M])=>({date:P,tokens_saved:M})),top_commands:[...E.values()].sort((P,M)=>M.bytes_saved-P.bytes_saved||M.tokens_saved-P.tokens_saved||P.command.localeCompare(M.command))},health:{degradations:u.length,degradation_rate:re===0?0:u.length/re,show_total:c.length,show_hits:He,show_misses:Math.max(0,c.length-He),show_hit_rate:c.length===0?0:ye(He/c.length),by_reason:[...G.entries()].sort((P,M)=>M[1]-P[1]||P[0].localeCompare(M[0])).map(([P,M])=>({reason:P,count:M})),by_family:[...B.entries()].sort((P,M)=>M[1]-P[1]||P[0].localeCompare(M[0])).map(([P,M])=>({family:P,count:M})),recent_failures:V.sort((P,M)=>M.timestamp.localeCompare(P.timestamp)).slice(0,20),most_recent:te},latency:{wrapper_ms_p50:hn(y,.5),wrapper_ms_p95:hn(y,.95),store_open_count_sum:_,store_elapsed_ms_sum:ye(T),store_elapsed_ms_avg:v===0?null:ye(T/v)},decisions:Ft}}function xC(e){let t=0,r=0,n=0,s=0,o=new Map,i=new Map;for(let a of e){let c=F(a.decision);if(c==="contributed"?t++:c==="failed-open"?n++:r++,a.quota_free===!0&&(s+=Math.max(1,Me(a.saved_units))),c!=="contributed"){let p=F(a.reason)||"unknown";o.set(p,(o.get(p)??0)+1)}let u=F(a.command_family)||"unknown",l=i.get(u)??{contributed:0,passed:0,failed_open:0};c==="contributed"?l.contributed++:c==="failed-open"?l.failed_open++:l.passed++,i.set(u,l)}return{seen:e.length,contributed:t,passed:r,failed_open:n,quota_free_saved_units:s,contribution_rate:e.length===0?0:ye(t/e.length),top_pass_reasons:[...o.entries()].sort((a,c)=>c[1]-a[1]||a[0].localeCompare(c[0])).map(([a,c])=>({reason:a,count:c})),by_command_family:[...i.entries()].sort((a,c)=>{let u=a[1].contributed+a[1].passed+a[1].failed_open;return c[1].contributed+c[1].passed+c[1].failed_open-u||a[0].localeCompare(c[0])}).map(([a,c])=>{let u=c.contributed+c.passed+c.failed_open;return{command_family:a,contributed:c.contributed,passed:c.passed,failed_open:c.failed_open,contribution_rate:u===0?0:ye(c.contributed/u)}})}}async function Uu(e,t,r=new Date){let s=(await Os(e,Ce)).filter(o=>yn(o)<=r.getTime()||Cr(o)==="");return{records:s.length,bytes:s.reduce((o,i)=>o+Buffer.byteLength(JSON.stringify(i),"utf8"),0),oldest:s.reduce((o,i)=>{let a=Cr(i);return a&&(o==null||a<o)?a:o},null),budget:t,storage_classes:$C(s)}}async function Hu(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:28,s=r.toISOString(),o=new Date(r.getTime()-n*24*60*60*1e3).toISOString(),i=Date.parse(o),a=await bh(e,i),c=a.filter(O=>F(O.event_type)!=="show"&&F(O.event_type)!=="control_holdout"&&O.control_holdout!==!0&&F(O.degradation_reason)===""),u=a.filter(O=>F(O.event_type)==="control_holdout"||O.control_holdout===!0),l=a.filter(O=>F(O.event_type)==="show"),p=a.filter(O=>F(O.degradation_reason)!==""),d=[...c,...p].map(yn).filter(O=>Number.isFinite(O)&&O>0),g=d.length===0?null:Math.min(...d),f=g==null?0:Math.max(1,Math.min(n,Math.ceil((r.getTime()-g)/WC()))),k=[],E=new Map,y=new Map,_=new Map,T=new Map,v=new Map,G=new Map,B=0,V=!1,te=0,re=null,He=0,de=0;for(let O of c){let N=Cr(O),Et=N.slice(0,10),st=N.slice(0,16),ve=Be(F(O.command)),xe=Math.max(0,bn(O,"raw").tokens-bn(O,"emitted").tokens);B+=xe,V||=O.estimated===!0&&xe>0;let Rt=Math.max(0,Me(O.raw_bytes)-Me(O.emitted_bytes)),Fr=Vt(O.wrapper_ms);if(Fr!=null){k.push(Fr);let In=E.get(ve)??[];In.push(Fr),E.set(ve,In)}Et&&y.set(Et,(y.get(Et)??0)+1),st&&_.set(st,(_.get(st)??0)+1);let Bt=BC(N);Bt&&T.set(Bt,(T.get(Bt)??0)+1);let Pn=HC(N);Pn&&v.set(Pn,(v.get(Pn)??0)+xe);let ur=G.get(ve)??{command_family:ve,invocations:0,tokens_saved:0,bytes_saved:0};ur.invocations++,ur.tokens_saved+=xe,ur.bytes_saved+=Rt,G.set(ve,ur),O.elided===!0&&te++,(O.store_open_count!=null||O.store_elapsed_ms!=null)&&(He++,Me(O.store_open_count)>0&&de++),xe>0&&(!re||xe>re.tokens_saved||xe===re.tokens_saved&&Rt>re.bytes_saved)&&(re={timestamp:N,command_family:ve,tokens_saved:xe,bytes_saved:Rt})}let Ft=p.map(O=>({timestamp:Cr(O),command_family:Be(F(O.command)),reason:F(O.degradation_reason)||F(O.reason)||"unknown"})).sort((O,N)=>O.timestamp.localeCompare(N.timestamp)),P=new Map;for(let O of Ft)P.set(O.reason,(P.get(O.reason)??0)+1);let M=PC(Ft),De=AC(l),_t=LC([...G.values()],De,M),Mt=[..._.entries()].sort((O,N)=>N[1]-O[1]||O[0].localeCompare(N[0]))[0];return{schema_version:"red.rsp.gains.v1",window:{requested_days:n,data_days:f,since:o,until:s,label:`window: ${n}d, data: ${f}d`,empty:c.length===0&&p.length===0,invocations:c.length,degradations:p.length},latency:{global:yh(k),by_command_family:[...E.entries()].sort((O,N)=>N[1].length-O[1].length||O[0].localeCompare(N[0])).map(([O,N])=>({command_family:O,count:N.length,...yh(N)}))},throughput:{requests_per_day:[...y.entries()].sort(([O],[N])=>O.localeCompare(N)).map(([O,N])=>({date:O,requests:N})),active_minute_avg:_.size===0?null:ye([..._.values()].reduce((O,N)=>O+N,0)/_.size),peak_minute:Mt?{minute:Mt[0],requests:Mt[1]}:null,hour_weekday_heatmap:jC(T)},savings:{tokens:Rc(B,V),measured_control_holdout:CC(c,u),weekly_tokens_saved:qC(v),elision_rate:c.length===0?0:ye(te/c.length),top_commands_by_tokens_saved:[...G.values()].sort((O,N)=>N.tokens_saved-O.tokens_saved||N.bytes_saved-O.bytes_saved||O.command_family.localeCompare(N.command_family)).slice(0,10),top_commands_by_invocation_count:[...G.values()].sort((O,N)=>N.invocations-O.invocations||N.tokens_saved-O.tokens_saved||O.command_family.localeCompare(N.command_family)).slice(0,10),single_biggest_elision:re},health:{degradation_timeline:Ft,degradations_by_reason:[...P.entries()].sort((O,N)=>N[1]-O[1]||O[0].localeCompare(N[0])).map(([O,N])=>({reason:O,count:N})),cold_boots:He===0?null:de,warm_hits:He===0?null:Math.max(0,He-de)},mining:{recovery_usage_by_family:De,degradation_clusters:M,threshold_tuning_suggestions:_t}}}async function bh(e,t){let r=(await Os(e,Ce)).filter(i=>yn(i)>=t),n=r.some(i=>F(i.event_type)!=="show"||F(i.degradation_reason)!==""),s=(await Os(e,Fe)).filter(i=>yn(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:F(i.event_type)||"invocation"})),o=(await Os(e,ft)).filter(i=>yn(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:"invocation",degradation_reason:F(i.reason)||"unknown"}));return[...r,...s,...o]}function bn(e,t){let r=Vt(e[t==="raw"?"tokens_raw":"tokens_emitted"]);if(r!=null)return{tokens:r,estimated:!1};let n=Me(e[t==="raw"?"raw_bytes":"emitted_bytes"]);return{tokens:Math.ceil(n/4),estimated:n>0}}function CC(e,t){let r=GC(t.map(a=>Vt(a.holdout_share)))??0;if(t.length===0)return{enabled:!1,holdout_share:r,holdout_invocations:0,compressed_invocations:e.length,savings_rate:null,confidence_interval_95:null,note:"control holdout disabled or no holdout samples in window"};let n=e.map(hh).filter(a=>a!=null),s=t.map(hh).filter(a=>a!=null),o=n.length>0?n:s,i=o.length===0?null:ye(DC(o));return{enabled:!0,holdout_share:ye(r),holdout_invocations:t.length,compressed_invocations:e.length,savings_rate:i,confidence_interval_95:i==null?null:OC(o,i),note:"measured from opt-in uncompressed control holdout; report proposes, it does not tune automatically"}}function hh(e){let t=bn(e,"raw").tokens;if(t<=0)return null;let r=bn(e,"emitted").tokens;return Math.max(0,t-r)/t}function OC(e,t){if(e.length<=1)return{low:ye(Math.max(0,t)),high:ye(Math.min(1,t))};let r=e.reduce((s,o)=>s+(o-t)**2,0)/(e.length-1),n=1.96*Math.sqrt(r/e.length);return{low:ye(Math.max(0,t-n)),high:ye(Math.min(1,t+n))}}function AC(e){let t=new Map;for(let r of e){let n=Be(F(r.recovered_command)||F(r.command)),s=t.get(n)??{command_family:n,show_total:0,show_hits:0,show_misses:0};s.show_total++,r.hit===!0?s.show_hits++:s.show_misses++,t.set(n,s)}return[...t.values()].sort((r,n)=>n.show_total-r.show_total||r.command_family.localeCompare(n.command_family)).map(r=>({...r,show_hit_rate:r.show_total===0?0:ye(r.show_hits/r.show_total)}))}function PC(e){let t=new Map;for(let r of e){let n=`${r.command_family}\0${r.reason}`,s=t.get(n)??{command_family:r.command_family,reason:r.reason,count:0};s.count++,t.set(n,s)}return[...t.values()].sort((r,n)=>n.count-r.count||r.command_family.localeCompare(n.command_family)||r.reason.localeCompare(n.reason)).map(r=>({...r,suggestion:IC(r)}))}function IC(e){return/unavailable|not provisioned|missing/i.test(e.reason)?`Investigate ${e.command_family} wrapper availability before changing thresholds`:/timeout|large|limit/i.test(e.reason)?`Review ${e.command_family} byte thresholds and timeout caps for ${e.count} matching degradations`:`Investigate ${e.command_family} ${e.reason} cluster before tuning compression thresholds`}function LC(e,t,r){let n=[];for(let s of t.filter(o=>o.show_total>0))n.push({command_family:s.command_family,signal:`recovery_show_rate=${s.show_total}`,suggestion:s.show_hit_rate>=.5?"Consider preserving more context or raising terse thresholds for frequently recovered outputs":"Recovery misses dominate; inspect handle lifetime before threshold changes"});for(let s of r.filter(o=>o.count>1))n.push({command_family:s.command_family,signal:`degradation_cluster=${s.reason}:${s.count}`,suggestion:"Fix the repeated degradation before tightening compression"});for(let s of e.filter(o=>o.invocations>0&&o.tokens_saved===0))n.push({command_family:s.command_family,signal:"zero_token_savings",suggestion:"Consider bypassing or raising admission thresholds for this family"});return n.slice(0,10)}function DC(e){return e.reduce((t,r)=>t+r,0)/e.length}function GC(e){let t=e.filter(r=>r!=null);return t.length===0?null:Math.max(...t)}function $C(e){let t=FC();for(let r of e){if(F(r.event_type)==="show"||F(r.degradation_reason)!==""||r.elided!==!0)continue;let n=NC(r.storage_class)??Gt(F(r.command));t[n].records+=1;let s=Me(r.raw_bytes);t[n].bytes+=s,t[n].raw_bytes+=s}return t}function NC(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"?e:null}function FC(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}async function Os(e,t){return(await e.kv(t).list({limit:1e4}).catch(n=>{if(n instanceof Error&&/\bnot found\b/i.test(n.message))return{items:[]};throw n})).items.map(n=>MC(n.value)).filter(n=>un(n))}function MC(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function yn(e){let t=Date.parse(Cr(e));return Number.isFinite(t)?t:0}function Cr(e){return F(e.created_at)||F(e.ts)||""}function F(e){return typeof e=="string"?e:""}function hn(e,t){if(e.length===0)return null;let r=[...e].sort((s,o)=>s-o),n=Math.min(r.length-1,Math.max(0,Math.ceil(r.length*t)-1));return ye(r[n])}function yh(e){return{wrapper_ms_p50:hn(e,.5),wrapper_ms_p90:hn(e,.9),wrapper_ms_p95:hn(e,.95),wrapper_ms_p99:hn(e,.99)}}function ye(e){return Math.round(e*100)/100}function BC(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${UC(t.getUTCDay())}:${t.getUTCHours()}`:null}function jC(e){let t=[];for(let r of["sun","mon","tue","wed","thu","fri","sat"])for(let n=0;n<24;n++){let s=e.get(`${r}:${n}`)??0;s>0&&t.push({weekday:r,hour:n,requests:s})}return t}function UC(e){return["sun","mon","tue","wed","thu","fri","sat"][e]??"unknown"}function HC(e){let t=new Date(e);if(!Number.isFinite(t.getTime()))return null;let r=t.getUTCDay(),n=r===0?-6:1-r;return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()+n)).toISOString().slice(0,10)}function qC(e){let t=null;return[...e.entries()].sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>{let s=t==null||t===0?null:ye((n-t)/t*100);return t=n,{week_start:r,tokens_saved:n,wow_delta_pct:s}})}function WC(){return 24*60*60*1e3}var wh=h(()=>{"use strict";fs();fi();kc();Vo();ru()});var As={};K(As,{RSP_ACCOUNTING_EVENTS_COLLECTION:()=>Ce,RSP_DECISIONS_COLLECTION:()=>he,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:()=>ft,RSP_TELEMETRY_INDEX_COLLECTION:()=>ls,RSP_TELEMETRY_INVOCATIONS_COLLECTION:()=>Fe,RSP_TELEMETRY_LEGACY_SPOOL_FILE:()=>eu,RSP_TELEMETRY_SPOOL_CORRECTIONS_FILE:()=>tu,RSP_TELEMETRY_SPOOL_FILE:()=>Zc,appendTelemetryEvent:()=>Dt,appendTelemetryEventSync:()=>Kt,drainTelemetrySpool:()=>cu,parseTelemetryEvent:()=>dn,readAccountingLaneStats:()=>Uu,readTelemetryGainsReport:()=>Hu,readTelemetryStats:()=>gi,takeTelemetrySpool:()=>Jv,telemetryLegacySpoolPath:()=>Yo,telemetrySpoolCorrectionsPath:()=>au,telemetrySpoolPath:()=>Lt});var et=h(()=>{"use strict";Vo();Og();wh()});var Eh={};K(Eh,{readGhConditionalJson:()=>Oe,readGhEtagCache:()=>jo,sweepGhEtagCache:()=>zc});import{spawn as JC}from"node:child_process";import{createHash as VC,randomUUID as KC}from"node:crypto";async function Oe(e){let t=e.cwd??process.cwd(),r=e.telemetryRoot??t,n=process.hrtime.bigint(),s=e.overheadCeiling??Ke,o=zC(e.path,e.params),i=YC(o),c=tc(r,"gh-api-json")?void 0:await Jc(r,i),u=["api","--include","--method","GET",e.path];for(let[f,k]of _h(e.params))u.push("-f",`${f}=${String(k)}`);c?.etag&&u.push("-H",`If-None-Match: ${c.etag}`);let l=await QC(u,t,e.env,e.signal),p=f=>{let k=Kn();Jn(r,{family:"gh-api-json",wrapperMs:Number(process.hrtime.bigint()-n)/1e6,childMs:k.childMs,selfStateBytesRead:k.selfStateBytesRead,bytesSaved:f},s)},d=XC(l.stdout);if(d.statusCode===304&&!!c)return p(Buffer.byteLength(c.body)),await qu(r,e.command??`gh api ${e.path}`,!0),{status:0,stdout:c.body,stderr:l.stderr,etag:c.etag,quotaFree:!0};if(d.statusCode>=200&&d.statusCode<300){let f=d.headers.get("etag");return f&&await Vc(r,{key:i,request:o,etag:f,body:d.body,updated_at:new Date().toISOString()},{maxBytes:e.cacheMaxBytes}),p(0),await qu(r,e.command??`gh api ${e.path}`,!1),{status:l.status,stdout:d.body,stderr:l.stderr,etag:f??void 0,quotaFree:!1}}return p(0),await qu(r,e.command??`gh api ${e.path}`,!1),{status:l.status,stdout:d.body||l.stdout,stderr:l.stderr,quotaFree:!1}}function _h(e){return Object.entries(e??{}).filter(t=>t[1]!==void 0).sort(([t],[r])=>t.localeCompare(r))}function zC(e,t){return JSON.stringify({method:"GET",path:e,params:_h(t)})}function YC(e){return VC("sha256").update(`rsp-gh-etag-v1\0${e}`).digest("hex")}async function QC(e,t,r,n){return n?.aborted?{status:1,stdout:"",stderr:"gh call cancelled"}:await new Promise(s=>{let o=!1,i=d=>{o||(o=!0,n?.removeEventListener("abort",c),s(d))},a=JC("gh",e,{cwd:t,env:r?{...process.env,...r}:process.env,stdio:["ignore","pipe","pipe"]});function c(){try{a.kill("SIGKILL")}catch{}i({status:1,stdout:"",stderr:"gh call cancelled"})}n?.addEventListener("abort",c,{once:!0});let u=ke();a.once("close",u),a.once("error",u);let l=[],p=[];a.stdout.on("data",d=>l.push(Buffer.from(d))),a.stderr.on("data",d=>p.push(Buffer.from(d))),a.once("error",d=>i({status:1,stdout:"",stderr:d.message})),a.once("close",d=>{i({status:d??1,stdout:Buffer.concat(l).toString("utf8"),stderr:Buffer.concat(p).toString("utf8").trim()})})})}function XC(e){let t=e.replace(/\r\n/g,`
83
- `),r=[...t.matchAll(/^HTTP\/\S+\s+(\d{3})[^\n]*\n/gm)];if(r.length===0)return{statusCode:0,headers:new Map,body:e};let n=r[r.length-1],s=Number(n[1]),o=n.index+n[0].length,i=t.indexOf(`
84
-
85
- `,o),a=i>=0?t.slice(o,i):t.slice(o),c=new Map;for(let u of a.split(`
86
- `)){let l=u.indexOf(":");l<=0||c.set(u.slice(0,l).trim().toLowerCase(),u.slice(l+1).trim())}return{statusCode:s,headers:c,body:i>=0?t.slice(i+2):""}}async function qu(e,t,r){await Dt(e,{collection:he,id:KC(),created_at:new Date().toISOString(),command:t,command_family:"gh api",decision:"contributed",reason:r?"gh-conditional-304":"gh-conditional-fetch",quota_free:r,saved_units:r?1:0})}var hi=h(()=>{"use strict";us();us();oe();et()});import{spawn as ZC}from"node:child_process";async function Ps(e,t){return await eO(t,async r=>{let n=await rO(e,t.cwd,r);return n||await tO(e,t.cwd,r)})}async function eO(e,t){if(e.signal.aborted)return{status:1,stdout:"",stderr:"wait cancelled"};let r=new AbortController,n=setTimeout(()=>r.abort(),e.timeoutMs),s=AbortSignal.any([e.signal,r.signal]);try{let o=await t(s);return r.signal.aborted?{status:1,stdout:"",stderr:`GitHub probe exceeded ${e.timeoutMs}ms`}:o}finally{clearTimeout(n)}}async function tO(e,t,r){return r.aborted?{status:1,stdout:"",stderr:"gh call cancelled"}:await new Promise(n=>{let s=!1,o=l=>{s||(s=!0,r.removeEventListener("abort",a),n(l))},i=ZC("gh",e,{cwd:t,stdio:["ignore","pipe","pipe"]});function a(){let l=i.pid;l&&Ao(l).then(p=>Oo(p,"SIGKILL"));try{i.kill("SIGKILL")}catch{}o({status:1,stdout:"",stderr:"gh call cancelled"})}r.addEventListener("abort",a,{once:!0});let c=[],u=[];i.stdout.on("data",l=>c.push(Buffer.from(l))),i.stderr.on("data",l=>u.push(Buffer.from(l))),i.once("error",l=>o({status:1,stdout:"",stderr:l.message})),i.once("close",l=>{o({status:l??1,stdout:Buffer.concat(c).toString("utf8"),stderr:Buffer.concat(u).toString("utf8").trim()})})})}async function rO(e,t,r){if(e[0]==="pr"&&e[1]==="view"&&e[2])return await nO(e[2],t,r);if(e[0]==="run"&&e[1]==="view"&&e[2]){let n=await Oe({path:`repos/{owner}/{repo}/actions/runs/${e[2]}`,cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(n.status!==0)return n;let s=pt(JSON.parse(n.stdout));return{status:0,stderr:n.stderr,stdout:JSON.stringify({databaseId:sn(s,"database_id")||sn(s,"id"),status:ge(s,"status").toUpperCase(),conclusion:ge(s,"conclusion").toUpperCase(),workflowName:ge(s,"workflow_name")||ge(s,"name"),headBranch:ge(s,"head_branch"),url:ge(s,"html_url")})}}if(e[0]==="run"&&e[1]==="list"){let n=Go(e,"--branch"),s=Go(e,"--limit")??"20",o=await Oe({path:"repos/{owner}/{repo}/actions/runs",params:{branch:n,per_page:s},cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(o.status!==0)return o;let i=Rr(pt(JSON.parse(o.stdout)).workflow_runs).map(a=>({databaseId:sn(a,"database_id")||sn(a,"id")}));return{status:0,stdout:JSON.stringify(i),stderr:o.stderr}}if(e[0]==="release"&&e[1]==="list"){let n=Go(e,"--limit")??"20",s=await Oe({path:"repos/{owner}/{repo}/releases",params:{per_page:n},cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(s.status!==0)return s;let o=Rr(JSON.parse(s.stdout)).map(i=>({tagName:ge(i,"tag_name"),publishedAt:ge(i,"published_at"),isDraft:i.draft===!0}));return{status:0,stdout:JSON.stringify(o),stderr:s.stderr}}return null}async function nO(e,t,r){let n=await Oe({path:`repos/{owner}/{repo}/pulls/${e}`,cwd:t,signal:r,command:`gh pr view ${e}`});if(n.status!==0)return n;let s=pt(JSON.parse(n.stdout));if(Array.isArray(s.statusCheckRollup))return{status:0,stdout:n.stdout,stderr:n.stderr};let o=ge(pt(s.head),"sha"),[i,a]=o?await Promise.all([Oe({path:`repos/{owner}/{repo}/commits/${o}/status`,cwd:t,signal:r,command:`gh pr view ${e} status`}),Oe({path:`repos/{owner}/{repo}/commits/${o}/check-runs`,cwd:t,signal:r,command:`gh pr view ${e} check-runs`})]):[{status:0,stdout:"{}",stderr:"",quotaFree:!1},{status:0,stdout:"{}",stderr:"",quotaFree:!1}],c=i.status===0?Rr(pt(JSON.parse(i.stdout)).statuses):[],u=a.status===0?Rr(pt(JSON.parse(a.stdout)).check_runs):[];return{status:0,stderr:[n.stderr,i.stderr,a.stderr].filter(Boolean).join(`
87
- `),stdout:JSON.stringify({number:sn(s,"number"),state:ge(s,"state").toUpperCase(),mergeable:sO(s),statusCheckRollup:[...c.map(l=>({conclusion:ge(l,"state").toUpperCase()})),...u.map(l=>({status:ge(l,"status").toUpperCase(),conclusion:ge(l,"conclusion").toUpperCase()}))],url:ge(s,"html_url")})}}function sO(e){let t=ge(e,"mergeable_state").toUpperCase();return t&&t!=="UNKNOWN"?t==="CLEAN"?"MERGEABLE":t:e.mergeable===!0?"MERGEABLE":e.mergeable===!1?"CONFLICTING":"UNKNOWN"}var Rh=h(()=>{"use strict";hi();$o();Pt()});function Sh(e,t,r){let n=Date.now();return()=>oO(e,t,r,n)}async function oO(e,t,r,n){if(!/^[1-9][0-9]*$/.test(e))return fe("missing PR number");let s=await Ps(["pr","view",e,"--json","number,state,mergeable,statusCheckRollup,url"],t);if(s.status!==0)return fe(s.stderr||"gh pr view failed");let o=Uc(s.stdout),i=Array.isArray(o.statusCheckRollup)?o.statusCheckRollup:[],a=String(o.mergeable??""),c=i.map(iO),u=c.filter(p=>p==="failure").length,l=c.filter(p=>p==="pending").length;if(String(o.state)!=="OPEN")return At("failure",`PR #${e} is ${String(o.state).toLowerCase()}`,{mergeable:a});if(a==="CONFLICTING")return At("failure",`PR #${e} has merge conflicts`,{failing:u,pending:l,mergeable:a});if(u>0)return At("failure",`PR #${e} has failing checks`,{failing:u,pending:l,mergeable:a});if(l>0)return Xr(`PR #${e} has ${l} pending checks`);if(i.length===0){let p=Date.now()-n;return a==="UNKNOWN"||a==="BLOCKED"||p<r.emptyChecksGraceMs?Xr(`PR #${e} has no registered checks yet`,{checks:0,mergeable:a,empty_checks_elapsed_ms:p}):At("success",`PR #${e} has no checks configured`,{checks:0,mergeable:a})}return a==="UNKNOWN"?Xr(`PR #${e} mergeability is still unknown`,{checks:i.length,mergeable:a}):At("success",`PR #${e} checks passed`,{checks:i.length,mergeable:a})}async function Th(e,t){if(!e)return fe("missing run id");let r=await Ps(["run","view",e,"--json","databaseId,status,conclusion,workflowName,headBranch,url"],t);if(r.status!==0)return fe(r.stderr||"gh run view failed");let n=Uc(r.stdout),s=String(n.status??"").toLowerCase(),o=String(n.conclusion??"").toLowerCase();return s!=="completed"?Xr(`run ${e} is ${s||"pending"}`):o==="success"?At("success",`run ${e} succeeded`,kh(n)):At("failure",`run ${e} concluded ${o||"unknown"}`,kh(n))}async function vh(e,t){let r=await Ps(["run","list","--branch",e,"--limit","1","--json","databaseId"],t);if(r.status!==0)return"";let n=JSON.parse(r.stdout),s=Array.isArray(n)?n[0]:void 0;return nn(s)&&s.databaseId!=null?String(s.databaseId):""}async function xh(e,t,r){let n=await Ps(["release","list","--limit","20","--json","tagName,publishedAt,isDraft"],r);if(n.status!==0)return fe(n.stderr||"gh release list failed");let o=Rr(JSON.parse(n.stdout)).find(i=>{let a=String(i.tagName??""),c=new Date(String(i.publishedAt??""));return i.isDraft!==!0&&(!e||aO(e,a))&&c>=t});return o?At("success",`release ${String(o.tagName)} published`,{tag:String(o.tagName),published_at:String(o.publishedAt??"")}):Xr("no matching release is published yet")}function iO(e){let t=nn(e)?e:{},r=String(t.conclusion??t.state??t.status??"").toLowerCase();return["success","successful","passed","completed","neutral","skipped"].includes(r)?"success":["failure","failed","error","timed_out","cancelled","action_required"].includes(r)?"failure":"pending"}function kh(e){return{database_id:typeof e.databaseId=="number"?e.databaseId:String(e.databaseId??""),conclusion:String(e.conclusion??""),workflow:String(e.workflowName??""),branch:String(e.headBranch??""),url:String(e.url??"")}}function aO(e,t){let r=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${r}$`).test(t)}var Ch=h(()=>{"use strict";_r();Rh();$o()});function Is(){return["usage: rsp wait <subcommand> [options]","","Subcommands:"," rsp wait pr <number> [--timeout 45m] [--reason <text>]"," rsp wait run <id|--branch <branch> --latest> [--timeout 45m]"," rsp wait release [--tag <glob>] [--timeout 2h]",' rsp wait cmd -- "<command line>" [--timeout 30m]'," rsp wait ls","","Examples:",' rsp wait pr 123 --reason "before merge"'," rsp wait run --branch feature/wait --latest",' rsp wait release --tag "v2.*"',' rsp wait cmd -- "pnpm -C apps/rsp build"'," rsp wait ls","","Doctrine: never hand-write sleep polling loops; run rsp wait in a background shell - process exit IS the signal.","Exit codes: 0 = success verdict, 1 = failure verdict, 2 = timeout/indeterminate.","Result: TOON by default; --json selects JSON; --result-file <path> is written atomically before any wake.","Command capture: --capture-bytes <n> (default 16384); elision handles recover larger stdout/stderr.",'Completion hooks: --signal-pid <pid> [--signal USR1] and --notify-cmd "<cmd>" run after the result is durable.',"Hook timeout: --notify-timeout 10s. Process termination: TERM, --terminate-grace 2s, then KILL.","GitHub bounds: --probe-timeout 60s caps one probe, so a hung gh call cannot outlive --timeout.",""].join(`
88
- `)}var Wu=h(()=>{"use strict"});var Oh=h(()=>{"use strict";W()});var Ah=h(()=>{"use strict"});function cO(e){return Object.keys(e)}function wn(e){return{...e,fields:cO(e.fields)}}var Ph,Ih,Lh,uO,lO,dO,Dh,Ju=h(()=>{"use strict";Ph="red.castle.lane.v1",Ih="red.castle.state.v1",Lh="red.castle.history.v1",uO="red.castle.validation.v2",lO="red.castle.envelope.v1",dO="red.castle.hitl-card.v1",Dh=[wn({schemaId:Ph,docPath:".red/contracts/red.castle.lane.v1.md",typeNames:["CastleLaneRecord","CastleLaneKind"],fields:{at:!0,kind:!0,worker_id:!0,supervisor_id:!0,issue:!0,attempt:!0,payload:!0}}),wn({schemaId:Ih,docPath:".red/contracts/red.castle.state.v1.md",typeNames:["CastleStateSnapshot","CastleStateKind"],fields:{kind:!0,id:!0,version:!0,updated_at:!0,worker_id:!0,supervisor_id:!0,runner:!0,bundle_version:!0,pid:!0,started_at:!0,current:!0,queue:!0,completed:!0,envelope:!0}}),wn({schemaId:Lh,docPath:".red/contracts/red.castle.history.v1.md",typeNames:["CastleHistoryRecord","CastleHistoryEvent"],fields:{ts:!0,epoch:!0,worker:!0,issue:!0,event:!0,duration_s:!0,runner:!0,merge_sha:!0,reason:!0}}),wn({schemaId:uO,docPath:".red/contracts/red.castle.validation.v2.md",typeNames:["CastleValidationRecord","CastleValidationStatus"],fields:{schema:!0,name:!0,status:!0,command:!0,exitCode:!0,durationMs:!0,summary:!0}}),wn({schemaId:lO,docPath:".red/contracts/red.castle.envelope.v1.md",typeNames:["CastleEnvelope","CastleEnvelopeSection","CastleAttemptStatus"],fields:{status:!0,worker:!0,duration:!0,diff:!0,attempt:!0,mergeSha:!0,sections:!0}}),wn({schemaId:dO,docPath:".red/contracts/red.castle.hitl-card.v1.md",typeNames:["CastleHitlCard","CastleHitlCardPrStatus","CastleHitlCardAction"],fields:{issueNumber:!0,issueTitle:!0,issueUrl:!0,pendingDecision:!0,prStatus:!0,updatedAt:!0}})]});var yj,yi=h(()=>{"use strict";W();Ju();yj=new Map(Dh.map(e=>[e.schemaId,new Set(e.fields)]))});var Gh=h(()=>{"use strict";Ah();yi()});var $h=h(()=>{"use strict"});var bi=h(()=>{"use strict"});var Vu=h(()=>{"use strict";bi()});var wi=h(()=>{"use strict"});import{appendFile as fO,mkdir as gO,readFile as hO}from"node:fs/promises";import{dirname as yO,join as bO}from"node:path";function Ku(e,t){if(typeof e!="string"||e.length===0)throw new Error(`singleton event ${t} must be a non-empty string`);return e}function Nh(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton event must be a record");let t={...e},r=t.payload;if(typeof r=="string")try{t.payload=JSON.parse(r)}catch{throw new Error("singleton event payload is not valid JSON")}if(t.payload!==void 0&&(t.payload===null||typeof t.payload!="object"||Array.isArray(t.payload)))throw new Error("singleton event payload must be a record");return{at:Ku(t.at,"at"),singleton:Ku(t.singleton,"singleton"),kind:Ku(t.kind,"kind"),...t.payload===void 0?{}:{payload:t.payload}}}function wO(e){return{at:e.at,singleton:e.singleton,kind:e.kind,...e.payload===void 0?{}:{payload:JSON.stringify(e.payload)}}}function _O(e){if(e!==void 0&&(!Number.isSafeInteger(e)||e<0))throw new Error("singleton event tail must be a non-negative integer")}function EO(e){return bO(e.castleStateRoot,"singleton-events.toonl")}function zu(e,t={}){let r=t.fs??{appendFile:fO,mkdir:gO,readFile:hO},n=t.clock??(()=>new Date().toISOString()),s=EO(e);return{path:s,async append(o){let i=Nh({at:o.at??n(),...o});return await r.mkdir(yO(s),{recursive:!0}),await r.appendFile(s,Ht().push(wO(i)),"utf8"),i},async read(o={}){_O(o.tail);let i;try{i=await r.readFile(s,"utf8")}catch(c){if(c.code==="ENOENT")return[];throw c}let a=Ut(i).map(Nh);return o.tail===void 0?a:o.tail===0?[]:a.slice(-o.tail)}}}var Yu=h(()=>{"use strict";W()});var _i=h(()=>{"use strict";W();wi();Yu()});var Fh=h(()=>{"use strict";bi();Vu();_i()});var Mh=h(()=>{"use strict"});var tU,Bh=h(()=>{"use strict";W();tU=24*60*60*1e3});var jh=h(()=>{"use strict";yi()});var oU,iU,Uh=h(()=>{"use strict";oU=15*6e4,iU=30*6e4});var Hh=h(()=>{"use strict"});var kO,SO,uU,lU,qh=h(()=>{"use strict";kO=["supervisor_start","supervisor_exit","fleet_scaled","worker_start","worker_exit","worker_steered","worker_escalated","post_claim","pre_worktree","post_issue","pre_requeue","pre_merge","post_merge"],SO={pre_worktree:["cargo","gradle"]},uU=Object.values(SO).flat(),lU=new Set(kO)});var Wh=h(()=>{"use strict"});var Jh=h(()=>{"use strict";_i()});var Vh=h(()=>{"use strict"});var Kh=h(()=>{});var zh=h(()=>{"use strict";Kh()});var Yh=h(()=>{"use strict"});var Qh=h(()=>{"use strict"});var Qu=h(()=>{"use strict"});var Xh=h(()=>{"use strict";W();Qu()});var Zh=h(()=>{"use strict";W()});var Xu=h(()=>{"use strict"});var Zu=h(()=>{"use strict"});import{resolve as be}from"node:path";function ey(e){let t=be(e),r=be(t,"state"),n=be(r,"castle"),s=be(t,"tmp"),o=be(s,"supervisors"),i=be(s,"workers"),a=be(s,"monitors"),c=be(s,"worktrees");return{redRoot:t,stateRoot:r,castleStateRoot:n,castleHistory:be(n,"history.toonl"),castleValidation:be(n,"validation.toonl"),tmpRoot:s,supervisorsRoot:o,supervisor:u=>be(o,u),projectSupervisor:be(o,TO),workersRoot:i,worker:u=>be(i,u),workerSteerFile:u=>be(i,u,"steer.toon"),monitorsRoot:a,monitor:u=>be(a,u),worktreesRoot:c,worktreeLane:u=>be(c,u)}}var TO,ty=h(()=>{"use strict";TO="default"});var ry=h(()=>{"use strict";wi()});var ny=h(()=>{"use strict"});var sy=h(()=>{"use strict";Xu();Zu()});import{mkdir as vO,readFile as xO,rename as CO,rm as OO,writeFile as AO}from"node:fs/promises";import{dirname as PO,join as IO}from"node:path";function DO(e){if(!LO.test(e)||e==="."||e==="..")throw new Error(`invalid singleton name ${JSON.stringify(e)}`)}function GO(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function $O(e){return e.code==="ENOENT"}function NO(e){return e.code==="EEXIST"}function FO(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton lease must be a record");let t=e;if(!Number.isInteger(t.pid)||t.pid<=0)throw new Error("singleton lease pid must be a positive integer");for(let r of["start_time","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)throw new Error(`singleton lease ${r} must be a non-empty string`);return t}function el(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function Ei(e,t){return DO(t),IO(e.castleStateRoot,"singletons",t,"lease.toon")}function oy(e,t={}){let r=t.fs??{mkdir:vO,readFile:xO,rename:CO,rm:OO,writeFile:AO},n=t.clock??(()=>new Date().toISOString()),s=t.isPidAlive??GO;async function o(a){try{return FO(H(await r.readFile(a,"utf8")))}catch(c){if($O(c))return;throw c}}async function i(a,c){let u=`${a}.tmp-${c.pid}-${crypto.randomUUID()}`;await r.writeFile(u,$(c,{keyedMapCollapse:!0}),{encoding:"utf8"}),await r.rename(u,a)}return{read(a){return o(Ei(e,a))},async acquire(a,c){let u=Ei(e,a);await r.mkdir(PO(u),{recursive:!0});let l=!1;for(;;){let p=n(),d={pid:c.pid,start_time:c.startTime,acquired_at:p,renewed_at:p};try{return await r.writeFile(u,$(d,{keyedMapCollapse:!0}),{encoding:"utf8",flag:"wx"}),{acquired:!0,reaped:l,lease:d}}catch(f){if(!NO(f))throw f}let g=await o(u);if(g){if(el(g,c))return{acquired:!0,reaped:l,lease:g};if(await s(g.pid))return{acquired:!1,lease:g};await r.rm(u,{force:!0}),l=!0}}},async renew(a,c){let u=Ei(e,a),l=await o(u);if(!l||!el(l,c))throw new Ri(a);let p={...l,renewed_at:n()};return await i(u,p),p},async release(a,c){let u=Ei(e,a),l=await o(u);if(!l)return!1;if(!el(l,c))throw new Ri(a);return await r.rm(u,{force:!0}),!0}}}var Ri,LO,iy=h(()=>{"use strict";W();Ri=class extends Error{constructor(t){super(`singleton lease ${JSON.stringify(t)} is held by another owner`),this.name="SingletonLeaseOwnershipError"}},LO=/^[a-z0-9][a-z0-9._-]{0,63}$/});var tl=h(()=>{"use strict"});var ay=h(()=>{"use strict"});var MO,BO,jO,XU,cy=h(()=>{"use strict";MO={refreshCadenceS:270,tolerance:3},BO=270,jO=2700,XU={...MO,claimGraceS:BO,recentCommitProtectionS:jO}});var uy=h(()=>{"use strict"});function ly(e){return e==="single-object"?"rest":"graphql"}function Z(e,t,r,n,s,o){return{key:e,kind:"read",cardinality:t,volatility:r,surface:o??ly(t),budget:n,...o?{only:o}:{},why:s}}function Ae(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,why:n}}var dy,eH,py=h(()=>{dy=[Z("issue view","single-object","stable-poll","rest","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),Z("pr view","single-object","stable-poll","rest","one pull request by number, polled per Worker per iteration"),Z("repo view","single-object","stable-poll","rest","one repository's own metadata, repeatedly read while usually unchanged"),Z("run view","single-object","stable-poll","rest","one Actions run repeatedly polled to terminal; Actions has no GraphQL surface"),Z("release view","single-object","stable-poll","rest","one release by tag, repeatedly checked while usually absent or unchanged"),Z("pr diff","single-object","one-shot","rest","one pull request's diff, read once for review and served by a REST media type"),Z("issue list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged issue connection; GraphQL avoids N REST pages"),Z("pr list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged pull-request connection; GraphQL avoids N REST pages"),Z("pr checks","multi-node","stable-poll","graphql","check contexts form a connection repeatedly polled while awaiting terminal state"),Z("release list","multi-node","stable-poll","rest","release waits poll a usually-unchanged list; Releases has no GraphQL connection gh reads","rest"),Z("run list","multi-node","stable-poll","rest","run waits poll a usually-unchanged list; Actions has no GraphQL surface","rest"),Z("label list","multi-node","one-shot","graphql","a label connection loaded once for the current operation"),Z("issue list (search)","multi-node","stable-poll","search","queue discovery polls usually-unchanged search results through the 30/min search connection"),Z("pr list (search)","multi-node","stable-poll","search","PR discovery polls usually-unchanged search results through the 30/min search connection"),Z("search issues","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),Z("search prs","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),Z("search repos","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),Z("api graphql","multi-node","one-shot","graphql","the caller supplies one explicit GraphQL query rather than a routed poll"),Z("api rest","single-object","one-shot","rest","the caller supplies one explicit REST path rather than a routed poll"),Ae("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ae("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ae("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ae("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ae("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ae("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ae("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ae("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ae("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ae("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ae("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ae("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ae("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ae("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],eH=new Map(dy.map(e=>[e.key,e]))});var my=h(()=>{W()});var sl=Qd((rl,nl)=>{(function(e,t){typeof rl=="object"&&typeof nl<"u"?nl.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(rl,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(I){return I&&I.default||I}var r=function(I,b,m={}){var w,R,S;for(w in b)S=b[w],m[w]=(R=I[w])!=null?R:S;return m},n=function(I,b,m={}){var w,R;for(w in I)R=I[w],b[w]!==void 0&&(m[w]=R);return m},s={load:r,overwrite:n},o;o=class{constructor(b,m){this.incr=b,this.decr=m,this._first=null,this._last=null,this.length=0}push(b){var m;this.length++,typeof this.incr=="function"&&this.incr(),m={value:b,prev:this._last,next:null},this._last!=null?(this._last.next=m,this._last=m):this._first=this._last=m}shift(){var b;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),b=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,b}first(){if(this._first!=null)return this._first.value}getArray(){var b,m,w;for(b=this._first,w=[];b!=null;)w.push((m=b,b=b.next,m.value));return w}forEachShift(b){var m;for(m=this.shift();m!=null;)b(m),m=this.shift()}debug(){var b,m,w,R,S;for(b=this._first,S=[];b!=null;)S.push((m=b,b=b.next,{value:m.value,prev:(w=m.prev)!=null?w.value:void 0,next:(R=m.next)!=null?R.value:void 0}));return S}};var i=o,a;a=class{constructor(b){if(this.instance=b,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(m,w)=>this._addListener(m,"many",w),this.instance.once=(m,w)=>this._addListener(m,"once",w),this.instance.removeAllListeners=(m=null)=>m!=null?delete this._events[m]:this._events={}}_addListener(b,m,w){var R;return(R=this._events)[b]==null&&(R[b]=[]),this._events[b].push({cb:w,status:m}),this.instance}listenerCount(b){return this._events[b]!=null?this._events[b].length:0}async trigger(b,...m){var w,R;try{return b!=="debug"&&this.trigger("debug",`Event triggered: ${b}`,m),this._events[b]==null?void 0:(this._events[b]=this._events[b].filter(function(S){return S.status!=="none"}),R=this._events[b].map(async S=>{var C,A;if(S.status!=="none"){S.status==="once"&&(S.status="none");try{return A=typeof S.cb=="function"?S.cb(...m):void 0,typeof A?.then=="function"?await A:A}catch(U){return C=U,this.trigger("error",C),null}}}),(await Promise.all(R)).find(function(S){return S!=null}))}catch(S){return w=S,this.trigger("error",w),null}}};var c=a,u,l,p;u=i,l=c,p=class{constructor(b){var m;this.Events=new l(this),this._length=0,this._lists=function(){var w,R,S;for(S=[],m=w=1,R=b;1<=R?w<=R:w>=R;m=1<=R?++w:--w)S.push(new u(()=>this.incr(),()=>this.decr()));return S}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(b){return this._lists[b.options.priority].push(b)}queued(b){return b!=null?this._lists[b].length:this._length}shiftAll(b){return this._lists.forEach(function(m){return m.forEachShift(b)})}getFirst(b=this._lists){var m,w,R;for(m=0,w=b.length;m<w;m++)if(R=b[m],R.length>0)return R;return[]}shiftLastFrom(b){return this.getFirst(this._lists.slice(b).reverse()).shift()}};var d=p,g;g=class extends Error{};var f=g,k,E,y,_,T;_=10,E=5,T=s,k=f,y=class{constructor(b,m,w,R,S,C,A,U){this.task=b,this.args=m,this.rejectOnDrop=S,this.Events=C,this._states=A,this.Promise=U,this.options=T.load(w,R),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===R.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((ie,pe)=>{this._resolve=ie,this._reject=pe}),this.retryCount=0}_sanitizePriority(b){var m;return m=~~b!==b?E:b,m<0?0:m>_-1?_-1:m}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:b,message:m="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(b??new k(m)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(b){var m;if(m=this._states.jobStatus(this.options.id),!(m===b||b==="DONE"&&m===null))throw new k(`Invalid job status ${m}, expected ${b}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(b,m){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:b,blocked:m})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(b,m,w,R){var S,C,A;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),C={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",C);try{if(A=await(b!=null?b.schedule(this.options,this.task,...this.args):this.task(...this.args)),m())return this.doDone(C),await R(this.options,C),this._assertStatus("DONE"),this._resolve(A)}catch(U){return S=U,this._onFailure(S,C,m,w,R)}}doExpire(b,m,w){var R,S;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),S={args:this.args,options:this.options,retryCount:this.retryCount},R=new k(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(R,S,b,m,w)}async _onFailure(b,m,w,R,S){var C,A;if(w())return C=await this.Events.trigger("failed",b,m),C!=null?(A=~~C,this.Events.trigger("retry",`Retrying ${this.options.id} after ${A} ms`,m),this.retryCount++,R(A)):(this.doDone(m),await S(this.options,m),this._assertStatus("DONE"),this._reject(b))}doDone(b){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",b)}};var v=y,G,B,V;V=s,G=f,B=class{constructor(b,m,w){this.instance=b,this.storeOptions=m,this.clientId=this.instance._randomIndex(),V.load(w,w,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var b;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(b=this.heartbeat=setInterval(()=>{var m,w,R,S,C;if(S=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&S>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=S,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&S>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:m,reservoirIncreaseMaximum:R,reservoir:C}=this.storeOptions,this._lastReservoirIncrease=S,w=R!=null?Math.min(m,R-C):m,w>0))return this.storeOptions.reservoir+=w,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?b.unref():void 0:clearInterval(this.heartbeat)}async __publish__(b){return await this.yieldLoop(),this.instance.Events.trigger("message",b.toString())}async __disconnect__(b){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(b=0){return new this.Promise(function(m,w){return setTimeout(m,b)})}computePenalty(){var b;return(b=this.storeOptions.penalty)!=null?b:15*this.storeOptions.minTime||5e3}async __updateSettings__(b){return await this.yieldLoop(),V.overwrite(b,b,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(b){return await this.yieldLoop(),this._nextRequest+this.timeout<b}computeCapacity(){var b,m;return{maxConcurrent:b,reservoir:m}=this.storeOptions,b!=null&&m!=null?Math.min(b-this._running,m):b!=null?b-this._running:m??null}conditionsCheck(b){var m;return m=this.computeCapacity(),m==null||b<=m}async __incrementReservoir__(b){var m;return await this.yieldLoop(),m=this.storeOptions.reservoir+=b,this.instance._drainAll(this.computeCapacity()),m}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(b){return this._unblockTime>=b}check(b,m){return this.conditionsCheck(b)&&this._nextRequest-m<=0}async __check__(b){var m;return await this.yieldLoop(),m=Date.now(),this.check(b,m)}async __register__(b,m,w){var R,S;return await this.yieldLoop(),R=Date.now(),this.conditionsCheck(m)?(this._running+=m,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=m),S=Math.max(this._nextRequest-R,0),this._nextRequest=R+S+this.storeOptions.minTime,{success:!0,wait:S,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(b,m){var w,R,S;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&m>this.storeOptions.maxConcurrent)throw new G(`Impossible to add a job having a weight of ${m} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return R=Date.now(),S=this.storeOptions.highWater!=null&&b===this.storeOptions.highWater&&!this.check(m,R),w=this.strategyIsBlock()&&(S||this.isBlocked(R)),w&&(this._unblockTime=R+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:S,blocked:w,strategy:this.storeOptions.strategy}}async __free__(b,m){return await this.yieldLoop(),this._running-=m,this._done+=m,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var te=B,re,He;re=f,He=class{constructor(b){this.status=b,this._jobs={},this.counts=this.status.map(function(){return 0})}next(b){var m,w;if(m=this._jobs[b],w=m+1,m!=null&&w<this.status.length)return this.counts[m]--,this.counts[w]++,this._jobs[b]++;if(m!=null)return this.counts[m]--,delete this._jobs[b]}start(b){var m;return m=0,this._jobs[b]=m,this.counts[m]++}remove(b){var m;return m=this._jobs[b],m!=null&&(this.counts[m]--,delete this._jobs[b]),m!=null}jobStatus(b){var m;return(m=this.status[this._jobs[b]])!=null?m:null}statusJobs(b){var m,w,R,S,C;if(b!=null){if(w=this.status.indexOf(b),w<0)throw new re(`status must be one of ${this.status.join(", ")}`);R=this._jobs,S=[];for(m in R)C=R[m],C===w&&S.push(m);return S}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((b,m,w)=>(b[this.status[w]]=m,b),{})}};var de=He,Ft,P;Ft=i,P=class{constructor(b,m){this.schedule=this.schedule.bind(this),this.name=b,this.Promise=m,this._running=0,this._queue=new Ft}isEmpty(){return this._queue.length===0}async _tryToRun(){var b,m,w,R,S,C,A;if(this._running<1&&this._queue.length>0)return this._running++,{task:A,args:b,resolve:S,reject:R}=this._queue.shift(),m=await async function(){try{return C=await A(...b),function(){return S(C)}}catch(U){return w=U,function(){return R(w)}}}(),this._running--,this._tryToRun(),m()}schedule(b,...m){var w,R,S;return S=R=null,w=new this.Promise(function(C,A){return S=C,R=A}),this._queue.push({task:b,args:m,resolve:S,reject:R}),this._tryToRun(),w}};var M=P,De="2.19.5",_t={version:De},Mt=Object.freeze({version:De,default:_t}),O=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),N=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Et=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),st,ve,xe,Rt,Fr,Bt;Bt=s,st=c,Rt=O,xe=N,Fr=Et,ve=function(){class I{constructor(m={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=m,Bt.load(this.limiterOptions,this.defaults,this),this.Events=new st(this),this.instances={},this.Bottleneck=zd,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Rt(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new xe(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(m=""){var w;return(w=this.instances[m])!=null?w:(()=>{var R;return R=this.instances[m]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${m}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",R,m),R})()}async deleteKey(m=""){var w,R;return R=this.instances[m],this.connection&&(w=await this.connection.__runCommand__(["del",...Fr.allKeys(`${this.id}-${m}`)])),R!=null&&(delete this.instances[m],await R.disconnect()),R!=null||w>0}limiters(){var m,w,R,S;w=this.instances,R=[];for(m in w)S=w[m],R.push({key:m,limiter:S});return R}keys(){return Object.keys(this.instances)}async clusterKeys(){var m,w,R,S,C,A,U,ie,pe;if(this.connection==null)return this.Promise.resolve(this.keys());for(A=[],m=null,pe=`b_${this.id}-`.length,w=9;m!==0;)for([ie,R]=await this.connection.__runCommand__(["scan",m??0,"match",`b_${this.id}-*_settings`,"count",1e4]),m=~~ie,S=0,U=R.length;S<U;S++)C=R[S],A.push(C.slice(pe,-w));return A}_startAutoCleanup(){var m;return clearInterval(this.interval),typeof(m=this.interval=setInterval(async()=>{var w,R,S,C,A,U;A=Date.now(),S=this.instances,C=[];for(R in S){U=S[R];try{await U._store.__groupCheck__(A)?C.push(this.deleteKey(R)):C.push(void 0)}catch(ie){w=ie,C.push(U.Events.trigger("error",w))}}return C},this.timeout/2)).unref=="function"?m.unref():void 0}updateSettings(m={}){if(Bt.overwrite(m,this.defaults,this),Bt.overwrite(m,m,this.limiterOptions),m.timeout!=null)return this._startAutoCleanup()}disconnect(m=!0){var w;if(!this.sharedConnection)return(w=this.connection)!=null?w.disconnect(m):void 0}}return I.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},I}.call(e);var Pn=ve,ur,In,jd;jd=s,In=c,ur=function(){class I{constructor(m={}){this.options=m,jd.load(this.options,this.defaults,this),this.Events=new In(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((m,w)=>this._resolve=m)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(m){var w;return this._arr.push(m),w=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),w}}return I.prototype.defaults={maxTime:null,maxSize:null,Promise},I}.call(e);var qE=ur,WE=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),JE=t(Mt),Ud,Hd,ma,fa,qd,ga,Wd,Jd,Vd,ha,ot,Kd=[].splice;ga=10,Hd=5,ot=s,Wd=d,fa=v,qd=te,Jd=WE,ma=c,Vd=de,ha=M,Ud=function(){class I{constructor(m={},...w){var R,S;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(m,w),ot.load(m,this.instanceDefaults,this),this._queues=new Wd(ga),this._scheduled={},this._states=new Vd(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new ma(this),this._submitLock=new ha("submit",this.Promise),this._registerLock=new ha("register",this.Promise),S=ot.load(m,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return R=ot.load(m,this.redisStoreDefaults,{}),new Jd(this,S,R);if(this.datastore==="local")return R=ot.load(m,this.localStoreDefaults,{}),new qd(this,S,R);throw new I.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var C;return(C=this._store.heartbeat)!=null&&typeof C.ref=="function"?C.ref():void 0}),this._queues.on("zero",()=>{var C;return(C=this._store.heartbeat)!=null&&typeof C.unref=="function"?C.unref():void 0})}_validateOptions(m,w){if(!(m!=null&&typeof m=="object"&&w.length===0))throw new I.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(m){return this._store.__publish__(m)}disconnect(m=!0){return this._store.__disconnect__(m)}chain(m){return this._limiter=m,this}queued(m){return this._queues.queued(m)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(m){return this._states.jobStatus(m)}jobs(m){return this._states.statusJobs(m)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(m=1){return this._store.__check__(m)}_clearGlobalState(m){return this._scheduled[m]!=null?(clearTimeout(this._scheduled[m].expiration),delete this._scheduled[m],!0):!1}async _free(m,w,R,S){var C,A;try{if({running:A}=await this._store.__free__(m,R.weight),this.Events.trigger("debug",`Freed ${R.id}`,S),A===0&&this.empty())return this.Events.trigger("idle")}catch(U){return C=U,this.Events.trigger("error",C)}}_run(m,w,R){var S,C,A;return w.doRun(),S=this._clearGlobalState.bind(this,m),A=this._run.bind(this,m,w),C=this._free.bind(this,m,w),this._scheduled[m]={timeout:setTimeout(()=>w.doExecute(this._limiter,S,A,C),R),expiration:w.options.expiration!=null?setTimeout(function(){return w.doExpire(S,A,C)},R+w.options.expiration):void 0,job:w}}_drainOne(m){return this._registerLock.schedule(()=>{var w,R,S,C,A;return this.queued()===0?this.Promise.resolve(null):(A=this._queues.getFirst(),{options:C,args:w}=S=A.first(),m!=null&&C.weight>m?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${C.id}`,{args:w,options:C}),R=this._randomIndex(),this._store.__register__(R,C.weight,C.expiration).then(({success:U,wait:ie,reservoir:pe})=>{var Ln;return this.Events.trigger("debug",`Drained ${C.id}`,{success:U,args:w,options:C}),U?(A.shift(),Ln=this.empty(),Ln&&this.Events.trigger("empty"),pe===0&&this.Events.trigger("depleted",Ln),this._run(R,S,ie),this.Promise.resolve(C.weight)):this.Promise.resolve(null)})))})}_drainAll(m,w=0){return this._drainOne(m).then(R=>{var S;return R!=null?(S=m!=null?m-R:m,this._drainAll(S,w+R)):this.Promise.resolve(w)}).catch(R=>this.Events.trigger("error",R))}_dropAllQueued(m){return this._queues.shiftAll(function(w){return w.doDrop({message:m})})}stop(m={}){var w,R;return m=ot.load(m,this.stopDefaults),R=S=>{var C;return C=()=>{var A;return A=this._states.counts,A[0]+A[1]+A[2]+A[3]===S},new this.Promise((A,U)=>C()?A():this.on("done",()=>{if(C())return this.removeAllListeners("done"),A()}))},w=m.dropWaitingJobs?(this._run=function(S,C){return C.doDrop({message:m.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var S,C,A;C=this._scheduled;for(S in C)A=C[S],this.jobStatus(A.job.options.id)==="RUNNING"&&(clearTimeout(A.timeout),clearTimeout(A.expiration),A.job.doDrop({message:m.dropErrorMessage}));return this._dropAllQueued(m.dropErrorMessage),R(0)}))):this.schedule({priority:ga-1,weight:0},()=>R(1)),this._receive=function(S){return S._reject(new I.prototype.BottleneckError(m.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new I.prototype.BottleneckError("stop() has already been called")),w}async _addToQueue(m){var w,R,S,C,A,U,ie;({args:w,options:C}=m);try{({reachedHWM:A,blocked:R,strategy:ie}=await this._store.__submit__(this.queued(),C.weight))}catch(pe){return S=pe,this.Events.trigger("debug",`Could not queue ${C.id}`,{args:w,options:C,error:S}),m.doDrop({error:S}),!1}return R?(m.doDrop(),!0):A&&(U=ie===I.prototype.strategy.LEAK?this._queues.shiftLastFrom(C.priority):ie===I.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(C.priority+1):ie===I.prototype.strategy.OVERFLOW?m:void 0,U?.doDrop(),U==null||ie===I.prototype.strategy.OVERFLOW)?(U==null&&m.doDrop(),A):(m.doQueue(A,R),this._queues.push(m),await this._drainAll(),A)}_receive(m){return this._states.jobStatus(m.options.id)!=null?(m._reject(new I.prototype.BottleneckError(`A job with the same id already exists (id=${m.options.id})`)),!1):(m.doReceive(),this._submitLock.schedule(this._addToQueue,m))}submit(...m){var w,R,S,C,A,U,ie;return typeof m[0]=="function"?(A=m,[R,...m]=A,[w]=Kd.call(m,-1),C=ot.load({},this.jobDefaults)):(U=m,[C,R,...m]=U,[w]=Kd.call(m,-1),C=ot.load(C,this.jobDefaults)),ie=(...pe)=>new this.Promise(function(Ln,KE){return R(...pe,function(...Yd){return(Yd[0]!=null?KE:Ln)(Yd)})}),S=new fa(ie,m,C,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),S.promise.then(function(pe){return typeof w=="function"?w(...pe):void 0}).catch(function(pe){return Array.isArray(pe)?typeof w=="function"?w(...pe):void 0:typeof w=="function"?w(pe):void 0}),this._receive(S)}schedule(...m){var w,R,S;return typeof m[0]=="function"?([S,...m]=m,R={}):[R,S,...m]=m,w=new fa(S,m,R,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(w),w.promise}wrap(m){var w,R;return w=this.schedule.bind(this),R=function(...S){return w(m.bind(this),...S)},R.withOptions=function(S,...C){return w(S,m,...C)},R}async updateSettings(m={}){return await this._store.__updateSettings__(ot.overwrite(m,this.storeDefaults)),ot.overwrite(m,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(m=0){return this._store.__incrementReservoir__(m)}}return I.default=I,I.Events=ma,I.version=I.prototype.version=JE.version,I.strategy=I.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},I.BottleneckError=I.prototype.BottleneckError=f,I.Group=I.prototype.Group=Pn,I.RedisConnection=I.prototype.RedisConnection=O,I.IORedisConnection=I.prototype.IORedisConnection=N,I.Batcher=I.prototype.Batcher=qE,I.prototype.jobDefaults={priority:Hd,weight:1,expiration:null,id:"<no-id>"},I.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:I.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},I.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},I.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},I.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},I.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},I}.call(e);var zd=Ud,VE=zd;return VE})});var Nt,ol=h(()=>{Nt=class extends Error{name;status;request;response;constructor(t,r,n){super(t,{cause:n.cause}),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0);"response"in n&&(this.response=n.response);let s=Object.assign({},n.request);n.request.headers.authorization&&(s.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),s.url=s.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=s}}});function HO(e){return e.request!==void 0}async function fy(e,t,r,n){if(!HO(r)||!r?.request.request)throw r;if(r.status>=400&&!e.doNotRetry.includes(r.status)){let s=n.request.retries!=null?n.request.retries:e.retries,o=Math.pow((n.request.retryCount||0)+1,2);throw t.retry.retryRequest(r,s,o)}throw r}async function qO(e,t,r,n){let s=new gy.default;return s.on("failed",function(o,i){let a=~~o.request.request?.retries,c=~~o.request.request?.retryAfter;if(n.request.retryCount=i.retryCount+1,a>i.retryCount)return c*e.retryAfterBaseValue}),s.schedule(WO.bind(null,e,t,r),n)}async function WO(e,t,r,n){let s=await r(n);if(s.data&&s.data.errors&&s.data.errors.length>0&&/Something went wrong while executing your query/.test(s.data.errors[0].message)){let o=new Nt(s.data.errors[0].message,500,{request:n,response:s});return fy(e,t,o,n)}return s}function il(e,t){let r=Object.assign({enabled:!0,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,410,422,451],retries:3},t.retry),n={retry:{retryRequest:(s,o,i)=>(s.request.request=Object.assign({},s.request.request,{retries:o,retryAfter:i}),s)}};return r.enabled&&(e.hook.error("request",fy.bind(null,r,n)),e.hook.wrap("request",qO.bind(null,r,n))),n}var gy,UO,hy=h(()=>{gy=ba(sl(),1);ol();UO="0.0.0-development";il.VERSION=UO});function VO(e,t,r){return e.retryLimiter.schedule(KO,e,t,r)}async function KO(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),s=zO(r.method,n),o=!s&&r.method!=="GET"&&r.method!=="HEAD",i=r.method==="GET"&&n.startsWith("/search/"),a=n.startsWith("/graphql"),u=~~t.retryCount>0?{priority:0,weight:0}:{};e.clustering&&(u.expiration=1e3*60),(o||a)&&await e.write.key(e.id).schedule(u,al),o&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(u,al),i&&await e.search.key(e.id).schedule(u,al);let l=(s?e.auth:e.global).key(e.id).schedule(u,t,r);if(a){let p=await l;if(p.data.errors!=null&&p.data.errors.some(d=>d.type==="RATE_LIMITED"))throw Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:p,data:p.data})}return l}function zO(e,t){return e==="PATCH"&&/^\/applications\/[^/]+\/token\/scoped$/.test(t)||e==="POST"&&(/^\/applications\/[^/]+\/token$/.test(t)||/^\/app\/installations\/[^/]+\/access_tokens$/.test(t)||t==="/login/oauth/access_token")}function QO(e){let r=`^(?:${e.map(n=>n.split("/").map(s=>s.startsWith("{")?"(?:.+?)":s).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}function ki(e,t){let{enabled:r=!0,Bottleneck:n=by.default,id:s="no-id",timeout:o=1e3*60*2,connection:i}=t.throttle||{};if(!r)return{};let a={timeout:o};typeof i<"u"&&(a.connection=i);let c=Object.assign({clustering:i!=null,triggersNotification:wy,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:s},t.throttle);if(typeof c.onSecondaryRateLimit!="function"||typeof c.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
61
+ `)),!0):!1}function kf(e){return typeof e=="object"&&e!==null&&e.code===Ot}var Ef,Jt=h(()=>{"use strict";Xa();ut();Ef=!1});function Bc(e){return e==="success"?0:e==="failure"?1:2}function jc(e){return e==="cmd"||e==="pr"||e==="run"||e==="release"}function It(e,t,r){return{status:e,exitCode:Bc(e),summary:t,...r?{details:r}:{}}}function ge(e,t){return{status:"indeterminate",exitCode:2,summary:e,...t?{details:t}:{}}}function Xr(e,t){return{status:"running",exitCode:2,summary:e,...t?{details:t}:{}}}var Cf,Of,Af,Fc,Pf,If,Lf,Gf,Mc,wr=h(()=>{"use strict";Cf="rsp.wait.result",Of="rsp.wait.registry",Af="rsp.wait.list",Fc={cmd:18e5,pr:27e5,run:27e5,release:72e5},Pf=16*1024,If=1e4,Lf=2e3,Gf=6e4,Mc={cmd:"local-cmd:event-driven",pr:"github-pr:15-20s-backoff-jitter",run:"github-run:15-20s-backoff-jitter",release:"release:60s"}});import{readdir as HT,readFile as qT}from"node:fs/promises";async function Zr(e,t){let r=e.pid;if(!r)return{cleaned:!0,escalation:"none",survivors:[]};let n=await Io(r),s=[r,...n];if(s.every(c=>!_r(c)))return{cleaned:!0,escalation:"none",survivors:[]};if(Df(e,"SIGTERM"),Po(n,"SIGTERM"),await $f(s,t))return{cleaned:!0,escalation:"term",survivors:[]};let o=[...new Set([...s,...await Io(r)])];Df(e,"SIGKILL"),Po(o,"SIGKILL");let i=Math.max(1e3,t);await WT(e,i);let a=await $f(o,i);return{cleaned:a,escalation:"kill",survivors:a?[]:o.filter(_r)}}function Df(e,t){let r=e.pid;if(r)try{process.platform!=="win32"?process.kill(-r,t):e.kill(t)}catch{try{e.kill(t)}catch{}}}function Po(e,t){for(let r of e)try{process.kill(r,t)}catch{}}async function WT(e,t){return e.exitCode!==null||e.signalCode!==null?!0:await new Promise(r=>{let n=setTimeout(()=>r(!1),t);e.once("close",()=>{clearTimeout(n),r(!0)})})}async function $f(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(e.every(n=>!_r(n)))return!0;await JT(Math.min(25,Math.max(1,r-Date.now())))}return e.every(n=>!_r(n))}async function Io(e){if(process.platform!=="linux")return[];let t=new Map;for(let s of await HT("/proc").catch(()=>[])){if(!/^[1-9][0-9]*$/.test(s))continue;let o=Number(s),i=await Nf(o);if(!i)continue;let a=Number(i[1]);if(!Number.isSafeInteger(a))continue;let c=t.get(a)??[];c.push(o),t.set(a,c)}let r=[],n=[...t.get(e)??[]];for(;n.length>0;){let s=n.shift();r.push(s),n.push(...t.get(s)??[])}return r.reverse()}async function es(e){return(await Nf(e))?.[19]}async function en(e,t){if(!_r(e))return!1;if(!t)return!0;let r=await es(e);return r===void 0?process.platform!=="linux":r===t}function _r(e){try{return process.kill(e,0),!0}catch{return!1}}async function Nf(e){if(process.platform!=="linux")return null;try{let t=await qT(`/proc/${e}/stat`,"utf8"),r=t.lastIndexOf(")");return r<0?null:t.slice(r+2).trim().split(/\s+/)}catch{return null}}async function JT(e){await new Promise(t=>setTimeout(t,e))}var Lt=h(()=>{"use strict"});import{constants as VT}from"node:os";async function Ff(e){let t=e[1],r={timeoutMs:Fc.cmd,reason:"",signal:"SIGUSR1",notifyTimeoutMs:If,terminateGraceMs:Lf,probeTimeoutMs:Gf,format:"toon",captureBytes:Pf},n={kind:t,options:r};if(!t||t==="--help"||t==="-h")return{...n,kind:"help"};if(t!=="ls"&&t!=="cmd"&&t!=="pr"&&t!=="run"&&t!=="release")return{...n,kind:void 0};t!=="ls"&&(r.timeoutMs=Fc[t]);let s=e.indexOf("--"),o=s>=0?s:e.length;for(let i=2;i<o;i++){let a=e[i];a==="--timeout"?r.timeoutMs=ts(e[++i]??""):a==="--reason"?r.reason=e[++i]??"":a==="--signal-pid"?r.signalPid=Number(e[++i]):a==="--signal"?r.signal=YT(e[++i]??""):a==="--notify-cmd"?r.notifyCmd=e[++i]??"":a==="--notify-timeout"?r.notifyTimeoutMs=ts(e[++i]??""):a==="--terminate-grace"?r.terminateGraceMs=ts(e[++i]??""):a==="--probe-timeout"?r.probeTimeoutMs=ts(e[++i]??""):a==="--result-file"?r.resultFile=e[++i]??"":a==="--json"?r.format="json":a==="--capture-bytes"?r.captureBytes=zT(e[++i]??"","capture bytes"):t==="run"&&a==="--branch"?n.branch=e[++i]??"":t==="run"&&a==="--latest"?n.latest=!0:t==="release"&&a==="--tag"?n.tagGlob=e[++i]??"":!a.startsWith("--")&&!n.target&&(n.target=a)}return await KT(r),t==="cmd"&&(n.commandLine=s>=0?e.slice(s+1).join(" "):""),n}async function KT(e){if(!(e.signal in VT.signals))throw new Error(`invalid signal: ${e.signal}`);if(e.signalPid!==void 0){if(!Number.isSafeInteger(e.signalPid)||e.signalPid<=0)throw new Error(`invalid signal pid: ${e.signalPid}`);if(!_r(e.signalPid))throw new Error(`signal pid is not running: ${e.signalPid}`);e.signalPidStartTime=await es(e.signalPid)}if(e.resultFile!==void 0&&!e.resultFile.trim())throw new Error("invalid result file: empty path")}function ts(e){let t=/^([1-9][0-9]*)(ms|s|m|h)?$/.exec(e);if(!t)throw new Error(`invalid timeout: ${e}`);let r=Number(t[1]),n=t[2]??"ms";return n==="ms"?r:n==="s"?r*1e3:n==="m"?r*6e4:r*60*6e4}function rs(e,t,r=process.env){let n=r[e];if(!n)return t;try{return ts(n)}catch{return t}}function zT(e,t){if(!/^[1-9][0-9]*$/.test(e))throw new Error(`invalid ${t}: ${e}`);return Number(e)}function YT(e){return e.startsWith("SIG")?e:`SIG${e}`}var Mf=h(()=>{"use strict";wr();Lt()});import{existsSync as Uc,readFileSync as QT,statSync as XT}from"node:fs";import{basename as Bf,dirname as Lo,isAbsolute as ZT,join as jf,resolve as ns}from"node:path";function Go(e,t=process.env){let r=ns(e);if(ec.map(i=>t[i]).find(Boolean))return km({startDir:r,env:t,exists:Uc});let s=tv(r),o=ev(r,s);return o||(s??r)}function ev(e,t){let r=e;for(;;){if(Uc(jf(r,".red")))return r;if(t&&r===t)return null;let n=ns(r,"..");if(n===r)return null;r=n}}function tv(e){let t=e;for(;;){let r=jf(t,".git");if(Uc(r))return sv(r)?t:rv(r)??t;let n=ns(t,"..");if(n===t)return null;t=n}}function rv(e){let t=nv(e);if(!t)return null;let r=Lo(t),n=Lo(r);return Bf(r)!=="worktrees"||Bf(n)!==".git"?null:Lo(n)}function nv(e){let t;try{t=QT(e,"utf8")}catch{return null}let r=/^gitdir:\s*(.+)$/m.exec(t.trim());if(!r)return null;let n=r[1].trim();return ZT(n)?ns(n):ns(Lo(e),n)}function sv(e){try{return XT(e).isDirectory()}catch{return!1}}var Hc=h(()=>{Le()});import{join as ov}from"node:path";function av(e,t=process.env){return Go(e,t)}function tn(e,t=process.env){return Rm(av(e,t))}function Uf(e,t=process.env){return ov(tn(e,t),iv)}var iv,qc=h(()=>{"use strict";Le();Hc();iv="spool"});import{randomUUID as cv}from"node:crypto";import{existsSync as uv}from"node:fs";import{mkdir as lv,readdir as dv,readFile as pv,rename as mv,rm as Wc,writeFile as fv}from"node:fs/promises";import{dirname as gv,join as qf}from"node:path";function Wf(e,t,r=process.env){return qf(tn(e,r),`${t}${hv}`)}async function rn(e,t){await Jc(e,`${ne(t)}
62
+ `)}async function Do(e,t,r){t.status=r,await rn(e,t)}async function $o(e,t=process.env){let r=tn(e,t);if(!uv(r))return[];let n=await dv(r).catch(()=>[]),s=[];for(let o of n.filter(i=>yv.some(a=>i.endsWith(a)))){let i=qf(r,o),a=await bv(i);if(!a){await Wc(i,{force:!0});continue}if(!await wv(a)){await Wc(i,{force:!0});continue}s.push(a)}return s}async function bv(e){let t;try{t=await pv(e,"utf8")}catch{return null}let r=t.trim();if(!r)return null;let n=_v(r);return n&&Object.keys(n).length>0?n:null}async function wv(e){let t=typeof e.pid=="number"?e.pid:0;if(!t||!Number.isSafeInteger(t)||t<=0)return!1;let r=typeof e.pid_start_time=="string"?e.pid_start_time:void 0;return await en(t,r)}function _v(e){try{let t=H(e);if(Hf(t))return t}catch{}try{let t=JSON.parse(e);if(Hf(t))return t}catch{}return null}async function Jc(e,t){await lv(gv(e),{recursive:!0});let r=`${e}.tmp-${process.pid}-${cv()}`;try{await fv(r,t,"utf8"),await mv(r,e)}finally{await Wc(r,{force:!0})}}function Vc(e){return{schema:Of,version:1,...e}}function Hf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var hv,yv,os=h(()=>{"use strict";J();vt();wr();qc();Lt();hv=".toon",yv=[".toon",".json"]});function nn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lt(e){return nn(e)?e:{}}function Er(e){return Array.isArray(e)?e.filter(nn):[]}function he(e,t){let r=e[t];return typeof r=="string"?r:""}function sn(e,t){let r=e[t];return typeof r=="number"?r:0}function Kc(e){let t=JSON.parse(e);if(!nn(t))throw new Error("expected JSON object");return t}function No(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}var Fo=h(()=>{"use strict"});import{spawn as Ev}from"node:child_process";import{resolve as Rv}from"node:path";async function Jf(e,t,r){let n=[];if(e.signalPid){let s=await kv(e);s&&n.push(s)}if(e.notifyCmd?.trim()){let s=await Sv(e,t,r);s&&n.push({hook:"notify-cmd",...s})}return n.length===0?{status:"success"}:{status:"failure",errors:n}}async function kv(e){let t=e.signalPid;if(!await en(t,e.signalPidStartTime))return{hook:"signal-pid",error:"target process is no longer the process the wait was asked to signal",pid:t,signal:e.signal};try{return process.kill(t,e.signal),null}catch(r){return{hook:"signal-pid",error:Vf(r),pid:t,signal:e.signal}}}async function Sv(e,t,r){let n=lt(t.wait),s=lt(t.verdict);return await Tv(e.notifyCmd,r,e.notifyTimeoutMs,e.terminateGraceMs,{...process.env,RSP_WAIT_RESULT_JSON:JSON.stringify(t),RSP_WAIT_RESULT_FILE:e.resultFile?Rv(r,e.resultFile):"",RSP_WAIT_STATUS:String(n.status??"indeterminate"),RSP_WAIT_EXIT_CODE:String(s.target_exit_code??2),RSP_WAIT_TARGET:String(n.target??""),RSP_WAIT_RESULT_SCHEMA:"rsp.wait.result@1"})}async function Tv(e,t,r,n,s){return await new Promise(o=>{let i=!1,a=!1,c=d=>{i||(i=!0,o(d))},u=Ev(e,{cwd:t,shell:!0,stdio:"ignore",env:s,detached:process.platform!=="win32"}),l=setTimeout(()=>{a=!0,Zr(u,n).then(d=>c({error:`timed out after ${r}ms`,...d.cleaned?{}:{survivors:d.survivors}}))},r);u.once("error",d=>{clearTimeout(l),c({error:Vf(d)})}),u.once("close",(d,p)=>{clearTimeout(l),!a&&c(d===0?null:{error:`exited with ${p??d??"unknown"}`,status:d??null,signal:p??null})})})}function Vf(e){return e instanceof Error?e.message:String(e)}var Kf=h(()=>{"use strict";Fo();Lt()});import{resolve as vv}from"node:path";async function zf(e){let{kind:t,entry:r,options:n,cwd:s}=e,o=xv(e.verdict,e.cleanupProven,e.survivors),i=new Date().toISOString(),a=is(t,r,o,{status:"pending"},i);await as(n.resultFile,a,n.format);let c=await Jf(n,a,s),u=is(t,r,o,c,i);return await as(n.resultFile,u,n.format),{result:u,exitCode:Yf(o,c)}}function Yf(e,t){return t.status!=="success"||e.status==="running"?2:Bc(e.status)}function xv(e,t,r=[]){return t!==!1?e:{status:"indeterminate",exitCode:2,summary:`${e.summary}; could not verify process cleanup`,details:{...e.details??{},cleanup:{verified:!1,survivors:r}}}}function is(e,t,r,n,s){return{schema:Cf,version:1,wait:{id:t.id,target:t.target,kind:e,status:r.status,reason:t.reason,started_at:t.started_at,completed_at:s,poll_tier:t.poll_tier},verdict:{exit_code:Yf(r,n),target_exit_code:r.exitCode,summary:r.summary,delivery:n,...r.details?{details:r.details}:{}}}}async function as(e,t,r){e&&await Jc(vv(e),on(t,r))}function on(e,t){return t==="json"?`${JSON.stringify(e,null,2)}
63
+ `:`${ne(e)}
64
+ `}var Qf=h(()=>{"use strict";vt();wr();os();Kf()});import{createWriteStream as Cv,mkdirSync as Ov}from"node:fs";import{readFile as Av,rm as Pv}from"node:fs/promises";import{dirname as Iv}from"node:path";import{join as Xf}from"node:path";function Zf(e,t,r){return{stdout:new Mo(r,Xf(e,`${t}.stdout.bin`)),stderr:new Mo(r,Xf(e,`${t}.stderr.bin`))}}function Lv(e){let t=e.toString("utf8");return Buffer.from(t,"utf8").equals(e)&&!Gv(e)?{inline:t}:{inline:e.toString("base64"),inline_encoding:"base64"}}function Gv(e){for(let t of e)if(t<=8||t>=11&&t<=31&&t!==13||t===127)return!0;return!1}var Mo,eg=h(()=>{"use strict";Mo=class{constructor(t,r){this.limit=t;this.spoolPath=r}head=[];headBytes=0;total=0;spool=null;spoolReady=Promise.resolve();spoolError=null;closed=!1;write(t){if(this.closed)return;this.total+=t.length;let r=this.limit-this.headBytes;if(r>0){let n=t.subarray(0,r);this.head.push(n),this.headBytes+=n.length}if(this.total>this.limit){let n=r>0?t.subarray(r):t;this.openSpool(),n.length>0&&this.appendSpool(n)}}async finish(t,r){this.closed=!0;let n=Buffer.concat(this.head),s=this.total>this.headBytes,o={bytes:this.total,...Lv(n),truncated:s};if(!s)return await this.discardSpool(),o;if(await this.closeSpool(),this.spoolError)return o.recovery_error=this.spoolError,o;try{let i=await Av(this.spoolPath);o.handle=await t.mint(Buffer.concat([n,i]),{command:r,loss:{level:"terse",bytes_elided:this.total-this.headBytes}}),await this.discardSpool()}catch(i){o.recovery_error=i instanceof Error?i.message:String(i),o.spool_path=this.spoolPath}return o}async discard(){this.closed=!0,await this.closeSpool(),await this.discardSpool()}openSpool(){if(this.spool||this.spoolError)return;let t;try{Ov(Iv(this.spoolPath),{recursive:!0}),t=Cv(this.spoolPath,{flags:"w"})}catch(r){this.spoolError=r instanceof Error?r.message:String(r);return}t.on("error",r=>{this.spoolError=r instanceof Error?r.message:String(r)}),this.spool=t}appendSpool(t){let r=this.spool;r&&(this.spoolReady=this.spoolReady.then(()=>new Promise(n=>{r.write(t)?n():r.once("drain",()=>n())})))}async closeSpool(){let t=this.spool;t&&(this.spool=null,await this.spoolReady.catch(()=>{}),await new Promise(r=>t.end(()=>r())))}async discardSpool(){await Pv(this.spoolPath,{force:!0}).catch(()=>{})}}});import{existsSync as Dv,readFileSync as SB}from"node:fs";import{dirname as $v,join as Nv}from"node:path";function tg(e,t){let r=e;for(let n=0;n<16;n++){let s=Nv(r,t);if(Dv(s))return s;let o=$v(r);if(o===r)break;r=o}return null}function Fv(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function Bo(e,t){let r=[];for(let n of e.split(`
65
+ `)){let s=n.replace(/\r$/,""),o=s.trim();if(!o||o.startsWith("#"))continue;let i=s.indexOf(":");if(i<0)continue;let a=s.length-s.trimStart().length,c=s.slice(0,i).trim();if(!c)continue;let u=s.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:c}),u&&r.map(d=>d.key).join(".")===t)return Fv(u)}}var rg=h(()=>{});var pg={};K(pg,{DEFAULT_GH_ETAG_CACHE_MAX_BYTES:()=>cn,GH_ETAG_CACHE_DIR_NAME:()=>ig,LEGACY_GH_ETAG_CACHE_FILE:()=>ag,LEGACY_GH_ETAG_CACHE_JSON_FILE:()=>cg,enforceGhEtagCacheCeiling:()=>Xc,ghEtagCacheDir:()=>jo,ghEtagEntryPath:()=>Uo,isCacheEntry:()=>qo,legacyGhEtagCachePaths:()=>Qc,migrateLegacyGhEtagCache:()=>eu,readGhEtagCache:()=>Ho,readGhEtagEntry:()=>Wv,resetGhEtagCacheMigrationMemo:()=>Vv,sweepGhEtagCache:()=>Zc,writeGhEtagEntry:()=>Jv});import{existsSync as Mv}from"node:fs";import{mkdir as Bv,readdir as jv,rename as Uv,rm as ng,stat as sg,unlink as og,writeFile as Hv}from"node:fs/promises";import{dirname as qv,join as an}from"node:path";function jo(e){return an(X(e),ig)}function Uo(e,t){return an(jo(e),`${Qv(t)}.toon`)}function Qc(e){let t=X(e);return[an(t,ag),an(t,cg)]}async function Wv(e,t){await eu(e);try{let r=dg(await _o(Uo(e,t)));return qo(r)?r:void 0}catch{return}}async function Jv(e,t,r={}){return await lg(Uo(e,t.key),t),await Xc(e,r.maxBytes??cn)}async function Xc(e,t=cn){let r=await zv(e),n=r.reduce((o,i)=>o+i.bytes,0);if(n<=t)return{evictedEntries:0,bytes:n};r.sort((o,i)=>o.mtimeMs-i.mtimeMs||o.path.localeCompare(i.path));let s=0;for(let o of r){if(n<=t)break;try{await og(o.path),n-=o.bytes,s+=1}catch{}}return{evictedEntries:s,bytes:n}}async function Zc(e,t={}){let r=await eu(e,{force:!0}),n=await Kv(e);return{...await Xc(e,t.maxBytes??cn),reclaimedTmp:n,migratedEntries:r}}async function Ho(e){for(let t of Qc(e))try{let r=dg(await _o(t));if(Xv(r))return r}catch{}return{version:1,entries:{}}}async function eu(e,t={}){if(!t.force&&zc.has(e))return 0;zc.add(e);let r=Qc(e).filter(o=>Mv(o));if(r.length===0)return 0;let n=await Ho(e),s=0;for(let[o,i]of Object.entries(n.entries)){if(!qo(i))continue;let a=Uo(e,o);await Yv(a)||(await lg(a,{...i,key:o}),s+=1)}for(let o of r)await ng(o,{force:!0});return s}function Vv(){zc.clear()}async function Kv(e){let t=0;for(let r of[X(e),jo(e)])for(let n of await ug(r))if(n.endsWith(".tmp"))try{await og(an(r,n)),t+=1}catch{}return t}async function zv(e){let t=jo(e),r=[];for(let n of await ug(t)){if(!n.endsWith(".toon"))continue;let s=an(t,n);try{let o=await sg(s);o.isFile()&&r.push({path:s,bytes:o.size,mtimeMs:o.mtimeMs})}catch{}}return r}async function ug(e){try{return await jv(e)}catch{return[]}}async function Yv(e){try{return await sg(e),!0}catch{return!1}}async function lg(e,t){await Bv(qv(e),{recursive:!0});let r=`${e}.${process.pid}.${Date.now()}.tmp`;try{await Hv(r,`${$(t)}
66
+ `,{encoding:"utf8",mode:384}),await Uv(r,e)}catch(n){throw await ng(r,{force:!0}),n}}function Qv(e){if(!/^[A-Za-z0-9_-]{1,128}$/.test(e))throw new Error(`unsafe gh etag cache key: ${e}`);return e}function dg(e){try{return JSON.parse(e)}catch{return H(e)}}function Xv(e){return Yc(e)&&e.version===1&&Yc(e.entries)&&Object.values(e.entries).every(qo)}function qo(e){return Yc(e)&&typeof e.key=="string"&&typeof e.request=="string"&&typeof e.etag=="string"&&typeof e.body=="string"&&typeof e.updated_at=="string"}function Yc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ig,ag,cg,cn,zc,Wo=h(()=>{"use strict";Le();J();ae();ig="gh-etag",ag="gh-etag-cache.toon",cg="gh-etag-cache.json",cn=4*1024*1024;zc=new Set});var bg={};K(bg,{DEFAULT_RSP_BYTE_BUDGET:()=>Xe,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Qe,DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>Gt,DEFAULT_RSP_IDLE_MS:()=>Ko,DEFAULT_RSP_MEASUREMENT_HOLDOUT_SHARE:()=>yg,DEFAULT_RSP_STORE_PATH:()=>tu,DEFAULT_RSP_TELEMETRY_BYTE_BUDGET:()=>Vo,DEFAULT_RSP_TELEMETRY_DRAIN_INTERVAL_MS:()=>fg,DEFAULT_RSP_TELEMETRY_DRAIN_TIMEOUT_MS:()=>gg,DEFAULT_RSP_TELEMETRY_TTL_DAYS:()=>Jo,DEFAULT_RSP_TTL_DAYS:()=>Ye,MIN_RSP_IDLE_MS:()=>hg,resolveRspConfig:()=>De});import{existsSync as Zv,readFileSync as ex}from"node:fs";import{join as tx,resolve as mg}from"node:path";function De(e,t,r){let n=tg(mg(e),tx(".red","config.yaml")),s=n?ex(n,"utf8"):"",o=Bo(s,"rsp.enabled")==="true",i=Bo(s,"rsp.proxy.enabled"),a=i===void 0?o:i==="true",c=ke(ce(s,"rsp.ttlDays"),Ye),u=ke(dt(t.RSP_EPHEMERAL_TTL_HOURS)??ce(s,"rsp.ephemeralTtlHours"),Qe),l=ke(ce(s,"rsp.byteBudget"),Xe),d=ke(ce(s,"rsp.telemetryTtlDays"),Jo),p=ke(ce(s,"rsp.telemetryByteBudget")??ce(s,"rsp.byteBudget"),Vo),g=ke(dt(t.RSP_TELEMETRY_DRAIN_INTERVAL_MS)??ce(s,"rsp.telemetryDrainIntervalMs"),fg),f=ke(dt(t.RSP_TELEMETRY_DRAIN_TIMEOUT_MS)??ce(s,"rsp.telemetryDrainTimeoutMs"),gg),k=rx(dt(t.RSP_IDLE_MS)??ce(s,"rsp.idleMs"),Ko,hg),E=ke(dt(t.RSP_HEAVY_GIT_BYTE_THRESHOLD)??ce(s,"rsp.heavyGitByteThreshold"),Gt),y=nx(dt(t.RSP_MEASUREMENT_HOLDOUT_SHARE)??ce(s,"rsp.measurement.holdoutShare"),yg),_=ke(dt(t.RSP_GH_ETAG_CACHE_MAX_BYTES)??ce(s,"rsp.ghEtagCacheMaxBytes"),cn),T={maxOverheadMs:ke(dt(t.RSP_MAX_OVERHEAD_MS)??ce(s,"rsp.overhead.maxOverheadMs"),fo),maxSelfStateBytes:ke(dt(t.RSP_MAX_SELF_STATE_BYTES)??ce(s,"rsp.overhead.maxSelfStateBytes"),go),netLossFloorBytes:ke(ce(s,"rsp.overhead.netLossFloorBytes"),ho),consecutiveBreaches:ke(dt(t.RSP_OVERHEAD_CONSECUTIVE_BREACHES)??ce(s,"rsp.overhead.consecutiveBreaches"),yo),cooldownMs:ke(ce(s,"rsp.overhead.cooldownMs"),bo)},C=ct(e).rootDir,L=r??t.RSP_STORE_URI??`file://${Em(mg(C),Zv)}`;return{enabled:o,proxyEnabled:a,storeUri:L,ttlDays:c,ephemeralTtlHours:u,byteBudget:l,telemetryTtlDays:d,telemetryByteBudget:p,telemetryDrainIntervalMs:g,telemetryDrainTimeoutMs:f,idleMs:k,heavyGitByteThreshold:E,measurementHoldoutShare:y,ghEtagCacheMaxBytes:_,overhead:T}}function ce(e,t){let r=Bo(e,t);if(r==null)return;let n=Number(r);return Number.isFinite(n)?n:void 0}function ke(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function rx(e,t,r){let n=ke(e,t);return Math.max(n,r)}function nx(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e<=0?0:e>=1?1:e}function dt(e){if(e==null||e.trim()==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}var Gt,tu,Ye,Qe,Xe,Jo,Vo,fg,gg,Ko,hg,yg,Be=h(()=>{"use strict";rg();Le();Oo();ae();Wo();Gt=8*1024,tu=wm,Ye=7,Qe=6,Xe=64*1024*1024,Jo=90,Vo=4*1024*1024,fg=3e4,gg=2e3,Ko=5*6e4,hg=5e3,yg=0});function wg(e,t=process.env){return{async mint(r,n){let{residentElisionStore:s}=await Promise.resolve().then(()=>(Jt(),Zn)),o=s(e,De(e,t));try{return await o.mint(r,n)}finally{await o.close()}}}}var _g=h(()=>{"use strict";Be()});import{spawn as sx}from"node:child_process";async function Rg(e){let{commandLine:t,options:r,cwd:n,registryPath:s,entry:o,signal:i}=e;if(!t.trim())return{verdict:ge("missing command line")};let a=e.store??wg(n),c=Zf(e.spoolDir,o.id,r.captureBytes);return await new Promise(u=>{let l=!1,d=!1,p=async y=>{l||(l=!0,i.removeEventListener("abort",k),await Do(s,o,y.verdict.status).catch(()=>{}),u(y))},g=sx(t,{cwd:n,shell:!0,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"});g.stdout?.on("data",y=>c.stdout.write(Buffer.from(y))),g.stderr?.on("data",y=>c.stderr.write(Buffer.from(y)));let f=async(y,_)=>{if(l||d)return;d=!0,clearTimeout(E);let T=await Zr(g,r.terminateGraceMs),C=await Eg(null,null,c,a,t);await p({verdict:{status:y,exitCode:2,summary:_,details:C},cleanupProven:T.cleaned,survivors:T.survivors})},k=()=>void f("indeterminate","command interrupted");i.addEventListener("abort",k,{once:!0});let E=setTimeout(()=>{f("timeout",`command timed out after ${kg(r.timeoutMs)}`)},r.timeoutMs);g.once("error",y=>{clearTimeout(E),c.stdout.discard(),c.stderr.discard(),p({verdict:{status:"failure",exitCode:1,summary:y.message}})}),g.once("close",(y,_)=>{if(clearTimeout(E),l||d)return;let T=y===0;Eg(y,_,c,a,t).then(C=>p({verdict:{status:T?"success":"failure",exitCode:T?0:1,summary:T?"command exited successfully":`command exited with ${_??y??"unknown"}`,details:C}}))}),i.aborted&&k()})}async function zo(e){let{probe:t,timeoutMs:r,baseSleepMs:n,registryPath:s,entry:o,signal:i}=e,a=Date.now()+r,c=0,u;for(;Date.now()<a;){if(i.aborted)return{verdict:ox(u,c,o.last_poll_at)};let l;try{l=await t()}catch(k){l=ge(k instanceof Error?k.message:String(k))}if(u=l,o.attempts=++c,o.last_poll_at=new Date().toISOString(),o.last_observation=ru(l),await rn(s,o).catch(()=>{}),l.status!=="running"&&l.status!=="indeterminate")return await Do(s,o,l.status).catch(()=>{}),{verdict:l};let d=Math.min(n*4,Math.round(n*Math.pow(1.25,c-1))),p=Math.floor(Math.random()*1e3),g=Math.min(d+p,Math.max(0,a-Date.now())),f=e.makeWakeSignal?.();await ix(g,i,f)}return await Do(s,o,"timeout").catch(()=>{}),{verdict:{status:"timeout",exitCode:2,summary:`timed out after ${kg(r)}`,details:u?{attempts:c,last_poll_at:o.last_poll_at??null,last_observation:ru(u)}:{attempts:c}}}}async function Eg(e,t,r,n,s){let[o,i]=await Promise.all([r.stdout.finish(n,`${s} # stdout`),r.stderr.finish(n,`${s} # stderr`)]);return{status:e??null,signal:t??null,stdout:o,stderr:i}}function ru(e){return{status:e.status,exit_code:e.exitCode,summary:e.summary,...e.details?{details:e.details}:{}}}function ox(e,t,r){return ge("wait interrupted",{attempts:t,last_poll_at:r??null,...e?{last_observation:ru(e)}:{}})}async function ix(e,t,r){t.aborted||e<=0||r?.aborted||await new Promise(n=>{let s=setTimeout(o,e);function o(){clearTimeout(s),t.removeEventListener("abort",i),r?.removeEventListener("abort",a),n()}let i=()=>o(),a=()=>o();t.addEventListener("abort",i,{once:!0}),r?.addEventListener("abort",a,{once:!0})})}function kg(e){return e%36e5===0?`${e/36e5}h`:e%6e4===0?`${e/6e4}m`:e%1e3===0?`${e/1e3}s`:`${e}ms`}var Sg=h(()=>{"use strict";eg();_g();wr();Lt();os()});var Tg={};K(Tg,{readGhConditionalJson:()=>xe,readGhEtagCache:()=>Ho,sweepGhEtagCache:()=>Zc});import{execFileSync as ax}from"node:child_process";async function xe(e){if(e.signal?.aborted)return{status:1,stdout:"",stderr:"gh call cancelled",quotaFree:!1};let t=e.cwd??process.cwd(),r=e.env??process.env,n=lx(t),s={...n?{owner:n.owner,repo:n.repo}:{},...e.params??{}},o={args:e.args??ux(e.path),path:e.path,actor:cx(r),...Object.keys(s).length>0?{params:s}:{}};try{let i;if(e.residentRead)i=await e.residentRead(o);else{let a=De(t,r),c=Xn(t,a);try{i=await c.githubRead(o)}finally{await c.close()}}return{status:i.status,stdout:i.stdout,stderr:i.stderr,quotaFree:i.quotaFree}}catch(i){return{status:75,stdout:"",stderr:JSON.stringify({refused:!0,reason:"rsp-github-resident-unavailable",repair:"restore the rsp resident and GitHub credential, then retry",detail:i instanceof Error?i.message:String(i)}),quotaFree:!1}}}function cx(e){let t=(e.RED_AFK_GH_ACTOR??"").trim();return t===""?"session":`proxied-agent:${t}`}function ux(e){return/\/pulls\/[^/]+\/?$/.test(e)?["pr","view"]:/\/pulls\/?$/.test(e)?["pr","list"]:/\/issues\/[^/]+\/?$/.test(e)?["issue","view"]:/\/issues\/?$/.test(e)?["issue","list"]:/\/actions\/runs\/[^/]+\/?$/.test(e)?["run","view"]:/\/actions\/runs\/?$/.test(e)?["run","list"]:["api",e]}function lx(e){let t="";try{t=String(ax("git",["config","--get","remote.origin.url"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]})).trim()}catch{return null}let n=t.replace(/^git@[^:]+:/,"").replace(/^ssh:\/\/git@[^/]+\//,"").replace(/^https?:\/\/[^/]+\//,"").replace(/\.git$/,"").replace(/^\/+|\/+$/g,"").split("/").filter(Boolean);return n.length<2?null:{owner:n[n.length-2],repo:n[n.length-1]}}var Yo=h(()=>{"use strict";Be();Jt();Wo()});import{spawn as dx}from"node:child_process";async function cs(e,t){return await px(t,async r=>{let n=await fx(e,t.cwd,r);return n||await mx(e,t.cwd,r)})}async function px(e,t){if(e.signal.aborted)return{status:1,stdout:"",stderr:"wait cancelled"};let r=new AbortController,n=setTimeout(()=>r.abort(),e.timeoutMs),s=AbortSignal.any([e.signal,r.signal]);try{let o=await t(s);return r.signal.aborted?{status:1,stdout:"",stderr:`GitHub probe exceeded ${e.timeoutMs}ms`}:o}finally{clearTimeout(n)}}async function mx(e,t,r){return r.aborted?{status:1,stdout:"",stderr:"gh call cancelled"}:await new Promise(n=>{let s=!1,o=l=>{s||(s=!0,r.removeEventListener("abort",a),n(l))},i=dx("gh",e,{cwd:t,stdio:["ignore","pipe","pipe"]});function a(){let l=i.pid;l&&Io(l).then(d=>Po(d,"SIGKILL"));try{i.kill("SIGKILL")}catch{}o({status:1,stdout:"",stderr:"gh call cancelled"})}r.addEventListener("abort",a,{once:!0});let c=[],u=[];i.stdout.on("data",l=>c.push(Buffer.from(l))),i.stderr.on("data",l=>u.push(Buffer.from(l))),i.once("error",l=>o({status:1,stdout:"",stderr:l.message})),i.once("close",l=>{o({status:l??1,stdout:Buffer.concat(c).toString("utf8"),stderr:Buffer.concat(u).toString("utf8").trim()})})})}async function fx(e,t,r){if(e[0]==="pr"&&e[1]==="view"&&e[2])return await gx(e[2],t,r);if(e[0]==="run"&&e[1]==="view"&&e[2]){let n=await xe({path:`repos/{owner}/{repo}/actions/runs/${e[2]}`,cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(n.status!==0)return n;let s=lt(JSON.parse(n.stdout));return{status:0,stderr:n.stderr,stdout:JSON.stringify({databaseId:sn(s,"database_id")||sn(s,"id"),status:he(s,"status").toUpperCase(),conclusion:he(s,"conclusion").toUpperCase(),workflowName:he(s,"workflow_name")||he(s,"name"),headBranch:he(s,"head_branch"),url:he(s,"html_url")})}}if(e[0]==="run"&&e[1]==="list"){let n=No(e,"--branch"),s=No(e,"--limit")??"20",o=await xe({path:"repos/{owner}/{repo}/actions/runs",params:{branch:n,per_page:s},cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(o.status!==0)return o;let i=Er(lt(JSON.parse(o.stdout)).workflow_runs).map(a=>({databaseId:sn(a,"database_id")||sn(a,"id")}));return{status:0,stdout:JSON.stringify(i),stderr:o.stderr}}if(e[0]==="release"&&e[1]==="list"){let n=No(e,"--limit")??"20",s=await xe({path:"repos/{owner}/{repo}/releases",params:{per_page:n},cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(s.status!==0)return s;let o=Er(JSON.parse(s.stdout)).map(i=>({tagName:he(i,"tag_name"),publishedAt:he(i,"published_at"),isDraft:i.draft===!0}));return{status:0,stdout:JSON.stringify(o),stderr:s.stderr}}return null}async function gx(e,t,r){let n=await xe({path:`repos/{owner}/{repo}/pulls/${e}`,cwd:t,signal:r,command:`gh pr view ${e}`});if(n.status!==0)return n;let s=lt(JSON.parse(n.stdout));if(Array.isArray(s.statusCheckRollup))return{status:0,stdout:n.stdout,stderr:n.stderr};let o=he(lt(s.head),"sha"),[i,a]=o?await Promise.all([xe({path:`repos/{owner}/{repo}/commits/${o}/status`,cwd:t,signal:r,command:`gh pr view ${e} status`}),xe({path:`repos/{owner}/{repo}/commits/${o}/check-runs`,cwd:t,signal:r,command:`gh pr view ${e} check-runs`})]):[{status:0,stdout:"{}",stderr:"",quotaFree:!1},{status:0,stdout:"{}",stderr:"",quotaFree:!1}],c=i.status===0?Er(lt(JSON.parse(i.stdout)).statuses):[],u=a.status===0?Er(lt(JSON.parse(a.stdout)).check_runs):[];return{status:0,stderr:[n.stderr,i.stderr,a.stderr].filter(Boolean).join(`
67
+ `),stdout:JSON.stringify({number:sn(s,"number"),state:he(s,"state").toUpperCase(),mergeable:hx(s),statusCheckRollup:[...c.map(l=>({conclusion:he(l,"state").toUpperCase()})),...u.map(l=>({status:he(l,"status").toUpperCase(),conclusion:he(l,"conclusion").toUpperCase()}))],url:he(s,"html_url")})}}function hx(e){let t=he(e,"mergeable_state").toUpperCase();return t&&t!=="UNKNOWN"?t==="CLEAN"?"MERGEABLE":t:e.mergeable===!0?"MERGEABLE":e.mergeable===!1?"CONFLICTING":"UNKNOWN"}var vg=h(()=>{"use strict";Yo();Fo();Lt()});function Cg(e,t,r){let n=Date.now();return()=>yx(e,t,r,n)}async function yx(e,t,r,n){if(!/^[1-9][0-9]*$/.test(e))return ge("missing PR number");let s=await cs(["pr","view",e,"--json","number,state,mergeable,statusCheckRollup,url"],t);if(s.status!==0)return ge(s.stderr||"gh pr view failed");let o=Kc(s.stdout),i=Array.isArray(o.statusCheckRollup)?o.statusCheckRollup:[],a=String(o.mergeable??""),c=i.map(bx),u=c.filter(d=>d==="failure").length,l=c.filter(d=>d==="pending").length;if(String(o.state)!=="OPEN")return It("failure",`PR #${e} is ${String(o.state).toLowerCase()}`,{mergeable:a});if(a==="CONFLICTING")return It("failure",`PR #${e} has merge conflicts`,{failing:u,pending:l,mergeable:a});if(u>0)return It("failure",`PR #${e} has failing checks`,{failing:u,pending:l,mergeable:a});if(l>0)return Xr(`PR #${e} has ${l} pending checks`);if(i.length===0){let d=Date.now()-n;return a==="UNKNOWN"||a==="BLOCKED"||d<r.emptyChecksGraceMs?Xr(`PR #${e} has no registered checks yet`,{checks:0,mergeable:a,empty_checks_elapsed_ms:d}):It("success",`PR #${e} has no checks configured`,{checks:0,mergeable:a})}return a==="UNKNOWN"?Xr(`PR #${e} mergeability is still unknown`,{checks:i.length,mergeable:a}):It("success",`PR #${e} checks passed`,{checks:i.length,mergeable:a})}async function Og(e,t){if(!e)return ge("missing run id");let r=await cs(["run","view",e,"--json","databaseId,status,conclusion,workflowName,headBranch,url"],t);if(r.status!==0)return ge(r.stderr||"gh run view failed");let n=Kc(r.stdout),s=String(n.status??"").toLowerCase(),o=String(n.conclusion??"").toLowerCase();return s!=="completed"?Xr(`run ${e} is ${s||"pending"}`):o==="success"?It("success",`run ${e} succeeded`,xg(n)):It("failure",`run ${e} concluded ${o||"unknown"}`,xg(n))}async function Ag(e,t){let r=await cs(["run","list","--branch",e,"--limit","1","--json","databaseId"],t);if(r.status!==0)return"";let n=JSON.parse(r.stdout),s=Array.isArray(n)?n[0]:void 0;return nn(s)&&s.databaseId!=null?String(s.databaseId):""}async function Pg(e,t,r){let n=await cs(["release","list","--limit","20","--json","tagName,publishedAt,isDraft"],r);if(n.status!==0)return ge(n.stderr||"gh release list failed");let o=Er(JSON.parse(n.stdout)).find(i=>{let a=String(i.tagName??""),c=new Date(String(i.publishedAt??""));return i.isDraft!==!0&&(!e||wx(e,a))&&c>=t});return o?It("success",`release ${String(o.tagName)} published`,{tag:String(o.tagName),published_at:String(o.publishedAt??"")}):Xr("no matching release is published yet")}function bx(e){let t=nn(e)?e:{},r=String(t.conclusion??t.state??t.status??"").toLowerCase();return["success","successful","passed","completed","neutral","skipped"].includes(r)?"success":["failure","failed","error","timed_out","cancelled","action_required"].includes(r)?"failure":"pending"}function xg(e){return{database_id:typeof e.databaseId=="number"?e.databaseId:String(e.databaseId??""),conclusion:String(e.conclusion??""),workflow:String(e.workflowName??""),branch:String(e.headBranch??""),url:String(e.url??"")}}function wx(e,t){let r=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${r}$`).test(t)}var Ig=h(()=>{"use strict";wr();vg();Fo()});function us(){return["usage: rsp wait <subcommand> [options]","","Subcommands:"," rsp wait pr <number> [--timeout 45m] [--reason <text>]"," rsp wait run <id|--branch <branch> --latest> [--timeout 45m]"," rsp wait release [--tag <glob>] [--timeout 2h]",' rsp wait cmd -- "<command line>" [--timeout 30m]'," rsp wait ls","","Examples:",' rsp wait pr 123 --reason "before merge"'," rsp wait run --branch feature/wait --latest",' rsp wait release --tag "v2.*"',' rsp wait cmd -- "pnpm -C apps/rsp build"'," rsp wait ls","","Doctrine: never hand-write sleep polling loops; run rsp wait in a background shell - process exit IS the signal.","Exit codes: 0 = success verdict, 1 = failure verdict, 2 = timeout/indeterminate.","Result: TOON by default; --json selects JSON; --result-file <path> is written atomically before any wake.","Command capture: --capture-bytes <n> (default 16384); elision handles recover larger stdout/stderr.",'Completion hooks: --signal-pid <pid> [--signal USR1] and --notify-cmd "<cmd>" run after the result is durable.',"Hook timeout: --notify-timeout 10s. Process termination: TERM, --terminate-grace 2s, then KILL.","GitHub bounds: --probe-timeout 60s caps one probe, so a hung gh call cannot outlive --timeout.",""].join(`
68
+ `)}var nu=h(()=>{"use strict"});var Lg=h(()=>{"use strict";J()});var Gg=h(()=>{"use strict"});function _x(e){return Object.keys(e)}function un(e){return{...e,fields:_x(e.fields)}}var Dg,$g,Ng,Ex,Rx,kx,Fg,su=h(()=>{"use strict";Dg="red.castle.lane.v1",$g="red.castle.state.v1",Ng="red.castle.history.v1",Ex="red.castle.validation.v2",Rx="red.castle.envelope.v1",kx="red.castle.hitl-card.v1",Fg=[un({schemaId:Dg,docPath:".red/contracts/red.castle.lane.v1.md",typeNames:["CastleLaneRecord","CastleLaneKind"],fields:{at:!0,kind:!0,worker_id:!0,supervisor_id:!0,issue:!0,attempt:!0,msg:!0,payload:!0}}),un({schemaId:$g,docPath:".red/contracts/red.castle.state.v1.md",typeNames:["CastleStateSnapshot","CastleStateKind"],fields:{kind:!0,id:!0,version:!0,updated_at:!0,worker_id:!0,supervisor_id:!0,runner:!0,bundle_version:!0,pid:!0,started_at:!0,current:!0,queue:!0,completed:!0,envelope:!0}}),un({schemaId:Ng,docPath:".red/contracts/red.castle.history.v1.md",typeNames:["CastleHistoryRecord","CastleHistoryEvent"],fields:{ts:!0,epoch:!0,worker:!0,issue:!0,event:!0,duration_s:!0,runner:!0,merge_sha:!0,reason:!0}}),un({schemaId:Ex,docPath:".red/contracts/red.castle.validation.v2.md",typeNames:["CastleValidationRecord","CastleValidationStatus"],fields:{schema:!0,name:!0,status:!0,command:!0,exitCode:!0,durationMs:!0,summary:!0}}),un({schemaId:Rx,docPath:".red/contracts/red.castle.envelope.v1.md",typeNames:["CastleEnvelope","CastleEnvelopeSection","CastleAttemptStatus"],fields:{status:!0,worker:!0,duration:!0,diff:!0,attempt:!0,mergeSha:!0,sections:!0}}),un({schemaId:kx,docPath:".red/contracts/red.castle.hitl-card.v1.md",typeNames:["CastleHitlCard","CastleHitlCardPrStatus","CastleHitlCardAction"],fields:{issueNumber:!0,issueTitle:!0,issueUrl:!0,pendingDecision:!0,prStatus:!0,updatedAt:!0}})]});var hj,Qo=h(()=>{"use strict";J();su();hj=new Map(Fg.map(e=>[e.schemaId,new Set(e.fields)]))});var Mg=h(()=>{"use strict";Gg();Qo()});var Bg=h(()=>{"use strict"});var Xo=h(()=>{"use strict"});var ou=h(()=>{"use strict";Xo()});var Zo=h(()=>{"use strict"});import{appendFile as vx,mkdir as xx,readFile as Cx}from"node:fs/promises";import{dirname as Ox,join as Ax}from"node:path";function iu(e,t){if(typeof e!="string"||e.length===0)throw new Error(`singleton event ${t} must be a non-empty string`);return e}function jg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton event must be a record");let t={...e},r=t.payload;if(typeof r=="string")try{t.payload=JSON.parse(r)}catch{throw new Error("singleton event payload is not valid JSON")}if(t.payload!==void 0&&(t.payload===null||typeof t.payload!="object"||Array.isArray(t.payload)))throw new Error("singleton event payload must be a record");return{at:iu(t.at,"at"),singleton:iu(t.singleton,"singleton"),kind:iu(t.kind,"kind"),...t.payload===void 0?{}:{payload:t.payload}}}function Px(e){return{at:e.at,singleton:e.singleton,kind:e.kind,...e.payload===void 0?{}:{payload:JSON.stringify(e.payload)}}}function Ix(e){if(e!==void 0&&(!Number.isSafeInteger(e)||e<0))throw new Error("singleton event tail must be a non-negative integer")}function Lx(e){return Ax(e.castleStateRoot,"singleton-events.toonl")}function au(e,t={}){let r=t.fs??{appendFile:vx,mkdir:xx,readFile:Cx},n=t.clock??(()=>new Date().toISOString()),s=Lx(e);return{path:s,async append(o){let i=jg({at:o.at??n(),...o});return await r.mkdir(Ox(s),{recursive:!0}),await r.appendFile(s,St().push(Px(i)),"utf8"),i},async read(o={}){Ix(o.tail);let i;try{i=await r.readFile(s,"utf8")}catch(c){if(c.code==="ENOENT")return[];throw c}let a=kt(i).map(jg);return o.tail===void 0?a:o.tail===0?[]:a.slice(-o.tail)}}}var cu=h(()=>{"use strict";J()});var ei=h(()=>{"use strict";J();Zo();cu()});var Ug=h(()=>{"use strict";Xo();ou();ei()});var Hg=h(()=>{"use strict"});var e1,qg=h(()=>{"use strict";J();e1=24*60*60*1e3});var Wg=h(()=>{"use strict";Qo()});var s1,o1,Jg=h(()=>{"use strict";s1=15*6e4,o1=30*6e4});var Vg=h(()=>{"use strict"});var Dx,$x,c1,u1,Kg=h(()=>{"use strict";Dx=["supervisor_start","supervisor_exit","fleet_scaled","worker_start","worker_exit","worker_steered","worker_escalated","post_claim","pre_worktree","post_issue","pre_requeue","pre_merge","post_merge"],$x={pre_worktree:["cargo","gradle"]},c1=Object.values($x).flat(),u1=new Set(Dx)});var zg=h(()=>{"use strict"});var Yg=h(()=>{"use strict";ei()});var Qg=h(()=>{"use strict"});var Xg=h(()=>{});var Zg=h(()=>{"use strict";Xg()});var eh=h(()=>{"use strict"});var th=h(()=>{"use strict"});var uu=h(()=>{"use strict"});var rh=h(()=>{"use strict";J();uu()});var nh=h(()=>{"use strict";J()});var lu=h(()=>{"use strict"});var du=h(()=>{"use strict"});import{resolve as ye}from"node:path";function sh(e){let t=ye(e),r=ye(t,"state"),n=ye(r,"castle"),s=ye(t,"tmp"),o=ye(s,"supervisors"),i=ye(s,"workers"),a=ye(s,"monitors"),c=ye(s,"worktrees");return{redRoot:t,stateRoot:r,castleStateRoot:n,castleHistory:ye(n,"history.toonl"),castleValidation:ye(n,"validation.toonl"),tmpRoot:s,supervisorsRoot:o,supervisor:u=>ye(o,u),projectSupervisor:ye(o,Nx),workersRoot:i,worker:u=>ye(i,u),workerSteerFile:u=>ye(i,u,"steer.toon"),monitorsRoot:a,monitor:u=>ye(a,u),worktreesRoot:c,worktreeLane:u=>ye(c,u)}}var Nx,oh=h(()=>{"use strict";Nx="default"});var ih=h(()=>{"use strict";Zo()});var ah=h(()=>{"use strict"});var ch=h(()=>{"use strict";lu();du()});import{mkdir as Fx,readFile as Mx,rename as Bx,rm as jx,writeFile as Ux}from"node:fs/promises";import{dirname as Hx,join as qx}from"node:path";function Jx(e){if(!Wx.test(e)||e==="."||e==="..")throw new Error(`invalid singleton name ${JSON.stringify(e)}`)}function Vx(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function Kx(e){return e.code==="ENOENT"}function zx(e){return e.code==="EEXIST"}function Yx(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton lease must be a record");let t=e;if(!Number.isInteger(t.pid)||t.pid<=0)throw new Error("singleton lease pid must be a positive integer");for(let r of["start_time","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)throw new Error(`singleton lease ${r} must be a non-empty string`);return t}function pu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function ti(e,t){return Jx(t),qx(e.castleStateRoot,"singletons",t,"lease.toon")}function uh(e,t={}){let r=t.fs??{mkdir:Fx,readFile:Mx,rename:Bx,rm:jx,writeFile:Ux},n=t.clock??(()=>new Date().toISOString()),s=t.isPidAlive??Vx;async function o(a){try{return Yx(H(await r.readFile(a,"utf8")))}catch(c){if(Kx(c))return;throw c}}async function i(a,c){let u=`${a}.tmp-${c.pid}-${crypto.randomUUID()}`;await r.writeFile(u,$(c,{keyedMapCollapse:!0}),{encoding:"utf8"}),await r.rename(u,a)}return{read(a){return o(ti(e,a))},async acquire(a,c){let u=ti(e,a);await r.mkdir(Hx(u),{recursive:!0});let l=!1;for(;;){let d=n(),p={pid:c.pid,start_time:c.startTime,acquired_at:d,renewed_at:d};try{return await r.writeFile(u,$(p,{keyedMapCollapse:!0}),{encoding:"utf8",flag:"wx"}),{acquired:!0,reaped:l,lease:p}}catch(f){if(!zx(f))throw f}let g=await o(u);if(g){if(pu(g,c))return{acquired:!0,reaped:l,lease:g};if(await s(g.pid))return{acquired:!1,lease:g};await r.rm(u,{force:!0}),l=!0}}},async renew(a,c){let u=ti(e,a),l=await o(u);if(!l||!pu(l,c))throw new ri(a);let d={...l,renewed_at:n()};return await i(u,d),d},async release(a,c){let u=ti(e,a),l=await o(u);if(!l)return!1;if(!pu(l,c))throw new ri(a);return await r.rm(u,{force:!0}),!0}}}var ri,Wx,lh=h(()=>{"use strict";J();ri=class extends Error{constructor(t){super(`singleton lease ${JSON.stringify(t)} is held by another owner`),this.name="SingletonLeaseOwnershipError"}},Wx=/^[a-z0-9][a-z0-9._-]{0,63}$/});var mu=h(()=>{"use strict"});var dh=h(()=>{"use strict"});var Qx,Xx,Zx,Q1,ph=h(()=>{"use strict";Qx={refreshCadenceS:270,tolerance:3},Xx=270,Zx=2700,Q1={...Qx,claimGraceS:Xx,recentCommitProtectionS:Zx}});var mh=h(()=>{"use strict"});function fh(e){return e==="single-object"?"rest":"graphql"}function ee(e,t,r,n,s,o){return{key:e,kind:"read",cardinality:t,volatility:r,surface:o??fh(t),budget:n,...o?{only:o}:{},why:s}}function Ce(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,why:n}}function hh(e){let t=[],r=0;for(;r<e.length&&e[r].startsWith("-");)r+=e[r]==="-R"||e[r]==="--repo"?2:1;for(;r<e.length&&!e[r].startsWith("-")&&t.length<2;)t.push(e[r]),r+=1;return t}function fu(e){let t=hh(e);if(t.length===0)return"";if(t[0]==="api")return t[1]==="graphql"?"api graphql":"api rest";let r=t.length===1?t[0]:`${t[0]} ${t[1]}`;return t[1]==="list"&&e.includes("--search")?`${r} (search)`:r}function yh(e){return eC.get(fu(e))??null}function gu(e){let t=yh(e);if(!t)throw new ni(e);return t}var gh,eC,ni,bh=h(()=>{gh=[ee("issue view","single-object","stable-poll","rest","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),ee("pr view","single-object","stable-poll","rest","one pull request by number, polled per Worker per iteration"),ee("repo view","single-object","stable-poll","rest","one repository's own metadata, repeatedly read while usually unchanged"),ee("run view","single-object","stable-poll","rest","one Actions run repeatedly polled to terminal; Actions has no GraphQL surface"),ee("release view","single-object","stable-poll","rest","one release by tag, repeatedly checked while usually absent or unchanged"),ee("pr diff","single-object","one-shot","rest","one pull request's diff, read once for review and served by a REST media type"),ee("issue list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged issue connection; GraphQL avoids N REST pages"),ee("pr list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged pull-request connection; GraphQL avoids N REST pages"),ee("pr checks","multi-node","stable-poll","graphql","check contexts form a connection repeatedly polled while awaiting terminal state"),ee("release list","multi-node","stable-poll","rest","release waits poll a usually-unchanged list; Releases has no GraphQL connection gh reads","rest"),ee("run list","multi-node","stable-poll","rest","run waits poll a usually-unchanged list; Actions has no GraphQL surface","rest"),ee("label list","multi-node","one-shot","graphql","a label connection loaded once for the current operation"),ee("issue list (search)","multi-node","stable-poll","search","queue discovery polls usually-unchanged search results through the 30/min search connection"),ee("pr list (search)","multi-node","stable-poll","search","PR discovery polls usually-unchanged search results through the 30/min search connection"),ee("search issues","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("search prs","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("search repos","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("api graphql","multi-node","one-shot","graphql","the caller supplies one explicit GraphQL query rather than a routed poll"),ee("api rest","single-object","one-shot","rest","the caller supplies one explicit REST path rather than a routed poll"),Ce("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ce("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ce("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ce("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ce("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ce("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ce("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ce("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ce("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ce("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ce("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ce("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ce("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ce("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],eC=new Map(gh.map(e=>[e.key,e]));ni=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=fu(t);super(`unclassified GitHub operation ${JSON.stringify(r||"(empty argv)")}: add an entry to GITHUB_OPERATIONS in packages/github/surface.ts stating its cardinality. Defaulting to GraphQL is what sent every single-object poll to the node-point pool (ADR 0132 decision 4).`),this.operation=r,this.args=[...t]}}});import{appendFile as tC,mkdir as rC,readFile as nC}from"node:fs/promises";import{dirname as sC}from"node:path";function yu(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let s=oC(n.operation,n.cost,n.observedAt??t(),n.actor),o=St().push(aC(s));return r=r.then(async()=>{await rC(sC(e.path),{recursive:!0}),await tC(e.path,o,"utf8")}),r},async report(n){await r;let s=hu(n.from,"report window start"),o=hu(n.to,"report window end");if(o<=s)throw new Error("GitHub attribution report window end must be after its start");let i=await iC(e.path),a=new Map;for(let u of i.observations){let l=Date.parse(u.observed_at);if(l<s||l>=o||n.pool!==void 0&&u.pool!==n.pool)continue;let d=`${u.pool}\0${u.operation_key}\0${u.actor??""}`,p=a.get(d);a.set(d,{operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:(p?.count??0)+1,cost:(p?.cost??0)+u.cost})}let c=[...a.values()].sort((u,l)=>l.cost-u.cost||l.count-u.count||u.operation_key.localeCompare(l.operation_key)||u.pool.localeCompare(l.pool)||(u.actor??"").localeCompare(l.actor??""));return{version:1,origin:"process-attribution",window:{from:n.from,to:n.to},pool:n.pool??null,total_count:c.reduce((u,l)=>u+l.count,0),total_cost:c.reduce((u,l)=>u+l.cost,0),operations:c,unreadable_records:i.unreadable}}}}function oC(e,t,r,n){if(hu(r,"GitHub spend observation"),!Number.isSafeInteger(t)||t<0)throw new Error(`GitHub spend observation cost must be a non-negative safe integer; received ${t}`);if(n!==void 0&&n.trim()==="")throw new Error("GitHub spend observation actor must be non-empty when supplied");return{version:1,observed_at:r,operation_key:e.key,pool:e.budget,...n===void 0?{}:{actor:n},cost:t}}async function iC(e){let t;try{t=await nC(e,"utf8")}catch(o){if(lC(o)&&o.code==="ENOENT")return{observations:[],unreadable:0};throw o}let r=[],n=0,s=t.split(`
69
+ `);for(let o=0;o<s.length;o+=1){let i=s[o];if(i.trim()==="")continue;let a=s[o+1];if(!i.startsWith("[]{")||a===void 0||a.trim()===""){n+=1;continue}let c;try{c=kt(`${i}
70
+ ${a}
71
+ `)[0]}catch{n+=1,o+=1;continue}if(!cC(c)){n+=1,o+=1;continue}r.push(c),o+=1}return{observations:r,unreadable:n}}function aC(e){return{version:e.version,observed_at:e.observed_at,operation_key:e.operation_key,pool:e.pool,...e.actor===void 0?{}:{actor:e.actor},cost:e.cost}}function cC(e){return uC(e)?e.version===1&&typeof e.observed_at=="string"&&Number.isFinite(Date.parse(e.observed_at))&&typeof e.operation_key=="string"&&e.operation_key!==""&&(e.pool==="rest"||e.pool==="graphql"||e.pool==="search")&&(e.actor===void 0||typeof e.actor=="string"&&e.actor!=="")&&typeof e.cost=="number"&&Number.isSafeInteger(e.cost)&&e.cost>=0:!1}function hu(e,t){let r=Date.parse(e);if(!Number.isFinite(r))throw new Error(`${t} must be an ISO-8601 instant; received ${JSON.stringify(e)}`);return r}function uC(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lC(e){return e instanceof Error&&"code"in e}var wh=h(()=>{J()});var _u=cp((bu,wu)=>{(function(e,t){typeof bu=="object"&&typeof wu<"u"?wu.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(bu,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(I){return I&&I.default||I}var r=function(I,b,m={}){var w,R,S;for(w in b)S=b[w],m[w]=(R=I[w])!=null?R:S;return m},n=function(I,b,m={}){var w,R;for(w in I)R=I[w],b[w]!==void 0&&(m[w]=R);return m},s={load:r,overwrite:n},o;o=class{constructor(b,m){this.incr=b,this.decr=m,this._first=null,this._last=null,this.length=0}push(b){var m;this.length++,typeof this.incr=="function"&&this.incr(),m={value:b,prev:this._last,next:null},this._last!=null?(this._last.next=m,this._last=m):this._first=this._last=m}shift(){var b;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),b=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,b}first(){if(this._first!=null)return this._first.value}getArray(){var b,m,w;for(b=this._first,w=[];b!=null;)w.push((m=b,b=b.next,m.value));return w}forEachShift(b){var m;for(m=this.shift();m!=null;)b(m),m=this.shift()}debug(){var b,m,w,R,S;for(b=this._first,S=[];b!=null;)S.push((m=b,b=b.next,{value:m.value,prev:(w=m.prev)!=null?w.value:void 0,next:(R=m.next)!=null?R.value:void 0}));return S}};var i=o,a;a=class{constructor(b){if(this.instance=b,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(m,w)=>this._addListener(m,"many",w),this.instance.once=(m,w)=>this._addListener(m,"once",w),this.instance.removeAllListeners=(m=null)=>m!=null?delete this._events[m]:this._events={}}_addListener(b,m,w){var R;return(R=this._events)[b]==null&&(R[b]=[]),this._events[b].push({cb:w,status:m}),this.instance}listenerCount(b){return this._events[b]!=null?this._events[b].length:0}async trigger(b,...m){var w,R;try{return b!=="debug"&&this.trigger("debug",`Event triggered: ${b}`,m),this._events[b]==null?void 0:(this._events[b]=this._events[b].filter(function(S){return S.status!=="none"}),R=this._events[b].map(async S=>{var x,A;if(S.status!=="none"){S.status==="once"&&(S.status="none");try{return A=typeof S.cb=="function"?S.cb(...m):void 0,typeof A?.then=="function"?await A:A}catch(U){return x=U,this.trigger("error",x),null}}}),(await Promise.all(R)).find(function(S){return S!=null}))}catch(S){return w=S,this.trigger("error",w),null}}};var c=a,u,l,d;u=i,l=c,d=class{constructor(b){var m;this.Events=new l(this),this._length=0,this._lists=function(){var w,R,S;for(S=[],m=w=1,R=b;1<=R?w<=R:w>=R;m=1<=R?++w:--w)S.push(new u(()=>this.incr(),()=>this.decr()));return S}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(b){return this._lists[b.options.priority].push(b)}queued(b){return b!=null?this._lists[b].length:this._length}shiftAll(b){return this._lists.forEach(function(m){return m.forEachShift(b)})}getFirst(b=this._lists){var m,w,R;for(m=0,w=b.length;m<w;m++)if(R=b[m],R.length>0)return R;return[]}shiftLastFrom(b){return this.getFirst(this._lists.slice(b).reverse()).shift()}};var p=d,g;g=class extends Error{};var f=g,k,E,y,_,T;_=10,E=5,T=s,k=f,y=class{constructor(b,m,w,R,S,x,A,U){this.task=b,this.args=m,this.rejectOnDrop=S,this.Events=x,this._states=A,this.Promise=U,this.options=T.load(w,R),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===R.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((oe,me)=>{this._resolve=oe,this._reject=me}),this.retryCount=0}_sanitizePriority(b){var m;return m=~~b!==b?E:b,m<0?0:m>_-1?_-1:m}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:b,message:m="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(b??new k(m)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(b){var m;if(m=this._states.jobStatus(this.options.id),!(m===b||b==="DONE"&&m===null))throw new k(`Invalid job status ${m}, expected ${b}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(b,m){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:b,blocked:m})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(b,m,w,R){var S,x,A;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),x={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",x);try{if(A=await(b!=null?b.schedule(this.options,this.task,...this.args):this.task(...this.args)),m())return this.doDone(x),await R(this.options,x),this._assertStatus("DONE"),this._resolve(A)}catch(U){return S=U,this._onFailure(S,x,m,w,R)}}doExpire(b,m,w){var R,S;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),S={args:this.args,options:this.options,retryCount:this.retryCount},R=new k(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(R,S,b,m,w)}async _onFailure(b,m,w,R,S){var x,A;if(w())return x=await this.Events.trigger("failed",b,m),x!=null?(A=~~x,this.Events.trigger("retry",`Retrying ${this.options.id} after ${A} ms`,m),this.retryCount++,R(A)):(this.doDone(m),await S(this.options,m),this._assertStatus("DONE"),this._reject(b))}doDone(b){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",b)}};var C=y,L,F,q;q=s,L=f,F=class{constructor(b,m,w){this.instance=b,this.storeOptions=m,this.clientId=this.instance._randomIndex(),q.load(w,w,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var b;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(b=this.heartbeat=setInterval(()=>{var m,w,R,S,x;if(S=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&S>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=S,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&S>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:m,reservoirIncreaseMaximum:R,reservoir:x}=this.storeOptions,this._lastReservoirIncrease=S,w=R!=null?Math.min(m,R-x):m,w>0))return this.storeOptions.reservoir+=w,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?b.unref():void 0:clearInterval(this.heartbeat)}async __publish__(b){return await this.yieldLoop(),this.instance.Events.trigger("message",b.toString())}async __disconnect__(b){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(b=0){return new this.Promise(function(m,w){return setTimeout(m,b)})}computePenalty(){var b;return(b=this.storeOptions.penalty)!=null?b:15*this.storeOptions.minTime||5e3}async __updateSettings__(b){return await this.yieldLoop(),q.overwrite(b,b,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(b){return await this.yieldLoop(),this._nextRequest+this.timeout<b}computeCapacity(){var b,m;return{maxConcurrent:b,reservoir:m}=this.storeOptions,b!=null&&m!=null?Math.min(b-this._running,m):b!=null?b-this._running:m??null}conditionsCheck(b){var m;return m=this.computeCapacity(),m==null||b<=m}async __incrementReservoir__(b){var m;return await this.yieldLoop(),m=this.storeOptions.reservoir+=b,this.instance._drainAll(this.computeCapacity()),m}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(b){return this._unblockTime>=b}check(b,m){return this.conditionsCheck(b)&&this._nextRequest-m<=0}async __check__(b){var m;return await this.yieldLoop(),m=Date.now(),this.check(b,m)}async __register__(b,m,w){var R,S;return await this.yieldLoop(),R=Date.now(),this.conditionsCheck(m)?(this._running+=m,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=m),S=Math.max(this._nextRequest-R,0),this._nextRequest=R+S+this.storeOptions.minTime,{success:!0,wait:S,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(b,m){var w,R,S;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&m>this.storeOptions.maxConcurrent)throw new L(`Impossible to add a job having a weight of ${m} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return R=Date.now(),S=this.storeOptions.highWater!=null&&b===this.storeOptions.highWater&&!this.check(m,R),w=this.strategyIsBlock()&&(S||this.isBlocked(R)),w&&(this._unblockTime=R+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:S,blocked:w,strategy:this.storeOptions.strategy}}async __free__(b,m){return await this.yieldLoop(),this._running-=m,this._done+=m,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var se=F,re,de;re=f,de=class{constructor(b){this.status=b,this._jobs={},this.counts=this.status.map(function(){return 0})}next(b){var m,w;if(m=this._jobs[b],w=m+1,m!=null&&w<this.status.length)return this.counts[m]--,this.counts[w]++,this._jobs[b]++;if(m!=null)return this.counts[m]--,delete this._jobs[b]}start(b){var m;return m=0,this._jobs[b]=m,this.counts[m]++}remove(b){var m;return m=this._jobs[b],m!=null&&(this.counts[m]--,delete this._jobs[b]),m!=null}jobStatus(b){var m;return(m=this.status[this._jobs[b]])!=null?m:null}statusJobs(b){var m,w,R,S,x;if(b!=null){if(w=this.status.indexOf(b),w<0)throw new re(`status must be one of ${this.status.join(", ")}`);R=this._jobs,S=[];for(m in R)x=R[m],x===w&&S.push(m);return S}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((b,m,w)=>(b[this.status[w]]=m,b),{})}};var pe=de,Mt,P;Mt=i,P=class{constructor(b,m){this.schedule=this.schedule.bind(this),this.name=b,this.Promise=m,this._running=0,this._queue=new Mt}isEmpty(){return this._queue.length===0}async _tryToRun(){var b,m,w,R,S,x,A;if(this._running<1&&this._queue.length>0)return this._running++,{task:A,args:b,resolve:S,reject:R}=this._queue.shift(),m=await async function(){try{return x=await A(...b),function(){return S(x)}}catch(U){return w=U,function(){return R(w)}}}(),this._running--,this._tryToRun(),m()}schedule(b,...m){var w,R,S;return S=R=null,w=new this.Promise(function(x,A){return S=x,R=A}),this._queue.push({task:b,args:m,resolve:S,reject:R}),this._tryToRun(),w}};var B=P,Ne="2.19.5",wt={version:Ne},Bt=Object.freeze({version:Ne,default:wt}),O=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),N=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),_t=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),rt,Te,ve,Et,Fr,jt;jt=s,rt=c,Et=O,ve=N,Fr=_t,Te=function(){class I{constructor(m={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=m,jt.load(this.limiterOptions,this.defaults,this),this.Events=new rt(this),this.instances={},this.Bottleneck=ip,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Et(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new ve(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(m=""){var w;return(w=this.instances[m])!=null?w:(()=>{var R;return R=this.instances[m]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${m}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",R,m),R})()}async deleteKey(m=""){var w,R;return R=this.instances[m],this.connection&&(w=await this.connection.__runCommand__(["del",...Fr.allKeys(`${this.id}-${m}`)])),R!=null&&(delete this.instances[m],await R.disconnect()),R!=null||w>0}limiters(){var m,w,R,S;w=this.instances,R=[];for(m in w)S=w[m],R.push({key:m,limiter:S});return R}keys(){return Object.keys(this.instances)}async clusterKeys(){var m,w,R,S,x,A,U,oe,me;if(this.connection==null)return this.Promise.resolve(this.keys());for(A=[],m=null,me=`b_${this.id}-`.length,w=9;m!==0;)for([oe,R]=await this.connection.__runCommand__(["scan",m??0,"match",`b_${this.id}-*_settings`,"count",1e4]),m=~~oe,S=0,U=R.length;S<U;S++)x=R[S],A.push(x.slice(me,-w));return A}_startAutoCleanup(){var m;return clearInterval(this.interval),typeof(m=this.interval=setInterval(async()=>{var w,R,S,x,A,U;A=Date.now(),S=this.instances,x=[];for(R in S){U=S[R];try{await U._store.__groupCheck__(A)?x.push(this.deleteKey(R)):x.push(void 0)}catch(oe){w=oe,x.push(U.Events.trigger("error",w))}}return x},this.timeout/2)).unref=="function"?m.unref():void 0}updateSettings(m={}){if(jt.overwrite(m,this.defaults,this),jt.overwrite(m,m,this.limiterOptions),m.timeout!=null)return this._startAutoCleanup()}disconnect(m=!0){var w;if(!this.sharedConnection)return(w=this.connection)!=null?w.disconnect(m):void 0}}return I.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},I}.call(e);var Pn=Te,ur,In,Xd;Xd=s,In=c,ur=function(){class I{constructor(m={}){this.options=m,Xd.load(this.options,this.defaults,this),this.Events=new In(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((m,w)=>this._resolve=m)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(m){var w;return this._arr.push(m),w=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),w}}return I.prototype.defaults={maxTime:null,maxSize:null,Promise},I}.call(e);var cR=ur,uR=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),lR=t(Bt),Zd,ep,wa,_a,tp,Ea,rp,np,sp,Ra,nt,op=[].splice;Ea=10,ep=5,nt=s,rp=p,_a=C,tp=se,np=uR,wa=c,sp=pe,Ra=B,Zd=function(){class I{constructor(m={},...w){var R,S;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(m,w),nt.load(m,this.instanceDefaults,this),this._queues=new rp(Ea),this._scheduled={},this._states=new sp(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new wa(this),this._submitLock=new Ra("submit",this.Promise),this._registerLock=new Ra("register",this.Promise),S=nt.load(m,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return R=nt.load(m,this.redisStoreDefaults,{}),new np(this,S,R);if(this.datastore==="local")return R=nt.load(m,this.localStoreDefaults,{}),new tp(this,S,R);throw new I.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var x;return(x=this._store.heartbeat)!=null&&typeof x.ref=="function"?x.ref():void 0}),this._queues.on("zero",()=>{var x;return(x=this._store.heartbeat)!=null&&typeof x.unref=="function"?x.unref():void 0})}_validateOptions(m,w){if(!(m!=null&&typeof m=="object"&&w.length===0))throw new I.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(m){return this._store.__publish__(m)}disconnect(m=!0){return this._store.__disconnect__(m)}chain(m){return this._limiter=m,this}queued(m){return this._queues.queued(m)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(m){return this._states.jobStatus(m)}jobs(m){return this._states.statusJobs(m)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(m=1){return this._store.__check__(m)}_clearGlobalState(m){return this._scheduled[m]!=null?(clearTimeout(this._scheduled[m].expiration),delete this._scheduled[m],!0):!1}async _free(m,w,R,S){var x,A;try{if({running:A}=await this._store.__free__(m,R.weight),this.Events.trigger("debug",`Freed ${R.id}`,S),A===0&&this.empty())return this.Events.trigger("idle")}catch(U){return x=U,this.Events.trigger("error",x)}}_run(m,w,R){var S,x,A;return w.doRun(),S=this._clearGlobalState.bind(this,m),A=this._run.bind(this,m,w),x=this._free.bind(this,m,w),this._scheduled[m]={timeout:setTimeout(()=>w.doExecute(this._limiter,S,A,x),R),expiration:w.options.expiration!=null?setTimeout(function(){return w.doExpire(S,A,x)},R+w.options.expiration):void 0,job:w}}_drainOne(m){return this._registerLock.schedule(()=>{var w,R,S,x,A;return this.queued()===0?this.Promise.resolve(null):(A=this._queues.getFirst(),{options:x,args:w}=S=A.first(),m!=null&&x.weight>m?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${x.id}`,{args:w,options:x}),R=this._randomIndex(),this._store.__register__(R,x.weight,x.expiration).then(({success:U,wait:oe,reservoir:me})=>{var Ln;return this.Events.trigger("debug",`Drained ${x.id}`,{success:U,args:w,options:x}),U?(A.shift(),Ln=this.empty(),Ln&&this.Events.trigger("empty"),me===0&&this.Events.trigger("depleted",Ln),this._run(R,S,oe),this.Promise.resolve(x.weight)):this.Promise.resolve(null)})))})}_drainAll(m,w=0){return this._drainOne(m).then(R=>{var S;return R!=null?(S=m!=null?m-R:m,this._drainAll(S,w+R)):this.Promise.resolve(w)}).catch(R=>this.Events.trigger("error",R))}_dropAllQueued(m){return this._queues.shiftAll(function(w){return w.doDrop({message:m})})}stop(m={}){var w,R;return m=nt.load(m,this.stopDefaults),R=S=>{var x;return x=()=>{var A;return A=this._states.counts,A[0]+A[1]+A[2]+A[3]===S},new this.Promise((A,U)=>x()?A():this.on("done",()=>{if(x())return this.removeAllListeners("done"),A()}))},w=m.dropWaitingJobs?(this._run=function(S,x){return x.doDrop({message:m.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var S,x,A;x=this._scheduled;for(S in x)A=x[S],this.jobStatus(A.job.options.id)==="RUNNING"&&(clearTimeout(A.timeout),clearTimeout(A.expiration),A.job.doDrop({message:m.dropErrorMessage}));return this._dropAllQueued(m.dropErrorMessage),R(0)}))):this.schedule({priority:Ea-1,weight:0},()=>R(1)),this._receive=function(S){return S._reject(new I.prototype.BottleneckError(m.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new I.prototype.BottleneckError("stop() has already been called")),w}async _addToQueue(m){var w,R,S,x,A,U,oe;({args:w,options:x}=m);try{({reachedHWM:A,blocked:R,strategy:oe}=await this._store.__submit__(this.queued(),x.weight))}catch(me){return S=me,this.Events.trigger("debug",`Could not queue ${x.id}`,{args:w,options:x,error:S}),m.doDrop({error:S}),!1}return R?(m.doDrop(),!0):A&&(U=oe===I.prototype.strategy.LEAK?this._queues.shiftLastFrom(x.priority):oe===I.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(x.priority+1):oe===I.prototype.strategy.OVERFLOW?m:void 0,U?.doDrop(),U==null||oe===I.prototype.strategy.OVERFLOW)?(U==null&&m.doDrop(),A):(m.doQueue(A,R),this._queues.push(m),await this._drainAll(),A)}_receive(m){return this._states.jobStatus(m.options.id)!=null?(m._reject(new I.prototype.BottleneckError(`A job with the same id already exists (id=${m.options.id})`)),!1):(m.doReceive(),this._submitLock.schedule(this._addToQueue,m))}submit(...m){var w,R,S,x,A,U,oe;return typeof m[0]=="function"?(A=m,[R,...m]=A,[w]=op.call(m,-1),x=nt.load({},this.jobDefaults)):(U=m,[x,R,...m]=U,[w]=op.call(m,-1),x=nt.load(x,this.jobDefaults)),oe=(...me)=>new this.Promise(function(Ln,pR){return R(...me,function(...ap){return(ap[0]!=null?pR:Ln)(ap)})}),S=new _a(oe,m,x,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),S.promise.then(function(me){return typeof w=="function"?w(...me):void 0}).catch(function(me){return Array.isArray(me)?typeof w=="function"?w(...me):void 0:typeof w=="function"?w(me):void 0}),this._receive(S)}schedule(...m){var w,R,S;return typeof m[0]=="function"?([S,...m]=m,R={}):[R,S,...m]=m,w=new _a(S,m,R,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(w),w.promise}wrap(m){var w,R;return w=this.schedule.bind(this),R=function(...S){return w(m.bind(this),...S)},R.withOptions=function(S,...x){return w(S,m,...x)},R}async updateSettings(m={}){return await this._store.__updateSettings__(nt.overwrite(m,this.storeDefaults)),nt.overwrite(m,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(m=0){return this._store.__incrementReservoir__(m)}}return I.default=I,I.Events=wa,I.version=I.prototype.version=lR.version,I.strategy=I.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},I.BottleneckError=I.prototype.BottleneckError=f,I.Group=I.prototype.Group=Pn,I.RedisConnection=I.prototype.RedisConnection=O,I.IORedisConnection=I.prototype.IORedisConnection=N,I.Batcher=I.prototype.Batcher=cR,I.prototype.jobDefaults={priority:ep,weight:1,expiration:null,id:"<no-id>"},I.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:I.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},I.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},I.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},I.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},I.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},I}.call(e);var ip=Zd,dR=ip;return dR})});var Dt,Eu=h(()=>{Dt=class extends Error{name;status;request;response;constructor(t,r,n){super(t,{cause:n.cause}),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0);"response"in n&&(this.response=n.response);let s=Object.assign({},n.request);n.request.headers.authorization&&(s.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),s.url=s.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=s}}});function pC(e){return e.request!==void 0}async function _h(e,t,r,n){if(!pC(r)||!r?.request.request)throw r;if(r.status>=400&&!e.doNotRetry.includes(r.status)){let s=n.request.retries!=null?n.request.retries:e.retries,o=Math.pow((n.request.retryCount||0)+1,2);throw t.retry.retryRequest(r,s,o)}throw r}async function mC(e,t,r,n){let s=new Eh.default;return s.on("failed",function(o,i){let a=~~o.request.request?.retries,c=~~o.request.request?.retryAfter;if(n.request.retryCount=i.retryCount+1,a>i.retryCount)return c*e.retryAfterBaseValue}),s.schedule(fC.bind(null,e,t,r),n)}async function fC(e,t,r,n){let s=await r(n);if(s.data&&s.data.errors&&s.data.errors.length>0&&/Something went wrong while executing your query/.test(s.data.errors[0].message)){let o=new Dt(s.data.errors[0].message,500,{request:n,response:s});return _h(e,t,o,n)}return s}function Ru(e,t){let r=Object.assign({enabled:!0,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,410,422,451],retries:3},t.retry),n={retry:{retryRequest:(s,o,i)=>(s.request.request=Object.assign({},s.request.request,{retries:o,retryAfter:i}),s)}};return r.enabled&&(e.hook.error("request",_h.bind(null,r,n)),e.hook.wrap("request",mC.bind(null,r,n))),n}var Eh,dC,Rh=h(()=>{Eh=Sa(_u(),1);Eu();dC="0.0.0-development";Ru.VERSION=dC});function hC(e,t,r){return e.retryLimiter.schedule(yC,e,t,r)}async function yC(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),s=bC(r.method,n),o=!s&&r.method!=="GET"&&r.method!=="HEAD",i=r.method==="GET"&&n.startsWith("/search/"),a=n.startsWith("/graphql"),u=~~t.retryCount>0?{priority:0,weight:0}:{};e.clustering&&(u.expiration=1e3*60),(o||a)&&await e.write.key(e.id).schedule(u,ku),o&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(u,ku),i&&await e.search.key(e.id).schedule(u,ku);let l=(s?e.auth:e.global).key(e.id).schedule(u,t,r);if(a){let d=await l;if(d.data.errors!=null&&d.data.errors.some(p=>p.type==="RATE_LIMITED"))throw Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:d,data:d.data})}return l}function bC(e,t){return e==="PATCH"&&/^\/applications\/[^/]+\/token\/scoped$/.test(t)||e==="POST"&&(/^\/applications\/[^/]+\/token$/.test(t)||/^\/app\/installations\/[^/]+\/access_tokens$/.test(t)||t==="/login/oauth/access_token")}function _C(e){let r=`^(?:${e.map(n=>n.split("/").map(s=>s.startsWith("{")?"(?:.+?)":s).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}function si(e,t){let{enabled:r=!0,Bottleneck:n=Sh.default,id:s="no-id",timeout:o=1e3*60*2,connection:i}=t.throttle||{};if(!r)return{};let a={timeout:o};typeof i<"u"&&(a.connection=i);let c=Object.assign({clustering:i!=null,triggersNotification:Th,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:s},t.throttle);if(typeof c.onSecondaryRateLimit!="function"||typeof c.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
89
72
  You must pass the onSecondaryRateLimit and onRateLimit error handlers.
90
73
  See https://octokit.github.io/rest.js/#throttling
91
74
 
@@ -95,82 +78,110 @@ ${s}
95
78
  onRateLimit: (retryAfter, options) => {/* ... */}
96
79
  }
97
80
  })
98
- `);let u=!1,l=()=>{if(u)return;u=!0,tt.global==null&&XO(n,a),c.global=c.global??tt.global,c.auth=c.auth??tt.auth,c.search=c.search??tt.search,c.write=c.write??tt.write,c.notifications=c.notifications??tt.notifications,c.retryLimiter=c.retryLimiter??new n;let p={},d=new n.Events(p);p.on("secondary-limit",c.onSecondaryRateLimit),p.on("rate-limit",c.onRateLimit),p.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),c.retryLimiter.on("failed",async function(g,f){let[k,E,y]=f.args,{pathname:_}=new URL(y.url,"http://github.test");if(!(_.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let v=~~E.retryCount;E.retryCount=v,y.request.retryCount=v;let{wantRetry:G,retryAfter:B=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let V=Number(g.response.headers["retry-after"])||k.fallbackSecondaryRateRetryAfter;return{wantRetry:await d.trigger("secondary-limit",V,y,e,v),retryAfter:V}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(V=>V.type==="RATE_LIMITED")){let V=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),te=Math.max(Math.ceil((V-Date.now())/1e3)+1,0);return{wantRetry:await d.trigger("rate-limit",te,y,e,v),retryAfter:te}}return{}}();if(G)return E.retryCount++,B*k.retryAfterBaseValue})};return e.hook.wrap("request",(p,d)=>(l(),VO(c,p,d))),{}}var by,JO,al,YO,yy,wy,tt,XO,_y=h(()=>{by=ba(sl(),1),JO="0.0.0-development",al=()=>Promise.resolve();YO=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/issues/{issue_number}/sub_issue","/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];yy=QO(YO),wy=yy.test.bind(yy),tt={},XO=function(e,t){tt.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),tt.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),tt.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),tt.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),tt.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};ki.VERSION=JO;ki.triggersNotification=wy});function Xt(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:"<environment undetectable>"}var Ls=h(()=>{});function Si(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((s,o)=>Si.bind(null,e,o,s,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((s,o)=>o.hook.bind(null,s,n),r)():r(n))}var Ey=h(()=>{});function Ry(e,t,r,n){let s=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=(o,i)=>Promise.resolve().then(s.bind(null,i)).then(o.bind(null,i))),t==="after"&&(n=(o,i)=>{let a;return Promise.resolve().then(o.bind(null,i)).then(c=>(a=c,s(a,i))).then(()=>a)}),t==="error"&&(n=(o,i)=>Promise.resolve().then(o.bind(null,i)).catch(a=>s(a,i))),e.registry[r].push({hook:n,orig:s})}var ky=h(()=>{});function Sy(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(s=>s.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var Ty=h(()=>{});function Cy(e,t,r){let n=xy(Sy,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(s=>{let o=r?[t,s,r]:[t,s];e[s]=e.api[s]=xy(Ry,null).apply(null,o)})}function ZO(){let e=Symbol("Singular"),t={registry:{}},r=Si.bind(null,t,e);return Cy(r,t,e),r}function e0(){let e={registry:{}},t=Si.bind(null,e);return Cy(t,e),t}var vy,xy,Oy,Ay=h(()=>{Ey();ky();Ty();vy=Function.bind,xy=vy.bind(vy);Oy={Singular:ZO,Collection:e0}});function s0(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function o0(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Ly(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{o0(t[n])?n in e?r[n]=Ly(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Py(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function ul(e,t,r){if(typeof t=="string"){let[s,o]=t.split(" ");r=Object.assign(o?{method:s,url:o}:{url:s},r)}else r=Object.assign({},t);r.headers=s0(r.headers),Py(r),Py(r.headers);let n=Ly(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(s=>!n.mediaType.previews.includes(s)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(s=>s.replace(/-preview/,""))),n}function i0(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(s=>s==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${s}=${encodeURIComponent(t[s])}`).join("&")}function c0(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function u0(e){let t=e.match(a0);return t?t.map(c0).reduce((r,n)=>r.concat(n),[]):[]}function Iy(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Dy(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function En(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Ds(e,t,r){return t=e==="+"||e==="#"?Dy(t):En(t),r?En(r)+"="+t:t}function _n(e){return e!=null}function cl(e){return e===";"||e==="&"||e==="?"}function l0(e,t,r,n){var s=e[r],o=[];if(_n(s)&&s!=="")if(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||typeof s=="boolean")s=s.toString(),n&&n!=="*"&&(s=s.substring(0,parseInt(n,10))),o.push(Ds(t,s,cl(t)?r:""));else if(n==="*")Array.isArray(s)?s.filter(_n).forEach(function(i){o.push(Ds(t,i,cl(t)?r:""))}):Object.keys(s).forEach(function(i){_n(s[i])&&o.push(Ds(t,s[i],i))});else{let i=[];Array.isArray(s)?s.filter(_n).forEach(function(a){i.push(Ds(t,a))}):Object.keys(s).forEach(function(a){_n(s[a])&&(i.push(En(a)),i.push(Ds(t,s[a].toString())))}),cl(t)?o.push(En(r)+"="+i.join(",")):i.length!==0&&o.push(i.join(","))}else t===";"?_n(s)&&o.push(En(r)):s===""&&(t==="&"||t==="?")?o.push(En(r)+"="):s===""&&o.push("");return o}function d0(e){return{expand:p0.bind(null,e)}}function p0(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,s,o){if(s){let a="",c=[];if(r.indexOf(s.charAt(0))!==-1&&(a=s.charAt(0),s=s.substr(1)),s.split(/,/g).forEach(function(u){var l=/([^:\*]*)(?::(\d+)|(\*))?/.exec(u);c.push(l0(t,a,l[1],l[2]||l[3]))}),a&&a!=="+"){var i=",";return a==="?"?i="&":a!=="#"&&(i=a),(c.length!==0?a:"")+c.join(i)}else return c.join(",")}else return Dy(o)}),e==="/"?e:e.replace(/\/$/,"")}function Gy(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),s,o=Iy(e,["method","baseUrl","url","headers","request","mediaType"]),i=u0(r);r=d0(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=Iy(o,a);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(l=>l.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let l=n.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g)||[];n.accept=l.concat(e.mediaType.previews).map(p=>{let d=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${p}-preview${d}`}).join(",")}return["GET","HEAD"].includes(t)?r=i0(r,c):"data"in c?s=c.data:Object.keys(c).length&&(s=c),!n["content-type"]&&typeof s<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof s>"u"&&(s=""),Object.assign({method:t,url:r,headers:n},typeof s<"u"?{body:s}:null,e.request?{request:e.request}:null)}function m0(e,t,r){return Gy(ul(e,t,r))}function $y(e,t){let r=ul(e,t),n=m0.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:$y.bind(null,r),merge:ul.bind(null,r),parse:Gy})}var t0,r0,n0,a0,Ny,Fy=h(()=>{Ls();t0="0.0.0-development",r0=`octokit-endpoint.js/${t0} ${Xt()}`,n0={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":r0},mediaType:{format:""}};a0=/\{[^{}}]+\}/g;Ny=$y(null,n0)});var Wy=Qd(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});Ti.format=y0;Ti.parse=b0;var f0=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,By=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,g0=/[\\"]/g,h0=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,jy=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function y0(e){let{type:t,parameters:r}=e;if(!t||!h0.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let s of Object.keys(r)){if(!By.test(s))throw new TypeError(`Invalid parameter name: ${s}`);n+=`; ${s}=${R0(r[s])}`}return n}function b0(e,t){let r=e.length,n=dl(e,0,r),s=n;n=ll(e,n,r);let o=pl(e,s,n),i=e.slice(s,o).toLowerCase(),a=t?.parameters===!1?new jy:E0(e,n,r);return{type:i,parameters:a}}var Uy=32,Hy=9,qy=59,w0=61,My=34,_0=92;function E0(e,t,r){let n=new jy;e:for(;t<r;){t=dl(e,t+1,r);let s=t;for(;t<r;){let o=e.charCodeAt(t);if(o===qy)continue e;if(o===w0){let i=pl(e,s,t),a=e.slice(s,i).toLowerCase();if(t=dl(e,t+1,r),t<r&&e.charCodeAt(t)===My){t++;let u="";for(;t<r;){let l=e.charCodeAt(t++);if(l===My){t=ll(e,t,r),n[a]===void 0&&(n[a]=u);break}if(l===_0&&t<r){u+=e[t++];continue}u+=String.fromCharCode(l)}continue e}let c=t;if(t=ll(e,t,r),n[a]===void 0){let u=pl(e,c,t);n[a]=e.slice(c,u)}continue e}t++}}return n}function ll(e,t,r){for(;t<r&&e.charCodeAt(t)!==qy;)t++;return t}function dl(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==Uy&&n!==Hy)break;t++}return t}function pl(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==Uy&&n!==Hy)break;r--}return r}function R0(e){if(By.test(e))return e;if(f0.test(e))return`"${e.replace(g0,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});var k0,xi,Zt,ml,Yy,Jy,Vy,fl,gl,S0,Qy,vi,T0,v0,x0,Xy,Ky,C0,O0,A0,zy,Zy,eb=h(()=>{k0=/^-?\d+$/,xi=/^-?\d+n+$/,Zt=JSON.stringify,ml=JSON.parse,Yy=/^-?\d+n$/,Jy=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Vy=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,fl=e=>e===void 0||typeof e=="function"||typeof e=="symbol",gl=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",S0=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let s=typeof t=="function",o=Array.isArray(t)?new Set(t.map(String)):null,i=(f,k,E)=>(E!==null&&typeof E=="object"&&typeof E.toJSON=="function"&&(E=E.toJSON(k)),typeof E=="string"&&xi.test(E)?E+"n":typeof E=="bigint"?"rawJSON"in JSON?JSON.rawJSON(E.toString()):E.toString()+"n":(s&&(E=t.call(f,k,E)),E!==null&&typeof E=="object"&&(E instanceof Number||E instanceof String||E instanceof Boolean)&&(E=E.valueOf()),E)),a=i({"":e},"",e);if(fl(a))return;let c=a===null||typeof a!="object",u=gl(a);if(c||u)return Zt(a);let l=[],p=0,d=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;d.length>0;){let f=d[d.length-1];f.index===0&&(l.push(f.isArray?"[":"{"),p++);let k=!1;if(f.isArray)if(f.index<f.val.length){f.first||l.push(","),n&&l.push(`
99
- `+n.repeat(p));let E=f.val[f.index],y=i(f.val,String(f.index),E);if(fl(y))l.push("null"),f.first=!1,f.index++;else{let _=y!==null&&typeof y=="object",T=gl(y);if(_&&!T){if(g.has(y))throw new TypeError("Converting circular structure to JSON");g.add(y),d.push({parent:f.val,key:String(f.index),val:y,isArray:Array.isArray(y),keys:Array.isArray(y)?null:Object.keys(y),index:0,first:!0}),f.first=!1,f.index++}else l.push(Zt(y)),f.first=!1,f.index++}}else k=!0;else{for(;f.index<f.keys.length;){let y=f.keys[f.index++];if(o&&!o.has(y))continue;let T=f.val[y],v=i(f.val,y,T);if(fl(v))continue;f.first||l.push(","),n?l.push(`
100
- `+n.repeat(p)+Zt(y)+": "):l.push(Zt(y)+":");let G=v!==null&&typeof v=="object",B=gl(v);if(G&&!B){if(g.has(v))throw new TypeError("Converting circular structure to JSON");g.add(v),d.push({parent:f.val,key:y,val:v,isArray:Array.isArray(v),keys:Array.isArray(v)?null:Object.keys(v),index:0,first:!0}),f.first=!1;break}else l.push(Zt(v)),f.first=!1}f.index>=f.keys.length&&d[d.length-1]===f&&(k=!0)}k&&(p--,!f.first&&n&&l.push(`
101
- `+n.repeat(p)),l.push(f.isArray?"]":"}"),g.delete(f.val),d.pop())}return l.join("")},Qy=(e,t,r)=>{try{return"rawJSON"in JSON?Zt(e,(a,c)=>typeof c=="bigint"?JSON.rawJSON(c.toString()):typeof t=="function"?t(a,c):(Array.isArray(t)&&t.includes(a),c),r):e?Zt(e,(a,c)=>typeof c=="string"&&xi.test(c)||typeof c=="bigint"?c.toString()+"n":typeof t=="function"?t(a,c):(Array.isArray(t)&&t.includes(a),c),r).replace(Jy,"$1$2$3").replace(Vy,"$1$2$3"):Zt(e,t,r)}catch(n){if(n instanceof RangeError){let s=S0(e,t,r);return s===void 0?void 0:"rawJSON"in JSON?s:s.replace(Jy,"$1$2$3").replace(Vy,"$1$2$3")}throw n}},vi=new Map,T0=()=>{let e=JSON.parse.toString();if(vi.has(e))return vi.get(e);try{let t=JSON.parse("1",(r,n,s)=>!!s?.source&&s.source==="1");return vi.set(e,t),t}catch{return vi.set(e,!1),!1}},v0=(e,t,r,n)=>typeof t=="string"&&Yy.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&xi.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,x0=(e,t)=>JSON.parse(e,(r,n,s)=>{let o=typeof n=="number",i=n>Number.MAX_SAFE_INTEGER||n<Number.MIN_SAFE_INTEGER,a=o&&i,c=s&&k0.test(s.source);return a&&c?BigInt(s.source):typeof t=="function"?t(r,n,s):n}),Xy=Number.MAX_SAFE_INTEGER.toString(),Ky=Xy.length,C0=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,O0=/^"-?\d+n+"$/,A0=(e,t)=>{let r={"":e},n=[{parent:r,key:"",visited:!1}];for(;n.length>0;){let s=n[n.length-1];if(s.visited){let{parent:o,key:i}=s,a=o[i];typeof a=="string"&&(Yy.test(a)?a=BigInt(a.slice(0,-1)):xi.test(a)&&(a=a.slice(0,-1))),typeof t=="function"&&(a=t.call(o,i,a)),a===void 0?delete o[i]:o[i]=a,n.pop()}else{s.visited=!0;let o=s.parent[s.key];if(o!==null&&typeof o=="object"){let a=Object.keys(o);for(let c=a.length-1;c>=0;c--)n.push({parent:o,key:a[c],visited:!1})}}}return r[""]},zy=e=>e.replace(C0,(t,r,n,s)=>{let o=t[0]==='"';if(o&&O0.test(t))return t.substring(0,t.length-1)+'n"';let a=n||s,c=r&&(r.length<Ky||r.length===Ky&&r<=Xy);return o||a||c?t:'"'+t+'n"'}),Zy=(e,t)=>{if(!e)return ml(e,t);try{if(T0())return x0(e,t);let r=zy(e);return ml(r,(n,s,o)=>v0(n,s,o,t))}catch(r){if(r instanceof RangeError){let n=zy(e),s=ml(n);return A0(s,t)}throw r}}});function L0(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}async function rb(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let r=e.request?.log||console,n=e.request?.parseSuccessResponseBody!==!1,s=L0(e.body)||Array.isArray(e.body)?Qy(e.body):e.body,o=Object.fromEntries(Object.entries(e.headers).map(([p,d])=>[p,String(d)])),i;try{i=await t(e.url,{method:e.method,body:s,redirect:e.request?.redirect,headers:o,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(p){let d="Unknown Error";if(p instanceof Error){if(p.name==="AbortError")throw p.status=500,p;d=p.message,p.name==="TypeError"&&"cause"in p&&(p.cause instanceof Error?d=p.cause.message:typeof p.cause=="string"&&(d=p.cause))}let g=new Nt(d,500,{request:e});throw g.cause=p,g}let a=i.status,c=i.url,u={};for(let[p,d]of i.headers)u[p]=d;let l={url:c,status:a,headers:u,data:""};if("deprecation"in u){let p=u.link&&u.link.match(/<([^<>]+)>; rel="deprecation"/),d=p&&p.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${u.sunset}${d?`. See ${d}`:""}`)}if(a===204||a===205)return l;if(e.method==="HEAD"){if(a<400)return l;throw new Nt(i.statusText,a,{response:l,request:e})}if(a===304)throw l.data=await hl(i),new Nt("Not modified",a,{response:l,request:e});if(a>=400)throw l.data=await hl(i),new Nt(G0(l.data),a,{response:l,request:e});return l.data=n?await hl(i):i.body,l}async function hl(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(tb);let r=(0,nb.parse)(t);if(D0(r)){let n="";try{return n=await e.text(),Zy(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(tb):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function D0(e){return e.type==="application/json"||e.type==="application/scim+json"}function G0(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if(typeof e=="object"&&e!==null&&"message"in e){let t=e,r="documentation_url"in t?` - ${t.documentation_url}`:"";return Array.isArray(t.errors)?`${t.message}: ${t.errors.map(n=>JSON.stringify(n)).join(", ")}${r}`:`${t.message}${r}`}return`Unknown error: ${JSON.stringify(e)}`}function yl(e,t){let r=e.defaults(t);return Object.assign(function(s,o){let i=r.merge(s,o);if(!i.request||!i.request.hook)return rb(r.parse(i));let a=(c,u)=>rb(r.parse(r.merge(c,u)));return Object.assign(a,{endpoint:r,defaults:yl.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:yl.bind(null,r)})}var nb,P0,I0,tb,Gs,bl=h(()=>{Fy();Ls();nb=ba(Wy(),1);eb();ol();P0="10.0.13",I0={headers:{"user-agent":`octokit-request.js/${P0} ${Xt()}`}};tb=()=>"";Gs=yl(Ny,I0);});function N0(e){return`Request failed due to following response errors:
81
+ `);let u=!1,l=()=>{if(u)return;u=!0,Ze.global==null&&EC(n,a),c.global=c.global??Ze.global,c.auth=c.auth??Ze.auth,c.search=c.search??Ze.search,c.write=c.write??Ze.write,c.notifications=c.notifications??Ze.notifications,c.retryLimiter=c.retryLimiter??new n;let d={},p=new n.Events(d);d.on("secondary-limit",c.onSecondaryRateLimit),d.on("rate-limit",c.onRateLimit),d.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),c.retryLimiter.on("failed",async function(g,f){let[k,E,y]=f.args,{pathname:_}=new URL(y.url,"http://github.test");if(!(_.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let C=~~E.retryCount;E.retryCount=C,y.request.retryCount=C;let{wantRetry:L,retryAfter:F=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let q=Number(g.response.headers["retry-after"])||k.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",q,y,e,C),retryAfter:q}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(q=>q.type==="RATE_LIMITED")){let q=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),se=Math.max(Math.ceil((q-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",se,y,e,C),retryAfter:se}}return{}}();if(L)return E.retryCount++,F*k.retryAfterBaseValue})};return e.hook.wrap("request",(d,p)=>(l(),hC(c,d,p))),{}}var Sh,gC,ku,wC,kh,Th,Ze,EC,vh=h(()=>{Sh=Sa(_u(),1),gC="0.0.0-development",ku=()=>Promise.resolve();wC=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/issues/{issue_number}/sub_issue","/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];kh=_C(wC),Th=kh.test.bind(kh),Ze={},EC=function(e,t){Ze.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),Ze.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),Ze.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),Ze.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),Ze.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};si.VERSION=gC;si.triggersNotification=Th});function Vt(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:"<environment undetectable>"}var ls=h(()=>{});function oi(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((s,o)=>oi.bind(null,e,o,s,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((s,o)=>o.hook.bind(null,s,n),r)():r(n))}var xh=h(()=>{});function Ch(e,t,r,n){let s=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=(o,i)=>Promise.resolve().then(s.bind(null,i)).then(o.bind(null,i))),t==="after"&&(n=(o,i)=>{let a;return Promise.resolve().then(o.bind(null,i)).then(c=>(a=c,s(a,i))).then(()=>a)}),t==="error"&&(n=(o,i)=>Promise.resolve().then(o.bind(null,i)).catch(a=>s(a,i))),e.registry[r].push({hook:n,orig:s})}var Oh=h(()=>{});function Ah(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(s=>s.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var Ph=h(()=>{});function Gh(e,t,r){let n=Lh(Ah,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(s=>{let o=r?[t,s,r]:[t,s];e[s]=e.api[s]=Lh(Ch,null).apply(null,o)})}function RC(){let e=Symbol("Singular"),t={registry:{}},r=oi.bind(null,t,e);return Gh(r,t,e),r}function kC(){let e={registry:{}},t=oi.bind(null,e);return Gh(t,e),t}var Ih,Lh,Dh,$h=h(()=>{xh();Oh();Ph();Ih=Function.bind,Lh=Ih.bind(Ih);Dh={Singular:RC,Collection:kC}});function xC(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function CC(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Mh(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{CC(t[n])?n in e?r[n]=Mh(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Nh(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Tu(e,t,r){if(typeof t=="string"){let[s,o]=t.split(" ");r=Object.assign(o?{method:s,url:o}:{url:s},r)}else r=Object.assign({},t);r.headers=xC(r.headers),Nh(r),Nh(r.headers);let n=Mh(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(s=>!n.mediaType.previews.includes(s)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(s=>s.replace(/-preview/,""))),n}function OC(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(s=>s==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${s}=${encodeURIComponent(t[s])}`).join("&")}function PC(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function IC(e){let t=e.match(AC);return t?t.map(PC).reduce((r,n)=>r.concat(n),[]):[]}function Fh(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Bh(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function dn(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function ds(e,t,r){return t=e==="+"||e==="#"?Bh(t):dn(t),r?dn(r)+"="+t:t}function ln(e){return e!=null}function Su(e){return e===";"||e==="&"||e==="?"}function LC(e,t,r,n){var s=e[r],o=[];if(ln(s)&&s!=="")if(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||typeof s=="boolean")s=s.toString(),n&&n!=="*"&&(s=s.substring(0,parseInt(n,10))),o.push(ds(t,s,Su(t)?r:""));else if(n==="*")Array.isArray(s)?s.filter(ln).forEach(function(i){o.push(ds(t,i,Su(t)?r:""))}):Object.keys(s).forEach(function(i){ln(s[i])&&o.push(ds(t,s[i],i))});else{let i=[];Array.isArray(s)?s.filter(ln).forEach(function(a){i.push(ds(t,a))}):Object.keys(s).forEach(function(a){ln(s[a])&&(i.push(dn(a)),i.push(ds(t,s[a].toString())))}),Su(t)?o.push(dn(r)+"="+i.join(",")):i.length!==0&&o.push(i.join(","))}else t===";"?ln(s)&&o.push(dn(r)):s===""&&(t==="&"||t==="?")?o.push(dn(r)+"="):s===""&&o.push("");return o}function GC(e){return{expand:DC.bind(null,e)}}function DC(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,s,o){if(s){let a="",c=[];if(r.indexOf(s.charAt(0))!==-1&&(a=s.charAt(0),s=s.substr(1)),s.split(/,/g).forEach(function(u){var l=/([^:\*]*)(?::(\d+)|(\*))?/.exec(u);c.push(LC(t,a,l[1],l[2]||l[3]))}),a&&a!=="+"){var i=",";return a==="?"?i="&":a!=="#"&&(i=a),(c.length!==0?a:"")+c.join(i)}else return c.join(",")}else return Bh(o)}),e==="/"?e:e.replace(/\/$/,"")}function jh(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),s,o=Fh(e,["method","baseUrl","url","headers","request","mediaType"]),i=IC(r);r=GC(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=Fh(o,a);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(l=>l.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let l=n.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g)||[];n.accept=l.concat(e.mediaType.previews).map(d=>{let p=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${d}-preview${p}`}).join(",")}return["GET","HEAD"].includes(t)?r=OC(r,c):"data"in c?s=c.data:Object.keys(c).length&&(s=c),!n["content-type"]&&typeof s<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof s>"u"&&(s=""),Object.assign({method:t,url:r,headers:n},typeof s<"u"?{body:s}:null,e.request?{request:e.request}:null)}function $C(e,t,r){return jh(Tu(e,t,r))}function Uh(e,t){let r=Tu(e,t),n=$C.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Uh.bind(null,r),merge:Tu.bind(null,r),parse:jh})}var SC,TC,vC,AC,Hh,qh=h(()=>{ls();SC="0.0.0-development",TC=`octokit-endpoint.js/${SC} ${Vt()}`,vC={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":TC},mediaType:{format:""}};AC=/\{[^{}}]+\}/g;Hh=Uh(null,vC)});var Qh=cp(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.format=BC;ii.parse=jC;var NC=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,Jh=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,FC=/[\\"]/g,MC=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Vh=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function BC(e){let{type:t,parameters:r}=e;if(!t||!MC.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let s of Object.keys(r)){if(!Jh.test(s))throw new TypeError(`Invalid parameter name: ${s}`);n+=`; ${s}=${WC(r[s])}`}return n}function jC(e,t){let r=e.length,n=xu(e,0,r),s=n;n=vu(e,n,r);let o=Cu(e,s,n),i=e.slice(s,o).toLowerCase(),a=t?.parameters===!1?new Vh:qC(e,n,r);return{type:i,parameters:a}}var Kh=32,zh=9,Yh=59,UC=61,Wh=34,HC=92;function qC(e,t,r){let n=new Vh;e:for(;t<r;){t=xu(e,t+1,r);let s=t;for(;t<r;){let o=e.charCodeAt(t);if(o===Yh)continue e;if(o===UC){let i=Cu(e,s,t),a=e.slice(s,i).toLowerCase();if(t=xu(e,t+1,r),t<r&&e.charCodeAt(t)===Wh){t++;let u="";for(;t<r;){let l=e.charCodeAt(t++);if(l===Wh){t=vu(e,t,r),n[a]===void 0&&(n[a]=u);break}if(l===HC&&t<r){u+=e[t++];continue}u+=String.fromCharCode(l)}continue e}let c=t;if(t=vu(e,t,r),n[a]===void 0){let u=Cu(e,c,t);n[a]=e.slice(c,u)}continue e}t++}}return n}function vu(e,t,r){for(;t<r&&e.charCodeAt(t)!==Yh;)t++;return t}function xu(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==Kh&&n!==zh)break;t++}return t}function Cu(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==Kh&&n!==zh)break;r--}return r}function WC(e){if(Jh.test(e))return e;if(NC.test(e))return`"${e.replace(FC,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});var JC,ci,Kt,Ou,ry,Xh,Zh,Au,Pu,VC,ny,ai,KC,zC,YC,sy,ey,QC,XC,ZC,ty,oy,iy=h(()=>{JC=/^-?\d+$/,ci=/^-?\d+n+$/,Kt=JSON.stringify,Ou=JSON.parse,ry=/^-?\d+n$/,Xh=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Zh=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Au=e=>e===void 0||typeof e=="function"||typeof e=="symbol",Pu=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",VC=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let s=typeof t=="function",o=Array.isArray(t)?new Set(t.map(String)):null,i=(f,k,E)=>(E!==null&&typeof E=="object"&&typeof E.toJSON=="function"&&(E=E.toJSON(k)),typeof E=="string"&&ci.test(E)?E+"n":typeof E=="bigint"?"rawJSON"in JSON?JSON.rawJSON(E.toString()):E.toString()+"n":(s&&(E=t.call(f,k,E)),E!==null&&typeof E=="object"&&(E instanceof Number||E instanceof String||E instanceof Boolean)&&(E=E.valueOf()),E)),a=i({"":e},"",e);if(Au(a))return;let c=a===null||typeof a!="object",u=Pu(a);if(c||u)return Kt(a);let l=[],d=0,p=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;p.length>0;){let f=p[p.length-1];f.index===0&&(l.push(f.isArray?"[":"{"),d++);let k=!1;if(f.isArray)if(f.index<f.val.length){f.first||l.push(","),n&&l.push(`
82
+ `+n.repeat(d));let E=f.val[f.index],y=i(f.val,String(f.index),E);if(Au(y))l.push("null"),f.first=!1,f.index++;else{let _=y!==null&&typeof y=="object",T=Pu(y);if(_&&!T){if(g.has(y))throw new TypeError("Converting circular structure to JSON");g.add(y),p.push({parent:f.val,key:String(f.index),val:y,isArray:Array.isArray(y),keys:Array.isArray(y)?null:Object.keys(y),index:0,first:!0}),f.first=!1,f.index++}else l.push(Kt(y)),f.first=!1,f.index++}}else k=!0;else{for(;f.index<f.keys.length;){let y=f.keys[f.index++];if(o&&!o.has(y))continue;let T=f.val[y],C=i(f.val,y,T);if(Au(C))continue;f.first||l.push(","),n?l.push(`
83
+ `+n.repeat(d)+Kt(y)+": "):l.push(Kt(y)+":");let L=C!==null&&typeof C=="object",F=Pu(C);if(L&&!F){if(g.has(C))throw new TypeError("Converting circular structure to JSON");g.add(C),p.push({parent:f.val,key:y,val:C,isArray:Array.isArray(C),keys:Array.isArray(C)?null:Object.keys(C),index:0,first:!0}),f.first=!1;break}else l.push(Kt(C)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(k=!0)}k&&(d--,!f.first&&n&&l.push(`
84
+ `+n.repeat(d)),l.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return l.join("")},ny=(e,t,r)=>{try{return"rawJSON"in JSON?Kt(e,(a,c)=>typeof c=="bigint"?JSON.rawJSON(c.toString()):typeof t=="function"?t(a,c):(Array.isArray(t)&&t.includes(a),c),r):e?Kt(e,(a,c)=>typeof c=="string"&&ci.test(c)||typeof c=="bigint"?c.toString()+"n":typeof t=="function"?t(a,c):(Array.isArray(t)&&t.includes(a),c),r).replace(Xh,"$1$2$3").replace(Zh,"$1$2$3"):Kt(e,t,r)}catch(n){if(n instanceof RangeError){let s=VC(e,t,r);return s===void 0?void 0:"rawJSON"in JSON?s:s.replace(Xh,"$1$2$3").replace(Zh,"$1$2$3")}throw n}},ai=new Map,KC=()=>{let e=JSON.parse.toString();if(ai.has(e))return ai.get(e);try{let t=JSON.parse("1",(r,n,s)=>!!s?.source&&s.source==="1");return ai.set(e,t),t}catch{return ai.set(e,!1),!1}},zC=(e,t,r,n)=>typeof t=="string"&&ry.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&ci.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,YC=(e,t)=>JSON.parse(e,(r,n,s)=>{let o=typeof n=="number",i=n>Number.MAX_SAFE_INTEGER||n<Number.MIN_SAFE_INTEGER,a=o&&i,c=s&&JC.test(s.source);return a&&c?BigInt(s.source):typeof t=="function"?t(r,n,s):n}),sy=Number.MAX_SAFE_INTEGER.toString(),ey=sy.length,QC=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,XC=/^"-?\d+n+"$/,ZC=(e,t)=>{let r={"":e},n=[{parent:r,key:"",visited:!1}];for(;n.length>0;){let s=n[n.length-1];if(s.visited){let{parent:o,key:i}=s,a=o[i];typeof a=="string"&&(ry.test(a)?a=BigInt(a.slice(0,-1)):ci.test(a)&&(a=a.slice(0,-1))),typeof t=="function"&&(a=t.call(o,i,a)),a===void 0?delete o[i]:o[i]=a,n.pop()}else{s.visited=!0;let o=s.parent[s.key];if(o!==null&&typeof o=="object"){let a=Object.keys(o);for(let c=a.length-1;c>=0;c--)n.push({parent:o,key:a[c],visited:!1})}}}return r[""]},ty=e=>e.replace(QC,(t,r,n,s)=>{let o=t[0]==='"';if(o&&XC.test(t))return t.substring(0,t.length-1)+'n"';let a=n||s,c=r&&(r.length<ey||r.length===ey&&r<=sy);return o||a||c?t:'"'+t+'n"'}),oy=(e,t)=>{if(!e)return Ou(e,t);try{if(KC())return YC(e,t);let r=ty(e);return Ou(r,(n,s,o)=>zC(n,s,o,t))}catch(r){if(r instanceof RangeError){let n=ty(e),s=Ou(n);return ZC(s,t)}throw r}}});function rO(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}async function cy(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let r=e.request?.log||console,n=e.request?.parseSuccessResponseBody!==!1,s=rO(e.body)||Array.isArray(e.body)?ny(e.body):e.body,o=Object.fromEntries(Object.entries(e.headers).map(([d,p])=>[d,String(p)])),i;try{i=await t(e.url,{method:e.method,body:s,redirect:e.request?.redirect,headers:o,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(d){let p="Unknown Error";if(d instanceof Error){if(d.name==="AbortError")throw d.status=500,d;p=d.message,d.name==="TypeError"&&"cause"in d&&(d.cause instanceof Error?p=d.cause.message:typeof d.cause=="string"&&(p=d.cause))}let g=new Dt(p,500,{request:e});throw g.cause=d,g}let a=i.status,c=i.url,u={};for(let[d,p]of i.headers)u[d]=p;let l={url:c,status:a,headers:u,data:""};if("deprecation"in u){let d=u.link&&u.link.match(/<([^<>]+)>; rel="deprecation"/),p=d&&d.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${u.sunset}${p?`. See ${p}`:""}`)}if(a===204||a===205)return l;if(e.method==="HEAD"){if(a<400)return l;throw new Dt(i.statusText,a,{response:l,request:e})}if(a===304)throw l.data=await Iu(i),new Dt("Not modified",a,{response:l,request:e});if(a>=400)throw l.data=await Iu(i),new Dt(sO(l.data),a,{response:l,request:e});return l.data=n?await Iu(i):i.body,l}async function Iu(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(ay);let r=(0,uy.parse)(t);if(nO(r)){let n="";try{return n=await e.text(),oy(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(ay):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function nO(e){return e.type==="application/json"||e.type==="application/scim+json"}function sO(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if(typeof e=="object"&&e!==null&&"message"in e){let t=e,r="documentation_url"in t?` - ${t.documentation_url}`:"";return Array.isArray(t.errors)?`${t.message}: ${t.errors.map(n=>JSON.stringify(n)).join(", ")}${r}`:`${t.message}${r}`}return`Unknown error: ${JSON.stringify(e)}`}function Lu(e,t){let r=e.defaults(t);return Object.assign(function(s,o){let i=r.merge(s,o);if(!i.request||!i.request.hook)return cy(r.parse(i));let a=(c,u)=>cy(r.parse(r.merge(c,u)));return Object.assign(a,{endpoint:r,defaults:Lu.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:Lu.bind(null,r)})}var uy,eO,tO,ay,ps,Gu=h(()=>{qh();ls();uy=Sa(Qh(),1);iy();Eu();eO="10.0.13",tO={headers:{"user-agent":`octokit-request.js/${eO} ${Vt()}`}};ay=()=>"";ps=Lu(Hh,tO);});function iO(e){return`Request failed due to following response errors:
102
85
  `+e.errors.map(t=>` - ${t.message}`).join(`
103
- `)}function j0(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let i in r)if(B0.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,s=Object.keys(n).reduce((i,a)=>M0.includes(a)?(i[a]=n[a],i):(i.variables||(i.variables={}),i.variables[a]=n[a],i),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return sb.test(o)&&(s.url=o.replace(sb,"/api/graphql")),e(s).then(i=>{if(i.data.errors){let a={};for(let c of Object.keys(i.headers))a[c]=i.headers[c];throw new F0(s,a,i.data)}return i.data.data})}function wl(e,t){let r=e.defaults(t);return Object.assign((s,o)=>j0(r,s,o),{defaults:wl.bind(null,r),endpoint:r.endpoint})}function ob(e){return wl(e,{method:"POST",url:"/graphql"})}var $0,F0,M0,B0,sb,GH,ib=h(()=>{bl();Ls();$0="0.0.0-development";F0=class extends Error{constructor(e,t,r){super(N0(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}request;headers;response;name="GraphqlResponseError";errors;data},M0=["method","baseUrl","url","headers","request","query","mediaType","operationName"],B0=["query","method","url"],sb=/\/api\/v3\/?$/;GH=wl(Gs,{headers:{"user-agent":`octokit-graphql.js/${$0} ${Xt()}`},method:"POST",url:"/graphql"});});async function H0(e){let t=U0(e),r=e.startsWith("v1.")||e.startsWith("ghs_"),n=e.startsWith("ghu_");return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function q0(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function W0(e,t,r,n){let s=t.endpoint.merge(r,n);return s.headers.authorization=q0(e),t(s)}var _l,ab,cb,U0,ub,lb=h(()=>{_l="(?:[a-zA-Z0-9_-]+)",ab="\\.",cb=new RegExp(`^${_l}${ab}${_l}${ab}${_l}$`),U0=cb.test.bind(cb);ub=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(H0.bind(null,t),{hook:W0.bind(null,t)})}});var El,db=h(()=>{El="7.0.7"});function K0(e={}){return typeof e.debug!="function"&&(e.debug=pb),typeof e.info!="function"&&(e.info=pb),typeof e.warn!="function"&&(e.warn=J0),typeof e.error!="function"&&(e.error=V0),e}var pb,J0,V0,mb,Ci,fb=h(()=>{Ls();Ay();bl();ib();lb();db();pb=()=>{},J0=console.warn.bind(console),V0=console.error.bind(console);mb=`octokit-core.js/${El} ${Xt()}`,Ci=class{static VERSION=El;static defaults(t){return class extends this{constructor(...n){let s=n[0]||{};if(typeof t=="function"){super(t(s));return}super(Object.assign({},t,s,s.userAgent&&t.userAgent?{userAgent:`${s.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(s=>!r.includes(s)))}}constructor(t={}){let r=new Oy.Collection,n={baseUrl:Gs.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${mb}`:mb,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Gs.defaults(n),this.graphql=ob(this.request).defaults(n),this.log=K0(t.log),this.hook=r,t.authStrategy){let{authStrategy:o,...i}=t,a=o(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let o=ub(t.auth);r.wrap("request",o.hook),this.auth=o}let s=this.constructor;for(let o=0;o<s.plugins.length;++o)Object.assign(this,s.plugins[o](this,t))}request;graphql;log;hook;auth}});var gb,hb=h(()=>{gb="6.0.0"});function Rl(e){e.hook.wrap("request",(t,r)=>{e.log.debug("request",r);let n=Date.now(),s=e.request.endpoint.parse(r),o=s.url.replace(r.baseUrl,"");return t(r).then(i=>{let a=i.headers["x-github-request-id"];return e.log.info(`${s.method} ${o} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i}).catch(i=>{let a=i.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${s.method} ${o} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i})})}var yb=h(()=>{hb();Rl.VERSION=gb});function Y0(e){if(!e.data)return{...e,data:[]};if(!(("total_count"in e.data||"total_commits"in e.data)&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,s=e.data.total_count,o=e.data.total_commits;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count,delete e.data.total_commits;let i=Object.keys(e.data)[0],a=e.data[i];return e.data=a,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=s,e.data.total_commits=o,e}function kl(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),s=typeof t=="function"?t:e.request,o=n.method,i=n.headers,a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{let c=await s({method:o,url:a,headers:i}),u=Y0(c);if(a=((u.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in u.data){let l=new URL(u.url),p=l.searchParams,d=parseInt(p.get("page")||"1",10),g=parseInt(p.get("per_page")||"250",10);d*g<u.data.total_commits&&(p.set("page",String(d+1)),a=l.toString())}return{value:u}}catch(c){if(c.status!==409)throw c;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function bb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),wb(e,[],kl(e,t,r)[Symbol.asyncIterator](),n)}function wb(e,t,r,n){return r.next().then(s=>{if(s.done)return t;let o=!1;function i(){o=!0}return t=t.concat(n?n(s.value,i):s.value.data),o?t:wb(e,t,r,n)})}function Sl(e){return{paginate:Object.assign(bb.bind(null,e),{iterator:kl.bind(null,e)})}}var z0,XH,_b=h(()=>{z0="0.0.0-development";XH=Object.assign(bb,{iterator:kl});Sl.VERSION=z0});var Tl,Eb=h(()=>{Tl="17.0.0"});var Q0,Rb,kb=h(()=>{Q0={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteCustomImageFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],deleteCustomImageVersionFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomImageForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],getCustomImageVersionForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listCustomImageVersionsForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"],listCustomImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingPremiumRequestUsageReportOrg:["GET /organizations/{org}/settings/billing/premium_request/usage"],getGithubBillingPremiumRequestUsageReportUser:["GET /users/{username}/settings/billing/premium_request/usage"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubBillingUsageReportUser:["GET /users/{username}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},credentials:{revoke:["POST /credentials/revoke"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],repositoryAccessForOrg:["GET /organizations/{org}/dependabot/repository-access"],setRepositoryAccessDefaultLevel:["PUT /organizations/{org}/dependabot/repository-access/default-level"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],updateRepositoryAccessForOrg:["PATCH /organizations/{org}/dependabot/repository-access"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},enterpriseTeamMemberships:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"],get:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],list:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],remove:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"]},enterpriseTeamOrganizations:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"],delete:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignment:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignments:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"]},enterpriseTeams:{create:["POST /enterprises/{enterprise}/teams"],delete:["DELETE /enterprises/{enterprise}/teams/{team_slug}"],get:["GET /enterprises/{enterprise}/teams/{team_slug}"],list:["GET /enterprises/{enterprise}/teams"],update:["PATCH /enterprises/{enterprise}/teams/{team_slug}"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addBlockedByDependency:["POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],getParent:["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listDependenciesBlockedBy:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],listDependenciesBlocking:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeDependencyBlockedBy:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createArtifactStorageRecord:["POST /orgs/{org}/artifacts/metadata/storage-record"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createWebhook:["POST /orgs/{org}/hooks"],customPropertiesForOrgsCreateOrUpdateOrganizationValues:["PATCH /organizations/{org}/org-properties/values"],customPropertiesForOrgsGetOrganizationValues:["GET /organizations/{org}/org-properties/values"],customPropertiesForReposCreateOrUpdateOrganizationDefinition:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposCreateOrUpdateOrganizationDefinitions:["PATCH /orgs/{org}/properties/schema"],customPropertiesForReposCreateOrUpdateOrganizationValues:["PATCH /orgs/{org}/properties/values"],customPropertiesForReposDeleteOrganizationDefinition:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinition:["GET /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinitions:["GET /orgs/{org}/properties/schema"],customPropertiesForReposGetOrganizationValues:["GET /orgs/{org}/properties/values"],delete:["DELETE /orgs/{org}"],deleteAttestationsBulk:["POST /orgs/{org}/attestations/delete-request"],deleteAttestationsById:["DELETE /orgs/{org}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /orgs/{org}/attestations/digest/{subject_digest}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],disableSelectedRepositoryImmutableReleasesOrganization:["DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],enableSelectedRepositoryImmutableReleasesOrganization:["PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],get:["GET /orgs/{org}"],getImmutableReleasesSettings:["GET /orgs/{org}/settings/immutable-releases"],getImmutableReleasesSettingsRepositories:["GET /orgs/{org}/settings/immutable-releases/repositories"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listArtifactStorageRecords:["GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"],listAttestationRepositories:["GET /orgs/{org}/attestations/repositories"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listAttestationsBulk:["POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setImmutableReleasesSettings:["PUT /orgs/{org}/settings/immutable-releases"],setImmutableReleasesSettingsRepositories:["PUT /orgs/{org}/settings/immutable-releases/repositories"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},projects:{addItemForOrg:["POST /orgs/{org}/projectsV2/{project_number}/items"],addItemForUser:["POST /users/{username}/projectsV2/{project_number}/items"],deleteItemForOrg:["DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],deleteItemForUser:["DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"],getFieldForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"],getFieldForUser:["GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"],getForOrg:["GET /orgs/{org}/projectsV2/{project_number}"],getForUser:["GET /users/{username}/projectsV2/{project_number}"],getOrgItem:["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],getUserItem:["GET /users/{username}/projectsV2/{project_number}/items/{item_id}"],listFieldsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields"],listFieldsForUser:["GET /users/{username}/projectsV2/{project_number}/fields"],listForOrg:["GET /orgs/{org}/projectsV2"],listForUser:["GET /users/{username}/projectsV2"],listItemsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/items"],listItemsForUser:["GET /users/{username}/projectsV2/{project_number}/items"],updateItemForOrg:["PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],updateItemForUser:["PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkImmutableReleases:["GET /repos/{owner}/{repo}/immutable-releases"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],customPropertiesForReposCreateOrUpdateRepositoryValues:["PATCH /repos/{owner}/{repo}/properties/values"],customPropertiesForReposGetRepositoryValues:["GET /repos/{owner}/{repo}/properties/values"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disableImmutableReleases:["DELETE /repos/{owner}/{repo}/immutable-releases"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enableImmutableReleases:["PUT /repos/{owner}/{repo}/immutable-releases"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],listOrgPatternConfigs:["GET /orgs/{org}/secret-scanning/pattern-configurations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],updateOrgPatternConfigs:["PATCH /orgs/{org}/secret-scanning/pattern-configurations"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteAttestationsBulk:["POST /users/{username}/attestations/delete-request"],deleteAttestationsById:["DELETE /users/{username}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /users/{username}/attestations/digest/{subject_digest}"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listAttestationsBulk:["POST /users/{username}/attestations/bulk-list{?per_page,before,after}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Rb=Q0});function vl(e){let t={};for(let r of Or.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},X0);return t}function Z0(e,t,r,n,s){let o=e.request.defaults(n);function i(...a){let c=o.endpoint.merge(...a);if(s.mapToData)return c=Object.assign({},c,{data:c[s.mapToData],[s.mapToData]:void 0}),o(c);if(s.renamed){let[u,l]=s.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${u}.${l}()`)}if(s.deprecated&&e.log.warn(s.deprecated),s.renamedParameters){let u=o.endpoint.merge(...a);for(let[l,p]of Object.entries(s.renamedParameters))l in u&&(e.log.warn(`"${l}" parameter is deprecated for "octokit.${t}.${r}()". Use "${p}" instead`),p in u||(u[p]=u[l]),delete u[l]);return o(u)}return o(...a)}return Object.assign(i,o)}var Or,X0,Sb=h(()=>{kb();Or=new Map;for(let[e,t]of Object.entries(Rb))for(let[r,n]of Object.entries(t)){let[s,o,i]=n,[a,c]=s.split(/ /),u=Object.assign({method:a,url:c},o);Or.has(e)||Or.set(e,new Map),Or.get(e).set(r,{scope:e,methodName:r,endpointDefaults:u,decorations:i})}X0={has({scope:e},t){return Or.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Or.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let s=Or.get(t).get(n);if(!s)return;let{endpointDefaults:o,decorations:i}=s;return i?r[n]=Z0(e,t,n,o,i):r[n]=e.request.defaults(o),r[n]}}});function eA(e){return{rest:vl(e)}}function xl(e){let t=vl(e);return{...t,rest:t}}var Tb=h(()=>{Eb();Sb();eA.VERSION=Tl;xl.VERSION=Tl});var vb,xb=h(()=>{vb="22.0.1"});var Cb,Ob=h(()=>{fb();yb();_b();Tb();xb();Cb=Ci.plugin(Rl,xl,Sl).defaults({userAgent:`octokit-rest.js/${vb}`})});var yq,Ab=h(()=>{hy();_y();Ob();yq=Cb.plugin(il,ki)});var Pb=h(()=>{});var Ib=h(()=>{});var Lb=h(()=>{});var Db=h(()=>{py();my();Ab();Pb();Ib();Lb()});import{execFile as oA}from"node:child_process";import{promisify as iA}from"node:util";var bW,Gb=h(()=>{"use strict";Db();tl();bW=iA(oA)});var $b=h(()=>{"use strict";Oh();Gh();$h();bi();Fh();Mh();Bh();jh();yi();Uh();Hh();qh();Wh();Vu();Jh();Vh();zh();Yh();Qh();_i();Xh();Zh();Ju();Xu();Zu();ty();ry();ny();sy();wi();Qu();Yu();iy();tl();ay();cy();uy();Gb()});import{EventEmitter as aA}from"node:events";import{spawn as cA}from"node:child_process";function Ai(e,t){let r=Number(t);return!Number.isSafeInteger(r)||r<=0?!1:!!(e.pull_request?.number===r||e.check_run?.pull_requests?.some(n=>n.number===r)||e.check_suite?.pull_requests?.some(n=>n.number===r))}function Pi(e,t){return e.workflow_run!=null&&String(e.workflow_run.id)===t}var $s,Cl,uA,lA,dA,pA,Oi,Ol=h(()=>{$s="github-webhook",Cl="github.webhook.delivery";uA="pull_request,pull_request_review,check_run,check_suite,workflow_run",lA=3,dA=1e3,pA=/no extension matched|unknown command|command not found/i,Oi=class extends aA{constructor(r,n){super();this.opts=r;this.terminate=n}child;_dead=!1;restarts=0;_mode="polling";stopping;get mode(){return this._mode}get dead(){return this._dead}start(){this._dead||this.opts.cancelSignal.aborted||(this.opts.cancelSignal.addEventListener("abort",()=>void this.stop(),{once:!0}),this.spawnChild())}async stop(){if(this.stopping)return await this.stopping;this._dead=!0,this.emit("stopped");let r=this.child;this.child=void 0,r&&(this.stopping=this.terminate(r,dA).then(()=>{}),await this.stopping)}makeWakeSignalFor(r,n){return()=>{if(this._mode!=="webhook"||this._dead)return;let s=new AbortController,o=c=>{(r==="pr"?Ai(c,n):Pi(c,n))&&(a(),s.abort())},i=()=>{a()},a=()=>{this.off("delivery",o),this.off("stopped",i)};return this.on("delivery",o),this.once("stopped",i),s.signal}}spawnChild(){if(this._dead)return;let r=this.opts.ghBin??"gh",n;try{n=cA(r,["webhook","forward",`--events=${uA}`],{cwd:this.opts.cwd,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"})}catch{return}this.child=n;let s="";n.stdout?.setEncoding("utf8"),n.stdout?.on("data",i=>{s+=i;let a;for(;(a=s.indexOf(`
104
- `))>=0;){let c=s.slice(0,a).trim();s=s.slice(a+1),c&&this.onLine(c)}});let o=[];n.stderr?.on("data",i=>{o.push(Buffer.from(i))}),n.once("error",()=>{this.child===n&&(this.child=void 0),this.scheduleRestart()}),n.once("close",i=>{if(this.child===n&&(this.child=void 0),this._dead)return;let a=Buffer.concat(o).toString("utf8");pA.test(a)||this.restarts===0&&(i===1||i===127)||this.scheduleRestart()})}onLine(r){let n;try{n=JSON.parse(r)}catch{this.emit("malformed-delivery",r);return}this._mode!=="webhook"&&(this._mode="webhook",this.emit("mode-changed","webhook")),this.emit("delivery",n)}scheduleRestart(){if(this._dead||this.restarts>=lA)return;let r=Math.min(500*Math.pow(2,this.restarts),5e3);this.restarts++,setTimeout(()=>this.spawnChild(),r).unref()}}});var Ii,Nb=h(()=>{"use strict";Ol();Ol();Pt();Ii=class extends Oi{constructor(t){super(t,Zr)}}});import{EventEmitter as mA}from"node:events";import{join as fA}from"node:path";function Pl(e){let t=Io(e.cwd),r=ey(fA(t,".red"));return new Al({...e,leases:e.leases??oy(r),lane:e.lane??zu(r),makeForwarder:e.makeForwarder??((n,s)=>new Ii({cwd:n,cancelSignal:s})),isLeaseHolderLive:e.isLeaseHolderLive??(n=>en(n.pid,n.start_time))})}var Al,Fb=h(()=>{"use strict";$b();Nb();Pt();Nc();Al=class extends mA{constructor(r){super();this.options=r}_mode="polling";cursor=0;timer;fallback;stopped=!1;syncing=!1;get mode(){return this.fallback?.mode??this._mode}async start(){let r=await this.options.leases.read($s).catch(()=>{});if(!r||!await this.options.isLeaseHolderLive(r)){this.startFallback();return}let n=await this.options.lane.read().catch(()=>{});if(!n){this.degradeToFallback();return}this.cursor=n.length,this._mode="webhook",this.emit("mode-changed","webhook"),this.timer=setInterval(()=>void this.sync().catch(()=>this.degradeToFallback()),this.options.pollIntervalMs??100),this.timer.unref(),this.options.cancelSignal.addEventListener("abort",()=>void this.stop(),{once:!0})}async stop(){this.stopped||(this.stopped=!0,this.timer&&clearInterval(this.timer),await this.fallback?.stop(),this.emit("stopped"))}makeWakeSignalFor(r,n){return()=>{if(this.fallback)return this.fallback.makeWakeSignalFor(r,n)();if(this._mode!=="webhook"||this.stopped)return;let s=new AbortController,o=a=>{(r==="pr"?Ai(a,n):Pi(a,n))&&(i(),s.abort())},i=()=>{this.off("delivery",o),this.off("stopped",i)};return this.on("delivery",o),this.once("stopped",i),s.signal}}startFallback(){this.fallback||this.stopped||(this.fallback=this.options.makeForwarder(this.options.cwd,this.options.cancelSignal),this.fallback.on("mode-changed",r=>{this.emit("mode-changed",r)}),this.fallback.on("delivery",r=>{this.emit("delivery",r)}),this.fallback.start())}degradeToFallback(){this.timer&&clearInterval(this.timer),this.timer=void 0,this._mode="polling",this.startFallback()}async sync(){if(!(this.syncing||this.stopped)){this.syncing=!0;try{let r=await this.options.lane.read();r.length<this.cursor&&(this.cursor=0);let n=r.slice(this.cursor);this.cursor=r.length;for(let o of n)o.singleton===$s&&o.kind===Cl&&o.payload&&this.emit("delivery",o.payload);let s=await this.options.leases.read($s);(!s||!await this.options.isLeaseHolderLive(s))&&this.degradeToFallback()}finally{this.syncing=!1}}}}});var Il={};K(Il,{listWaits:()=>Do,renderWaitHelp:()=>Is,runWait:()=>yA});import{randomUUID as Mb}from"node:crypto";import{mkdir as gA,rm as hA}from"node:fs/promises";async function yA(e,t=process.cwd()){let r;try{r=await xf(e)}catch(n){return await RA(e,n)}if(r.kind==="help"||e.includes("--help")||e.includes("-h"))return process.stdout.write(Is()),0;if(r.kind==="ls"){let n={schema:wf,version:1,waits:await Do(t)};return process.stdout.write(on(n,r.options.format)),0}return Gc(r.kind)?await bA({...r,kind:r.kind},t):(process.stdout.write(Is()),2)}async function bA(e,t){let r=e.kind,n=jc({id:Mb(),kind:r,target:EA(e),reason:e.options.reason,pid:process.pid,pid_start_time:await ts(process.pid),started_at:new Date().toISOString(),deadline_at:new Date(Date.now()+e.options.timeoutMs).toISOString(),timeout_ms:e.options.timeoutMs,poll_tier:Lc[r],status:"running",attempts:0}),s=Df(t,n.id),o=new AbortController,i,a=l=>{i=l,o.abort()},c=()=>a("SIGINT"),u=()=>a("SIGTERM");process.once("SIGINT",c),process.once("SIGTERM",u);try{await gA(tn(t),{recursive:!0}),await rn(s,n);let l=await wA(e,t,s,n,o.signal);i&&(l={...l,verdict:fe(`wait interrupted by ${i}`,l.verdict.details)});let p=await Ff({kind:r,entry:n,verdict:l.verdict,options:e.options,cwd:t,cleanupProven:l.cleanupProven,survivors:l.survivors});return process.stdout.write(on(p.result,e.options.format)),p.exitCode}catch(l){let p=fe(l instanceof Error?l.message:String(l)),d=as(r,n,p,{status:"success"},new Date().toISOString());return await cs(e.options.resultFile,d,e.options.format).catch(()=>{}),process.stdout.write(on(d,e.options.format)),2}finally{process.removeListener("SIGINT",c),process.removeListener("SIGTERM",u),await hA(s,{force:!0}).catch(()=>{})}}async function wA(e,t,r,n,s){let o={cwd:t,signal:s,timeoutMs:e.options.probeTimeoutMs};switch(e.kind){case"cmd":return await dg({commandLine:e.commandLine??"",options:e.options,cwd:t,spoolDir:Pf(t),registryPath:r,entry:n,signal:s});case"pr":{let i=e.target??"";if(!/^[1-9][0-9]*$/.test(i))return{verdict:fe("missing PR number")};n.webhook_mode="polling";let a=Pl({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await Jo({probe:Sh(i,o,{emptyChecksGraceMs:ns("RSP_WAIT_PR_EMPTY_CHECKS_GRACE_MS",3e4)}),timeoutMs:e.options.timeoutMs,baseSleepMs:ns("RSP_WAIT_PR_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("pr",i),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"run":{let i=await _A(e,o,r,n);if(!i.ok)return{verdict:fe(i.reason)};n.webhook_mode="polling";let a=Pl({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await Jo({probe:()=>Th(i.value,o),timeoutMs:e.options.timeoutMs,baseSleepMs:ns("RSP_WAIT_RUN_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("run",i.value),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"release":return await Jo({probe:()=>xh(e.tagGlob,new Date(n.started_at),o),timeoutMs:e.options.timeoutMs,baseSleepMs:ns("RSP_WAIT_RELEASE_POLL_MS",6e4),registryPath:r,entry:n,signal:s})}}async function _A(e,t,r,n){if(e.target)return{ok:!0,value:e.target};if(!(e.latest&&e.branch))return{ok:!1,reason:"missing run id"};let s=await vh(e.branch,t);return s?(e.target=s,n.target=`run:${s}`,await rn(r,n),{ok:!0,value:s}):{ok:!1,reason:`no run found for branch ${e.branch}`}}function EA(e){return e.kind==="cmd"?`cmd:${e.commandLine??""}`:e.kind==="run"&&e.branch&&e.latest?`run:${e.branch}:latest`:e.kind==="release"?`release:${e.tagGlob??"*"}`:`${e.kind}:${e.target??""}`}async function RA(e,t){let r=e.includes("--json")?"json":"toon",n=e.indexOf("--result-file"),s=n>=0?e[n+1]:void 0,o=Gc(e[1])?e[1]:"cmd",i=new Date().toISOString(),a=jc({id:Mb(),kind:o,target:`${o}:`,reason:"",pid:process.pid,started_at:i,deadline_at:i,timeout_ms:0,poll_tier:Lc[o],status:"indeterminate",attempts:0}),c=as(o,a,fe(t instanceof Error?t.message:String(t)),{status:"success"},i);return await cs(s,c,r).catch(()=>{}),process.stdout.write(on(c,r)),2}var Ll=h(()=>{"use strict";Cf();Bf();mg();_r();Fc();Ch();Pt();is();Wu();Fb();is();Wu()});import{existsSync as xA}from"node:fs";import{join as CA}from"node:path";function OA(){for(let e of(process.env.PATH??"").split(":"))if(e&&xA(CA(e,"rsp")))return!0;return!1}function Ns(){return OA()?["rsp"]:[process.execPath,process.argv[1]]}var Dl=h(()=>{"use strict"});var Li={};K(Li,{parseProxyCommandLine:()=>qb,rewriteProxyCommandLine:()=>Hb,runProxy:()=>IA});import{spawn as AA}from"node:child_process";function PA(e){return/[^\w@%+=:,./-]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}async function IA(e,t){let r="",n="",s=[],o=process.hrtime.bigint();try{if(r=qb(e),process.env.RSP_PROXY_FAIL_INTERNAL==="1")throw new Error("forced proxy failure");let c=Hb(r,t.level??"lossless");n=c.commandLine,s=c.matches}catch(c){if(r)return await LA(t.telemetryRoot,r,c),await Ub(r);throw c}for(let c of s)await DA(t.telemetryRoot,c);let i=await Ub(n||r),a=Number(process.hrtime.bigint()-o)/1e6;return await Dt(t.telemetryRoot,{collection:Fe,ts:new Date().toISOString(),command:r,wrapper:"proxy",loss:"lossless",elided:!1,raw_bytes:0,emitted_bytes:0,wrapper_ms:a,accounting_recorded:!1}),i}function Hb(e,t="lossless",r=Ns()){let n=BA(e),s=[];return{commandLine:n.map((i,a)=>{if(i.kind==="operator"||MA(n,a)==="|")return i.text;let c=GA(i.text,t,r);return c?(s.push(c.match),c.text):i.text}).join(""),matches:s}}function qb(e){if(e[0]!=="proxy")throw new Error("expected rsp proxy -- <command line>");let t=e.indexOf("--"),r=t>=0?e.slice(t+1):e.slice(1),n=r.length===1?r[0]:r.join(" ");if(!n.trim())throw new Error("usage: rsp proxy -- <command line>");return n}async function LA(e,t,r){await Dt(e,{collection:he,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t,command_family:Be(t),decision:"failed-open",reason:"proxy-internal-error",error:r instanceof Error?r.name:typeof r})}async function DA(e,t){await Dt(e,{collection:he,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t.command,command_family:t.commandFamily,decision:t.decision,reason:t.reason,capability_id:t.capabilityId})}async function Ub(e){let t=AA(e,{shell:!0,stdio:"inherit"}),r=ke();return t.once("close",r),t.once("error",r),await new Promise(n=>{t.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
105
- `),n(127)}),t.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}function GA(e,t,r){let n=e.match(/^\s*/)?.[0]??"",s=e.match(/\s*$/)?.[0]??"",o=e.trim();if(!o)return null;let i=UA(o);if(!i)return null;let a=FA(i);if(a>=i.length)return null;let c=i.slice(a),u=c.map(f=>f.value);if(kr(u))return{text:e,match:{command:c.map(f=>f.raw).join(" "),commandFamily:Be(u.join(" ")),decision:"passed",reason:"lossless-gh-json-jq"}};let l=$A(c);if(!l)return null;let p=i.slice(0,a).map(f=>f.raw),d=t==="lossless"?[]:[`--${t}`],g=[...p,...r.map(PA),...d,...l.wrapperWords].join(" ");return{text:`${n}${g}${s}`,match:{command:c.map(f=>f.raw).join(" "),commandFamily:Be(u.join(" ")),decision:"contributed",reason:"proxy-segment",capabilityId:l.capabilityId}}}function $A(e){let t=e.map(n=>n.value),r=e.map(n=>n.raw);return t[0]==="git"&&["status","log","diff","show","blame"].includes(t[1]??"")?{capabilityId:`git:${t[1]}`,wrapperWords:r}:t[0]==="git"&&t[1]==="branch"&&t[2]==="-av"?{capabilityId:"git:branch:av",wrapperWords:r}:t[0]==="gh"&&["pr","issue","run"].includes(t[1]??"")&&["list","view"].includes(t[2]??"")?{capabilityId:`gh:${t[1]}:${t[2]}`,wrapperWords:r}:t[0]==="vitest"?{capabilityId:t[1]==="run"?"vitest:run":"vitest",wrapperWords:r}:t[0]==="cargo"&&t[1]==="test"?{capabilityId:"cargo:test",wrapperWords:r}:NA(t,r)}function NA(e,t){return e[0]==="cat"&&e.length===2&&Gl(e[1])?{capabilityId:"cat:file",wrapperWords:["cat",t[1]]}:(e[0]==="head"||e[0]==="tail")&&e.length===2&&Gl(e[1])?{capabilityId:`cat:${e[0]}`,wrapperWords:["cat",`--${e[0]}`,"10",t[1]]}:(e[0]==="head"||e[0]==="tail")&&e.length===4&&e[1]==="-n"&&/^[1-9][0-9]*$/.test(e[2])&&Gl(e[3])?{capabilityId:`cat:${e[0]}`,wrapperWords:["cat",`--${e[0]}`,e[2],t[3]]}:null}function Gl(e){return!!e&&!e.startsWith("-")}function FA(e){let t=0;for(;t<e.length&&pn(e[t].value);)t+=1;if(e[t]?.value!=="env")return t;for(t+=1;t<e.length&&pn(e[t].value);)t+=1;return t}function MA(e,t){for(let r=t+1;r<e.length;r+=1)if(e[r].kind==="operator")return e[r].text}function BA(e){let t=[],r=0,n,s=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(s){s=!1;continue}if(i==="\\"){s=!0;continue}if(n){i===n&&(n=void 0);continue}if(i==="'"||i==='"'){n=i;continue}let a=jA(e,o);a&&(o>r&&t.push({kind:"segment",text:e.slice(r,o)}),t.push({kind:"operator",text:a}),o+=a.length-1,r=o+1)}return r<e.length&&t.push({kind:"segment",text:e.slice(r)}),t}function jA(e,t){let r=e.slice(t,t+2);if(r==="&&"||r==="||")return r;let n=e[t];return n===";"||n==="|"?n:void 0}function UA(e){let t=[],r="",n="",s,o=!1,i=!1,a=()=>{i&&(t.push({raw:r,value:n}),r="",n="",i=!1)};for(let c=0;c<e.length;c+=1){let u=e[c];if(o){r+=u,n+=u,o=!1,i=!0;continue}if(u==="\\"){r+=u,o=!0,i=!0;continue}if(s){r+=u,u===s?s=void 0:n+=u,i=!0;continue}if(u==="'"||u==='"'){r+=u,s=u,i=!0;continue}if(/[ \t]/.test(u)){a();continue}if(/[()<>`]/.test(u))return null;r+=u,n+=u,i=!0}return s||o?null:(a(),t)}var Di=h(()=>{"use strict";oe();fs();Dl();et()});function Vb(e,t={}){let r=HA(e);if(r.length<12)return[];let n=new Map,s=new Map;for(let d of r){s.set(d.signature,(s.get(d.signature)??0)+1);for(let g of new Set(d.tokens))n.set(g,(n.get(g)??0)+1)}let o=r.map(d=>d.length),i=r.map(d=>d.tokens.length),a=r.map(d=>d.numbers.length===0?0:Math.max(...d.numbers.map(Math.abs))),c=$l(o),u=$l(i),l=$l(a),p=t.excludedByteRanges??[];return r.filter(d=>d.text.trim().length>0).filter(d=>!p.some(g=>zA(d.start,d.end,g.start,g.end))).map(d=>({line:d,score:Nl(d.length,c)+Nl(d.tokens.length,u)+Nl(d.numbers.length===0?0:Math.max(...d.numbers.map(Math.abs)),l)+VA(d.tokens,n,r.length)+KA(d.signature,s,r.length)})).filter(d=>d.score>=(t.minScore??7)).sort((d,g)=>g.score-d.score||d.line.index-g.line.index).slice(0,t.maxOutliers??3).sort((d,g)=>d.line.index-g.line.index).map(d=>({lineNumber:d.line.index+1,score:Math.round(d.score*100)/100,text:d.line.text}))}function HA(e){let t=[],r=0,n=0;for(let s of e.matchAll(/\n/g)){let o=s.index??e.length;t.push(Wb(n++,r,o,e.slice(r,o).replace(/\r$/,""))),r=o+1}return(r<e.length||e.length===0)&&t.push(Wb(n,r,e.length,e.slice(r).replace(/\r$/,""))),t}function Wb(e,t,r,n){return{index:e,start:t,end:r,text:n,signature:qA(n),tokens:WA(n),numbers:JA(n),length:n.length}}function qA(e){return e.replace(/[A-Z]+/g,"A").replace(/[a-z]+/g,"a").replace(/\d+(?:\.\d+)?/g,"0").replace(/\s+/g," ").slice(0,160)}function WA(e){return e.toLowerCase().match(/[a-z0-9_.:/-]{3,}/g)??[]}function JA(e){return[...e.matchAll(/[-+]?\d+(?:\.\d+)?/g)].map(t=>Number(t[0])).filter(t=>Number.isFinite(t))}function VA(e,t,r){let n=[...new Set(e)];if(n.length===0)return 0;let s=n.map(o=>Math.log2(r/Math.max(1,t.get(o)??r))).sort((o,i)=>i-o).slice(0,6);return s.reduce((o,i)=>o+i,0)/Math.max(1,s.length)}function KA(e,t,r){return Math.log2(r/Math.max(1,t.get(e)??r))}function $l(e){let t=Jb(e),r=Jb(e.map(n=>Math.abs(n-t)))||1;return{median:t,mad:r}}function Nl(e,t){return Math.abs(e-t.median)/t.mad}function Jb(e){let t=[...e].sort((n,s)=>n-s),r=Math.floor(t.length/2);return t.length===0?0:t.length%2===1?t[r]:((t[r-1]??0)+(t[r]??0))/2}function zA(e,t,r,n){return e<n&&r<t}var Kb=h(()=>{"use strict"});var Fl={};K(Fl,{DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>It,GIT_LOG_MACHINE_FIELDS:()=>Yb,StructuredUsageError:()=>Gi,cleanStatusPayload:()=>ew,recoveryInstruction:()=>rt,renderGitContract:()=>Qb,runGitWrapper:()=>QA});import{spawn as YA}from"node:child_process";async function QA(e,t){let r=Xb(e),n=Zb(r.argv),s=await tP(n,r.argv.slice(1));return Qb(e,s,t)}async function Qb(e,t,r){let n=Xb(e);if((t.status??0)!==0||t.signal){let p=Ve(e.join(" "),t.stdout,t.stderr);return{stdout:J(p),stderr:Buffer.from(t.stderr),status:p.exitCode??1,signal:t.signal}}let s=Zb(n.argv),o;try{o=rP(s,n.argv,t.stdout,n.query)}catch(p){if(p instanceof $i)return{stdout:Buffer.from(t.stdout),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,rawOutput:Buffer.from(t.stdout),degradation:{reason:p.reason,family:"git status",stderrHead:p.message}};throw p}let i=$(o);if(XA(s,i,n.full,r))return{stdout:Buffer.from(i),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o};let a=_P(o);if(!a)return{stdout:Buffer.from(i),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o};let c=Buffer.byteLength(i),u=await r.store?.mint(Buffer.from(i),{command:e.join(" "),loss:{level:"terse",bytes_elided:c}});if(!u)throw new Error("terse git output requires an elision store");let l=`\u2026 elided ${a.rowsElided} rows (+${c}) \u2014 ${rt(u)}
86
+ `)}function lO(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let i in r)if(uO.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,s=Object.keys(n).reduce((i,a)=>cO.includes(a)?(i[a]=n[a],i):(i.variables||(i.variables={}),i.variables[a]=n[a],i),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return ly.test(o)&&(s.url=o.replace(ly,"/api/graphql")),e(s).then(i=>{if(i.data.errors){let a={};for(let c of Object.keys(i.headers))a[c]=i.headers[c];throw new aO(s,a,i.data)}return i.data.data})}function Du(e,t){let r=e.defaults(t);return Object.assign((s,o)=>lO(r,s,o),{defaults:Du.bind(null,r),endpoint:r.endpoint})}function dy(e){return Du(e,{method:"POST",url:"/graphql"})}var oO,aO,cO,uO,ly,DU,py=h(()=>{Gu();ls();oO="0.0.0-development";aO=class extends Error{constructor(e,t,r){super(iO(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}request;headers;response;name="GraphqlResponseError";errors;data},cO=["method","baseUrl","url","headers","request","query","mediaType","operationName"],uO=["query","method","url"],ly=/\/api\/v3\/?$/;DU=Du(ps,{headers:{"user-agent":`octokit-graphql.js/${oO} ${Vt()}`},method:"POST",url:"/graphql"});});async function pO(e){let t=dO(e),r=e.startsWith("v1.")||e.startsWith("ghs_"),n=e.startsWith("ghu_");return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function mO(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function fO(e,t,r,n){let s=t.endpoint.merge(r,n);return s.headers.authorization=mO(e),t(s)}var $u,my,fy,dO,gy,hy=h(()=>{$u="(?:[a-zA-Z0-9_-]+)",my="\\.",fy=new RegExp(`^${$u}${my}${$u}${my}${$u}$`),dO=fy.test.bind(fy);gy=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(pO.bind(null,t),{hook:fO.bind(null,t)})}});var Nu,yy=h(()=>{Nu="7.0.7"});function yO(e={}){return typeof e.debug!="function"&&(e.debug=by),typeof e.info!="function"&&(e.info=by),typeof e.warn!="function"&&(e.warn=gO),typeof e.error!="function"&&(e.error=hO),e}var by,gO,hO,wy,ui,_y=h(()=>{ls();$h();Gu();py();hy();yy();by=()=>{},gO=console.warn.bind(console),hO=console.error.bind(console);wy=`octokit-core.js/${Nu} ${Vt()}`,ui=class{static VERSION=Nu;static defaults(t){return class extends this{constructor(...n){let s=n[0]||{};if(typeof t=="function"){super(t(s));return}super(Object.assign({},t,s,s.userAgent&&t.userAgent?{userAgent:`${s.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(s=>!r.includes(s)))}}constructor(t={}){let r=new Dh.Collection,n={baseUrl:ps.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${wy}`:wy,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=ps.defaults(n),this.graphql=dy(this.request).defaults(n),this.log=yO(t.log),this.hook=r,t.authStrategy){let{authStrategy:o,...i}=t,a=o(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let o=gy(t.auth);r.wrap("request",o.hook),this.auth=o}let s=this.constructor;for(let o=0;o<s.plugins.length;++o)Object.assign(this,s.plugins[o](this,t))}request;graphql;log;hook;auth}});var Ey,Ry=h(()=>{Ey="6.0.0"});function Fu(e){e.hook.wrap("request",(t,r)=>{e.log.debug("request",r);let n=Date.now(),s=e.request.endpoint.parse(r),o=s.url.replace(r.baseUrl,"");return t(r).then(i=>{let a=i.headers["x-github-request-id"];return e.log.info(`${s.method} ${o} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i}).catch(i=>{let a=i.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${s.method} ${o} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i})})}var ky=h(()=>{Ry();Fu.VERSION=Ey});function wO(e){if(!e.data)return{...e,data:[]};if(!(("total_count"in e.data||"total_commits"in e.data)&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,s=e.data.total_count,o=e.data.total_commits;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count,delete e.data.total_commits;let i=Object.keys(e.data)[0],a=e.data[i];return e.data=a,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=s,e.data.total_commits=o,e}function Mu(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),s=typeof t=="function"?t:e.request,o=n.method,i=n.headers,a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{let c=await s({method:o,url:a,headers:i}),u=wO(c);if(a=((u.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in u.data){let l=new URL(u.url),d=l.searchParams,p=parseInt(d.get("page")||"1",10),g=parseInt(d.get("per_page")||"250",10);p*g<u.data.total_commits&&(d.set("page",String(p+1)),a=l.toString())}return{value:u}}catch(c){if(c.status!==409)throw c;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function Sy(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),Ty(e,[],Mu(e,t,r)[Symbol.asyncIterator](),n)}function Ty(e,t,r,n){return r.next().then(s=>{if(s.done)return t;let o=!1;function i(){o=!0}return t=t.concat(n?n(s.value,i):s.value.data),o?t:Ty(e,t,r,n)})}function Bu(e){return{paginate:Object.assign(Sy.bind(null,e),{iterator:Mu.bind(null,e)})}}var bO,XU,vy=h(()=>{bO="0.0.0-development";XU=Object.assign(Sy,{iterator:Mu});Bu.VERSION=bO});var ju,xy=h(()=>{ju="17.0.0"});var _O,Cy,Oy=h(()=>{_O={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteCustomImageFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],deleteCustomImageVersionFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomImageForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],getCustomImageVersionForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listCustomImageVersionsForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"],listCustomImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingPremiumRequestUsageReportOrg:["GET /organizations/{org}/settings/billing/premium_request/usage"],getGithubBillingPremiumRequestUsageReportUser:["GET /users/{username}/settings/billing/premium_request/usage"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubBillingUsageReportUser:["GET /users/{username}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},credentials:{revoke:["POST /credentials/revoke"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],repositoryAccessForOrg:["GET /organizations/{org}/dependabot/repository-access"],setRepositoryAccessDefaultLevel:["PUT /organizations/{org}/dependabot/repository-access/default-level"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],updateRepositoryAccessForOrg:["PATCH /organizations/{org}/dependabot/repository-access"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},enterpriseTeamMemberships:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"],get:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],list:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],remove:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"]},enterpriseTeamOrganizations:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"],delete:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignment:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignments:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"]},enterpriseTeams:{create:["POST /enterprises/{enterprise}/teams"],delete:["DELETE /enterprises/{enterprise}/teams/{team_slug}"],get:["GET /enterprises/{enterprise}/teams/{team_slug}"],list:["GET /enterprises/{enterprise}/teams"],update:["PATCH /enterprises/{enterprise}/teams/{team_slug}"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addBlockedByDependency:["POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],getParent:["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listDependenciesBlockedBy:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],listDependenciesBlocking:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeDependencyBlockedBy:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createArtifactStorageRecord:["POST /orgs/{org}/artifacts/metadata/storage-record"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createWebhook:["POST /orgs/{org}/hooks"],customPropertiesForOrgsCreateOrUpdateOrganizationValues:["PATCH /organizations/{org}/org-properties/values"],customPropertiesForOrgsGetOrganizationValues:["GET /organizations/{org}/org-properties/values"],customPropertiesForReposCreateOrUpdateOrganizationDefinition:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposCreateOrUpdateOrganizationDefinitions:["PATCH /orgs/{org}/properties/schema"],customPropertiesForReposCreateOrUpdateOrganizationValues:["PATCH /orgs/{org}/properties/values"],customPropertiesForReposDeleteOrganizationDefinition:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinition:["GET /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinitions:["GET /orgs/{org}/properties/schema"],customPropertiesForReposGetOrganizationValues:["GET /orgs/{org}/properties/values"],delete:["DELETE /orgs/{org}"],deleteAttestationsBulk:["POST /orgs/{org}/attestations/delete-request"],deleteAttestationsById:["DELETE /orgs/{org}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /orgs/{org}/attestations/digest/{subject_digest}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],disableSelectedRepositoryImmutableReleasesOrganization:["DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],enableSelectedRepositoryImmutableReleasesOrganization:["PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],get:["GET /orgs/{org}"],getImmutableReleasesSettings:["GET /orgs/{org}/settings/immutable-releases"],getImmutableReleasesSettingsRepositories:["GET /orgs/{org}/settings/immutable-releases/repositories"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listArtifactStorageRecords:["GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"],listAttestationRepositories:["GET /orgs/{org}/attestations/repositories"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listAttestationsBulk:["POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setImmutableReleasesSettings:["PUT /orgs/{org}/settings/immutable-releases"],setImmutableReleasesSettingsRepositories:["PUT /orgs/{org}/settings/immutable-releases/repositories"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},projects:{addItemForOrg:["POST /orgs/{org}/projectsV2/{project_number}/items"],addItemForUser:["POST /users/{username}/projectsV2/{project_number}/items"],deleteItemForOrg:["DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],deleteItemForUser:["DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"],getFieldForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"],getFieldForUser:["GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"],getForOrg:["GET /orgs/{org}/projectsV2/{project_number}"],getForUser:["GET /users/{username}/projectsV2/{project_number}"],getOrgItem:["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],getUserItem:["GET /users/{username}/projectsV2/{project_number}/items/{item_id}"],listFieldsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields"],listFieldsForUser:["GET /users/{username}/projectsV2/{project_number}/fields"],listForOrg:["GET /orgs/{org}/projectsV2"],listForUser:["GET /users/{username}/projectsV2"],listItemsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/items"],listItemsForUser:["GET /users/{username}/projectsV2/{project_number}/items"],updateItemForOrg:["PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],updateItemForUser:["PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkImmutableReleases:["GET /repos/{owner}/{repo}/immutable-releases"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],customPropertiesForReposCreateOrUpdateRepositoryValues:["PATCH /repos/{owner}/{repo}/properties/values"],customPropertiesForReposGetRepositoryValues:["GET /repos/{owner}/{repo}/properties/values"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disableImmutableReleases:["DELETE /repos/{owner}/{repo}/immutable-releases"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enableImmutableReleases:["PUT /repos/{owner}/{repo}/immutable-releases"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],listOrgPatternConfigs:["GET /orgs/{org}/secret-scanning/pattern-configurations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],updateOrgPatternConfigs:["PATCH /orgs/{org}/secret-scanning/pattern-configurations"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteAttestationsBulk:["POST /users/{username}/attestations/delete-request"],deleteAttestationsById:["DELETE /users/{username}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /users/{username}/attestations/digest/{subject_digest}"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listAttestationsBulk:["POST /users/{username}/attestations/bulk-list{?per_page,before,after}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Cy=_O});function Uu(e){let t={};for(let r of Rr.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},EO);return t}function RO(e,t,r,n,s){let o=e.request.defaults(n);function i(...a){let c=o.endpoint.merge(...a);if(s.mapToData)return c=Object.assign({},c,{data:c[s.mapToData],[s.mapToData]:void 0}),o(c);if(s.renamed){let[u,l]=s.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${u}.${l}()`)}if(s.deprecated&&e.log.warn(s.deprecated),s.renamedParameters){let u=o.endpoint.merge(...a);for(let[l,d]of Object.entries(s.renamedParameters))l in u&&(e.log.warn(`"${l}" parameter is deprecated for "octokit.${t}.${r}()". Use "${d}" instead`),d in u||(u[d]=u[l]),delete u[l]);return o(u)}return o(...a)}return Object.assign(i,o)}var Rr,EO,Ay=h(()=>{Oy();Rr=new Map;for(let[e,t]of Object.entries(Cy))for(let[r,n]of Object.entries(t)){let[s,o,i]=n,[a,c]=s.split(/ /),u=Object.assign({method:a,url:c},o);Rr.has(e)||Rr.set(e,new Map),Rr.get(e).set(r,{scope:e,methodName:r,endpointDefaults:u,decorations:i})}EO={has({scope:e},t){return Rr.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Rr.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let s=Rr.get(t).get(n);if(!s)return;let{endpointDefaults:o,decorations:i}=s;return i?r[n]=RO(e,t,n,o,i):r[n]=e.request.defaults(o),r[n]}}});function kO(e){return{rest:Uu(e)}}function Hu(e){let t=Uu(e);return{...t,rest:t}}var Py=h(()=>{xy();Ay();kO.VERSION=ju;Hu.VERSION=ju});var Iy,Ly=h(()=>{Iy="22.0.1"});var Gy,Dy=h(()=>{_y();ky();vy();Py();Ly();Gy=ui.plugin(Fu,Hu,Bu).defaults({userAgent:`octokit-rest.js/${Iy}`})});function $y(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function qu(e){let t=e.etags??$y(),r=new SO({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{request:{fetch:e.fetchImpl}}:{},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),n=async s=>{let o=t.get(s.cacheKey),i={...s.parameters??{}},a=ms(i.headers)?i.headers:{};i.headers={...a,...o?{"if-none-match":o.etag}:{}};try{let c=await r.request(s.route,i),u=c.headers,l=di(u,"etag");return l!==void 0&&t.set(s.cacheKey,{etag:l,data:c.data,headers:u}),await e.attribution?.record({operation:s.operation,cost:1,actor:s.actor}),{data:c.data,headers:u,quotaFree:!1}}catch(c){if(li(c)===304){if(o===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(s.cacheKey)} without a held answer to reuse`,{cause:c});let u=Ny(c),l={...o.headers,...u},d=di(l,"etag")??o.etag;return t.set(s.cacheKey,{etag:d,data:o.data,headers:l}),await e.attribution?.record({operation:s.operation,cost:0,actor:s.actor}),{data:o.data,headers:l,quotaFree:!0}}throw li(c)===401?new fs({cause:c}):c}};return{conditionalRest:n,async conditionalPaginate(s){let o=[],i={},a=0,c=!0,u=1;for(;;){let l=await n({...s,cacheKey:`${s.cacheKey}:page:${u}`,parameters:{...s.parameters??{},per_page:100,page:u}});if(a+=1,c=c&&l.quotaFree,!Array.isArray(l.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(s.cacheKey)} page ${u}`);if(o.push(...l.data),i=l.headers,!TO(l.headers))break;u+=1}return{data:o,headers:i,requestCount:a,quotaFree:c}},async graphql(s,o={},i){try{let a=await r.graphql(s,o);return i&&await e.attribution?.record({operation:i.operation,cost:1,actor:i.actor}),a}catch(a){throw li(a)===401?new fs({cause:a}):a}}}}function TO(e){let t=di(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Wu(e){let t=li(e),r=Ny(e);return t===429||t===403&&di(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function li(e){if(ms(e))return typeof e.status=="number"?e.status:void 0}function Ny(e){return!ms(e)||!ms(e.response)||!ms(e.response.headers)?{}:e.response.headers}function di(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function ms(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var SO,fs,Fy=h(()=>{Rh();vh();Dy();SO=Gy.plugin(Ru,si);fs=class extends Error{status=401;constructor(t){super("GitHub rejected the host credential; refresh the stored login with `gh auth login` or provide a current host token",t),this.name="GithubCredentialError"}}});var My=h(()=>{});var By=h(()=>{});var jy=h(()=>{});var Ju=h(()=>{bh();wh();Fy();My();By();jy()});import{execFile as AO}from"node:child_process";import{promisify as PO}from"node:util";var aq,Uy=h(()=>{"use strict";Ju();mu();aq=PO(AO)});var Hy=h(()=>{"use strict";Lg();Mg();Bg();Xo();Ug();Hg();qg();Wg();Qo();Jg();Vg();Kg();zg();ou();Yg();Qg();Zg();eh();th();ei();rh();nh();su();lu();du();oh();ih();ah();ch();Zo();uu();cu();lh();mu();dh();ph();mh();Uy()});import{EventEmitter as IO}from"node:events";import{spawn as LO}from"node:child_process";function mi(e,t){let r=Number(t);return!Number.isSafeInteger(r)||r<=0?!1:!!(e.pull_request?.number===r||e.check_run?.pull_requests?.some(n=>n.number===r)||e.check_suite?.pull_requests?.some(n=>n.number===r))}function fi(e,t){return e.workflow_run!=null&&String(e.workflow_run.id)===t}var gs,Vu,GO,DO,$O,NO,pi,Ku=h(()=>{gs="github-webhook",Vu="github.webhook.delivery";GO="pull_request,pull_request_review,check_run,check_suite,workflow_run",DO=3,$O=1e3,NO=/no extension matched|unknown command|command not found/i,pi=class extends IO{constructor(r,n){super();this.opts=r;this.terminate=n}child;_dead=!1;restarts=0;_mode="polling";stopping;get mode(){return this._mode}get dead(){return this._dead}start(){this._dead||this.opts.cancelSignal.aborted||(this.opts.cancelSignal.addEventListener("abort",()=>void this.stop(),{once:!0}),this.spawnChild())}async stop(){if(this.stopping)return await this.stopping;this._dead=!0,this.emit("stopped");let r=this.child;this.child=void 0,r&&(this.stopping=this.terminate(r,$O).then(()=>{}),await this.stopping)}makeWakeSignalFor(r,n){return()=>{if(this._mode!=="webhook"||this._dead)return;let s=new AbortController,o=c=>{(r==="pr"?mi(c,n):fi(c,n))&&(a(),s.abort())},i=()=>{a()},a=()=>{this.off("delivery",o),this.off("stopped",i)};return this.on("delivery",o),this.once("stopped",i),s.signal}}spawnChild(){if(this._dead)return;let r=this.opts.ghBin??"gh",n;try{n=LO(r,["webhook","forward",`--events=${GO}`],{cwd:this.opts.cwd,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"})}catch{return}this.child=n;let s="";n.stdout?.setEncoding("utf8"),n.stdout?.on("data",i=>{s+=i;let a;for(;(a=s.indexOf(`
87
+ `))>=0;){let c=s.slice(0,a).trim();s=s.slice(a+1),c&&this.onLine(c)}});let o=[];n.stderr?.on("data",i=>{o.push(Buffer.from(i))}),n.once("error",()=>{this.child===n&&(this.child=void 0),this.scheduleRestart()}),n.once("close",i=>{if(this.child===n&&(this.child=void 0),this._dead)return;let a=Buffer.concat(o).toString("utf8");NO.test(a)||this.restarts===0&&(i===1||i===127)||this.scheduleRestart()})}onLine(r){let n;try{n=JSON.parse(r)}catch{this.emit("malformed-delivery",r);return}this._mode!=="webhook"&&(this._mode="webhook",this.emit("mode-changed","webhook")),this.emit("delivery",n)}scheduleRestart(){if(this._dead||this.restarts>=DO)return;let r=Math.min(500*Math.pow(2,this.restarts),5e3);this.restarts++,setTimeout(()=>this.spawnChild(),r).unref()}}});var gi,qy=h(()=>{"use strict";Ku();Ku();Lt();gi=class extends pi{constructor(t){super(t,Zr)}}});import{EventEmitter as FO}from"node:events";import{join as MO}from"node:path";function Yu(e){let t=Go(e.cwd),r=sh(MO(t,".red"));return new zu({...e,leases:e.leases??uh(r),lane:e.lane??au(r),makeForwarder:e.makeForwarder??((n,s)=>new gi({cwd:n,cancelSignal:s})),isLeaseHolderLive:e.isLeaseHolderLive??(n=>en(n.pid,n.start_time))})}var zu,Wy=h(()=>{"use strict";Hy();qy();Lt();Hc();zu=class extends FO{constructor(r){super();this.options=r}_mode="polling";cursor=0;timer;fallback;stopped=!1;syncing=!1;get mode(){return this.fallback?.mode??this._mode}async start(){let r=await this.options.leases.read(gs).catch(()=>{});if(!r||!await this.options.isLeaseHolderLive(r)){this.startFallback();return}let n=await this.options.lane.read().catch(()=>{});if(!n){this.degradeToFallback();return}this.cursor=n.length,this._mode="webhook",this.emit("mode-changed","webhook"),this.timer=setInterval(()=>void this.sync().catch(()=>this.degradeToFallback()),this.options.pollIntervalMs??100),this.timer.unref(),this.options.cancelSignal.addEventListener("abort",()=>void this.stop(),{once:!0})}async stop(){this.stopped||(this.stopped=!0,this.timer&&clearInterval(this.timer),await this.fallback?.stop(),this.emit("stopped"))}makeWakeSignalFor(r,n){return()=>{if(this.fallback)return this.fallback.makeWakeSignalFor(r,n)();if(this._mode!=="webhook"||this.stopped)return;let s=new AbortController,o=a=>{(r==="pr"?mi(a,n):fi(a,n))&&(i(),s.abort())},i=()=>{this.off("delivery",o),this.off("stopped",i)};return this.on("delivery",o),this.once("stopped",i),s.signal}}startFallback(){this.fallback||this.stopped||(this.fallback=this.options.makeForwarder(this.options.cwd,this.options.cancelSignal),this.fallback.on("mode-changed",r=>{this.emit("mode-changed",r)}),this.fallback.on("delivery",r=>{this.emit("delivery",r)}),this.fallback.start())}degradeToFallback(){this.timer&&clearInterval(this.timer),this.timer=void 0,this._mode="polling",this.startFallback()}async sync(){if(!(this.syncing||this.stopped)){this.syncing=!0;try{let r=await this.options.lane.read();r.length<this.cursor&&(this.cursor=0);let n=r.slice(this.cursor);this.cursor=r.length;for(let o of n)o.singleton===gs&&o.kind===Vu&&o.payload&&this.emit("delivery",o.payload);let s=await this.options.leases.read(gs);(!s||!await this.options.isLeaseHolderLive(s))&&this.degradeToFallback()}finally{this.syncing=!1}}}}});var Qu={};K(Qu,{listWaits:()=>$o,renderWaitHelp:()=>us,runWait:()=>UO});import{randomUUID as Jy}from"node:crypto";import{mkdir as BO,rm as jO}from"node:fs/promises";async function UO(e,t=process.cwd()){let r;try{r=await Ff(e)}catch(n){return await VO(e,n)}if(r.kind==="help"||e.includes("--help")||e.includes("-h"))return process.stdout.write(us()),0;if(r.kind==="ls"){let n={schema:Af,version:1,waits:await $o(t)};return process.stdout.write(on(n,r.options.format)),0}return jc(r.kind)?await HO({...r,kind:r.kind},t):(process.stdout.write(us()),2)}async function HO(e,t){let r=e.kind,n=Vc({id:Jy(),kind:r,target:JO(e),reason:e.options.reason,pid:process.pid,pid_start_time:await es(process.pid),started_at:new Date().toISOString(),deadline_at:new Date(Date.now()+e.options.timeoutMs).toISOString(),timeout_ms:e.options.timeoutMs,poll_tier:Mc[r],status:"running",attempts:0}),s=Wf(t,n.id),o=new AbortController,i,a=l=>{i=l,o.abort()},c=()=>a("SIGINT"),u=()=>a("SIGTERM");process.once("SIGINT",c),process.once("SIGTERM",u);try{await BO(tn(t),{recursive:!0}),await rn(s,n);let l=await qO(e,t,s,n,o.signal);i&&(l={...l,verdict:ge(`wait interrupted by ${i}`,l.verdict.details)});let d=await zf({kind:r,entry:n,verdict:l.verdict,options:e.options,cwd:t,cleanupProven:l.cleanupProven,survivors:l.survivors});return process.stdout.write(on(d.result,e.options.format)),d.exitCode}catch(l){let d=ge(l instanceof Error?l.message:String(l)),p=is(r,n,d,{status:"success"},new Date().toISOString());return await as(e.options.resultFile,p,e.options.format).catch(()=>{}),process.stdout.write(on(p,e.options.format)),2}finally{process.removeListener("SIGINT",c),process.removeListener("SIGTERM",u),await jO(s,{force:!0}).catch(()=>{})}}async function qO(e,t,r,n,s){let o={cwd:t,signal:s,timeoutMs:e.options.probeTimeoutMs};switch(e.kind){case"cmd":return await Rg({commandLine:e.commandLine??"",options:e.options,cwd:t,spoolDir:Uf(t),registryPath:r,entry:n,signal:s});case"pr":{let i=e.target??"";if(!/^[1-9][0-9]*$/.test(i))return{verdict:ge("missing PR number")};n.webhook_mode="polling";let a=Yu({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await zo({probe:Cg(i,o,{emptyChecksGraceMs:rs("RSP_WAIT_PR_EMPTY_CHECKS_GRACE_MS",3e4)}),timeoutMs:e.options.timeoutMs,baseSleepMs:rs("RSP_WAIT_PR_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("pr",i),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"run":{let i=await WO(e,o,r,n);if(!i.ok)return{verdict:ge(i.reason)};n.webhook_mode="polling";let a=Yu({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await zo({probe:()=>Og(i.value,o),timeoutMs:e.options.timeoutMs,baseSleepMs:rs("RSP_WAIT_RUN_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("run",i.value),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"release":return await zo({probe:()=>Pg(e.tagGlob,new Date(n.started_at),o),timeoutMs:e.options.timeoutMs,baseSleepMs:rs("RSP_WAIT_RELEASE_POLL_MS",6e4),registryPath:r,entry:n,signal:s})}}async function WO(e,t,r,n){if(e.target)return{ok:!0,value:e.target};if(!(e.latest&&e.branch))return{ok:!1,reason:"missing run id"};let s=await Ag(e.branch,t);return s?(e.target=s,n.target=`run:${s}`,await rn(r,n),{ok:!0,value:s}):{ok:!1,reason:`no run found for branch ${e.branch}`}}function JO(e){return e.kind==="cmd"?`cmd:${e.commandLine??""}`:e.kind==="run"&&e.branch&&e.latest?`run:${e.branch}:latest`:e.kind==="release"?`release:${e.tagGlob??"*"}`:`${e.kind}:${e.target??""}`}async function VO(e,t){let r=e.includes("--json")?"json":"toon",n=e.indexOf("--result-file"),s=n>=0?e[n+1]:void 0,o=jc(e[1])?e[1]:"cmd",i=new Date().toISOString(),a=Vc({id:Jy(),kind:o,target:`${o}:`,reason:"",pid:process.pid,started_at:i,deadline_at:i,timeout_ms:0,poll_tier:Mc[o],status:"indeterminate",attempts:0}),c=is(o,a,ge(t instanceof Error?t.message:String(t)),{status:"success"},i);return await as(s,c,r).catch(()=>{}),process.stdout.write(on(c,r)),2}var Xu=h(()=>{"use strict";Mf();Qf();Sg();wr();qc();Ig();Lt();os();nu();Wy();os();nu()});var Zu,el,tl,Oe,Ae,je,pt,hs,hi=h(()=>{"use strict";Zu="rsp-telemetry.spool.toonl",el="rsp-telemetry.spool.jsonl",tl="rsp-telemetry.spool.corrections.toonl",Oe="rsp_accounting_events_v1",Ae="rsp_decisions_v1",je="rsp_telemetry_invocations_v1",pt="rsp_telemetry_degradations_v1",hs="rsp_telemetry_index_v1"});function pn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ue(e){return zt(e)??0}function zt(e){return typeof e=="number"&&Number.isFinite(e)?e:null}var rl=h(()=>{"use strict"});import{randomUUID as sl,createHash as XO}from"node:crypto";import{appendFileSync as Zy,existsSync as ZO,mkdirSync as eb}from"node:fs";import{mkdir as tb,readdir as e0,readFile as rb,rename as t0,rm as nb,writeFile as ol}from"node:fs/promises";import{basename as nl,dirname as ys,join as mn,resolve as zy}from"node:path";function bi(e){if(!e)return null;let t=zy(e);for(;;){if(ZO(mn(t,".red")))return t;let r=zy(mn(t,".."));if(r===t)break;t=r}return null}function $t(e){return mn(X(e),Zu)}function wi(e){return mn(X(e),el)}function al(e){return mn(X(e),tl)}async function kr(e,t){Yt(e,t)}function Yt(e,t){try{let r=bi(e);if(!r)return;let n=$t(r);eb(ys(n),{recursive:!0}),Zy(n,a0({spool_id:sl(),event:n0(t)}),{encoding:"utf8",mode:384})}catch{}}function n0(e){return Yy(Yy(e,"raw_text","raw_bytes"),"emitted_text","emitted_bytes")}function Yy(e,t,r){let n=e[t];if(typeof n!="string")return e;let s=Buffer.byteLength(n,"utf8");if(s<=r0)return e;let o={...e};return delete o[t],Ue(o[r])===0&&(o[r]=s),o.estimated=!0,o}async function s0(e){let t=bi(e);if(!t)return[];let r=$t(t);await tb(ys(r),{recursive:!0}).catch(()=>{});let n=await ib(t),s=[...await ab(t),...await u0(n)];return await Promise.all(n.map(o=>nb(o,{force:!0}))),s.map(o=>JSON.stringify(o.event))}async function cl(e,t){let r=bi(e);if(!r)return;let n=$t(r);await tb(ys(n),{recursive:!0}).catch(()=>{}),await c0(r);for(let s of await o0(r))await Qy(r,s,t);for(let s of await ab(r))await sb(r,s,t,!0);for(let s of await ib(r))await Qy(r,s,t)}async function o0(e){let t=[$t(e),wi(e)],r=ys(t[0]);return(await e0(r).catch(()=>[])).filter(s=>t.some(o=>s.startsWith(`${nl(o)}.`)&&s.endsWith(".drain"))).filter(s=>{let o=t.find(c=>s.startsWith(`${nl(c)}.`));if(!o)return!1;let i=`${nl(o)}.`,a=Number(s.slice(i.length).split(".")[0]);return!(Number.isInteger(a)&&a!==process.pid&&i0(a))}).sort().map(s=>mn(r,s))}function i0(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function Qy(e,t,r){try{let n=await ob(t);for(let s of cb(n))await sb(e,s,r,!1)}finally{await nb(t,{force:!0})}}async function sb(e,t,r,n){let s=t.event?JSON.stringify(t.event):t.raw_line??"";try{if(await r(s)){n&&Xy(e,{correction_id:sl(),target_spool_id:t.spool_id,action:"resolved",created_at:new Date().toISOString()});return}}catch{}Xy(e,{correction_id:sl(),target_spool_id:t.spool_id,action:"retry",created_at:new Date().toISOString(),event_json:t.event?JSON.stringify(t.event):void 0})}async function ob(e){let t="";for(let r=0;r<5;r++){let n=await rb(e,"utf8").catch(()=>"");if(n===t)return n;t=n,await new Promise(s=>setTimeout(s,2))}return t}function fn(e){try{let t=JSON.parse(e);return!pn(t)||t.collection!==Oe&&t.collection!==Ae&&t.collection!==je&&t.collection!==pt?null:t}catch{return null}}function a0(e){return St().push(p0(e))}function Xy(e,t){try{let r=bi(e);if(!r)return;let n=al(r);eb(ys(n),{recursive:!0});let s=St();Zy(n,s.push({correction_id:t.correction_id,target_spool_id:t.target_spool_id,action:t.action,created_at:t.created_at,event_json:t.event_json??null}),{encoding:"utf8",mode:384})}catch{}}async function ib(e){let t=[$t(e),wi(e)],r=[];for(let n of t){let s=`${n}.${process.pid}.${Date.now()}.drain`;try{await t0(n,s),await ol(n,"",{flag:"wx"}).catch(()=>{}),r.push(s)}catch(o){if(o.code!=="ENOENT")continue}}return r}async function c0(e){await Promise.all([ol($t(e),"",{flag:"a"}),ol(wi(e),"",{flag:"a"})]).catch(()=>{})}async function u0(e){let t=[];for(let r of e)t.push(...cb(await ob(r)));return t}async function ab(e){let t=await rb(al(e),"utf8").catch(()=>""),r=new Map;for(let n of l0(t))r.set(n.target_spool_id,n);return[...r.values()].filter(n=>n.action==="retry"&&n.event_json).map(n=>({spool_id:n.target_spool_id,event:fn(n.event_json)??void 0})).filter(n=>n.event!==void 0)}function cb(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s){try{let o=JSON.parse(s);if(pn(o)){let i=fn(JSON.stringify(o));t.push(i?{spool_id:yi(JSON.stringify(o)),event:i}:{spool_id:yi(s),raw_line:s})}continue}catch{}if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r){t.push({spool_id:yi(s),raw_line:s});continue}try{for(let o of kt(`${r}
88
+ ${s}
89
+ `))il(o)&&m0(o)&&t.push({spool_id:o.spool_id,event:ub(o)})}catch{s.startsWith("{")&&t.push({spool_id:yi(s),raw_line:s})}}}return t}function l0(e){return d0(e).map(f0).filter(t=>t!==null)}function d0(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s)try{let o=JSON.parse(s);il(o)&&t.push(o)}catch{if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r)continue;try{for(let o of kt(`${r}
90
+ ${s}
91
+ `))il(o)&&t.push(o)}catch{}}}return t}function yi(e){return`legacy:${XO("sha256").update(e).digest("hex").slice(0,24)}`}function p0(e){let t={spool_id:e.spool_id};for(let[r,n]of Object.entries(e.event??{}))r!=="spool_id"&&(typeof n=="string"||typeof n=="number"||typeof n=="boolean"||n===null?t[r]=n:n!==void 0&&(t[r]=JSON.stringify(n)));return t}function ub(e){let{spool_id:t,...r}=e;return fn(JSON.stringify(r))}function m0(e){return typeof e.spool_id=="string"&&ub(e)!==null}function f0(e){return typeof e.correction_id=="string"&&typeof e.target_spool_id=="string"&&(e.action==="retry"||e.action==="resolved")&&typeof e.created_at=="string"&&(e.event_json===null||typeof e.event_json=="string")?{correction_id:e.correction_id,target_spool_id:e.target_spool_id,action:e.action,created_at:e.created_at,event_json:e.event_json??void 0}:null}function il(e){return pn(e)?Object.values(e).every(t=>typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null):!1}var r0,lb=h(()=>{"use strict";Le();J();hi();rl();r0=64*1024});function _i(e){return e.trim().split(/\s+/).filter(Boolean)}function bs(e){return e.split(/&&|[;|]/).map(t=>t.trim()).filter(Boolean)}function ws(e){return e.split(/[ \t]+/).filter(Boolean).map(t=>t.replace(/^env$/,""))}function He(e){let t=_i(e);return t.length===0?"unknown":t[0]==="git"&&t[1]?`git ${t[1]}`:Sr(t)&&t[1]&&t[2]?`gh ${t[1]} ${t[2]} json-jq`:Sr(t)&&t[1]?`gh ${t[1]} json-jq`:Sr(t)?"gh json-jq":t[0]==="gh"&&t[1]&&t[2]?`gh ${t[1]} ${t[2]}`:t[0]==="gh"&&t[1]?`gh ${t[1]}`:t[0]==="cargo"&&t[1]?`cargo ${t[1]}`:t[0]==="vitest"?"vitest":t[0]}function Sr(e){return e[0]==="gh"&&e.some(g0)}function g0(e){return e==="--json"||e==="--jq"||e.startsWith("--json=")||e.startsWith("--jq=")}function gn(e){return/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(e)}var _s=h(()=>{"use strict"});var ue,Ei=h(()=>{"use strict";Be();ue="rsp_elisions_v1"});import{spawnSync as ks}from"node:child_process";import{createHash as dl}from"node:crypto";import{existsSync as h0}from"node:fs";import{mkdir as y0,readFile as b0,readdir as db,rename as w0,writeFile as _0}from"node:fs/promises";import{homedir as E0}from"node:os";import{basename as R0,dirname as k0,join as Es}from"node:path";import{fileURLToPath as S0}from"node:url";import{gunzipSync as T0,gzipSync as v0}from"node:zlib";function Ss(e,t){return`el:${dl("sha256").update("rsp-elision-v1\0").update(e).update("\0").update(JSON.stringify({command:t.command,loss:t.loss})).digest("hex").slice(0,12)}`}function Qt(e){return`record:${e.slice(3)}`}function vr(e){return`expired:${e.slice(3)}`}function Si(){return"index:v1"}function x0(e){return`blob:${e}`}function pb(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid RedDB identifier: ${e}`);return e}function Nt(e){let t=_i(e),r=t[0]??"";if(r==="cat")return"derivable";if(r==="git"){let n=t[1]??"";return n==="log"||n==="diff"||n==="blame"||n==="show"?"derivable":Ti(t)?"re-executable":"ephemeral"}return"ephemeral"}function Ts(e){return Oi(e.storage_class)?e.storage_class:Nt(e.command)}function mb(e){return Oi(e.storage_class)?e.storage_class:Nt(e.command)}function pl(e){let t=A0(),r={derivable:new Set,"re-executable":new Set,ephemeral:new Set};for(let n of e){let s=mb(n);if(t[s].records+=1,t[s].raw_bytes+=n.raw_bytes??n.bytes,n.blob_key){if(r[s].has(n.blob_key))continue;r[s].add(n.blob_key)}t[s].bytes+=n.bytes}return t}function ml(e,t,r){let n=t.getTime();return[...e].sort((s,o)=>o.created_at.localeCompare(s.created_at)).slice(0,Math.max(0,r)).map(s=>{let o=Math.max(0,Math.floor((n-Date.parse(s.created_at))/1e3));return{handle:s.handle,command:s.command,created_at:s.created_at,expires_at:s.expires_at,age_seconds:o,age_display:C0(o),storage_class:mb(s),recover:`rsp show ${s.handle}`}})}function C0(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);return r<24?`${r}h`:`${Math.floor(r/24)}d`}function fl(e,t,r,n){let s=t==="ephemeral"?n*60*60*1e3:r*24*60*60*1e3;return new Date(e.getTime()+s).toISOString()}function xr(e){let t=0,r=new Set;for(let n of e){if(n.blob_key){if(r.has(n.blob_key))continue;r.add(n.blob_key)}t+=n.bytes}return t}function gl(e,t){let r=process.cwd(),n=ks("git",["rev-parse","--is-inside-work-tree"],{cwd:r,encoding:"utf8"});if(n.status!==0||n.stdout.trim()!=="true")return null;let s=ks("git",["hash-object","-w","--stdin"],{cwd:r,input:e,encoding:"buffer"});if(s.status!==0)return null;let o=s.stdout.toString("utf8").trim();return/^[0-9a-f]{40,64}$/.test(o)?{kind:"git-blob",command:t,cwd:r,object_ids:[o],working_tree_fingerprint:O0(r),original_bytes:e.length}:null}function O0(e){let t=ul(e,["rev-parse","HEAD"])||"unborn",r=ul(e,["write-tree"])||"no-index",n=ul(e,["status","--porcelain=v1","-z"])||"";return dl("sha256").update(t).update("\0").update(r).update("\0").update(n).digest("hex")}function ul(e,t){let r=ks("git",t,{cwd:e,encoding:"utf8"});return r.status===0?r.stdout.trim():null}function hl(e,t){let r=_i(t);if(!Ti(r))return null;let n=yb(process.cwd(),r,e.length);return!n||Tr(n)!==Tr(e)?null:{kind:"command",command:t,cwd:process.cwd(),argv:r,original_bytes:e.length,content_hash:Tr(e)}}function Ti(e){return e[0]==="git"?e[1]==="status"?!0:e[1]!=="branch"?!1:e.length===2||e.slice(2).every(t=>/^-[avvr]+$/.test(t)):!1}function Tr(e){return dl("sha256").update("rsp-reexecutable-content-v1\0").update(e).digest("hex")}function yl(e,t,r,n){return t?Buffer.byteLength(JSON.stringify(t),"utf8"):r?Buffer.byteLength(JSON.stringify(r),"utf8"):n?n.stored_bytes:e.length}function bl(e){return typeof e.stored_bytes=="number"?e.stored_bytes:e.derivation_recipe?Buffer.byteLength(JSON.stringify(e.derivation_recipe),"utf8"):e.reexecution_recipe?Buffer.byteLength(JSON.stringify(e.reexecution_recipe),"utf8"):e.blob_key?typeof e.stored_bytes=="number"?e.stored_bytes:0:e.original_bytes}function wl(e,t,r){let n=v0(e);return{key:x0(t),content_hash:t,encoding:"gzip+base64",bytes:n.toString("base64"),original_bytes:e.length,stored_bytes:n.length,created_at:r}}function fb(e){try{let t=T0(Buffer.from(e.bytes,"base64"));return t.length===e.original_bytes?t:null}catch{return null}}function gb(e){let t=e.object_ids[0];if(!t)return null;let r=ks("git",["cat-file","-p",t],{cwd:e.cwd,encoding:"buffer",maxBuffer:Math.max(e.original_bytes+1024,1024*1024)});return r.status!==0||r.stdout.length!==e.original_bytes?null:r.stdout}function hb(e){if(!Ti(e.argv))return null;let t=yb(e.cwd,e.argv,e.original_bytes);return t?Tr(t)===e.content_hash?t:Buffer.concat([Buffer.from(`reconstructed after state moved - current snapshot follows
92
+ `,"utf8"),t]):null}function yb(e,t,r){let n=t[0];if(!n)return null;let s=ks(n,t.slice(1),{cwd:e,encoding:"buffer",maxBuffer:Math.max(r+1024,1024*1024)});return s.status!==0||s.signal?null:s.stdout}function A0(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}function vs(e){return/^el:[a-f0-9]{12}$/.test(e)}function ki(e){return/^blob:[a-f0-9]{64}$/.test(e)}function bb(e){if(!Rs(e))throw new Error("memory recall payload must be an object");let t=e.query;if(typeof t!="string"||t.trim()==="")throw new Error("memory recall query is required");let r=typeof e.limit=="number"&&Number.isFinite(e.limit)?e.limit:10;return{query:t,limit:r,options:{includeSuperseded:e.includeSuperseded===!0,scope:Rs(e.scope)?e.scope:void 0,ranking:Rs(e.ranking)?e.ranking:void 0}}}function wb(e){if(!Rs(e))throw new Error("memory ingest payload must be an object");let t=e.cwd;if(typeof t!="string"||t.trim()==="")throw new Error("memory ingest cwd is required");let r=typeof e.maxFiles=="number"&&Number.isFinite(e.maxFiles)?e.maxFiles:void 0,n=Array.isArray(e.ignore)?e.ignore.filter(s=>typeof s=="string"):void 0;return{cwd:t,maxFiles:r,ignore:n}}function Rs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function _b(e,t,r){let n=[],s=new Set([".git","node_modules",".red",...r]);async function o(i){if(n.length>=t)return;let a=await db(i,{withFileTypes:!0}).catch(()=>[]);for(let c of a){if(n.length>=t)return;if(s.has(c.name))continue;let u=Es(i,c.name);c.isDirectory()?await o(u):c.isFile()&&/\.(md|mdx|txt|ts|tsx|js|jsx|json|yaml|yml|toml|rs|go|py|sql)$/i.test(c.name)&&n.push(u)}}return await o(e),n}function Eb(e,t){let r=Number(e.red_entity_id??e.rid);if(!Number.isFinite(r))return null;let n=e.properties??e.PROPERTIES,s=Rs(n)?n:{},o=String(e.label??e.LABEL??s.title??`memory-${r}`),i=String(e.node_type??e.NODE_TYPE??"concept"),a=String(s.content??s.summary??s.title??o),c=`${o} ${a}`.toLowerCase(),u=t.filter(l=>c.includes(l));return u.length===0&&t.length>0?null:{id:String(r),rid:r,label:o,node_type:i,score:u.length||1,excerpt:a.slice(0,500)}}function vi(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function xs(e){if(!qe(e))return!1;let t=typeof e.original=="string"&&e.original_encoding==="base64",r=I0(e.derivation_recipe),n=L0(e.reexecution_recipe),s=e.blob_key,o=typeof s=="string"&&ki(s);return e.collection===ue&&typeof e.handle=="string"&&vs(e.handle)&&(t||r||n||o)&&typeof e.original_bytes=="number"&&(e.content_hash===void 0||El(e.content_hash))&&(e.stored_bytes===void 0||typeof e.stored_bytes=="number")&&(s===void 0||typeof s=="string"&&ki(s))&&typeof e.command=="string"&&typeof e.created_at=="string"&&typeof e.expires_at=="string"&&P0(e.loss)&&(e.storage_class===void 0||Oi(e.storage_class))}function _l(e){return!qe(e)||e.version!==1||!Array.isArray(e.records)?!1:e.records.every(t=>{if(!qe(t))return!1;let r=t.blob_key;return typeof t.handle=="string"&&vs(t.handle)&&typeof t.key=="string"&&typeof t.bytes=="number"&&(t.raw_bytes===void 0||typeof t.raw_bytes=="number")&&typeof t.command=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&(t.storage_class===void 0||Oi(t.storage_class))&&(r===void 0||typeof r=="string"&&ki(r))})}function xi(e){return qe(e)&&typeof e.key=="string"&&ki(e.key)&&El(e.content_hash)&&e.encoding==="gzip+base64"&&typeof e.bytes=="string"&&typeof e.original_bytes=="number"&&typeof e.stored_bytes=="number"&&typeof e.created_at=="string"}function Ci(e){return qe(e)&&e.status==="expired"&&typeof e.expired_at=="string"&&typeof e.command=="string"}function P0(e){return qe(e)&&typeof e.level=="string"&&typeof e.bytes_elided=="number"}function Oi(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"}function I0(e){return qe(e)&&e.kind==="git-blob"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.object_ids)&&e.object_ids.every(t=>typeof t=="string"&&/^[0-9a-f]{40,64}$/.test(t))&&typeof e.working_tree_fingerprint=="string"&&typeof e.original_bytes=="number"}function L0(e){return qe(e)&&e.kind==="command"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.argv)&&e.argv.every(t=>typeof t=="string")&&Ti(e.argv)&&typeof e.original_bytes=="number"&&El(e.content_hash)}function El(e){return typeof e=="string"&&/^[0-9a-f]{64}$/.test(e)}function qe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Rb(e){try{let n=(await b0(e,"utf8")).trim();if(n==="")return Ri();let s;try{s=JSON.parse(n)}catch{s=H(n)}if(G0(s))return{...s,blobs:s.blobs??{}}}catch(r){if(r.code==="ENOENT"){let s=Ri();return await hn(e,s),s}let n=Ri();return await hn(e,n),n}let t=Ri();return await hn(e,t),t}async function kb(e){try{return e}catch(t){if(t.code==="ENOENT")return e;throw t}}function Sb(e){return R0(e)==="red-skills.rdb"}async function Ai(){if(process.env.REDDB_BIN)return;let e=process.env.RED_SKILLS_CACHE_DIR??(process.env.XDG_CACHE_HOME?Es(process.env.XDG_CACHE_HOME,"red-skills","bundles"):Es(E0(),".cache","red-skills","bundles")),t=Es(e,"reddb"),r;try{r=await db(t)}catch{return}r.sort().reverse();for(let n of r){let s=Es(t,n,process.platform==="win32"?"red.exe":"red");if(h0(s)){process.env.REDDB_BIN=s;return}}}async function hn(e,t){await y0(k0(e),{recursive:!0});let r=`${e}.${process.pid}.tmp`;await _0(r,`${$(ll(t))}
93
+ `,"utf8"),await w0(r,e)}function ll(e){if(e==null)return null;if(typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)?e:null;if(Array.isArray(e))return e.map(t=>ll(t));if(typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))n!==void 0&&(t[r]=ll(n));return t}return String(e)}function Ri(){return{version:1,records:{},blobs:{},tombstones:{},index:{version:1,records:[]}}}function G0(e){return qe(e)&&e.version===1&&qe(e.records)&&Object.values(e.records).every(xs)&&(e.blobs===void 0||qe(e.blobs)&&Object.values(e.blobs).every(xi))&&qe(e.tombstones)&&Object.values(e.tombstones).every(Ci)&&_l(e.index)}function Tb(e){if(!e.startsWith("file://"))throw new Error("rsp elision store requires a file:// URI");return S0(e)}var Pi=h(()=>{"use strict";J();_s();Ei()});async function vb(e,t){return D0?F0(e,t):$0?B0(e,t):N0(e,t)}async function N0(e,t){let{spawn:r}=await import("node:child_process"),n=r(e,t,{stdio:["pipe","pipe","inherit"]});return{runtime:"node",stdin:{write(s){return new Promise((o,i)=>{n.stdin.write(s,a=>a?i(a):o())})},end(){n.stdin.end()}},stdout:n.stdout,kill(){n.kill("SIGTERM")},wait(){return new Promise(s=>{n.on("exit",o=>s(o??0))})}}}function F0(e,t){let r=globalThis.Bun.spawn({cmd:[e,...t],stdin:"pipe",stdout:"pipe",stderr:"inherit"}),n=r.stdin.getWriter?r.stdin.getWriter():null;return{runtime:"bun",stdin:{async write(s){n?await n.write(s):(r.stdin.write(s),await r.stdin.flush())},end(){n?n.close():r.stdin.end()}},stdout:M0(r.stdout),kill(){r.kill()},wait(){return r.exited}}}async function*M0(e){let t=e.getReader();try{for(;;){let{value:r,done:n}=await t.read();if(n)return;yield r}}finally{t.releaseLock()}}async function B0(e,t){let n=new globalThis.Deno.Command(e,{args:t,stdin:"piped",stdout:"piped",stderr:"inherit"}).spawn(),s=n.stdin.getWriter();return{runtime:"deno",stdin:{async write(o){await s.write(o)},end(){try{s.close()}catch{}}},stdout:j0(n.stdout),kill(){try{n.kill("SIGTERM")}catch{}},async wait(){return(await n.status).code??0}}}async function*j0(e){let t=e.getReader();try{for(;;){let{value:r,done:n}=await t.read();if(n)return;yield r}}finally{t.releaseLock()}}var D0,$0,xb=h(()=>{D0=typeof globalThis.Bun<"u"&&typeof globalThis.Bun.spawn=="function",$0=typeof globalThis.Deno<"u"&&typeof globalThis.Deno.Command=="function"});import{existsSync as U0}from"node:fs";import{join as H0}from"node:path";function Cb(e){if(!e||typeof e!="object")throw new TypeError("resolveBin: options object required");let{name:t,packageRoot:r,envVar:n}=e;if(typeof t!="string"||t==="")throw new TypeError("resolveBin: `name` must be a non-empty string");if(typeof r!="string"||r==="")throw new TypeError("resolveBin: `packageRoot` must be a non-empty string");if(typeof n!="string"||n==="")throw new TypeError("resolveBin: `envVar` must be a non-empty string");let s=process.env?.[n];if(typeof s=="string"&&s!=="")return s;let o=H0(r,"bin",t);if(U0(o))return o;throw new Error(`reddb: binary "${t}" not found.
94
+ expected at: ${o}
95
+ override: set ${n}=/path/to/${t}
96
+ fix: re-run \`pnpm install\` (the postinstall script downloads it),
97
+ or check the postinstall log for a download error.`)}var Ob=h(()=>{});import{fileURLToPath as q0}from"node:url";import{dirname as W0,resolve as J0,join as bJ}from"node:path";function z0(){return typeof process<"u"&&process.platform==="win32"?"red.exe":"red"}function Ab(){let e=process.env?.REDDB_BINARY_PATH;return typeof e=="string"&&e!==""&&!process.env?.REDDB_BIN?e:Cb({name:z0(),packageRoot:K0,envVar:"REDDB_BIN"})}var V0,K0,Pb=h(()=>{Ob();V0=W0(q0(import.meta.url)),K0=J0(V0,"..")});var Y0,Q0,D,Ii,Xt=h(()=>{Y0=new TextEncoder,Q0=new TextDecoder("utf-8"),D=class extends Error{constructor(t,r,n){super(r),this.name="RedDBError",this.code=t,this.data=n??null}},Ii=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,r={}){if(this.closed)return Promise.reject(new D("CLIENT_CLOSED",`client is closed: ${this.closeReason??"unknown"}`));let n=this.nextId++,s=JSON.stringify({jsonrpc:"2.0",id:n,method:t,params:r});return new Promise((o,i)=>{this.pending.set(n,{resolve:o,reject:i}),this.child.stdin.write(Y0.encode(s+`
98
+ `)).catch(a=>{this.pending.delete(n),i(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 r of this.child.stdout){let n=new Uint8Array(t.length+r.length);n.set(t,0),n.set(r,t.length),t=n;let s=0;for(let o=0;o<t.length;o++)if(t[o]===10){let i=t.subarray(s,o);this.#r(Q0.decode(i)),s=o+1}s>0&&(t=t.subarray(s))}}catch(r){this.#e(`stdout reader error: ${r.message}`);return}this.#e("server stdout closed")}#r(t){if(!t.trim())return;let r;try{r=JSON.parse(t)}catch(o){this.#e(`malformed server response: ${o.message}`);return}let n=r.id;if(n==null)return;let s=this.pending.get(n);s&&(this.pending.delete(n),r.error?s.reject(new D(r.error.code??"UNKNOWN",r.error.message??"unknown error",r.error.data)):s.resolve(r.result))}#e(t){if(this.closed)return;this.closed=!0,this.closeReason=t;let r=new D("CLIENT_CLOSED",t);for(let{reject:n}of this.pending.values())n(r);this.pending.clear()}}});function kl(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:/"?X0(e):Z0(e)}function X0(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 r;try{r=new URL(t)}catch(l){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${l.message}`)}let n=r.searchParams,s=(n.get("proto")||"").toLowerCase(),o=r.pathname&&r.pathname!=="/"?r.pathname:"";if(r.hostname==="embedded.local")return o?{kind:"embedded",path:o,params:n,originalUri:e}:{kind:"embedded",params:n,originalUri:e};let i=eA(s),a=r.port?Number(r.port):Rl(i),c=r.username?decodeURIComponent(r.username):void 0,u=r.password?decodeURIComponent(r.password):void 0;return{kind:i,host:r.hostname,port:a,path:o||void 0,username:c,password:u,token:n.get("token")??void 0,apiKey:n.get("apiKey")??n.get("api_key")??void 0,loginUrl:n.get("loginUrl")??n.get("login_url")??void 0,params:n,originalUri:e}}function Z0(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],r;try{r=new URL("https://"+e.slice(`${t}://`.length))}catch(o){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${o.message}`)}if(!r.hostname)throw new TypeError(`invalid ${t}:// URI: missing host in '${e}'`);let n=t==="reds"?"reds":t==="grpcs"?"grpcs":"grpc",s=r.searchParams;return{kind:n,host:r.hostname,port:r.port?Number(r.port):Rl(n),username:r.username?decodeURIComponent(r.username):void 0,password:r.password?decodeURIComponent(r.password):void 0,token:s.get("token")??void 0,apiKey:s.get("apiKey")??s.get("api_key")??void 0,loginUrl:s.get("loginUrl")??s.get("login_url")??void 0,params:s,originalUri:e}}if(e.startsWith("http://")||e.startsWith("https://")){let t;try{t=new URL(e)}catch(r){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${r.message}`)}return{kind:t.protocol==="https:"?"https":"http",host:t.hostname,port:t.port?Number(t.port):Rl(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 D("UNSUPPORTED_SCHEME",`unsupported URI: '${e}'. Use 'red://...' or one of memory://, file://, grpc://, http(s)://`)}function eA(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 D("UNSUPPORTED_PROTO",`unknown proto='${e}'. Supported: red | reds | grpc | grpcs | http | https | pg`)}}function Rl(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 Sl=h(()=>{Xt()});function rA(e){if(typeof e=="string"){let t=new TextEncoder().encode(e);return Ib(t)}if(e instanceof Uint8Array||typeof Buffer<"u"&&Buffer.isBuffer(e))return Ib(e);throw new TypeError("cache value must be a string, Uint8Array, or Buffer")}function Ib(e){if(typeof Buffer<"u")return Buffer.from(e).toString("base64");let t="";for(let r of e)t+=String.fromCharCode(r);return btoa(t)}function nA(e){if(typeof Buffer<"u")return new Uint8Array(Buffer.from(e,"base64"));let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}var tA,Cs,Tl=h(()=>{Xt();tA=new Set(["embedded"]),Cs=class{constructor(t,r){this._client=t,this._transport=r??null}_guard(t){if(this._transport&&tA.has(this._transport))throw new D("UNSUPPORTED_TRANSPORT",`cache.${t} is not available on '${this._transport}' transport; use @reddb-io/client for remote cache endpoints.`)}async get(t,r){this._guard("get");let n=await this._client.call("cache.get",{namespace:t,key:r});return n==null||n.value==null?null:nA(n.value)}async put(t,r,n,s={}){this._guard("put");let o=rA(n);await this._client.call("cache.put",{namespace:t,key:r,value:o,...s})}async exists(t,r){return this._guard("exists"),(await this._client.call("cache.exists",{namespace:t,key:r}))?.status??"maybe"}async invalidate(t,r){this._guard("invalidate"),await this._client.call("cache.invalidate",{namespace:t,key:r})}async invalidatePrefix(t,r){return this._guard("invalidatePrefix"),(await this._client.call("cache.invalidate_prefix",{namespace:t,prefix:r}))?.removed??0}async invalidateTags(t,r){return this._guard("invalidateTags"),(await this._client.call("cache.invalidate_tags",{namespace:t,tags:r}))?.removed??0}async flushNamespace(t){this._guard("flushNamespace"),await this._client.call("cache.flush_namespace",{namespace:t})}}});function vl(e,t){return`${xl(e)}.${sA(t)}`}function xl(e){let t=String(e),r=t.match(/[^A-Za-z0-9_]/);if(r)throw new D("INVALID_KV_KEY",`invalid KV key "${t}": character "${r[0]}" is not supported`);return t}function sA(e){let t=String(e);return/^[A-Za-z0-9_]+$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function oA(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 Lb(e){return`'${String(e).replace(/'/g,"''")}'`}var yn,Cl=h(()=>{Xt();yn=class{constructor(t,r="kv_default"){this.client=t,this.collection=r}put(t,r,n={}){let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Lb).join(", ")}]`:"",i=n.expireMs!=null?` EXPIRE ${Number(n.expireMs)} ms`:"";return this.client.call("query",{sql:`KV PUT ${vl(s,t)} = ${oA(r)}${i}${o}`})}set(t,r,n={}){return this.put(t,r,n)}async get(t,r={}){let n=r.collection??this.collection;return(await this.client.call("query",{sql:`KV GET ${vl(n,t)}`}))?.rows?.[0]?.value??null}async getMany(t,r={}){let n=[];for(let s of t)n.push(await this.get(s,r));return n}async exists(t,r={}){return{exists:await this.get(t,r)!==null}}async delete(t,r={}){let n=r.collection??this.collection,s=await this.client.call("query",{sql:`KV DELETE ${vl(n,t)}`}),o=s.affected??s.affected_rows??0;return{affected:o,deleted:o>0}}async list(t={}){let r=t.collection??this.collection,n=t.limit==null?100:Number(t.limit);if(!Number.isInteger(n)||n<=0)throw new D("INVALID_ARGUMENT","kv.list limit must be a positive integer");let s=t.prefix==null?"":String(t.prefix),i=(await this.client.call("query",{sql:`SELECT key, value FROM ${xl(r)} ORDER BY key ASC LIMIT ${n}`})).rows??[];return{items:s.length>0?i.filter(c=>String(c.key).startsWith(s)):i}}async invalidateTags(t,r={}){let n=r.collection??this.collection,s=await this.client.call("query",{sql:`INVALIDATE TAGS [${t.map(Lb).join(", ")}] FROM ${xl(n)}`});return s.affected??s.affected_rows??s.rows?.[0]?.invalidated??0}async*watch(t,r={}){if(!this.client.baseUrl)throw new D("UNSUPPORTED_TRANSPORT","kv.watch requires the HTTP transport");let n=r.collection??this.collection,s=new URLSearchParams;r.sinceLsn!=null&&s.set("since_lsn",String(r.sinceLsn)),r.limit!=null&&s.set("limit",String(r.limit));let o=s.toString()?`?${s}`:"",i=`${this.client.baseUrl}/collections/${encodeURIComponent(n)}/kv/${encodeURIComponent(String(t))}/watch${o}`,a=await fetch(i,this.client.attachAuth({method:"GET"}));if(!a.ok)throw new D("HTTP_ERROR",`kv.watch failed with HTTP ${a.status}`);let c=await a.text();for(let u of c.split(`
99
+
100
+ `)){let l=u.split(`
101
+ `).find(d=>d.startsWith("data: "));l&&(yield JSON.parse(l.slice(6)))}}watchPrefix(t,r={}){return this.watch(`${t}.*`,r)}}});function iA(e,t,r){let{waitMs:n,group:s=null,count:o=null}=r??{};if(!Number.isInteger(n)||n<0)throw new D("INVALID_QUEUE_WAIT","queue readWait requires an explicit non-negative integer waitMs (no infinite wait)");let i=Ft(e),a=Ft(t),c=s!=null?` GROUP ${Ft(s)}`:"",u=o!=null?Al(o):"";return`QUEUE READ ${i}${c} CONSUMER ${a}${u} WAIT ${n}ms`}function Ft(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_QUEUE_NAME",`invalid queue name "${t}": expected an SQL identifier`);return t}function Al(e){if(e==null)return"";if(!Number.isInteger(e)||e<0)throw new D("INVALID_QUEUE_COUNT","queue count must be a non-negative integer");return` COUNT ${e}`}function aA(e){if(!Number.isInteger(e))throw new D("INVALID_QUEUE_PRIORITY","queue priority must be an integer");return String(e)}function cA(e){if(e.key!=null&&(e.delay!=null||e.at!=null))throw new D("INVALID_ARGUMENT","QUEUE PUSH KEY cannot be combined with DELAY / AVAILABLE AT");let t="";return e.priority!=null&&(t+=` PRIORITY ${aA(e.priority)}`),e.key!=null&&(t+=` KEY ${Pl(e.key)}`),e.dedup!=null&&(t+=` DEDUP ${Pl(e.dedup)}`),e.delay!=null&&(t+=` DELAY ${e.delay}`),e.at!=null&&(t+=` AVAILABLE AT ${e.at}`),t}function uA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="string"?Pl(e):JSON.stringify(e)}function Pl(e){return`'${String(e).replace(/'/g,"''")}'`}function Ol(e){return Array.isArray(e?.rows)?e.rows.map(t=>t.payload):[]}var Os,Il=h(()=>{Xt();Os=class{constructor(t){this.client=t}create(t){return this.client.call("query",{sql:`CREATE QUEUE IF NOT EXISTS ${Ft(t)}`})}push(t,r,n={}){let s=cA(n);return this.client.call("query",{sql:`QUEUE PUSH ${Ft(t)} ${uA(r)}${s}`})}async pop(t,r){let n=await this.client.call("query",{sql:`QUEUE POP ${Ft(t)}${Al(r)}`});return Ol(n)}async peek(t,r){let n=await this.client.call("query",{sql:`QUEUE PEEK ${Ft(t)}${Al(r)}`});return Ol(n)}async len(t){let r=await this.client.call("query",{sql:`QUEUE LEN ${Ft(t)}`});return Number(r?.rows?.[0]?.len??0)}purge(t){return this.client.call("query",{sql:`QUEUE PURGE ${Ft(t)}`})}async readWait(t,r,n={}){let s=iA(t,r,n),o=await this.client.call("query",{sql:s});return Ol(o)}}});function Gb(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new D("INVALID_ARGUMENT",`${t} must be an object`)}function lA(e){if(e==null)return 100;if(!Number.isInteger(e)||e<=0)throw new D("INVALID_ARGUMENT","limit must be a positive integer");return e}function Li(e){return String(e).split(".").map(Db).join(".")}function Db(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_ARGUMENT",`invalid SQL identifier "${t}"`);return t}function dA(e){return $b(JSON.stringify(e))}function pA(e){return JSON.stringify(e)}function mA(e){return e==null?"NULL":typeof e=="number"||typeof e=="boolean"?String(e):typeof e=="object"?dA(e):$b(e)}function $b(e){return`'${String(e).replace(/'/g,"''")}'`}var As,Ll=h(()=>{Xt();As=class{constructor(t){this.db=t}async insert(t,r){Gb(r,"documents.insert document"),await this.ensureCollection(t);let n=await this.db.query(`INSERT INTO ${Li(t)} DOCUMENT VALUES (${pA(r)}) RETURNING *`),s=n.rows?.[0];if(!s||s.rid==null)throw new D("INVALID_RESPONSE","documents.insert expected one returned item with rid");return{affected:n.affected??1,rid:s.rid,item:s}}async get(t,r){let n=await this.db.get(t,r);if(!n.entity)throw new D("NOT_FOUND",`document ${String(r)} was not found`);return n.entity}async list(t,r={}){let n=lA(r.limit),s=r.orderBy??r.order_by??"rid ASC",o=r.filter?` WHERE ${String(r.filter)}`:"";return{items:(await this.db.query(`SELECT * FROM ${Li(t)}${o} ORDER BY ${s} LIMIT ${n}`)).rows??[]}}async patch(t,r,n){Gb(n,"documents.patch patch");let s=Object.entries(n);if(s.length===0)throw new D("INVALID_ARGUMENT","documents.patch patch must be a non-empty object");for(let[c]of s)if(c.includes("/"))throw new D("INVALID_ARGUMENT","documents.patch currently accepts top-level document fields");let o=s.map(([c,u])=>`${Db(c)} = ${mA(u)}`).join(", "),a=(await this.db.query(`UPDATE ${Li(t)} SET ${o} WHERE rid = $1 RETURNING *`,r)).rows?.[0];if(!a)throw new D("NOT_FOUND",`document ${String(r)} was not found`);return a}async delete(t,r){let s=(await this.db.delete(t,r)).affected??0;return{affected:s,deleted:s>0}}async ensureCollection(t){try{await this.db.query(`CREATE DOCUMENT ${Li(t)}`)}catch(r){if(!String(r?.message??"").includes("already exists"))throw r}}}});function fA(e,t){if(t.secretRef){let{collection:r,key:n}=t.secretRef;return`SECRET_REF(vault, ${Zt(r)}.${Zt(n)})`}return hA(e)}function gA(e,t){for(let r of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[r]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function Zt(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function hA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):Nb(e)}function Nb(e){return`'${String(e).replace(/'/g,"''")}'`}var Ps,Gl=h(()=>{Ps=class{constructor(t,r="red.config"){this.client=t,this.collection=r}put(t,r,n={}){gA(n,"config");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Nb).join(", ")}]`:"";return this.client.call("query",{sql:`PUT CONFIG ${Zt(s)} ${Zt(t)} = ${fA(r,n)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`GET CONFIG ${Zt(n)} ${Zt(t)}`})}resolve(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`RESOLVE CONFIG ${Zt(n)} ${Zt(t)}`})}}});function yA(e,t){for(let r of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[r]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function bn(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function bA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):Fb(e)}function Fb(e){return`'${String(e).replace(/'/g,"''")}'`}var Is,Dl=h(()=>{Is=class{constructor(t,r="red.vault"){this.client=t,this.collection=r}put(t,r,n={}){yA(n,"vault");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Fb).join(", ")}]`:"";return this.client.call("query",{sql:`VAULT PUT ${bn(s)}.${bn(t)} = ${bA(r)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`VAULT GET ${bn(n)}.${bn(t)}`})}unseal(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`UNSEAL VAULT ${bn(n)}.${bn(t)}`})}}});async function Bb(e){return((await e.query("SHOW COLLECTIONS")).rows??[]).map(wA)}async function jb(e,t){return((await e.query(`SHOW COLLECTIONS WHERE name = ${EA(t)}`)).rows??[]).some(n=>n.name===String(t))}function wA(e){return{...e,name:String(e.name),model:String(e.model),capabilities:Array.isArray(e.capabilities)?e.capabilities:[]}}function Mb(e){return String(e).split(".").map(_A).join(".")}function _A(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_IDENTIFIER",`invalid SQL identifier "${t}"`);return t}function EA(e){return`'${String(e).replace(/'/g,"''")}'`}var Ls,$l=h(()=>{Xt();Ls=class e{constructor(t,r,n=null,s=[],o=[]){this.db=t,this.collection=r,this.columns=n,this.whereClauses=s,this.params=o}select(...t){let r=t.length===1&&Array.isArray(t[0])?t[0]:t,n=r.length===1&&r[0]==="*"?null:r;return new e(this.db,this.collection,n!=null&&n.length>0?n:null,this.whereClauses,this.params)}where(t,...r){if(typeof t!="string"||t.trim().length===0)throw new D("INVALID_QUERY_BUILDER","where() requires a non-empty SQL condition");let n=r.length===1&&Array.isArray(r[0])?r[0]:r;return new e(this.db,this.collection,this.columns,[...this.whereClauses,t.trim()],[...this.params,...n])}async run(){let t=this.columns==null?"*":this.columns.map(Mb).join(", "),r=this.whereClauses.length>0?` WHERE ${this.whereClauses.map(i=>`(${i})`).join(" AND ")}`:"",n=`SELECT ${t} FROM ${Mb(this.collection)}${r}`,o=(this.params.length>0?await this.db.query(n,this.params):await this.db.query(n)).rows??[];return this.columns==null?o:o.map(i=>{let a={};for(let c of this.columns)a[c]=i[c];return a})}}});async function $i(e,t={}){let r=kl(e);if(PA(r),r.kind==="embedded"){let n=AA(r,t.auth);if(n.token||n.username)throw new D("AUTH_NOT_APPLICABLE","auth is only meaningful for remote connections; embedded modes inherit caller privileges.");let s=OA(r),o=t.binary??Ab(),i=await vb(o,s),a=new Ii(i);return await a.call("version",{}),new Fl(a,{transport:"embedded"})}}function Hb(e){return SA(e),e instanceof Float32Array||e instanceof Float64Array?Array.from(e):e instanceof Date?{$ts:String(BigInt(e.getTime())*1000000n)}:e instanceof Uint8Array||typeof Buffer<"u"&&e instanceof Buffer?{$bytes:vA(e)}:typeof e=="number"&&!Number.isFinite(e)?Number.isNaN(e)?{$float:"NaN"}:{$float:e>0?"Infinity":"-Infinity"}:typeof e=="string"&&CA(e)?{$uuid:e}:e}function SA(e){if(e!=null&&!(typeof e=="boolean"||typeof e=="number"||typeof e=="string")){if(e instanceof Date){if(Number.isNaN(e.getTime()))throw new D("UNSUPPORTED_PARAM","cannot encode invalid Date query parameter");return}if(!(e instanceof Uint8Array||e instanceof Float32Array||e instanceof Float64Array||typeof Buffer<"u"&&e instanceof Buffer)){if(Array.isArray(e)){if(e.every(t=>typeof t=="number"))return;throw new D("UNSUPPORTED_PARAM","array query parameters must contain only numbers")}if(!(typeof e=="object"&&Object.getPrototypeOf(e)===Object.prototype))throw new D("UNSUPPORTED_PARAM",`cannot encode query parameter of type ${typeof e}`)}}}function TA(e){return e.length===0?null:e.length===1&&Array.isArray(e[0])?e[0].map(Hb):e.map(Hb)}function vA(e){let t=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(typeof Buffer<"u")return Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("base64");let r="";for(let n of t)r+=String.fromCharCode(n);return btoa(r)}function xA(e){if(typeof Buffer<"u"){let n=Buffer.from(e,"base64");return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function CA(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}function Gi(e){if(Array.isArray(e))return e.map(Gi);if(e&&typeof e=="object"){if(Object.keys(e).length===1){if(typeof e.$bytes=="string")return xA(e.$bytes);if(typeof e.$uuid=="string")return e.$uuid;if(typeof e.$float=="string"){if(e.$float==="NaN")return Number.NaN;if(e.$float==="Infinity"||e.$float==="+Infinity")return 1/0;if(e.$float==="-Infinity")return-1/0}if(typeof e.$ts=="string"||typeof e.$ts=="number"){let n=typeof e.$ts=="string"?BigInt(e.$ts):BigInt(Math.trunc(e.$ts));return new Date(Number(n/1000000n))}}let r={};for(let[n,s]of Object.entries(e))r[n]=Gi(s);return r}return e}function OA(e){return e.path?["rpc","--stdio","--path",e.path]:["rpc","--stdio"]}function AA(e,t){let r={token:e.token??e.apiKey??null,username:e.username??null,password:e.password??null,loginUrl:e.loginUrl??null};if(t==null)return r;if(typeof t!="object")throw new TypeError("options.auth must be an object");if(t.token!=null){if(typeof t.token!="string"||t.token.length===0)throw new TypeError("options.auth.token must be a non-empty string");r.token=t.token}if(t.apiKey!=null){if(typeof t.apiKey!="string"||t.apiKey.length===0)throw new TypeError("options.auth.apiKey must be a non-empty string");r.token=t.apiKey}if(t.username!=null){if(typeof t.username!="string"||t.username.length===0)throw new TypeError("options.auth.username must be a non-empty string");r.username=t.username}if(t.password!=null){if(typeof t.password!="string"||t.password.length===0)throw new TypeError("options.auth.password must be a non-empty string");r.password=t.password}return t.loginUrl!=null&&(r.loginUrl=t.loginUrl),r}function PA(e){if(e.kind!=="embedded")throw new D("EMBEDDED_ONLY",RA)}function Ml(){return new D(Ub,`${Ub}: nested transactions are not supported on one connection`)}function Wb(e,t){if(e&&typeof e=="object")try{e.rollbackError=t}catch{}}function IA(e,t){if(!e||typeof e!="object"||e.rid==null&&e.id==null)throw new D("ENGINE_TOO_OLD",`${t}() requires RedDB engine >= ${qb} with insert id support`);return e.rid==null&&(e.rid=e.id),e.id==null&&(e.id=e.rid),e}function LA(e,t){if(!e||typeof e!="object"||!Array.isArray(e.rids)&&!Array.isArray(e.ids))throw new D("ENGINE_TOO_OLD",`bulkInsert() requires RedDB engine >= ${qb} with bulk insert id support`);if(Array.isArray(e.rids)||(e.rids=e.ids),Array.isArray(e.ids)||(e.ids=e.rids),e.rids.length!==t)throw new D("INVALID_RESPONSE",`bulkInsert() expected ${t} rids, got ${e.rids.length}`);return e}var RA,kA,qb,Ub,Di,Nl,Fl,Jb=h(()=>{xb();Pb();Xt();Sl();Tl();Cl();Il();Ll();Gl();Dl();$l();Tl();Cl();Il();Ll();Gl();Dl();$l();Sl();RA="remote URIs are not supported in @reddb-io/sdk; install @reddb-io/client for grpc/http/red transports",kA="1.0",qb="1.0.9",Ub="NESTED_TX_NOT_SUPPORTED";Di=class{constructor(t){this.db=t}query(t,...r){return this.db.query(t,...r)}execute(t,...r){return this.db.execute(t,...r)}insert(t,r){return this.db.insert(t,r)}bulkInsert(t,r){return this.db.bulkInsert(t,r)}async transaction(){throw Ml()}},Nl=class{constructor(t){this.db=t,this.active=!1}async begin(){if(this.db.inTransaction)throw Ml();this.db.inTransaction=!0,this.active=!0;try{return await this.db.query("BEGIN")}catch(t){throw this.db.inTransaction=!1,this.active=!1,t}}async commit(){if(!this.active)throw new D("INVALID_ARGUMENT","tx.commit() called without an open transaction");try{return await this.db.query("COMMIT")}finally{this.active=!1,this.db.inTransaction=!1}}async rollback(){if(!this.active)throw new D("INVALID_ARGUMENT","tx.rollback() called without an open transaction");try{return await this.db.query("ROLLBACK")}finally{this.active=!1,this.db.inTransaction=!1}}async run(t){if(typeof t!="function")throw new TypeError("tx.run(callback) requires a function");if(this.db.inTransaction)throw new D("INVALID_ARGUMENT","nested tx.run() is not supported; issue savepoints via tx.query() instead");await this.begin();try{let r=await t(new Di(this.db));return await this.commit(),r}catch(r){if(this.active)try{await this.rollback()}catch(n){Wb(r,n)}throw r}}},Fl=class{constructor(t,r={}){this.client=t,this.transport=r.transport??null,this.helperSpecVersion=kA,this.cache=new Cs(t,this.transport),this.queue=new Os(t),this.queues=this.queue,this.documents=new As(this);let n=new yn(t);this.kv=Object.assign((s="kv_default")=>new yn(t,s),{put:n.put.bind(n),invalidateTags:n.invalidateTags.bind(n),watch:n.watch.bind(n),watchPrefix:n.watchPrefix.bind(n)}),this.config=(s="red.config")=>new Ps(t,s),this.vault=(s="red.vault")=>new Is(t,s),this.inTransaction=!1}query(t,...r){if(typeof t!="string"||t.trim().length===0)return Promise.reject(new D("INVALID_ARGUMENT","query() requires a non-empty SQL string"));let n=TA(r);return n==null?this.client.call("query",{sql:t}).then(Gi):this.client.call("query",{sql:t,params:n}).then(Gi)}execute(t,...r){return this.query(t,...r)}async insert(t,r){let n=await this.client.call("insert",{collection:t,payload:r});return IA(n,"insert")}async bulkInsert(t,r){if(Array.isArray(r)&&r.length===0)return{affected:0,rids:[],ids:[]};let n=await this.client.call("bulk_insert",{collection:t,payloads:r});return LA(n,r.length)}tx(){return new Nl(this)}async transaction(t){if(this.inTransaction)throw Ml();if(typeof t!="function")throw new TypeError("transaction(callback) requires a function");this.inTransaction=!0;let r=!1;try{await this.query("BEGIN"),r=!0;let n=await t(new Di(this));return await this.query("COMMIT"),n}catch(n){if(r)try{await this.query("ROLLBACK")}catch(s){Wb(n,s)}throw n}finally{this.inTransaction=!1}}exists(t){return jb(this,t)}list(){return Bb(this)}from(t){return new Ls(this,t)}get(t,r){return this.client.call("get",{collection:t,id:String(r)})}delete(t,r){return this.client.call("delete",{collection:t,id:String(r)})}health(){return this.client.call("health",{})}version(){return this.client.call("version",{})}login(t,r){return this.client.call("auth.login",{username:t,password:r})}whoami(){return this.client.call("auth.whoami",{})}changePassword(t,r){return this.client.call("auth.change_password",{current_password:t,new_password:r})}createApiKey({username:t,role:r}={}){return this.client.call("auth.create_api_key",{username:t,role:r})}revokeApiKey(t){return this.client.call("auth.revoke_api_key",{key:t})}close(){return this.client.close()}}});import{createHash as GA}from"node:crypto";import{existsSync as Vb}from"node:fs";import{mkdir as DA,readFile as $A,rename as Bl,rm as Gs,stat as jl}from"node:fs/promises";import{basename as NA,dirname as FA}from"node:path";async function Kb(e){await(await Cr.open({...e,allowResidentOpen:!0})).close()}var Cr,zb=h(()=>{"use strict";Jb();Ei();Pi();Cr=class e{constructor(t,r){this.opts=r;this.path=t}document;db;path;dirty=!1;static async open(t){if(process.env.RSP_FAIL_IF_STORE_OPEN==="1"&&!t.allowResidentOpen)throw new Error("RSP_FAIL_IF_STORE_OPEN blocked store open");let r=Tb(t.uri),n=await kb(r),s=new e(n,{uri:t.uri,ttlDays:vi(t.ttlDays,Ye),ephemeralTtlHours:vi(t.ephemeralTtlHours,Qe),byteBudget:vi(t.byteBudget,Xe),now:t.now??(()=>new Date)});return Sb(n)?(await Ai(),await DA(FA(n),{recursive:!0}),s.db=await $i(`file://${n}`),await s.ensureRedDbCollections(),await s.ensureRedDbStore()):s.document=await Rb(s.path),s}async close(){await this.db?.close()}redDb(){return this.db}async mint(t,r){if(this.db)return await this.mintRedDb(t,r);let n=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=Ss(n,r),a=Qt(i),c=Nt(r.command),u=c==="derivable"?gl(n,r.command):null,l=c==="re-executable"?hl(n,r.command):null,d=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,p=fl(s,d,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Tr(n),f=d==="ephemeral"?wl(n,g,o):null,k=yl(n,u,l,f);f&&!this.document.blobs[f.key]&&(this.document.blobs[f.key]=f,this.dirty=!0);let E={collection:ue,handle:i,original_bytes:n.length,stored_bytes:k,command:r.command,created_at:o,expires_at:p,loss:r.loss,storage_class:d,content_hash:g,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};return delete this.document.tombstones[vr(i)],this.document.records[a]=E,this.upsertIndex({handle:i,key:a,bytes:k,raw_bytes:n.length,command:r.command,created_at:o,expires_at:p,storage_class:d,blob_key:f?.key}),this.prune(),await this.flush(),i}async get(t){if(this.db)return await this.getRedDb(t);if(!vs(t))return null;let r=this.tombstone(t);if(r)return r;let n=this.document.records[Qt(t)];if(!xs(n))return null;if(Date.parse(n.expires_at)<=this.opts.now().getTime()){let o={status:"expired",expired_at:n.expires_at,command:n.command};return this.expireEntry({handle:n.handle,key:Qt(n.handle),bytes:bl(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:Ts(n),blob_key:n.blob_key},n.expires_at),await this.flush(),o}let s=await this.readOriginal(n);return!s&&(n.derivation_recipe||n.reexecution_recipe)?{status:"expired",expired_at:n.expires_at,command:n.command}:s?{collection:ue,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:Ts(n)}:null}async stats(){if(this.db)return await this.statsRedDb();this.prune(),await this.flush();let r=this.readIndex().records;return{records:r.length,bytes:xr(r),oldest:r.reduce((n,s)=>n==null||s.created_at<n?s.created_at:n,null),budget:this.opts.byteBudget,storage_classes:pl(r)}}async recoveryHandles(t=5){return this.db?await this.recoveryHandlesRedDb(t):(this.prune(),await this.flush(),ml(this.readIndex().records,this.opts.now(),t))}readIndex(){return this.document.index}writeIndex(t){this.document.index=t}upsertIndex(t){let n=this.readIndex().records.filter(s=>s.handle!==t.handle);n.push(t),this.writeIndex({version:1,records:n}),this.dirty=!0}prune(){let t=this.opts.now().getTime(),r=new Date(t).toISOString(),n=this.readIndex(),s=[];for(let i of n.records)Date.parse(i.expires_at)<=t?this.expireEntry(i,i.expires_at):s.push(i);let o=xr(s);for(s.sort((i,a)=>i.created_at.localeCompare(a.created_at));o>this.opts.byteBudget&&s.length>0;){let i=s.shift();this.expireEntry(i,r),o=xr(s)}s.length<n.records.length&&this.writeIndex({version:1,records:s}),this.deleteUnreferencedLocalBlobs(s)}expireEntry(t,r){delete this.document.records[t.key],this.document.tombstones[vr(t.handle)]={status:"expired",expired_at:r,command:t.command},this.dirty=!0}tombstone(t){let r=this.document.tombstones[vr(t)];return Ci(r)?r:null}async readOriginal(t){if(t.original)return Buffer.from(t.original,"base64");if(t.derivation_recipe)return gb(t.derivation_recipe);if(t.reexecution_recipe)return hb(t.reexecution_recipe);if(t.blob_key){let r=this.db?await this.kvGet(t.blob_key):this.document.blobs[t.blob_key];return xi(r)?fb(r):null}return null}deleteUnreferencedLocalBlobs(t){let r=new Set(t.map(n=>n.blob_key).filter(n=>typeof n=="string"));for(let n of Object.keys(this.document.blobs))r.has(n)||(delete this.document.blobs[n],this.dirty=!0)}async flush(){this.dirty&&(await hn(this.path,this.document),this.dirty=!1),await this.rotateLocalGenerationIfOversized()}async rotateLocalGenerationIfOversized(){let t=await jl(this.path).then(a=>a.size,()=>0);if(t<=this.opts.byteBudget)return;let r=this.readIndex().records,n=new Set(r.map(a=>a.key)),s=new Set(r.map(a=>a.blob_key).filter(a=>typeof a=="string")),o={version:1,records:Object.fromEntries(Object.entries(this.document.records).filter(([a])=>n.has(a))),blobs:Object.fromEntries(Object.entries(this.document.blobs).filter(([a])=>s.has(a))),tombstones:{},index:{version:1,records:r}},i=Buffer.byteLength(`${JSON.stringify(o)}
102
+ `,"utf8");i>this.opts.byteBudget||i>=t||(this.document=o,await hn(this.path,this.document))}kv(){if(!this.db)throw new Error("rsp RedDB store is not open");return this.db.kv(ue)}async kvGet(t){let r=await this.kv().get(t);if(typeof r!="string")return r;try{return JSON.parse(r)}catch{return r}}async ensureRedDbStore(){let t=await this.readRedDbIndex();await this.writeRedDbIndex(t)}async ensureRedDbCollections(){if(!this.db)throw new Error("rsp RedDB store is not open");let t=(await this.db.list()).find(r=>r.name===ue);if(!t){await this.db.query(`CREATE KV IF NOT EXISTS ${ue}`);return}if(t.model!=="kv"){if(t.model!=="table")throw new Error(`cannot self-heal elision collection ${ue}: unsupported model ${t.model}`);await this.db.query(`DROP TABLE ${ue}`),await this.db.query(`CREATE KV IF NOT EXISTS ${ue}`)}}async mintRedDb(t,r){let n=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=Ss(n,r),a=Qt(i),c=Nt(r.command),u=c==="derivable"?gl(n,r.command):null,l=c==="re-executable"?hl(n,r.command):null,d=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,p=fl(s,d,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Tr(n),f=d==="ephemeral"?wl(n,g,o):null,k=yl(n,u,l,f);f&&!xi(await this.kvGet(f.key))&&await this.kv().put(f.key,f);let E={collection:ue,handle:i,original_bytes:n.length,stored_bytes:k,command:r.command,created_at:o,expires_at:p,loss:r.loss,storage_class:d,content_hash:g,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};await this.kv().delete(vr(i)),await this.kv().put(a,E);let _=(await this.readRedDbIndex()).records.filter(T=>T.handle!==i);return _.push({handle:i,key:a,bytes:k,raw_bytes:n.length,command:r.command,created_at:o,expires_at:p,storage_class:d,blob_key:f?.key}),await this.pruneRedDb({version:1,records:_},!0),await this.assertRedDbMintPersisted(i,k),i}async getRedDb(t){if(!vs(t))return null;let r=await this.kvGet(vr(t));if(Ci(r))return r;let n=await this.kvGet(Qt(t));if(!xs(n))return null;if(Date.parse(n.expires_at)<=this.opts.now().getTime()){let o={status:"expired",expired_at:n.expires_at,command:n.command};return await this.expireRedDbEntry({handle:n.handle,key:Qt(n.handle),bytes:bl(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:Ts(n),blob_key:n.blob_key},n.expires_at),o}let s=await this.readOriginal(n);return!s&&(n.derivation_recipe||n.reexecution_recipe)?{status:"expired",expired_at:n.expires_at,command:n.command}:s?{collection:ue,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:Ts(n)}:null}async statsRedDb(){let t=await this.pruneRedDb(await this.readRedDbIndex());return{records:t.records.length,bytes:xr(t.records),oldest:t.records.reduce((r,n)=>r==null||n.created_at<r?n.created_at:r,null),budget:this.opts.byteBudget,storage_classes:pl(t.records)}}async recoveryHandlesRedDb(t){let r=await this.pruneRedDb(await this.readRedDbIndex());return ml(r.records,this.opts.now(),t)}async memory(t,r){if(!this.db)throw new Error("resident memory operations require the shared RedDB store");if(await this.ensureMemoryGraphStore(),t==="recall"){let n=bb(r);return await this.memoryRecallRedDb(n.query,n.limit)}if(t==="ingest"){let n=wb(r);return await this.memoryIngestRedDb(n)}throw new Error(`unsupported memory action: ${t}`)}async ensureMemoryGraphStore(){if(!this.db)throw new Error("rsp RedDB store is not open");await this.db.execute("CREATE GRAPH IF NOT EXISTS memory_nodes"),await this.db.execute("CREATE GRAPH IF NOT EXISTS memory_edges")}async memoryIngestRedDb(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await _b(t.cwd,t.maxFiles??200,t.ignore??[]),n=0;for(let s of r){let i=(await $A(s,"utf8").catch(()=>"")).trim();if(!i)continue;let a=NA(s),c=GA("sha256").update("resident-memory-v1\0").update(s).update("\0").update(i).digest("hex");if(await this.db.kv("memory_kv").get(`resident-node-hash:${c}`)!=null)continue;let u=Date.now(),l={title:a,content:i,source:s,confidence:"EXTRACTED",hash:c,project:"default",scope:"project",importance:1,tier:"durable",provenance_tier:"oracle",created_at:u,updated_at:u,accessed_at:u,access_count:0,provenance:{source_kind:"system",writer:"rsp-resident",confidence:"EXTRACTED",evidence:[s],created_at:u,updated_at:u}},d=await this.db.query("INSERT INTO memory_nodes NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *",a,"concept",c,l),p=Number(d.rows[0]?.red_entity_id??d.rows[0]?.rid);Number.isFinite(p)&&await this.db.kv("memory_kv").put(`resident-node-hash:${c}`,p),n+=1}return{files:r.length,nodes:n,edges:0,docs:r.length,added:n,updated:0,skipped:r.length-n,stale:0,semantic:{enabled:!1,nodes:0,edges:0,token_cost:{input:0,output:0}},durationMs:0}}async memoryRecallRedDb(t,r){if(!this.db)throw new Error("rsp RedDB store is not open");let n=await this.db.query("SELECT * FROM memory_nodes"),s=t.toLowerCase().split(/\s+/).filter(Boolean),o=n.rows.map(i=>Eb(i,s)).filter(i=>i!=null).sort((i,a)=>a.score-i.score).slice(0,Math.max(1,Math.min(100,r)));return{hits:o,context_md:o.map(i=>`- memory_nodes:${i.rid} ${i.label}: ${i.excerpt}`).join(`
103
+ `),diagnostics:{vector:{status:"unavailable",candidates:0,contributed:0,reason:"resident-basic-recall"}}}}async readRedDbIndex(){let t=await this.kvGet(Si());return _l(t)?t:{version:1,records:[]}}async writeRedDbIndex(t){await this.kv().put(Si(),t)}async pruneRedDb(t,r=!1){let n=this.opts.now().getTime(),s=new Date(n).toISOString(),o=[];for(let c of t.records)Date.parse(c.expires_at)<=n?await this.expireRedDbEntry(c,c.expires_at):o.push(c);let i=xr(o);for(o.sort((c,u)=>c.created_at.localeCompare(u.created_at));i>this.opts.byteBudget&&o.length>0;){let c=o.shift();await this.expireRedDbEntry(c,s),i=xr(o)}let a={version:1,records:o};return(r||o.length<t.records.length)&&await this.writeRedDbIndex(a),await this.deleteUnreferencedRedDbBlobs(o),await this.rotateRedDbGenerationIfOversized(a),a}async rotateRedDbGenerationIfOversized(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await jl(this.path).then(u=>u.size,()=>0);if(r<=this.opts.byteBudget)return;let n=await this.snapshotRedDbKvCollections(t);if(!n)return;let s=`${process.pid}.${Date.now()}`,o=`${this.path}.${s}.compact`,i=`${this.path}.${s}.old`;await Gs(o,{force:!0}),await Gs(i,{force:!0});let a=await $i(`file://${o}`);try{for(let u of n){await a.query(`CREATE KV IF NOT EXISTS ${pb(u.name)}`);let l=a.kv(u.name);for(let d of u.items)await l.put(d.key,d.value)}}finally{await a.close()}let c=await jl(o).then(u=>u.size,()=>0);if(c===0||c>this.opts.byteBudget||c>=r){await Gs(o,{force:!0});return}await this.db.close(),this.db=void 0;try{await Bl(this.path,i),await Bl(o,this.path),await Gs(i,{force:!0})}catch(u){throw!Vb(this.path)&&Vb(i)&&await Bl(i,this.path),await Gs(o,{force:!0}),u}finally{this.db=await $i(`file://${this.path}`)}}async snapshotRedDbKvCollections(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await this.db.list();if(r.some(o=>o.model!=="kv"))return null;let n=[],s=!1;for(let o of r){let i=String(o.name??"").trim();if(i===ue){n.push(await this.snapshotRedDbElisions(t)),s=!0;continue}let a=await this.db.kv(i).list({limit:1e4});if(a.items.length>=1e4)return null;n.push({name:i,items:a.items})}return s||n.push(await this.snapshotRedDbElisions(t)),n}async snapshotRedDbElisions(t){let r=[{key:Si(),value:t}],n=new Set;for(let s of t.records)n.add(s.key),s.blob_key&&n.add(s.blob_key);for(let s of n){let o=await this.kvGet(s);o!=null&&r.push({key:s,value:o})}return{name:ue,items:r}}async expireRedDbEntry(t,r){await this.kv().delete(t.key),await this.kv().put(vr(t.handle),{status:"expired",expired_at:r,command:t.command})}async deleteUnreferencedRedDbBlobs(t){let r=new Set(t.map(s=>s.blob_key).filter(s=>typeof s=="string")),n=await this.kv().list({limit:1e4}).catch(()=>({items:[]}));for(let s of n.items)s.key.startsWith("blob:")&&!r.has(s.key)&&await this.kv().delete(s.key)}async assertRedDbMintPersisted(t,r){let n=await this.kvGet(Qt(t));if(!xs(n))throw new Error(`rsp resident failed to persist elision record ${t}`);let o=(await this.readRedDbIndex()).records.find(i=>i.handle===t);if(!o||o.bytes!==r)throw new Error(`rsp resident failed to persist elision index ${t}`)}}});var Yb={};K(Yb,{DEFAULT_RSP_BYTE_BUDGET:()=>Xe,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Qe,DEFAULT_RSP_TTL_DAYS:()=>Ye,RSP_ELISION_COLLECTION:()=>ue,RspElisionStore:()=>Cr,contentHandle:()=>Ss,ensureReddbBinaryFromWarmCache:()=>Ai,provisionElisionStore:()=>Kb,storageClassForCommand:()=>Nt});var Ni=h(()=>{"use strict";Ei();Pi();Pi();zb()});async function Fi(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:30,s=r.getTime()-n*24*60*60*1e3,o=await Zb(e,s),i=(await Ds(e,Ae)).filter(P=>_n(P)>=s),a=o.filter(P=>M(P.event_type)!=="show"&&M(P.degradation_reason)===""),c=o.filter(P=>M(P.event_type)==="show"),u=o.filter(P=>M(P.degradation_reason)!==""),l=0,d=0,p=0,g=0,f=!1,k=new Map,E=new Map,y=[],_=0,T=0,C=0;for(let P of a){P.elided===!0&&l++;let B=Ue(P.raw_bytes),Ne=Ue(P.emitted_bytes),wt=Math.max(0,B-Ne),Bt=En(P,"raw"),O=En(P,"emitted"),N=Math.max(0,Bt.tokens-O.tokens);f||=(P.estimated===!0||Bt.estimated||O.estimated)&&N>0,d+=B,p+=Ne,g+=N;let _t=Or(P).slice(0,10);_t&&k.set(_t,(k.get(_t)??0)+N);let rt=M(P.command)||"unknown",Te=E.get(rt)??{command:rt,invocations:0,bytes_saved:0,tokens_saved:0};Te.invocations++,Te.bytes_saved+=wt,Te.tokens_saved+=N,E.set(rt,Te);let ve=zt(P.wrapper_ms);ve!=null&&y.push(ve),_+=Ue(P.store_open_count);let Et=zt(P.store_elapsed_ms);Et!=null&&(T+=Et,C++)}let L=new Map,F=new Map,q=[],se=null;for(let P of u){let B=M(P.degradation_reason)||M(P.reason)||"unknown",Ne=M(P.wrapper_family)||He(M(P.command));L.set(B,(L.get(B)??0)+1),F.set(Ne,(F.get(Ne)??0)+1);let wt=Or(P);q.push({timestamp:wt,family:Ne,command:M(P.command)||"unknown",reason:B,exit_code:zt(P.wrapper_exit_code),stderr_head:M(P.stderr_head)||null}),(!se||wt>se.timestamp)&&(se={timestamp:wt,reason:B,command:M(P.command)||"unknown"})}let re=a.length+u.length,de=c.filter(P=>P.hit===!0).length,pe=Oc(g,f),Mt=MA(i);return{window_days:n,empty:o.length===0,savings:{invocations:a.length,elided:l,raw_bytes:d,emitted_bytes:p,bytes_saved:Math.max(0,d-p),tokens_saved:g,tokens_saved_estimated:pe.tokens_saved_estimated,token_estimate_range_pct:pe.token_estimate_range_pct,tokens_saved_low:pe.tokens_saved_low,tokens_saved_high:pe.tokens_saved_high,dollars_saved_estimate_usd:pe.dollars_saved_estimate_usd,dollars_saved_low_usd:pe.dollars_saved_low_usd,dollars_saved_high_usd:pe.dollars_saved_high_usd,pricing_model_family:pe.pricing_model_family,pricing_input_usd_per_million_tokens:pe.pricing_input_usd_per_million_tokens,pricing_note:pe.pricing_note,daily_tokens_saved:[...k.entries()].sort(([P],[B])=>P.localeCompare(B)).map(([P,B])=>({date:P,tokens_saved:B})),top_commands:[...E.values()].sort((P,B)=>B.bytes_saved-P.bytes_saved||B.tokens_saved-P.tokens_saved||P.command.localeCompare(B.command))},health:{degradations:u.length,degradation_rate:re===0?0:u.length/re,show_total:c.length,show_hits:de,show_misses:Math.max(0,c.length-de),show_hit_rate:c.length===0?0:be(de/c.length),by_reason:[...L.entries()].sort((P,B)=>B[1]-P[1]||P[0].localeCompare(B[0])).map(([P,B])=>({reason:P,count:B})),by_family:[...F.entries()].sort((P,B)=>B[1]-P[1]||P[0].localeCompare(B[0])).map(([P,B])=>({family:P,count:B})),recent_failures:q.sort((P,B)=>B.timestamp.localeCompare(P.timestamp)).slice(0,20),most_recent:se},latency:{wrapper_ms_p50:wn(y,.5),wrapper_ms_p95:wn(y,.95),store_open_count_sum:_,store_elapsed_ms_sum:be(T),store_elapsed_ms_avg:C===0?null:be(T/C)},decisions:Mt}}function MA(e){let t=0,r=0,n=0,s=0,o=new Map,i=new Map;for(let a of e){let c=M(a.decision);if(c==="contributed"?t++:c==="failed-open"?n++:r++,a.quota_free===!0&&(s+=Math.max(1,Ue(a.saved_units))),c!=="contributed"){let d=M(a.reason)||"unknown";o.set(d,(o.get(d)??0)+1)}let u=M(a.command_family)||"unknown",l=i.get(u)??{contributed:0,passed:0,failed_open:0};c==="contributed"?l.contributed++:c==="failed-open"?l.failed_open++:l.passed++,i.set(u,l)}return{seen:e.length,contributed:t,passed:r,failed_open:n,quota_free_saved_units:s,contribution_rate:e.length===0?0:be(t/e.length),top_pass_reasons:[...o.entries()].sort((a,c)=>c[1]-a[1]||a[0].localeCompare(c[0])).map(([a,c])=>({reason:a,count:c})),by_command_family:[...i.entries()].sort((a,c)=>{let u=a[1].contributed+a[1].passed+a[1].failed_open;return c[1].contributed+c[1].passed+c[1].failed_open-u||a[0].localeCompare(c[0])}).map(([a,c])=>{let u=c.contributed+c.passed+c.failed_open;return{command_family:a,contributed:c.contributed,passed:c.passed,failed_open:c.failed_open,contribution_rate:u===0?0:be(c.contributed/u)}})}}async function Ul(e,t,r=new Date){let s=(await Ds(e,Oe)).filter(o=>_n(o)<=r.getTime()||Or(o)==="");return{records:s.length,bytes:s.reduce((o,i)=>o+Buffer.byteLength(JSON.stringify(i),"utf8"),0),oldest:s.reduce((o,i)=>{let a=Or(i);return a&&(o==null||a<o)?a:o},null),budget:t,storage_classes:KA(s)}}async function Hl(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:28,s=r.toISOString(),o=new Date(r.getTime()-n*24*60*60*1e3).toISOString(),i=Date.parse(o),a=await Zb(e,i),c=a.filter(O=>M(O.event_type)!=="show"&&M(O.event_type)!=="control_holdout"&&O.control_holdout!==!0&&M(O.degradation_reason)===""),u=a.filter(O=>M(O.event_type)==="control_holdout"||O.control_holdout===!0),l=a.filter(O=>M(O.event_type)==="show"),d=a.filter(O=>M(O.degradation_reason)!==""),p=[...c,...d].map(_n).filter(O=>Number.isFinite(O)&&O>0),g=p.length===0?null:Math.min(...p),f=g==null?0:Math.max(1,Math.min(n,Math.ceil((r.getTime()-g)/nP()))),k=[],E=new Map,y=new Map,_=new Map,T=new Map,C=new Map,L=new Map,F=0,q=!1,se=0,re=null,de=0,pe=0;for(let O of c){let N=Or(O),_t=N.slice(0,10),rt=N.slice(0,16),Te=He(M(O.command)),ve=Math.max(0,En(O,"raw").tokens-En(O,"emitted").tokens);F+=ve,q||=O.estimated===!0&&ve>0;let Et=Math.max(0,Ue(O.raw_bytes)-Ue(O.emitted_bytes)),Fr=zt(O.wrapper_ms);if(Fr!=null){k.push(Fr);let In=E.get(Te)??[];In.push(Fr),E.set(Te,In)}_t&&y.set(_t,(y.get(_t)??0)+1),rt&&_.set(rt,(_.get(rt)??0)+1);let jt=XA(N);jt&&T.set(jt,(T.get(jt)??0)+1);let Pn=tP(N);Pn&&C.set(Pn,(C.get(Pn)??0)+ve);let ur=L.get(Te)??{command_family:Te,invocations:0,tokens_saved:0,bytes_saved:0};ur.invocations++,ur.tokens_saved+=ve,ur.bytes_saved+=Et,L.set(Te,ur),O.elided===!0&&se++,(O.store_open_count!=null||O.store_elapsed_ms!=null)&&(de++,Ue(O.store_open_count)>0&&pe++),ve>0&&(!re||ve>re.tokens_saved||ve===re.tokens_saved&&Et>re.bytes_saved)&&(re={timestamp:N,command_family:Te,tokens_saved:ve,bytes_saved:Et})}let Mt=d.map(O=>({timestamp:Or(O),command_family:He(M(O.command)),reason:M(O.degradation_reason)||M(O.reason)||"unknown"})).sort((O,N)=>O.timestamp.localeCompare(N.timestamp)),P=new Map;for(let O of Mt)P.set(O.reason,(P.get(O.reason)??0)+1);let B=HA(Mt),Ne=UA(l),wt=WA([...L.values()],Ne,B),Bt=[..._.entries()].sort((O,N)=>N[1]-O[1]||O[0].localeCompare(N[0]))[0];return{schema_version:"red.rsp.gains.v1",window:{requested_days:n,data_days:f,since:o,until:s,label:`window: ${n}d, data: ${f}d`,empty:c.length===0&&d.length===0,invocations:c.length,degradations:d.length},latency:{global:Xb(k),by_command_family:[...E.entries()].sort((O,N)=>N[1].length-O[1].length||O[0].localeCompare(N[0])).map(([O,N])=>({command_family:O,count:N.length,...Xb(N)}))},throughput:{requests_per_day:[...y.entries()].sort(([O],[N])=>O.localeCompare(N)).map(([O,N])=>({date:O,requests:N})),active_minute_avg:_.size===0?null:be([..._.values()].reduce((O,N)=>O+N,0)/_.size),peak_minute:Bt?{minute:Bt[0],requests:Bt[1]}:null,hour_weekday_heatmap:ZA(T)},savings:{tokens:Oc(F,q),measured_control_holdout:BA(c,u),weekly_tokens_saved:rP(C),elision_rate:c.length===0?0:be(se/c.length),top_commands_by_tokens_saved:[...L.values()].sort((O,N)=>N.tokens_saved-O.tokens_saved||N.bytes_saved-O.bytes_saved||O.command_family.localeCompare(N.command_family)).slice(0,10),top_commands_by_invocation_count:[...L.values()].sort((O,N)=>N.invocations-O.invocations||N.tokens_saved-O.tokens_saved||O.command_family.localeCompare(N.command_family)).slice(0,10),single_biggest_elision:re},health:{degradation_timeline:Mt,degradations_by_reason:[...P.entries()].sort((O,N)=>N[1]-O[1]||O[0].localeCompare(N[0])).map(([O,N])=>({reason:O,count:N})),cold_boots:de===0?null:pe,warm_hits:de===0?null:Math.max(0,de-pe)},mining:{recovery_usage_by_family:Ne,degradation_clusters:B,threshold_tuning_suggestions:wt}}}async function Zb(e,t){let r=(await Ds(e,Oe)).filter(i=>_n(i)>=t),n=r.some(i=>M(i.event_type)!=="show"||M(i.degradation_reason)!==""),s=(await Ds(e,je)).filter(i=>_n(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:M(i.event_type)||"invocation"})),o=(await Ds(e,pt)).filter(i=>_n(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:"invocation",degradation_reason:M(i.reason)||"unknown"}));return[...r,...s,...o]}function En(e,t){let r=zt(e[t==="raw"?"tokens_raw":"tokens_emitted"]);if(r!=null)return{tokens:r,estimated:!1};let n=Ue(e[t==="raw"?"raw_bytes":"emitted_bytes"]);return{tokens:Math.ceil(n/4),estimated:n>0}}function BA(e,t){let r=VA(t.map(a=>zt(a.holdout_share)))??0;if(t.length===0)return{enabled:!1,holdout_share:r,holdout_invocations:0,compressed_invocations:e.length,savings_rate:null,confidence_interval_95:null,note:"control holdout disabled or no holdout samples in window"};let n=e.map(Qb).filter(a=>a!=null),s=t.map(Qb).filter(a=>a!=null),o=n.length>0?n:s,i=o.length===0?null:be(JA(o));return{enabled:!0,holdout_share:be(r),holdout_invocations:t.length,compressed_invocations:e.length,savings_rate:i,confidence_interval_95:i==null?null:jA(o,i),note:"measured from opt-in uncompressed control holdout; report proposes, it does not tune automatically"}}function Qb(e){let t=En(e,"raw").tokens;if(t<=0)return null;let r=En(e,"emitted").tokens;return Math.max(0,t-r)/t}function jA(e,t){if(e.length<=1)return{low:be(Math.max(0,t)),high:be(Math.min(1,t))};let r=e.reduce((s,o)=>s+(o-t)**2,0)/(e.length-1),n=1.96*Math.sqrt(r/e.length);return{low:be(Math.max(0,t-n)),high:be(Math.min(1,t+n))}}function UA(e){let t=new Map;for(let r of e){let n=He(M(r.recovered_command)||M(r.command)),s=t.get(n)??{command_family:n,show_total:0,show_hits:0,show_misses:0};s.show_total++,r.hit===!0?s.show_hits++:s.show_misses++,t.set(n,s)}return[...t.values()].sort((r,n)=>n.show_total-r.show_total||r.command_family.localeCompare(n.command_family)).map(r=>({...r,show_hit_rate:r.show_total===0?0:be(r.show_hits/r.show_total)}))}function HA(e){let t=new Map;for(let r of e){let n=`${r.command_family}\0${r.reason}`,s=t.get(n)??{command_family:r.command_family,reason:r.reason,count:0};s.count++,t.set(n,s)}return[...t.values()].sort((r,n)=>n.count-r.count||r.command_family.localeCompare(n.command_family)||r.reason.localeCompare(n.reason)).map(r=>({...r,suggestion:qA(r)}))}function qA(e){return/unavailable|not provisioned|missing/i.test(e.reason)?`Investigate ${e.command_family} wrapper availability before changing thresholds`:/timeout|large|limit/i.test(e.reason)?`Review ${e.command_family} byte thresholds and timeout caps for ${e.count} matching degradations`:`Investigate ${e.command_family} ${e.reason} cluster before tuning compression thresholds`}function WA(e,t,r){let n=[];for(let s of t.filter(o=>o.show_total>0))n.push({command_family:s.command_family,signal:`recovery_show_rate=${s.show_total}`,suggestion:s.show_hit_rate>=.5?"Consider preserving more context or raising terse thresholds for frequently recovered outputs":"Recovery misses dominate; inspect handle lifetime before threshold changes"});for(let s of r.filter(o=>o.count>1))n.push({command_family:s.command_family,signal:`degradation_cluster=${s.reason}:${s.count}`,suggestion:"Fix the repeated degradation before tightening compression"});for(let s of e.filter(o=>o.invocations>0&&o.tokens_saved===0))n.push({command_family:s.command_family,signal:"zero_token_savings",suggestion:"Consider bypassing or raising admission thresholds for this family"});return n.slice(0,10)}function JA(e){return e.reduce((t,r)=>t+r,0)/e.length}function VA(e){let t=e.filter(r=>r!=null);return t.length===0?null:Math.max(...t)}function KA(e){let t=YA();for(let r of e){if(M(r.event_type)==="show"||M(r.degradation_reason)!==""||r.elided!==!0)continue;let n=zA(r.storage_class)??Nt(M(r.command));t[n].records+=1;let s=Ue(r.raw_bytes);t[n].bytes+=s,t[n].raw_bytes+=s}return t}function zA(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"?e:null}function YA(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}async function Ds(e,t){return(await e.kv(t).list({limit:1e4}).catch(n=>{if(n instanceof Error&&/\bnot found\b/i.test(n.message))return{items:[]};throw n})).items.map(n=>QA(n.value)).filter(n=>pn(n))}function QA(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function _n(e){let t=Date.parse(Or(e));return Number.isFinite(t)?t:0}function Or(e){return M(e.created_at)||M(e.ts)||""}function M(e){return typeof e=="string"?e:""}function wn(e,t){if(e.length===0)return null;let r=[...e].sort((s,o)=>s-o),n=Math.min(r.length-1,Math.max(0,Math.ceil(r.length*t)-1));return be(r[n])}function Xb(e){return{wrapper_ms_p50:wn(e,.5),wrapper_ms_p90:wn(e,.9),wrapper_ms_p95:wn(e,.95),wrapper_ms_p99:wn(e,.99)}}function be(e){return Math.round(e*100)/100}function XA(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${eP(t.getUTCDay())}:${t.getUTCHours()}`:null}function ZA(e){let t=[];for(let r of["sun","mon","tue","wed","thu","fri","sat"])for(let n=0;n<24;n++){let s=e.get(`${r}:${n}`)??0;s>0&&t.push({weekday:r,hour:n,requests:s})}return t}function eP(e){return["sun","mon","tue","wed","thu","fri","sat"][e]??"unknown"}function tP(e){let t=new Date(e);if(!Number.isFinite(t.getTime()))return null;let r=t.getUTCDay(),n=r===0?-6:1-r;return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()+n)).toISOString().slice(0,10)}function rP(e){let t=null;return[...e.entries()].sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>{let s=t==null||t===0?null:be((n-t)/t*100);return t=n,{week_start:r,tokens_saved:n,wow_delta_pct:s}})}function nP(){return 24*60*60*1e3}var ew=h(()=>{"use strict";_s();Ni();Ac();hi();rl()});var $s={};K($s,{RSP_ACCOUNTING_EVENTS_COLLECTION:()=>Oe,RSP_DECISIONS_COLLECTION:()=>Ae,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:()=>pt,RSP_TELEMETRY_INDEX_COLLECTION:()=>hs,RSP_TELEMETRY_INVOCATIONS_COLLECTION:()=>je,RSP_TELEMETRY_LEGACY_SPOOL_FILE:()=>el,RSP_TELEMETRY_SPOOL_CORRECTIONS_FILE:()=>tl,RSP_TELEMETRY_SPOOL_FILE:()=>Zu,appendTelemetryEvent:()=>kr,appendTelemetryEventSync:()=>Yt,drainTelemetrySpool:()=>cl,parseTelemetryEvent:()=>fn,readAccountingLaneStats:()=>Ul,readTelemetryGainsReport:()=>Hl,readTelemetryStats:()=>Fi,takeTelemetrySpool:()=>s0,telemetryLegacySpoolPath:()=>wi,telemetrySpoolCorrectionsPath:()=>al,telemetrySpoolPath:()=>$t});var mt=h(()=>{"use strict";hi();lb();ew()});import{existsSync as sP}from"node:fs";import{join as oP}from"node:path";function iP(){for(let e of(process.env.PATH??"").split(":"))if(e&&sP(oP(e,"rsp")))return!0;return!1}function Ns(){return iP()?["rsp"]:[process.execPath,process.argv[1]]}var ql=h(()=>{"use strict"});var Mi={};K(Mi,{parseProxyCommandLine:()=>nw,rewriteProxyCommandLine:()=>rw,runProxy:()=>uP});import{spawn as aP}from"node:child_process";function cP(e){return/[^\w@%+=:,./-]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}async function uP(e,t){let r="",n="",s=[],o=process.hrtime.bigint();try{if(r=nw(e),process.env.RSP_PROXY_FAIL_INTERNAL==="1")throw new Error("forced proxy failure");let c=rw(r,t.level??"lossless");n=c.commandLine,s=c.matches}catch(c){if(r)return await lP(t.telemetryRoot,r,c),await tw(r);throw c}for(let c of s)await dP(t.telemetryRoot,c);let i=await tw(n||r),a=Number(process.hrtime.bigint()-o)/1e6;return await kr(t.telemetryRoot,{collection:je,ts:new Date().toISOString(),command:r,wrapper:"proxy",loss:"lossless",elided:!1,raw_bytes:0,emitted_bytes:0,wrapper_ms:a,accounting_recorded:!1}),i}function rw(e,t="lossless",r=Ns()){let n=yP(e),s=[];return{commandLine:n.map((i,a)=>{if(i.kind==="operator"||hP(n,a)==="|")return i.text;let c=pP(i.text,t,r);return c?(s.push(c.match),c.text):i.text}).join(""),matches:s}}function nw(e){if(e[0]!=="proxy")throw new Error("expected rsp proxy -- <command line>");let t=e.indexOf("--"),r=t>=0?e.slice(t+1):e.slice(1),n=r.length===1?r[0]:r.join(" ");if(!n.trim())throw new Error("usage: rsp proxy -- <command line>");return n}async function lP(e,t,r){await kr(e,{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t,command_family:He(t),decision:"failed-open",reason:"proxy-internal-error",error:r instanceof Error?r.name:typeof r})}async function dP(e,t){await kr(e,{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t.command,command_family:t.commandFamily,decision:t.decision,reason:t.reason,capability_id:t.capabilityId})}async function tw(e){let t=aP(e,{shell:!0,stdio:"inherit"}),r=Ge();return t.once("close",r),t.once("error",r),await new Promise(n=>{t.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
104
+ `),n(127)}),t.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}function pP(e,t,r){let n=e.match(/^\s*/)?.[0]??"",s=e.match(/\s*$/)?.[0]??"",o=e.trim();if(!o)return null;let i=wP(o);if(!i)return null;let a=gP(i);if(a>=i.length)return null;let c=i.slice(a),u=c.map(f=>f.value);if(Sr(u))return{text:e,match:{command:c.map(f=>f.raw).join(" "),commandFamily:He(u.join(" ")),decision:"passed",reason:"lossless-gh-json-jq"}};let l=mP(c);if(!l)return null;let d=i.slice(0,a).map(f=>f.raw),p=t==="lossless"?[]:[`--${t}`],g=[...d,...r.map(cP),...p,...l.wrapperWords].join(" ");return{text:`${n}${g}${s}`,match:{command:c.map(f=>f.raw).join(" "),commandFamily:He(u.join(" ")),decision:"contributed",reason:"proxy-segment",capabilityId:l.capabilityId}}}function mP(e){let t=e.map(n=>n.value),r=e.map(n=>n.raw);return t[0]==="git"&&["status","log","diff","show","blame"].includes(t[1]??"")?{capabilityId:`git:${t[1]}`,wrapperWords:r}:t[0]==="git"&&t[1]==="branch"&&t[2]==="-av"?{capabilityId:"git:branch:av",wrapperWords:r}:t[0]==="gh"&&["pr","issue","run"].includes(t[1]??"")&&["list","view"].includes(t[2]??"")?{capabilityId:`gh:${t[1]}:${t[2]}`,wrapperWords:r}:t[0]==="vitest"?{capabilityId:t[1]==="run"?"vitest:run":"vitest",wrapperWords:r}:t[0]==="cargo"&&t[1]==="test"?{capabilityId:"cargo:test",wrapperWords:r}:fP(t,r)}function fP(e,t){return e[0]==="cat"&&e.length===2&&Wl(e[1])?{capabilityId:"cat:file",wrapperWords:["cat",t[1]]}:(e[0]==="head"||e[0]==="tail")&&e.length===2&&Wl(e[1])?{capabilityId:`cat:${e[0]}`,wrapperWords:["cat",`--${e[0]}`,"10",t[1]]}:(e[0]==="head"||e[0]==="tail")&&e.length===4&&e[1]==="-n"&&/^[1-9][0-9]*$/.test(e[2])&&Wl(e[3])?{capabilityId:`cat:${e[0]}`,wrapperWords:["cat",`--${e[0]}`,e[2],t[3]]}:null}function Wl(e){return!!e&&!e.startsWith("-")}function gP(e){let t=0;for(;t<e.length&&gn(e[t].value);)t+=1;if(e[t]?.value!=="env")return t;for(t+=1;t<e.length&&gn(e[t].value);)t+=1;return t}function hP(e,t){for(let r=t+1;r<e.length;r+=1)if(e[r].kind==="operator")return e[r].text}function yP(e){let t=[],r=0,n,s=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(s){s=!1;continue}if(i==="\\"){s=!0;continue}if(n){i===n&&(n=void 0);continue}if(i==="'"||i==='"'){n=i;continue}let a=bP(e,o);a&&(o>r&&t.push({kind:"segment",text:e.slice(r,o)}),t.push({kind:"operator",text:a}),o+=a.length-1,r=o+1)}return r<e.length&&t.push({kind:"segment",text:e.slice(r)}),t}function bP(e,t){let r=e.slice(t,t+2);if(r==="&&"||r==="||")return r;let n=e[t];return n===";"||n==="|"?n:void 0}function wP(e){let t=[],r="",n="",s,o=!1,i=!1,a=()=>{i&&(t.push({raw:r,value:n}),r="",n="",i=!1)};for(let c=0;c<e.length;c+=1){let u=e[c];if(o){r+=u,n+=u,o=!1,i=!0;continue}if(u==="\\"){r+=u,o=!0,i=!0;continue}if(s){r+=u,u===s?s=void 0:n+=u,i=!0;continue}if(u==="'"||u==='"'){r+=u,s=u,i=!0;continue}if(/[ \t]/.test(u)){a();continue}if(/[()<>`]/.test(u))return null;r+=u,n+=u,i=!0}return s||o?null:(a(),t)}var Bi=h(()=>{"use strict";ae();_s();ql();mt()});function iw(e,t={}){let r=_P(e);if(r.length<12)return[];let n=new Map,s=new Map;for(let p of r){s.set(p.signature,(s.get(p.signature)??0)+1);for(let g of new Set(p.tokens))n.set(g,(n.get(g)??0)+1)}let o=r.map(p=>p.length),i=r.map(p=>p.tokens.length),a=r.map(p=>p.numbers.length===0?0:Math.max(...p.numbers.map(Math.abs))),c=Jl(o),u=Jl(i),l=Jl(a),d=t.excludedByteRanges??[];return r.filter(p=>p.text.trim().length>0).filter(p=>!d.some(g=>vP(p.start,p.end,g.start,g.end))).map(p=>({line:p,score:Vl(p.length,c)+Vl(p.tokens.length,u)+Vl(p.numbers.length===0?0:Math.max(...p.numbers.map(Math.abs)),l)+SP(p.tokens,n,r.length)+TP(p.signature,s,r.length)})).filter(p=>p.score>=(t.minScore??7)).sort((p,g)=>g.score-p.score||p.line.index-g.line.index).slice(0,t.maxOutliers??3).sort((p,g)=>p.line.index-g.line.index).map(p=>({lineNumber:p.line.index+1,score:Math.round(p.score*100)/100,text:p.line.text}))}function _P(e){let t=[],r=0,n=0;for(let s of e.matchAll(/\n/g)){let o=s.index??e.length;t.push(sw(n++,r,o,e.slice(r,o).replace(/\r$/,""))),r=o+1}return(r<e.length||e.length===0)&&t.push(sw(n,r,e.length,e.slice(r).replace(/\r$/,""))),t}function sw(e,t,r,n){return{index:e,start:t,end:r,text:n,signature:EP(n),tokens:RP(n),numbers:kP(n),length:n.length}}function EP(e){return e.replace(/[A-Z]+/g,"A").replace(/[a-z]+/g,"a").replace(/\d+(?:\.\d+)?/g,"0").replace(/\s+/g," ").slice(0,160)}function RP(e){return e.toLowerCase().match(/[a-z0-9_.:/-]{3,}/g)??[]}function kP(e){return[...e.matchAll(/[-+]?\d+(?:\.\d+)?/g)].map(t=>Number(t[0])).filter(t=>Number.isFinite(t))}function SP(e,t,r){let n=[...new Set(e)];if(n.length===0)return 0;let s=n.map(o=>Math.log2(r/Math.max(1,t.get(o)??r))).sort((o,i)=>i-o).slice(0,6);return s.reduce((o,i)=>o+i,0)/Math.max(1,s.length)}function TP(e,t,r){return Math.log2(r/Math.max(1,t.get(e)??r))}function Jl(e){let t=ow(e),r=ow(e.map(n=>Math.abs(n-t)))||1;return{median:t,mad:r}}function Vl(e,t){return Math.abs(e-t.median)/t.mad}function ow(e){let t=[...e].sort((n,s)=>n-s),r=Math.floor(t.length/2);return t.length===0?0:t.length%2===1?t[r]:((t[r-1]??0)+(t[r]??0))/2}function vP(e,t,r,n){return e<n&&r<t}var aw=h(()=>{"use strict"});var Kl={};K(Kl,{DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>Gt,GIT_LOG_MACHINE_FIELDS:()=>uw,StructuredUsageError:()=>ji,cleanStatusPayload:()=>mw,recoveryInstruction:()=>et,renderGitContract:()=>lw,runGitWrapper:()=>CP});import{spawn as xP}from"node:child_process";async function CP(e,t){let r=dw(e),n=pw(r.argv),s=await IP(n,r.argv.slice(1));return lw(e,s,t)}async function lw(e,t,r){let n=dw(e);if((t.status??0)!==0||t.signal){let d=ze(e.join(" "),t.stdout,t.stderr);return{stdout:V(d),stderr:Buffer.from(t.stderr),status:d.exitCode??1,signal:t.signal}}let s=pw(n.argv),o;try{o=LP(s,n.argv,t.stdout,n.query)}catch(d){if(d instanceof Ui)return{stdout:Buffer.from(t.stdout),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,rawOutput:Buffer.from(t.stdout),degradation:{reason:d.reason,family:"git status",stderrHead:d.message}};throw d}let i=$(o);if(OP(s,i,n.full,r))return{stdout:Buffer.from(i),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o};let a=QP(o);if(!a)return{stdout:Buffer.from(i),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o};let c=Buffer.byteLength(i),u=await r.store?.mint(Buffer.from(i),{command:e.join(" "),loss:{level:"terse",bytes_elided:c}});if(!u)throw new Error("terse git output requires an elision store");let l=`\u2026 elided ${a.rowsElided} rows (+${c}) \u2014 ${et(u)}
106
105
  `;return{stdout:Buffer.from(`${$(a.payload)}
107
- ${l}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:a.payload,mintedHandle:u,bytesElided:c,rowsElided:a.rowsElided,rawOutput:Buffer.from(i)}}function rt(e){return e.startsWith("el:")?`rsp show ${e}`:e}function Xb(e){let{argv:t,query:r,full:n}=gm(e),s=t.slice(2).find(o=>o.startsWith("--rsp-"));if(s)throw new Gi(e.join(" "),s,["--full","--brief","--terse","--query"]);return{argv:t,query:r,full:n}}function XA(e,t,r,n){if(n.level==="terse")return!1;if(r||n.level==="full"||!ZA(e)||n.level!=="lossless")return!0;let s=wP(n.heavyGitByteThreshold,It);return Buffer.byteLength(t)<=s}function ZA(e){return e==="diff"||e==="log"||e==="blame"||e==="show"}function Zb(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"||t==="blame"||t==="branch"||t==="show")return t;throw new Error(`unsupported git subcommand: ${t??""}`)}function eP(e,t){let r=t.slice(1);switch(e){case"status":return["status","--porcelain=v2","-z","-b",...r];case"log":return["log",`--format=%x1e${Yb.join("%x1f")}`,"-z",...r];case"diff":return["diff","--numstat","-z",...r];case"commit":return["commit",...r];case"push":return["push","--porcelain",...r];case"blame":return["blame","--line-porcelain",...r];case"branch":return["branch","--format=%(HEAD)%00%(refname:short)%00%(objectname:short)%00%(upstream:short)%00%(worktreepath)%00%(contents:subject)",...r];case"show":return["show","--format=%x1e%H%x1f%h%x1f%an%x1f%aI%x1f%s%x1f%b%x1e","--stat",...r]}}async function tP(e,t){let r=YA("git",eP(e,t),{stdio:["ignore","pipe","pipe"]}),n=ke();r.once("close",n),r.once("error",n);let s=[],o=[];return r.stdout.on("data",i=>s.push(i)),r.stderr.on("data",i=>o.push(i)),await new Promise((i,a)=>{r.on("error",a),r.on("close",(c,u)=>{i({stdout:Buffer.concat(s).toString("utf8"),stderr:Buffer.concat(o).toString("utf8"),status:c,signal:u})})})}function rP(e,t,r,n){switch(e){case"status":return nP(t,r,n);case"log":return dP(t,r,n);case"diff":return pP(t,r,n);case"commit":return er(mP(t,r),n,["rsp git status --query <path-or-state>"]);case"push":return er(fP(t,r),n,["rsp gh pr list --query <branch>"]);case"blame":return gP(t,r,n);case"branch":return hP(t,r,n);case"show":return yP(t,r,n)}}function nP(e,t,r){let n="",s=[],o=!1,i=!1;for(let u of sP(t)){if(!u)continue;if(i=!0,u.startsWith("# branch.head ")){n=u.slice(14),o=!0;continue}if(u.startsWith("# ")){o=!0;continue}if(u.startsWith("## ")){n=aP(u),o=!0;continue}let l=oP(u);if(l){o=!0,s.push(l);continue}let p=iP(u);p&&(o=!0,s.push(p))}if(s.length===0){if(!i||o)return ew(e.join(" "),n);throw new $i("git-status-unparseable")}let a=Re(s,r),c=tw(a,"state");return er({command:e.join(" "),branch:n,rows:a,summary:lP(a.length,s.length,c,r)},r,["rsp git diff --query <path>","rsp git log --query <subject>"])}function sP(e){return e.includes("\0")?e.split("\0"):e.split(/\r?\n/)}function oP(e){if(e.startsWith("1 ")){let t=e.split(" "),r=t[1]??"..",n=t.slice(8).join(" ");return Fs(n,r)}if(e.startsWith("2 ")){let t=e.split(" "),r=t[1]??"..";return Fs(t.slice(9).join(" "),r)}if(e.startsWith("u ")){let t=e.split(" "),r=t[1]??"..";return Fs(t.slice(10).join(" "),r)}return e.startsWith("? ")?Fs(e.slice(2),"??"):null}function iP(e){if(e.length<4||e[2]!==" ")return null;let t=e.slice(0,2);return/^[ MADRCU?!][ MADRCU?!?]$/.test(t)?Fs(cP(e.slice(3),t),t):null}function Fs(e,t){let r=zb(t[0]??"."),n=zb(t[1]??".");return{path:uP(e),index:r,worktree:n,state:bP(`${r}${n}`)}}function zb(e){return e===" "?".":e}function aP(e){let t=e.slice(3).split("...")[0]?.trim()??"";return t==="HEAD (no branch)"?"HEAD":t}function cP(e,t){if(!t.includes("R")&&!t.includes("C"))return e;let r=e.lastIndexOf(" -> ");return r>=0?e.slice(r+4):e}function uP(e){let t=e.trim();if(!t.startsWith('"')||!t.endsWith('"'))return t;try{return JSON.parse(t)}catch{return t.slice(1,-1)}}function lP(e,t,r,n){let s=[];return r.renamed&&s.push(`${r.renamed} renamed`),r.untracked&&s.push(`${r.untracked} untracked`),r.changed&&s.push(`${r.changed} changed`),`${n?`${e}/${t}`:e} changes: ${r.added??0} added, ${r.modified??0} modified, ${r.deleted??0} deleted${s.length?`, ${s.join(", ")}`:""}`}function ew(e="git status",t=""){return{command:e,category:"no-op",exit_code:0,noop:!0,scope:"git status",empty:!0,branch:t,rows:[],summary:"git status clean: 0 changes"}}function dP(e,t,r){let n=t.split("\0").filter(Boolean).map(o=>{let i=o.replace(/^\x1e/,"").split("");return{short:i[0]??"",author:i[1]??"",date:i[2]??"",subject:i[3]??""}}),s=Re(n,r);return er({command:e.join(" "),commits:s,summary:`${r?`${s.length}/${n.length}`:s.length} commits`},r,["rsp git diff --query <path>","rsp gh pr list --query <branch>"])}function pP(e,t,r){let s=t.split("\0").filter(Boolean).map(a=>{let[c,u,l]=a.split(" ");return{path:l??"",added:c==="-"?null:Number(c??0),deleted:u==="-"?null:Number(u??0)}}),o=Re(s,r),i=o.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 er({command:e.join(" "),files:o,summary:`${r?`${o.length}/${s.length}`:o.length} files, +${i.added} -${i.deleted}`},r,["rsp git status --query <path>","rsp git log --query <subject>"])}function mP(e,t){let r=t.split(`
108
- `)[0]??"",n=/^\[([^ ]+) ([0-9a-f]+)\] (.+)$/.exec(r),s=/(\d+) files? changed/.exec(t),o=/(\d+) insertions?\(\+\)/.exec(t),i=/(\d+) deletions?\(-\)/.exec(t),a=n?.[1]??"",c=n?.[2]??"",u=Number(s?.[1]??0),l=Number(o?.[1]??0),p=Number(i?.[1]??0);return{command:e.join(" "),branch:a,commit:c,subject:n?.[3]??"",files_changed:u,insertions:l,deletions:p,summary:`commit ${c} on ${a}: ${u} files, +${l} -${p}`}}function fP(e,t){let r=t.split(`
109
- `).filter(Boolean),n=r.find(c=>c.startsWith("To "))?.slice(3)??"",s=r.filter(c=>c.includes(" ")).map(c=>{let[u,l,p=""]=c.split(" "),[d,g]=(l??"").split(":");return{flag:u??"",from:d??"",to:g??"",summary:p}}),o=s.find(c=>c.flag!=="=")??s[0],i=o?.to.startsWith("refs/heads/")?o.to.slice(11):o?.to??"",a=o?.summary.includes("..")?1:0;return s.length>0&&s.every(c=>c.flag==="=")?{command:e.join(" "),category:"no-op",exit_code:0,noop:!0,remote:n,refs:s,summary:`push already satisfied for ${i} -> ${n}`,help:["rsp gh pr list --query <branch>"]}:{command:e.join(" "),remote:n,refs:s,summary:`pushed ${i} -> ${n} +${a} commits`}}function gP(e,t,r){let n=t.split(`
110
- `),s=[],o=null;for(let c of n){let u=/^([0-9a-f]{8,40}) \d+ (\d+)(?: \d+)?$/.exec(c);if(u){o={commit:u[1]??"",finalLine:Number(u[2]??0),author:"",path:""};continue}if(!o)continue;if(c.startsWith("author ")){o.author=c.slice(7);continue}if(c.startsWith("filename ")){o.path=c.slice(9);continue}if(!c.startsWith(" "))continue;let l=s.at(-1),p=o.commit.slice(0,12);l&&l.commit===p&&l.author===o.author&&l.path===o.path&&l.line_end+1===o.finalLine?l.line_end=o.finalLine:s.push({line_start:o.finalLine,line_end:o.finalLine,author:o.author,commit:p,path:o.path}),o=null}let i=Re(s,r),a=tw(i,"author");return er({command:e.join(" "),ranges:i,authors:a,summary:`${r?`${i.length}/${s.length}`:i.length} ranges, ${Object.keys(a).length} authors`},r,["rsp git show --query <commit>","rsp git log --query <author>"])}function hP(e,t,r){let n=t.split(`
111
- `).filter(Boolean).map(i=>{let[a,c,u,l,p,d]=i.split("\0");return{current:a==="*",name:c??"",commit:u??"",upstream:l||null,worktree:p||null,subject:d??""}}),s=Re(n,r),o=s.find(i=>i.current)?.name??"";return er({command:e.join(" "),branches:s,summary:`${r?`${s.length}/${n.length}`:s.length} branches${o?`, current ${o}`:""}`},r,["rsp git log --query <branch>","rsp gh pr list --query <branch>"])}function yP(e,t,r){let n=t.indexOf(""),s=n>=0?t.indexOf("",n+1):-1,o=n>=0&&s>=0?t.slice(n+1,s):"",i=s>=0?t.slice(s+1):t,[a,c,u,l,p,d=""]=o.split(""),g=[];for(let _ of i.split(`
112
- `)){let T=/^\s*(.+?)\s+\|\s+(\d+)\s+([+\-]+|Bin.*)$/.exec(_);if(!T)continue;let v=T[3]??"";g.push({path:(T[1]??"").trim(),changed:Number(T[2]??0),added:[...v].filter(G=>G==="+").length,deleted:[...v].filter(G=>G==="-").length,binary:v.startsWith("Bin")})}let f=Re(g,r),k=0,E=0,y=0;for(let _ of f)k+=typeof _.changed=="number"?_.changed:0,E+=typeof _.added=="number"?_.added:0,y+=typeof _.deleted=="number"?_.deleted:0;return er({command:e.join(" "),commit:a??"",short:c??"",author:u??"",date:l??"",subject:p??"",body_lines:d.trim()?d.trim().split(`
113
- `).length:0,files:f,summary:`${r?`${f.length}/${g.length}`:f.length} files, ${k} changed, +${E} -${y}`},r,["rsp git blame --query <author-or-path>","rsp git diff --query <path>"])}function er(e,t,r){return t?vt(e,r):e}function bP(e){return e==="??"?"untracked":e.includes("A")?"added":e.includes("D")?"deleted":e.includes("R")?"renamed":e.includes("M")?"modified":"changed"}function tw(e,t){let r={};for(let n of e){let s=String(n[t]??"");r[s]=(r[s]??0)+1}return r}function wP(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function _P(e){for(let t of["rows","commits","files","refs","ranges","branches"]){let r=e[t];if(Array.isArray(r)&&r.length>1)return{payload:{...e,[t]:r.slice(0,1)},rowsElided:r.length-1}}return null}var Yb,Gi,$i,Ar=h(()=>{"use strict";oe();W();Ze();qn();ut();Ze();Yb=["%h","%an","%as","%s"];Gi=class extends Error{constructor(r,n,s){super(`unknown flag: ${n}`);this.command=r;this.flag=n;this.validFlags=s}render(){return Kp(this.command,this.flag,this.validFlags,`${this.command} --help`)}},$i=class extends Error{constructor(r){super("git status output was not recognized; passing raw stdout through");this.reason=r}}});var Ul={};K(Ul,{NORMALIZATION_ALLOWLIST:()=>cw,NORMALIZE_ANSI:()=>Fi,NORMALIZE_BLANK_LINES:()=>ji,NORMALIZE_CR_PROGRESS:()=>Mi,NORMALIZE_JSON_TOON:()=>aw,NORMALIZE_TRAILING_WHITESPACE:()=>Bi,crushJsonArrayItems:()=>Ms,formatCodexNormalizeDecision:()=>mw,formatNormalizeDecision:()=>pw,hookDecisionFromClaudePostExecJson:()=>uw,hookDecisionFromCodexPostExecJson:()=>lw,normalizeOutput:()=>Ui,renderGenericJsonLane:()=>Bl,runClaudePostExecHook:()=>kP,runCodexPostExecHook:()=>SP,transcodeJsonToToon:()=>iw});import{readFileSync as Ni}from"node:fs";function iw(e,t){let r=t?.encode??$,n=t?.decode??H,s=e.trimEnd();if(!s)return e;let o;try{o=JSON.parse(s)}catch{return e}let i;try{i=r(o)}catch{return e}let a;try{a=n(i)}catch{return e}return Ml(o,a)?i.trimEnd():e}async function Bl(e,t={}){let r=CP(e);if(!r)return{output:e,detected:!1,lossy:!1};let n=r.value;if(!Array.isArray(n))return{output:$(n).trimEnd(),detected:!0,lossy:!1};let s=n.length,o=ow(t.minTokens,EP),i=ow(t.maxItems,RP);if(!(s>i&&LP(e)>=o))return{output:$(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s};let c;try{c=(t.crusher??Ms)(n,i)}catch(k){return{output:$(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s,degradation:{reason:"json-array-crusher-failed",family:"json",stderrHead:DP(k)}}}let u=c.items,l={items:u},p=`items: ${c.kept} kept, ${c.dropped} dropped (shape outliers: ${c.shapeOutliers}, value outliers: ${c.valueOutliers})`,d;t.level&&t.level!=="lossless"&&(d=await t.store?.mint(Buffer.from(e),{command:t.command??"rsp json",loss:{level:t.level,bytes_elided:Buffer.byteLength(e)}}));let g=d?`original: rsp show ${d}`:`original: unavailable - re-run: ${t.command??"command"}`,f=$(l).trimEnd();return{output:[p,g,f].filter(Boolean).join(`
114
- `),detected:!0,lossy:!0,totalItems:s,keptItems:u.length,handle:d}}function Ms(e,t){if(e.length<=t)return{items:[...e],total:e.length,kept:e.length,dropped:0,shapeOutliers:0,valueOutliers:0};let r=new Set([0,e.length-1]),n=OP(e),s=new Set;n&&e.forEach((a,c)=>{jl(a)!==n&&s.add(c)});let o=AP(e,n);for(let a of s)r.add(a);for(let a of o)r.add(a);let i=[...r].sort((a,c)=>a-c).slice(0,Math.max(2,t));return{items:i.map(a=>e[a]),total:e.length,kept:i.length,dropped:e.length-i.length,shapeOutliers:[...s].filter(a=>i.includes(a)).length,valueOutliers:[...o].filter(a=>i.includes(a)).length}}function Ui(e){let t=e;for(let r of cw)t=r.apply(t);return t}async function uw(e,t){return await dw(e,t)}async function lw(e,t){return await dw(e,t)}async function dw(e,t){let r=xP(e),n=GP(r,["cwd"])||t.cwd;if(!await(t.isEnabled??vP)(n))return{kind:"passthrough",reason:"disabled"};let o=$P(r,"tool_response");if(!o)return{kind:"passthrough",reason:"missing-output"};if(typeof o.output!="string")return{kind:"passthrough",reason:"missing-output"};let i=o.output,c=(t.normalize??Ui)(i);return c===i?{kind:"passthrough",reason:"no-change"}:{kind:"normalized",output:c}}function pw(e){return e.kind==="normalized"?{stdout:JSON.stringify({tool_response:{output:e.output}}),status:0}:{stdout:"",status:0}}function mw(e){return{stdout:"",status:0}}async function kP(e){let t=e?Ni(e,"utf8"):Ni(0,"utf8"),r=await uw(t,{cwd:process.cwd()}),n=pw(r);return n.stdout&&process.stdout.write(n.stdout),n.status}async function SP(e){let t=e?Ni(e,"utf8"):Ni(0,"utf8"),r=await lw(t,{cwd:process.cwd()}),n=mw(r);return n.stdout&&process.stdout.write(n.stdout),n.status}function TP(e){let t="",r=0;for(;r<e.length;){let n=e.charCodeAt(r);if(n===27){let s=e.charCodeAt(r+1);if(s===93){for(r+=2;r<e.length;){let o=e.charCodeAt(r);if(o===7){r++;break}if(o===27&&e.charCodeAt(r+1)===92){r+=2;break}r++}continue}if(s===91){for(r+=2;r<e.length&&rw(e.charCodeAt(r));)r++;r<e.length&&r++;continue}r+=s>=32?2:1;continue}if(n===155){for(r++;r<e.length&&rw(e.charCodeAt(r));)r++;r<e.length&&r++;continue}t+=e[r++]}return t}function rw(e){return e>=32&&e<=63}function vP(e){return Xe(e,process.env).enabled}function xP(e){try{let t=JSON.parse(e);return Rn(t)?t:{}}catch{return{}}}function CP(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return Rn(n)||Array.isArray(n)?{value:n}:null}catch{}let r=[];for(let n of e.split(/\r?\n/))if(n.trim())try{r.push(JSON.parse(n))}catch{return null}return r.length>0?{value:r}:null}function OP(e){let t=new Map;for(let s of e){let o=jl(s);t.set(o,(t.get(o)??0)+1)}let[r,n]=[...t.entries()].sort((s,o)=>o[1]-s[1]||s[0].localeCompare(o[0]))[0]??[];return typeof r=="string"&&typeof n=="number"&&n>e.length/2?r:null}function jl(e){return Array.isArray(e)?"array":Rn(e)?Object.keys(e).sort().map(t=>`${t}:${nw(e[t])}`).join("|"):nw(e)}function AP(e,t){let r=new Set,n=new Map;e.forEach((s,o)=>{if(!(t&&jl(s)!==t))for(let[i,a]of fw(s)){let c=n.get(i)??[];c.push({index:o,value:a}),n.set(i,c)}});for(let s of n.values()){for(let o of PP(s))r.add(o);for(let o of IP(s))r.add(o)}return r}function PP(e){let t=e.filter(a=>typeof a.value=="number"&&Number.isFinite(a.value));if(t.length<5||t.length!==e.length)return[];let r=t.map(a=>a.value).sort((a,c)=>a-c),n=sw(r),s=r.map(a=>Math.abs(a-n)).sort((a,c)=>a-c),o=sw(s);if(o===0)return t.filter(c=>c.value===n).length/t.length<.8?[]:t.filter(c=>c.value!==n).map(c=>c.index);let i=o*8;return t.filter(a=>Math.abs(a.value-n)>i).map(a=>a.index)}function IP(e){if(e.length<5)return[];if(!e.every(s=>typeof s.value=="string"||typeof s.value=="boolean"||s.value===null))return[];let t=new Map;for(let s of e)t.set(String(s.value),(t.get(String(s.value))??0)+1);if(Math.max(...t.values())/e.length<.8)return[];let n=Math.max(2,Math.floor(e.length*.05));return e.filter(s=>(t.get(String(s.value))??0)<=n).map(s=>s.index)}function fw(e,t=""){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"?[[t||"$",e]]:Array.isArray(e)?[]:Rn(e)?Object.entries(e).flatMap(([r,n])=>fw(n,t?`${t}.${r}`:r)):[]}function nw(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function sw(e){let t=Math.floor(e.length/2);return e.length%2===1?e[t]??0:((e[t-1]??0)+(e[t]??0))/2}function LP(e){return Math.ceil(e.length/4)}function ow(e,t){return e==null?t:Number.isFinite(e)&&e>0?Math.floor(e):t}function DP(e){let r=(e instanceof Error?e.message:String(e??"unknown crusher failure")).split(/\r?\n/,1)[0]?.replace(/\s+/g," ").trim()||"unknown crusher failure";return r.length<=240?r:`${r.slice(0,239)}\u2026`}function GP(e,t){let r=e;for(let n of t){if(!Rn(r))return"";r=r[n]}return typeof r=="string"?r:""}function $P(e,t){let r=e[t];return Rn(r)?r:null}function Rn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ml(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=typeof t||typeof e!="object"||Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){let i=t;return e.length!==i.length?!1:e.every((a,c)=>Ml(a,i[c]))}let r=e,n=t,s=Object.keys(r),o=Object.keys(n);return s.length!==o.length?!1:s.every(i=>Object.prototype.hasOwnProperty.call(n,i)&&Ml(r[i],n[i]))}var Fi,Mi,Bi,ji,aw,EP,RP,cw,Bs=h(()=>{"use strict";W();Ze();Fi={id:"ansi",apply:TP},Mi={id:"cr-progress",apply:e=>e.split(`
106
+ ${l}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:a.payload,mintedHandle:u,bytesElided:c,rowsElided:a.rowsElided,rawOutput:Buffer.from(i)}}function et(e){return e.startsWith("el:")?`rsp show ${e}`:e}function dw(e){let{argv:t,query:r,full:n}=vm(e),s=t.slice(2).find(o=>o.startsWith("--rsp-"));if(s)throw new ji(e.join(" "),s,["--full","--brief","--terse","--query"]);return{argv:t,query:r,full:n}}function OP(e,t,r,n){if(n.level==="terse")return!1;if(r||n.level==="full"||!AP(e)||n.level!=="lossless")return!0;let s=YP(n.heavyGitByteThreshold,Gt);return Buffer.byteLength(t)<=s}function AP(e){return e==="diff"||e==="log"||e==="blame"||e==="show"}function pw(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"||t==="blame"||t==="branch"||t==="show")return t;throw new Error(`unsupported git subcommand: ${t??""}`)}function PP(e,t){let r=t.slice(1);switch(e){case"status":return["status","--porcelain=v2","-z","-b",...r];case"log":return["log",`--format=%x1e${uw.join("%x1f")}`,"-z",...r];case"diff":return["diff","--numstat","-z",...r];case"commit":return["commit",...r];case"push":return["push","--porcelain",...r];case"blame":return["blame","--line-porcelain",...r];case"branch":return["branch","--format=%(HEAD)%00%(refname:short)%00%(objectname:short)%00%(upstream:short)%00%(worktreepath)%00%(contents:subject)",...r];case"show":return["show","--format=%x1e%H%x1f%h%x1f%an%x1f%aI%x1f%s%x1f%b%x1e","--stat",...r]}}async function IP(e,t){let r=xP("git",PP(e,t),{stdio:["ignore","pipe","pipe"]}),n=Ge();r.once("close",n),r.once("error",n);let s=[],o=[];return r.stdout.on("data",i=>s.push(i)),r.stderr.on("data",i=>o.push(i)),await new Promise((i,a)=>{r.on("error",a),r.on("close",(c,u)=>{i({stdout:Buffer.concat(s).toString("utf8"),stderr:Buffer.concat(o).toString("utf8"),status:c,signal:u})})})}function LP(e,t,r,n){switch(e){case"status":return GP(t,r,n);case"log":return UP(t,r,n);case"diff":return HP(t,r,n);case"commit":return er(qP(t,r),n,["rsp git status --query <path-or-state>"]);case"push":return er(WP(t,r),n,["rsp gh pr list --query <branch>"]);case"blame":return JP(t,r,n);case"branch":return VP(t,r,n);case"show":return KP(t,r,n)}}function GP(e,t,r){let n="",s=[],o=!1,i=!1;for(let u of DP(t)){if(!u)continue;if(i=!0,u.startsWith("# branch.head ")){n=u.slice(14),o=!0;continue}if(u.startsWith("# ")){o=!0;continue}if(u.startsWith("## ")){n=FP(u),o=!0;continue}let l=$P(u);if(l){o=!0,s.push(l);continue}let d=NP(u);d&&(o=!0,s.push(d))}if(s.length===0){if(!i||o)return mw(e.join(" "),n);throw new Ui("git-status-unparseable")}let a=Re(s,r),c=fw(a,"state");return er({command:e.join(" "),branch:n,rows:a,summary:jP(a.length,s.length,c,r)},r,["rsp git diff --query <path>","rsp git log --query <subject>"])}function DP(e){return e.includes("\0")?e.split("\0"):e.split(/\r?\n/)}function $P(e){if(e.startsWith("1 ")){let t=e.split(" "),r=t[1]??"..",n=t.slice(8).join(" ");return Fs(n,r)}if(e.startsWith("2 ")){let t=e.split(" "),r=t[1]??"..";return Fs(t.slice(9).join(" "),r)}if(e.startsWith("u ")){let t=e.split(" "),r=t[1]??"..";return Fs(t.slice(10).join(" "),r)}return e.startsWith("? ")?Fs(e.slice(2),"??"):null}function NP(e){if(e.length<4||e[2]!==" ")return null;let t=e.slice(0,2);return/^[ MADRCU?!][ MADRCU?!?]$/.test(t)?Fs(MP(e.slice(3),t),t):null}function Fs(e,t){let r=cw(t[0]??"."),n=cw(t[1]??".");return{path:BP(e),index:r,worktree:n,state:zP(`${r}${n}`)}}function cw(e){return e===" "?".":e}function FP(e){let t=e.slice(3).split("...")[0]?.trim()??"";return t==="HEAD (no branch)"?"HEAD":t}function MP(e,t){if(!t.includes("R")&&!t.includes("C"))return e;let r=e.lastIndexOf(" -> ");return r>=0?e.slice(r+4):e}function BP(e){let t=e.trim();if(!t.startsWith('"')||!t.endsWith('"'))return t;try{return JSON.parse(t)}catch{return t.slice(1,-1)}}function jP(e,t,r,n){let s=[];return r.renamed&&s.push(`${r.renamed} renamed`),r.untracked&&s.push(`${r.untracked} untracked`),r.changed&&s.push(`${r.changed} changed`),`${n?`${e}/${t}`:e} changes: ${r.added??0} added, ${r.modified??0} modified, ${r.deleted??0} deleted${s.length?`, ${s.join(", ")}`:""}`}function mw(e="git status",t=""){return{command:e,category:"no-op",exit_code:0,noop:!0,scope:"git status",empty:!0,branch:t,rows:[],summary:"git status clean: 0 changes"}}function UP(e,t,r){let n=t.split("\0").filter(Boolean).map(o=>{let i=o.replace(/^\x1e/,"").split("");return{short:i[0]??"",author:i[1]??"",date:i[2]??"",subject:i[3]??""}}),s=Re(n,r);return er({command:e.join(" "),commits:s,summary:`${r?`${s.length}/${n.length}`:s.length} commits`},r,["rsp git diff --query <path>","rsp gh pr list --query <branch>"])}function HP(e,t,r){let s=t.split("\0").filter(Boolean).map(a=>{let[c,u,l]=a.split(" ");return{path:l??"",added:c==="-"?null:Number(c??0),deleted:u==="-"?null:Number(u??0)}}),o=Re(s,r),i=o.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 er({command:e.join(" "),files:o,summary:`${r?`${o.length}/${s.length}`:o.length} files, +${i.added} -${i.deleted}`},r,["rsp git status --query <path>","rsp git log --query <subject>"])}function qP(e,t){let r=t.split(`
107
+ `)[0]??"",n=/^\[([^ ]+) ([0-9a-f]+)\] (.+)$/.exec(r),s=/(\d+) files? changed/.exec(t),o=/(\d+) insertions?\(\+\)/.exec(t),i=/(\d+) deletions?\(-\)/.exec(t),a=n?.[1]??"",c=n?.[2]??"",u=Number(s?.[1]??0),l=Number(o?.[1]??0),d=Number(i?.[1]??0);return{command:e.join(" "),branch:a,commit:c,subject:n?.[3]??"",files_changed:u,insertions:l,deletions:d,summary:`commit ${c} on ${a}: ${u} files, +${l} -${d}`}}function WP(e,t){let r=t.split(`
108
+ `).filter(Boolean),n=r.find(c=>c.startsWith("To "))?.slice(3)??"",s=r.filter(c=>c.includes(" ")).map(c=>{let[u,l,d=""]=c.split(" "),[p,g]=(l??"").split(":");return{flag:u??"",from:p??"",to:g??"",summary:d}}),o=s.find(c=>c.flag!=="=")??s[0],i=o?.to.startsWith("refs/heads/")?o.to.slice(11):o?.to??"",a=o?.summary.includes("..")?1:0;return s.length>0&&s.every(c=>c.flag==="=")?{command:e.join(" "),category:"no-op",exit_code:0,noop:!0,remote:n,refs:s,summary:`push already satisfied for ${i} -> ${n}`,help:["rsp gh pr list --query <branch>"]}:{command:e.join(" "),remote:n,refs:s,summary:`pushed ${i} -> ${n} +${a} commits`}}function JP(e,t,r){let n=t.split(`
109
+ `),s=[],o=null;for(let c of n){let u=/^([0-9a-f]{8,40}) \d+ (\d+)(?: \d+)?$/.exec(c);if(u){o={commit:u[1]??"",finalLine:Number(u[2]??0),author:"",path:""};continue}if(!o)continue;if(c.startsWith("author ")){o.author=c.slice(7);continue}if(c.startsWith("filename ")){o.path=c.slice(9);continue}if(!c.startsWith(" "))continue;let l=s.at(-1),d=o.commit.slice(0,12);l&&l.commit===d&&l.author===o.author&&l.path===o.path&&l.line_end+1===o.finalLine?l.line_end=o.finalLine:s.push({line_start:o.finalLine,line_end:o.finalLine,author:o.author,commit:d,path:o.path}),o=null}let i=Re(s,r),a=fw(i,"author");return er({command:e.join(" "),ranges:i,authors:a,summary:`${r?`${i.length}/${s.length}`:i.length} ranges, ${Object.keys(a).length} authors`},r,["rsp git show --query <commit>","rsp git log --query <author>"])}function VP(e,t,r){let n=t.split(`
110
+ `).filter(Boolean).map(i=>{let[a,c,u,l,d,p]=i.split("\0");return{current:a==="*",name:c??"",commit:u??"",upstream:l||null,worktree:d||null,subject:p??""}}),s=Re(n,r),o=s.find(i=>i.current)?.name??"";return er({command:e.join(" "),branches:s,summary:`${r?`${s.length}/${n.length}`:s.length} branches${o?`, current ${o}`:""}`},r,["rsp git log --query <branch>","rsp gh pr list --query <branch>"])}function KP(e,t,r){let n=t.indexOf(""),s=n>=0?t.indexOf("",n+1):-1,o=n>=0&&s>=0?t.slice(n+1,s):"",i=s>=0?t.slice(s+1):t,[a,c,u,l,d,p=""]=o.split(""),g=[];for(let _ of i.split(`
111
+ `)){let T=/^\s*(.+?)\s+\|\s+(\d+)\s+([+\-]+|Bin.*)$/.exec(_);if(!T)continue;let C=T[3]??"";g.push({path:(T[1]??"").trim(),changed:Number(T[2]??0),added:[...C].filter(L=>L==="+").length,deleted:[...C].filter(L=>L==="-").length,binary:C.startsWith("Bin")})}let f=Re(g,r),k=0,E=0,y=0;for(let _ of f)k+=typeof _.changed=="number"?_.changed:0,E+=typeof _.added=="number"?_.added:0,y+=typeof _.deleted=="number"?_.deleted:0;return er({command:e.join(" "),commit:a??"",short:c??"",author:u??"",date:l??"",subject:d??"",body_lines:p.trim()?p.trim().split(`
112
+ `).length:0,files:f,summary:`${r?`${f.length}/${g.length}`:f.length} files, ${k} changed, +${E} -${y}`},r,["rsp git blame --query <author-or-path>","rsp git diff --query <path>"])}function er(e,t,r){return t?xt(e,r):e}function zP(e){return e==="??"?"untracked":e.includes("A")?"added":e.includes("D")?"deleted":e.includes("R")?"renamed":e.includes("M")?"modified":"changed"}function fw(e,t){let r={};for(let n of e){let s=String(n[t]??"");r[s]=(r[s]??0)+1}return r}function YP(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function QP(e){for(let t of["rows","commits","files","refs","ranges","branches"]){let r=e[t];if(Array.isArray(r)&&r.length>1)return{payload:{...e,[t]:r.slice(0,1)},rowsElided:r.length-1}}return null}var uw,ji,Ui,Ar=h(()=>{"use strict";ae();J();Be();qn();at();Be();uw=["%h","%an","%as","%s"];ji=class extends Error{constructor(r,n,s){super(`unknown flag: ${n}`);this.command=r;this.flag=n;this.validFlags=s}render(){return om(this.command,this.flag,this.validFlags,`${this.command} --help`)}},Ui=class extends Error{constructor(r){super("git status output was not recognized; passing raw stdout through");this.reason=r}}});var Xl={};K(Xl,{NORMALIZATION_ALLOWLIST:()=>Ew,NORMALIZE_ANSI:()=>qi,NORMALIZE_BLANK_LINES:()=>Vi,NORMALIZE_CR_PROGRESS:()=>Wi,NORMALIZE_JSON_TOON:()=>_w,NORMALIZE_TRAILING_WHITESPACE:()=>Ji,crushJsonArrayItems:()=>Ms,formatCodexNormalizeDecision:()=>vw,formatNormalizeDecision:()=>Tw,hookDecisionFromClaudePostExecJson:()=>Rw,hookDecisionFromCodexPostExecJson:()=>kw,normalizeOutput:()=>Ki,renderGenericJsonLane:()=>Yl,runClaudePostExecHook:()=>eI,runCodexPostExecHook:()=>tI,transcodeJsonToToon:()=>ww});import{readFileSync as Hi}from"node:fs";function ww(e,t){let r=t?.encode??$,n=t?.decode??H,s=e.trimEnd();if(!s)return e;let o;try{o=JSON.parse(s)}catch{return e}let i;try{i=r(o)}catch{return e}let a;try{a=n(i)}catch{return e}return zl(o,a)?i.trimEnd():e}async function Yl(e,t={}){let r=oI(e);if(!r)return{output:e,detected:!1,lossy:!1};let n=r.value;if(!Array.isArray(n))return{output:$(n).trimEnd(),detected:!0,lossy:!1};let s=n.length,o=bw(t.minTokens,XP),i=bw(t.maxItems,ZP);if(!(s>i&&lI(e)>=o))return{output:$(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s};let c;try{c=(t.crusher??Ms)(n,i)}catch(k){return{output:$(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s,degradation:{reason:"json-array-crusher-failed",family:"json",stderrHead:dI(k)}}}let u=c.items,l={items:u},d=`items: ${c.kept} kept, ${c.dropped} dropped (shape outliers: ${c.shapeOutliers}, value outliers: ${c.valueOutliers})`,p;t.level&&t.level!=="lossless"&&(p=await t.store?.mint(Buffer.from(e),{command:t.command??"rsp json",loss:{level:t.level,bytes_elided:Buffer.byteLength(e)}}));let g=p?`original: rsp show ${p}`:`original: unavailable - re-run: ${t.command??"command"}`,f=$(l).trimEnd();return{output:[d,g,f].filter(Boolean).join(`
113
+ `),detected:!0,lossy:!0,totalItems:s,keptItems:u.length,handle:p}}function Ms(e,t){if(e.length<=t)return{items:[...e],total:e.length,kept:e.length,dropped:0,shapeOutliers:0,valueOutliers:0};let r=new Set([0,e.length-1]),n=iI(e),s=new Set;n&&e.forEach((a,c)=>{Ql(a)!==n&&s.add(c)});let o=aI(e,n);for(let a of s)r.add(a);for(let a of o)r.add(a);let i=[...r].sort((a,c)=>a-c).slice(0,Math.max(2,t));return{items:i.map(a=>e[a]),total:e.length,kept:i.length,dropped:e.length-i.length,shapeOutliers:[...s].filter(a=>i.includes(a)).length,valueOutliers:[...o].filter(a=>i.includes(a)).length}}function Ki(e){let t=e;for(let r of Ew)t=r.apply(t);return t}async function Rw(e,t){return await Sw(e,t)}async function kw(e,t){return await Sw(e,t)}async function Sw(e,t){let r=sI(e),n=pI(r,["cwd"])||t.cwd;if(!await(t.isEnabled??nI)(n))return{kind:"passthrough",reason:"disabled"};let o=mI(r,"tool_response");if(!o)return{kind:"passthrough",reason:"missing-output"};if(typeof o.output!="string")return{kind:"passthrough",reason:"missing-output"};let i=o.output,c=(t.normalize??Ki)(i);return c===i?{kind:"passthrough",reason:"no-change"}:{kind:"normalized",output:c}}function Tw(e){return e.kind==="normalized"?{stdout:JSON.stringify({tool_response:{output:e.output}}),status:0}:{stdout:"",status:0}}function vw(e){return{stdout:"",status:0}}async function eI(e){let t=e?Hi(e,"utf8"):Hi(0,"utf8"),r=await Rw(t,{cwd:process.cwd()}),n=Tw(r);return n.stdout&&process.stdout.write(n.stdout),n.status}async function tI(e){let t=e?Hi(e,"utf8"):Hi(0,"utf8"),r=await kw(t,{cwd:process.cwd()}),n=vw(r);return n.stdout&&process.stdout.write(n.stdout),n.status}function rI(e){let t="",r=0;for(;r<e.length;){let n=e.charCodeAt(r);if(n===27){let s=e.charCodeAt(r+1);if(s===93){for(r+=2;r<e.length;){let o=e.charCodeAt(r);if(o===7){r++;break}if(o===27&&e.charCodeAt(r+1)===92){r+=2;break}r++}continue}if(s===91){for(r+=2;r<e.length&&gw(e.charCodeAt(r));)r++;r<e.length&&r++;continue}r+=s>=32?2:1;continue}if(n===155){for(r++;r<e.length&&gw(e.charCodeAt(r));)r++;r<e.length&&r++;continue}t+=e[r++]}return t}function gw(e){return e>=32&&e<=63}function nI(e){return De(e,process.env).enabled}function sI(e){try{let t=JSON.parse(e);return Rn(t)?t:{}}catch{return{}}}function oI(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return Rn(n)||Array.isArray(n)?{value:n}:null}catch{}let r=[];for(let n of e.split(/\r?\n/))if(n.trim())try{r.push(JSON.parse(n))}catch{return null}return r.length>0?{value:r}:null}function iI(e){let t=new Map;for(let s of e){let o=Ql(s);t.set(o,(t.get(o)??0)+1)}let[r,n]=[...t.entries()].sort((s,o)=>o[1]-s[1]||s[0].localeCompare(o[0]))[0]??[];return typeof r=="string"&&typeof n=="number"&&n>e.length/2?r:null}function Ql(e){return Array.isArray(e)?"array":Rn(e)?Object.keys(e).sort().map(t=>`${t}:${hw(e[t])}`).join("|"):hw(e)}function aI(e,t){let r=new Set,n=new Map;e.forEach((s,o)=>{if(!(t&&Ql(s)!==t))for(let[i,a]of xw(s)){let c=n.get(i)??[];c.push({index:o,value:a}),n.set(i,c)}});for(let s of n.values()){for(let o of cI(s))r.add(o);for(let o of uI(s))r.add(o)}return r}function cI(e){let t=e.filter(a=>typeof a.value=="number"&&Number.isFinite(a.value));if(t.length<5||t.length!==e.length)return[];let r=t.map(a=>a.value).sort((a,c)=>a-c),n=yw(r),s=r.map(a=>Math.abs(a-n)).sort((a,c)=>a-c),o=yw(s);if(o===0)return t.filter(c=>c.value===n).length/t.length<.8?[]:t.filter(c=>c.value!==n).map(c=>c.index);let i=o*8;return t.filter(a=>Math.abs(a.value-n)>i).map(a=>a.index)}function uI(e){if(e.length<5)return[];if(!e.every(s=>typeof s.value=="string"||typeof s.value=="boolean"||s.value===null))return[];let t=new Map;for(let s of e)t.set(String(s.value),(t.get(String(s.value))??0)+1);if(Math.max(...t.values())/e.length<.8)return[];let n=Math.max(2,Math.floor(e.length*.05));return e.filter(s=>(t.get(String(s.value))??0)<=n).map(s=>s.index)}function xw(e,t=""){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"?[[t||"$",e]]:Array.isArray(e)?[]:Rn(e)?Object.entries(e).flatMap(([r,n])=>xw(n,t?`${t}.${r}`:r)):[]}function hw(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function yw(e){let t=Math.floor(e.length/2);return e.length%2===1?e[t]??0:((e[t-1]??0)+(e[t]??0))/2}function lI(e){return Math.ceil(e.length/4)}function bw(e,t){return e==null?t:Number.isFinite(e)&&e>0?Math.floor(e):t}function dI(e){let r=(e instanceof Error?e.message:String(e??"unknown crusher failure")).split(/\r?\n/,1)[0]?.replace(/\s+/g," ").trim()||"unknown crusher failure";return r.length<=240?r:`${r.slice(0,239)}\u2026`}function pI(e,t){let r=e;for(let n of t){if(!Rn(r))return"";r=r[n]}return typeof r=="string"?r:""}function mI(e,t){let r=e[t];return Rn(r)?r:null}function Rn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function zl(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=typeof t||typeof e!="object"||Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){let i=t;return e.length!==i.length?!1:e.every((a,c)=>zl(a,i[c]))}let r=e,n=t,s=Object.keys(r),o=Object.keys(n);return s.length!==o.length?!1:s.every(i=>Object.prototype.hasOwnProperty.call(n,i)&&zl(r[i],n[i]))}var qi,Wi,Ji,Vi,_w,XP,ZP,Ew,Bs=h(()=>{"use strict";J();Be();qi={id:"ansi",apply:rI},Wi={id:"cr-progress",apply:e=>e.split(`
115
114
  `).map(t=>{let r=t.endsWith("\r")?t.slice(0,-1):t,n=r.lastIndexOf("\r");return n>=0?r.slice(n+1):r}).join(`
116
- `)},Bi={id:"trailing-whitespace",apply:e=>e.split(`
115
+ `)},Ji={id:"trailing-whitespace",apply:e=>e.split(`
117
116
  `).map(t=>t.replace(/[ \t]+$/,"")).join(`
118
- `)},ji={id:"blank-lines",apply:e=>e.replace(/\n{3,}/g,`
117
+ `)},Vi={id:"blank-lines",apply:e=>e.replace(/\n{3,}/g,`
119
118
 
120
- `)};aw={id:"json-to-toon",apply:e=>iw(e)},EP=200,RP=15;cw=[Fi,Mi,Bi,ji,aw]});var Hs={};K(Hs,{parseExecCommandLine:()=>_w,renderExecContract:()=>ww,runExecWrapper:()=>jP});import{isUtf8 as NP}from"node:buffer";import{spawn as FP}from"node:child_process";async function jP(e,t){let r=_w(e),n=await UP(r);return await ww(r,n,t)}async function ww(e,t,r){let n=Buffer.from(t.stdout,"binary"),s=Buffer.from(t.stderr,"binary");if((t.status??0)!==0||t.signal){let d=Ve(e,t.stdout,t.stderr);return{stdout:J(d),stderr:s,status:d.exitCode??1,signal:t.signal,rawOutput:n}}if(n.length===0)return{stdout:n,stderr:s,status:t.status,signal:t.signal,rawOutput:n};let o=HP(n),i=o.kind==="text"?Buffer.from(o.text):n,a=uI(r.heavyByteThreshold,MP);if(i.length<=a&&r.level!=="terse")return{stdout:i,stderr:s,status:t.status,signal:t.signal,rawOutput:n};let c=n.length,u=r.level==="lossless"?"terse":r.level,l=await r.store?.mint(n,{command:e,loss:{level:u,bytes_elided:c}});if(!l)throw new Error("rsp exec output elision requires an elision store");let p=o.kind==="text"?WP(o.text,n.length,l,r.level,e,r.anomalyScorer,r.jsonArrayCrusher):JP(n,n.length,l,e);return{stdout:Buffer.from(p.text),stderr:s,status:t.status,signal:t.signal,mintedHandle:l,bytesElided:c,rawOutput:n,degradation:p.degradation}}function _w(e){if(e[0]!=="exec")throw new Error("expected rsp exec -- <command line>");let t=e.indexOf("--"),r=t>=0?e.slice(t+1):e.slice(1),n=r.length===1?r[0]:r.join(" ");if(!n.trim())throw new Error("usage: rsp exec -- <command line>");return n}async function UP(e){let t=FP(e,{shell:!0,stdio:["inherit","pipe","pipe"]}),r=ke();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",(a,c)=>{o({stdout:Buffer.concat(n).toString("binary"),stderr:Buffer.concat(s).toString("binary"),status:a,signal:c})})})}function HP(e){return NP(e)?{kind:"text",text:qP(e.toString("utf8"))}:{kind:"bytes"}}function qP(e){let t=e;for(let r of[Fi,Mi,Bi,ji])t=r.apply(t);return t}function WP(e,t,r,n,s,o=rI,i=Ms){let c=Math.max(1,Math.floor((n==="terse"?bw:BP)/2)),u=Buffer.from(e),l=Math.max(0,u.length-c),p=tI(e,c,l,o),d=VP(e),g=KP(d,e,u,c,l,p.kind==="ok"?p.lines:[],i),f=Ew(s,d,t,cI(u),r,g.summary),k=p.kind==="failed"?{reason:"exec-anomaly-scorer-failed",family:"exec",stderrHead:xw(p.error)}:g.degradation;return{text:vw(f),degradation:k}}function JP(e,t,r,n){let s=Math.max(1,Math.floor(bw/2)),o={head_hex:e.subarray(0,s).toString("hex"),tail_hex:e.subarray(Math.max(0,e.length-s)).toString("hex")};return{text:vw(Ew(n,"bytes",t,0,r,o))}}function Ew(e,t,r,n,s,o){return{family:"exec",command:e,content:t,bytes:r,lines:n,summary:o,recovery:{original:rt(s)}}}function VP(e){let t=e.trim();return t?kw(t)?"json":Sw(e)?"jsonl":nI(e)?"unified-diff":Tw(e)?"tabular":sI(e)?"log-like":oI(e)?"prose":"untyped":"untyped"}function KP(e,t,r,n,s,o,i=Ms){switch(e){case"json":return zP(t,i);case"jsonl":return{summary:YP(t)};case"unified-diff":return{summary:QP(t)};case"tabular":return{summary:XP(t)};case"log-like":return{summary:ZP(t,o)};case"prose":return{summary:eI(t)};case"bytes":return{summary:{}};case"untyped":return{summary:Rw(r,n,s,o)}}}function zP(e,t){let r=kw(e);if(Array.isArray(r)){if(r.length>15)try{let n=t(r,15);return{summary:{root_type:"array",total:n.total,kept:n.kept,dropped:n.dropped,shape_outliers:n.shapeOutliers,value_outliers:n.valueOutliers,items:n.items.map(tr),item_keys:ql(r)}}}catch(n){return{summary:hw(r),degradation:{reason:"exec-json-array-crusher-failed",family:"exec",stderrHead:xw(n)}}}return{summary:hw(r)}}if(Us(r)){let n=Object.entries(r);return{summary:{root_type:"object",keys:n.map(([s])=>s).slice(0,20),key_count:n.length,sample:Object.fromEntries(n.slice(0,8).map(([s,o])=>[s,tr(o)]))}}}return{summary:{root_type:typeof r,value:tr(r)}}}function hw(e){return{root_type:"array",items:e.length,sample:e.slice(0,5).map(tr),item_keys:ql(e)}}function YP(e){let t=Sw(e)??[],r=iI(t,"level");return{records:t.length,keys:ql(t),levels:r,first:tr(t[0]),last:tr(t.at(-1))}}function QP(e){let t=new Map,r="",n=0,s=0,o=0;for(let i of e.split(/\r?\n/)){let a=/^diff --git a\/(.+?) b\/(.+)$/.exec(i);if(a){r=a[2]??a[1]??"unknown",t.has(r)||t.set(r,{path:r,added:0,deleted:0,hunks:0});continue}if(!r){let c=/^\+\+\+ b\/(.+)$/.exec(i);c&&(r=c[1]??"unknown",t.has(r)||t.set(r,{path:r,added:0,deleted:0,hunks:0}))}i.startsWith("@@")?(o++,r&&t.get(r).hunks++):i.startsWith("+")&&!i.startsWith("+++")?(n++,r&&t.get(r).added++):i.startsWith("-")&&!i.startsWith("---")&&(s++,r&&t.get(r).deleted++)}return{files:[...t.values()].slice(0,12),file_count:t.size,hunks:o,added_lines:n,deleted_lines:s}}function XP(e){let t=Tw(e);return t?{columns:t.columns,rows:t.rows.length,sample:t.rows.slice(0,5)}:Rw(Buffer.from(e),512,Math.max(0,Buffer.byteLength(e)-512),[])}function ZP(e,t){let r=js(e);return{entries:r.length,levels:aI(r),first:Pr(r[0]??""),last:Pr(r.at(-1)??""),outliers:t.map(n=>({line:n.lineNumber,score:Number(n.score.toFixed(2)),text:Pr(n.text)}))}}function eI(e){let t=e.trim().split(/\n\s*\n/).filter(n=>n.trim()),r=e.trim().split(/\s+/).filter(Boolean);return{paragraphs:t.length,words:r.length,opening:Pr(t[0]??""),closing:Pr(t.at(-1)??"")}}function Rw(e,t,r,n){let s=yw(e.subarray(0,t)),o=yw(e.subarray(r));return{head:s,tail:o,outliers:n.map(i=>({line:i.lineNumber,score:Number(i.score.toFixed(2)),text:Pr(i.text)}))}}function tI(e,t,r,n){try{return{kind:"ok",lines:n(e,{headBytes:t,tailStart:r})}}catch(s){return{kind:"failed",error:s}}}function rI(e,t){return Vb(e,{excludedByteRanges:[{start:0,end:t.headBytes},{start:t.tailStart,end:Buffer.byteLength(e,"utf8")}]})}function kw(e){let t=e.trim();if(!t||!/^[\[{]/.test(t))return null;try{let r=JSON.parse(t);return Us(r)||Array.isArray(r)?r:null}catch{return null}}function Sw(e){let t=js(e);if(t.length<2||!t.every(n=>/^[\[{]/.test(n.trim())))return null;let r=[];for(let n of t)try{r.push(JSON.parse(n))}catch{return null}return r}function nI(e){let t=js(e),r=t[0]??"";if(!/^diff --git a\/.+ b\/.+/.test(r)&&!/^--- /.test(r))return!1;let n=t.some(i=>/^diff --git a\/.+ b\/.+/.test(i))||t.some(i=>/^--- /.test(i))&&t.some(i=>/^\+\+\+ /.test(i)),s=t.some(i=>/^@@ /.test(i)),o=t.some(i=>/^[+-]/.test(i)&&!/^(---|\+\+\+) /.test(i));return n&&s&&o}function Tw(e){let t=js(e);if(t.length<3)return null;let r=t[0]??"";if(/[=:{}/]/.test(r)||/^\d{4}-\d{2}-\d{2}/.test(r))return null;let n=r.includes(" ")?/\t+/:/\s{2,}/,s=r.split(n).map(i=>i.trim()).filter(Boolean);if(s.length<2||s.some(i=>!/^[A-Za-z0-9_.-]+$/.test(i)))return null;let o=[];for(let i of t.slice(1)){let a=i.split(n).map(c=>c.trim());if(a.length!==s.length||a.some(c=>c===""))return null;o.push(Object.fromEntries(s.map((c,u)=>[c,a[u]??""])))}return o.length>0?{columns:s,rows:o}:null}function sI(e){let t=js(e);return t.length<3?!1:t.filter(n=>/^\d{4}-\d{2}-\d{2}[T\s]/.test(n)||/\b(?:TRACE|DEBUG|INFO|WARN|WARNING|ERROR|FATAL|PANIC)\b/i.test(n)||(n.match(/\b[A-Za-z0-9_.+:-]+=/g)?.length??0)>=2||/^\[[^\]]+\]\s+/.test(n)).length/t.length>=.6}function oI(e){let t=e.trim();if(!t)return!1;let r=t.split(/\s+/).filter(Boolean),n=t.match(/[.!?](?:\s|$)/g)?.length??0;return r.length>=20&&n>=2}function js(e){return e.split(/\r?\n/).filter(t=>t.trim()!=="")}function ql(e){let t=new Map;for(let r of e)if(Us(r))for(let n of Object.keys(r))t.set(n,(t.get(n)??0)+1);return[...t.entries()].sort((r,n)=>n[1]-r[1]||r[0].localeCompare(n[0])).slice(0,20).map(([r])=>r)}function iI(e,t){let r=new Map;for(let n of e){if(!Us(n))continue;let s=n[t];if(typeof s=="string"||typeof s=="number"||typeof s=="boolean"){let o=String(s).toLowerCase();r.set(o,(r.get(o)??0)+1)}}return Object.fromEntries([...r.entries()].sort((n,s)=>n[0].localeCompare(s[0])))}function aI(e){let t=new Map;for(let r of e){let n=/\blevel=([A-Za-z]+)\b/.exec(r)??/\b(TRACE|DEBUG|INFO|WARN|WARNING|ERROR|FATAL|PANIC)\b/i.exec(r);if(!n)continue;let s=(n[1]??n[0]).toLowerCase();t.set(s,(t.get(s)??0)+1)}return Object.fromEntries([...t.entries()].sort((r,n)=>r[0].localeCompare(n[0])))}function tr(e){return typeof e=="string"?Pr(e):typeof e=="number"||typeof e=="boolean"||e===null?e:Array.isArray(e)?e.slice(0,5).map(tr):Us(e)?Object.fromEntries(Object.entries(e).slice(0,8).map(([t,r])=>[t,tr(r)])):String(e)}function Pr(e){let t=e.replace(/\s+/g," ").trim();return t.length<=gw?t:`${t.slice(0,gw-1)}\u2026`}function vw(e){let t=$(e).trimEnd(),r=H(t);if(!Hl(e,r))throw new Error("exec TOON round-trip guard failed");return`${t}
121
- `}function Hl(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=typeof t||typeof e!="object"||Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){let i=t;return e.length!==i.length?!1:e.every((a,c)=>Hl(a,i[c]))}let r=e,n=t,s=Object.keys(r),o=Object.keys(n);return s.length!==o.length?!1:s.every(i=>Object.prototype.hasOwnProperty.call(n,i)&&Hl(r[i],n[i]))}function Us(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function xw(e){let r=(e instanceof Error?e.message:String(e??"unknown scorer failure")).split(/\r?\n/,1)[0]?.replace(/\s+/g," ").trim()||"unknown scorer failure";return r.length<=240?r:`${r.slice(0,239)}\u2026`}function yw(e){return e.toString("utf8").replace(/�$/g,"")}function cI(e){if(e.length===0)return 0;let t=0;for(let r of e)r===10&&t++;return e[e.length-1]===10?t:t+1}function uI(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}var MP,BP,bw,gw,qs=h(()=>{"use strict";oe();W();Kb();Ar();Bs();ut();MP=8*1024,BP=2*1024,bw=1024,gw=240});var Xi={};K(Xi,{RSP_WRAPPER_CAPABILITIES:()=>Vs,_testOnlyResetBinaryState:()=>_I,formatCodexHookDecision:()=>Bw,formatHookDecision:()=>Mw,hookDecisionFromClaudePreExecJson:()=>vI,hookDecisionFromCodexPreExecJson:()=>xI,rewriteCommand:()=>Nw,rewriteTableFromCapabilities:()=>$w,runClaudePreExecHook:()=>CI,runCodexPreExecHook:()=>OI});import{accessSync as hI,constants as yI,existsSync as bI,readFileSync as Yi}from"node:fs";import{fileURLToPath as wI}from"node:url";function _I(){zi=void 0,Wl=!1}function EI(){let e=(process.env.PATH??"").split(":");for(let t of e)if(t)try{return hI(`${t}/rsp`,yI.X_OK),!0}catch{}return!1}function RI(e){return zi===void 0&&(zi=e()),zi}function kI(){Wl||(Wl=!0,process.stderr.write("rsp: entrypoint not found on PATH; run `rsp setup` to provision. See apps/rsp/docs/TROUBLESHOOTING.md\n"))}function $w(e){let t=new Map;for(let r of e)t.set(VI(r.command),["rsp",...r.wrapper]);return t}function Nw(e,t=Ns()){let r=FI(e);if(r)return r;let n=$I(e);if(!n)return Ki(e,t);let s=n.tokens.map(u=>u.text);if(s.length>0&&pn(s[0]))return Ki(e,t);let o=TI(n,t);if(o)return o;if(n.tokens.some(u=>u.quoted))return Ki(e,t);let i=[...Vs].sort((u,l)=>l.command.length-u.command.length).find(u=>NI(s,u.command));if(!i)return Ki(e,t);let a=[...t,...i.wrapper,...s.slice(i.command.length)],c=Ww(n.redirectSuffix);return{kind:"rewrite",command:[...a.map(rr),...c].join(" "),capabilityId:i.id}}function TI(e,t){let r=e.tokens.map(i=>i.text),n=r[0],s=Ww(e.redirectSuffix),o=t.map(rr);return n==="cat"&&r.length===2&&Vi(r[1])?{kind:"rewrite",command:[...o,"cat",rr(r[1]),...s].join(" "),capabilityId:"cat:file"}:(n==="head"||n==="tail")&&r.length===2&&Vi(r[1])?{kind:"rewrite",command:[...o,"cat",`--${n}`,"10",rr(r[1]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===4&&r[1]==="-n"&&/^[1-9][0-9]*$/.test(r[2])&&Vi(r[3])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[2],rr(r[3]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===3&&/^-[1-9][0-9]*$/.test(r[1])&&Vi(r[2])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[1].slice(1),rr(r[2]),...s].join(" "),capabilityId:`cat:${n}`}:null}function Vi(e){return!!e&&!e.startsWith("-")}async function vI(e,t){return await Fw(e,t)}async function xI(e,t){return await Fw(e,t)}async function Fw(e,t){return(await Vl(e,t,"pre-exec")).decision}async function Vl(e,t,r){let n=zw(e);if(!n.ok){let f={kind:"passthrough",reason:n.reason};return{decision:f,telemetryRoot:t.cwd,event:kn({hook:r,command:"",decision:f,reason:n.reason})}}let s=n.payload,o=nt(s,["cwd"])||nt(s,["tool_input","cwd"])||t.cwd;if(!await(t.isEnabled??AI)(o)){let f={kind:"passthrough",reason:"disabled"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:Jl(s),decision:f,reason:"disabled"})}}let a=Jl(s);if(!a){let f={kind:"passthrough",reason:"missing-command"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:a,decision:f,reason:"missing-command"})}}let c=t.rspInvocationPrefix??Ns();if(!RI(t.resolveBinary??(()=>t.rspInvocationPrefix!==void 0||c[0]!=="rsp"||EI()))){kI();let f={kind:"passthrough",reason:"binary-unresolved"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:a,decision:f,reason:"binary-unresolved"})}}let l=process.hrtime.bigint(),d=Xe(o,process.env).proxyEnabled?MI(a,c):(t.rewrite??(f=>Nw(f,c)))(a),g=Number(process.hrtime.bigint()-l)/1e6;if(d.kind!=="rewrite"){let f=d.reason?d:{...d,reason:"unsupported-command"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:a,decision:f,reason:f.reason??"unsupported-command",decisionMs:g})}}return await II(o,t.wakeResident??PI),{decision:d,telemetryRoot:o,event:kn({hook:r,command:a,decision:d,reason:d.capabilityId==="proxy:universal"?"universal-proxy":"matched-capability",decisionMs:g})}}function Mw(e){return e.kind==="rewrite"?jw(e.command):{stdout:"",status:0}}function Bw(e){return e.kind==="rewrite"?jw(e.command):{stdout:"",status:0}}function jw(e){return{stdout:`${JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{command:e}}})}
122
- `,status:0}}async function CI(e){let t="";try{t=e?Yi(e,"utf8"):Yi(0,"utf8");let r=await Vl(t,{cwd:process.cwd()},"claude-pre-exec");Qi(r.telemetryRoot,r.event);let n=r.decision;Hw("claude-pre-exec",n);let s=Mw(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return Qi(process.cwd(),Uw("claude-pre-exec",t,r)),qw("claude-pre-exec",r),0}}async function OI(e){let t="";try{t=e?Yi(e,"utf8"):Yi(0,"utf8");let r=await Vl(t,{cwd:process.cwd()},"codex-pre-exec");Qi(r.telemetryRoot,r.event);let n=r.decision;Hw("codex-pre-exec",n);let s=Bw(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return Qi(process.cwd(),Uw("codex-pre-exec",t,r)),qw("codex-pre-exec",r),0}}function Qi(e,t){Dt(e,t).catch(()=>{})}function kn(e){let t=e.command.trim(),r=e.decision.kind==="rewrite"?e.decision.capabilityId:void 0;return{collection:he,event_type:"decision",ts:new Date().toISOString(),hook:e.hook,command:t||"unknown",command_family:Be(t),decision:r?"contributed":"passed",reason:e.reason,capability_id:r,decision_ms:e.decisionMs}}function Uw(e,t,r){let n=zw(t),s=n.ok?Jl(n.payload):"";return{collection:he,event_type:"decision",ts:new Date().toISOString(),hook:e,command:s||"unknown",command_family:Be(s),decision:"failed-open",reason:"hook-exception",error:Kl(r)}}function AI(e){return Xe(e,process.env).enabled}async function PI(e){let t=Xe(e,process.env);if(!t.enabled||!GI(t))return;let r=lt(e);await So(r,DI(t))}async function II(e,t){try{await Promise.resolve(t(e))}catch(r){LI(r)}}function Hw(e,t){if(process.env.RSP_DEBUG==="1"){if(t.kind==="rewrite"){process.stderr.write(`rsp hook ${e}: rewrite ${t.capabilityId}
119
+ `)};_w={id:"json-to-toon",apply:e=>ww(e)},XP=200,ZP=15;Ew=[qi,Wi,Ji,Vi,_w]});var Hs={};K(Hs,{parseExecCommandLine:()=>Lw,renderExecContract:()=>Iw,runExecWrapper:()=>bI});import{isUtf8 as fI}from"node:buffer";import{spawn as gI}from"node:child_process";async function bI(e,t){let r=Lw(e),n=await wI(r);return await Iw(r,n,t)}async function Iw(e,t,r){let n=Buffer.from(t.stdout,"binary"),s=Buffer.from(t.stderr,"binary");if((t.status??0)!==0||t.signal){let p=ze(e,t.stdout,t.stderr);return{stdout:V(p),stderr:s,status:p.exitCode??1,signal:t.signal,rawOutput:n}}if(n.length===0)return{stdout:n,stderr:s,status:t.status,signal:t.signal,rawOutput:n};let o=_I(n),i=o.kind==="text"?Buffer.from(o.text):n,a=BI(r.heavyByteThreshold,hI);if(i.length<=a&&r.level!=="terse")return{stdout:i,stderr:s,status:t.status,signal:t.signal,rawOutput:n};let c=n.length,u=r.level==="lossless"?"terse":r.level,l=await r.store?.mint(n,{command:e,loss:{level:u,bytes_elided:c}});if(!l)throw new Error("rsp exec output elision requires an elision store");let d=o.kind==="text"?RI(o.text,n.length,l,r.level,e,r.anomalyScorer,r.jsonArrayCrusher):kI(n,n.length,l,e);return{stdout:Buffer.from(d.text),stderr:s,status:t.status,signal:t.signal,mintedHandle:l,bytesElided:c,rawOutput:n,degradation:d.degradation}}function Lw(e){if(e[0]!=="exec")throw new Error("expected rsp exec -- <command line>");let t=e.indexOf("--"),r=t>=0?e.slice(t+1):e.slice(1),n=r.length===1?r[0]:r.join(" ");if(!n.trim())throw new Error("usage: rsp exec -- <command line>");return n}async function wI(e){let t=gI(e,{shell:!0,stdio:["inherit","pipe","pipe"]}),r=Ge();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",(a,c)=>{o({stdout:Buffer.concat(n).toString("binary"),stderr:Buffer.concat(s).toString("binary"),status:a,signal:c})})})}function _I(e){return fI(e)?{kind:"text",text:EI(e.toString("utf8"))}:{kind:"bytes"}}function EI(e){let t=e;for(let r of[qi,Wi,Ji,Vi])t=r.apply(t);return t}function RI(e,t,r,n,s,o=LI,i=Ms){let c=Math.max(1,Math.floor((n==="terse"?Pw:yI)/2)),u=Buffer.from(e),l=Math.max(0,u.length-c),d=II(e,c,l,o),p=SI(e),g=TI(p,e,u,c,l,d.kind==="ok"?d.lines:[],i),f=Gw(s,p,t,MI(u),r,g.summary),k=d.kind==="failed"?{reason:"exec-anomaly-scorer-failed",family:"exec",stderrHead:Bw(d.error)}:g.degradation;return{text:Mw(f),degradation:k}}function kI(e,t,r,n){let s=Math.max(1,Math.floor(Pw/2)),o={head_hex:e.subarray(0,s).toString("hex"),tail_hex:e.subarray(Math.max(0,e.length-s)).toString("hex")};return{text:Mw(Gw(n,"bytes",t,0,r,o))}}function Gw(e,t,r,n,s,o){return{family:"exec",command:e,content:t,bytes:r,lines:n,summary:o,recovery:{original:et(s)}}}function SI(e){let t=e.trim();return t?$w(t)?"json":Nw(e)?"jsonl":GI(e)?"unified-diff":Fw(e)?"tabular":DI(e)?"log-like":$I(e)?"prose":"untyped":"untyped"}function TI(e,t,r,n,s,o,i=Ms){switch(e){case"json":return vI(t,i);case"jsonl":return{summary:xI(t)};case"unified-diff":return{summary:CI(t)};case"tabular":return{summary:OI(t)};case"log-like":return{summary:AI(t,o)};case"prose":return{summary:PI(t)};case"bytes":return{summary:{}};case"untyped":return{summary:Dw(r,n,s,o)}}}function vI(e,t){let r=$w(e);if(Array.isArray(r)){if(r.length>15)try{let n=t(r,15);return{summary:{root_type:"array",total:n.total,kept:n.kept,dropped:n.dropped,shape_outliers:n.shapeOutliers,value_outliers:n.valueOutliers,items:n.items.map(tr),item_keys:ed(r)}}}catch(n){return{summary:Ow(r),degradation:{reason:"exec-json-array-crusher-failed",family:"exec",stderrHead:Bw(n)}}}return{summary:Ow(r)}}if(Us(r)){let n=Object.entries(r);return{summary:{root_type:"object",keys:n.map(([s])=>s).slice(0,20),key_count:n.length,sample:Object.fromEntries(n.slice(0,8).map(([s,o])=>[s,tr(o)]))}}}return{summary:{root_type:typeof r,value:tr(r)}}}function Ow(e){return{root_type:"array",items:e.length,sample:e.slice(0,5).map(tr),item_keys:ed(e)}}function xI(e){let t=Nw(e)??[],r=NI(t,"level");return{records:t.length,keys:ed(t),levels:r,first:tr(t[0]),last:tr(t.at(-1))}}function CI(e){let t=new Map,r="",n=0,s=0,o=0;for(let i of e.split(/\r?\n/)){let a=/^diff --git a\/(.+?) b\/(.+)$/.exec(i);if(a){r=a[2]??a[1]??"unknown",t.has(r)||t.set(r,{path:r,added:0,deleted:0,hunks:0});continue}if(!r){let c=/^\+\+\+ b\/(.+)$/.exec(i);c&&(r=c[1]??"unknown",t.has(r)||t.set(r,{path:r,added:0,deleted:0,hunks:0}))}i.startsWith("@@")?(o++,r&&t.get(r).hunks++):i.startsWith("+")&&!i.startsWith("+++")?(n++,r&&t.get(r).added++):i.startsWith("-")&&!i.startsWith("---")&&(s++,r&&t.get(r).deleted++)}return{files:[...t.values()].slice(0,12),file_count:t.size,hunks:o,added_lines:n,deleted_lines:s}}function OI(e){let t=Fw(e);return t?{columns:t.columns,rows:t.rows.length,sample:t.rows.slice(0,5)}:Dw(Buffer.from(e),512,Math.max(0,Buffer.byteLength(e)-512),[])}function AI(e,t){let r=js(e);return{entries:r.length,levels:FI(r),first:Pr(r[0]??""),last:Pr(r.at(-1)??""),outliers:t.map(n=>({line:n.lineNumber,score:Number(n.score.toFixed(2)),text:Pr(n.text)}))}}function PI(e){let t=e.trim().split(/\n\s*\n/).filter(n=>n.trim()),r=e.trim().split(/\s+/).filter(Boolean);return{paragraphs:t.length,words:r.length,opening:Pr(t[0]??""),closing:Pr(t.at(-1)??"")}}function Dw(e,t,r,n){let s=Aw(e.subarray(0,t)),o=Aw(e.subarray(r));return{head:s,tail:o,outliers:n.map(i=>({line:i.lineNumber,score:Number(i.score.toFixed(2)),text:Pr(i.text)}))}}function II(e,t,r,n){try{return{kind:"ok",lines:n(e,{headBytes:t,tailStart:r})}}catch(s){return{kind:"failed",error:s}}}function LI(e,t){return iw(e,{excludedByteRanges:[{start:0,end:t.headBytes},{start:t.tailStart,end:Buffer.byteLength(e,"utf8")}]})}function $w(e){let t=e.trim();if(!t||!/^[\[{]/.test(t))return null;try{let r=JSON.parse(t);return Us(r)||Array.isArray(r)?r:null}catch{return null}}function Nw(e){let t=js(e);if(t.length<2||!t.every(n=>/^[\[{]/.test(n.trim())))return null;let r=[];for(let n of t)try{r.push(JSON.parse(n))}catch{return null}return r}function GI(e){let t=js(e),r=t[0]??"";if(!/^diff --git a\/.+ b\/.+/.test(r)&&!/^--- /.test(r))return!1;let n=t.some(i=>/^diff --git a\/.+ b\/.+/.test(i))||t.some(i=>/^--- /.test(i))&&t.some(i=>/^\+\+\+ /.test(i)),s=t.some(i=>/^@@ /.test(i)),o=t.some(i=>/^[+-]/.test(i)&&!/^(---|\+\+\+) /.test(i));return n&&s&&o}function Fw(e){let t=js(e);if(t.length<3)return null;let r=t[0]??"";if(/[=:{}/]/.test(r)||/^\d{4}-\d{2}-\d{2}/.test(r))return null;let n=r.includes(" ")?/\t+/:/\s{2,}/,s=r.split(n).map(i=>i.trim()).filter(Boolean);if(s.length<2||s.some(i=>!/^[A-Za-z0-9_.-]+$/.test(i)))return null;let o=[];for(let i of t.slice(1)){let a=i.split(n).map(c=>c.trim());if(a.length!==s.length||a.some(c=>c===""))return null;o.push(Object.fromEntries(s.map((c,u)=>[c,a[u]??""])))}return o.length>0?{columns:s,rows:o}:null}function DI(e){let t=js(e);return t.length<3?!1:t.filter(n=>/^\d{4}-\d{2}-\d{2}[T\s]/.test(n)||/\b(?:TRACE|DEBUG|INFO|WARN|WARNING|ERROR|FATAL|PANIC)\b/i.test(n)||(n.match(/\b[A-Za-z0-9_.+:-]+=/g)?.length??0)>=2||/^\[[^\]]+\]\s+/.test(n)).length/t.length>=.6}function $I(e){let t=e.trim();if(!t)return!1;let r=t.split(/\s+/).filter(Boolean),n=t.match(/[.!?](?:\s|$)/g)?.length??0;return r.length>=20&&n>=2}function js(e){return e.split(/\r?\n/).filter(t=>t.trim()!=="")}function ed(e){let t=new Map;for(let r of e)if(Us(r))for(let n of Object.keys(r))t.set(n,(t.get(n)??0)+1);return[...t.entries()].sort((r,n)=>n[1]-r[1]||r[0].localeCompare(n[0])).slice(0,20).map(([r])=>r)}function NI(e,t){let r=new Map;for(let n of e){if(!Us(n))continue;let s=n[t];if(typeof s=="string"||typeof s=="number"||typeof s=="boolean"){let o=String(s).toLowerCase();r.set(o,(r.get(o)??0)+1)}}return Object.fromEntries([...r.entries()].sort((n,s)=>n[0].localeCompare(s[0])))}function FI(e){let t=new Map;for(let r of e){let n=/\blevel=([A-Za-z]+)\b/.exec(r)??/\b(TRACE|DEBUG|INFO|WARN|WARNING|ERROR|FATAL|PANIC)\b/i.exec(r);if(!n)continue;let s=(n[1]??n[0]).toLowerCase();t.set(s,(t.get(s)??0)+1)}return Object.fromEntries([...t.entries()].sort((r,n)=>r[0].localeCompare(n[0])))}function tr(e){return typeof e=="string"?Pr(e):typeof e=="number"||typeof e=="boolean"||e===null?e:Array.isArray(e)?e.slice(0,5).map(tr):Us(e)?Object.fromEntries(Object.entries(e).slice(0,8).map(([t,r])=>[t,tr(r)])):String(e)}function Pr(e){let t=e.replace(/\s+/g," ").trim();return t.length<=Cw?t:`${t.slice(0,Cw-1)}\u2026`}function Mw(e){let t=$(e).trimEnd(),r=H(t);if(!Zl(e,r))throw new Error("exec TOON round-trip guard failed");return`${t}
120
+ `}function Zl(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=typeof t||typeof e!="object"||Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){let i=t;return e.length!==i.length?!1:e.every((a,c)=>Zl(a,i[c]))}let r=e,n=t,s=Object.keys(r),o=Object.keys(n);return s.length!==o.length?!1:s.every(i=>Object.prototype.hasOwnProperty.call(n,i)&&Zl(r[i],n[i]))}function Us(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Bw(e){let r=(e instanceof Error?e.message:String(e??"unknown scorer failure")).split(/\r?\n/,1)[0]?.replace(/\s+/g," ").trim()||"unknown scorer failure";return r.length<=240?r:`${r.slice(0,239)}\u2026`}function Aw(e){return e.toString("utf8").replace(/�$/g,"")}function MI(e){if(e.length===0)return 0;let t=0;for(let r of e)r===10&&t++;return e[e.length-1]===10?t:t+1}function BI(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}var hI,yI,Pw,Cw,qs=h(()=>{"use strict";ae();J();aw();Ar();Bs();at();hI=8*1024,yI=2*1024,Pw=1024,Cw=240});var sa={};K(sa,{RSP_WRAPPER_CAPABILITIES:()=>Vs,_testOnlyResetBinaryState:()=>QI,formatCodexHookDecision:()=>Zw,formatHookDecision:()=>Xw,hookDecisionFromClaudePreExecJson:()=>nL,hookDecisionFromCodexPreExecJson:()=>sL,rewriteCommand:()=>Yw,rewriteTableFromCapabilities:()=>zw,runClaudePreExecHook:()=>oL,runCodexPreExecHook:()=>iL});import{accessSync as VI,constants as KI,existsSync as zI,readFileSync as ra}from"node:fs";import{fileURLToPath as YI}from"node:url";function QI(){ta=void 0,td=!1}function XI(){let e=(process.env.PATH??"").split(":");for(let t of e)if(t)try{return VI(`${t}/rsp`,KI.X_OK),!0}catch{}return!1}function ZI(e){return ta===void 0&&(ta=e()),ta}function eL(){td||(td=!0,process.stderr.write("rsp: entrypoint not found on PATH; run `rsp setup` to provision. See apps/rsp/docs/TROUBLESHOOTING.md\n"))}function zw(e){let t=new Map;for(let r of e)t.set(SL(r.command),["rsp",...r.wrapper]);return t}function Yw(e,t=Ns()){let r=gL(e);if(r)return r;let n=mL(e);if(!n)return ea(e,t);let s=n.tokens.map(u=>u.text);if(s.length>0&&gn(s[0]))return ea(e,t);let o=rL(n,t);if(o)return o;if(n.tokens.some(u=>u.quoted))return ea(e,t);let i=[...Vs].sort((u,l)=>l.command.length-u.command.length).find(u=>fL(s,u.command));if(!i)return ea(e,t);let a=[...t,...i.wrapper,...s.slice(i.command.length)],c=s_(n.redirectSuffix);return{kind:"rewrite",command:[...a.map(rr),...c].join(" "),capabilityId:i.id}}function rL(e,t){let r=e.tokens.map(i=>i.text),n=r[0],s=s_(e.redirectSuffix),o=t.map(rr);return n==="cat"&&r.length===2&&Zi(r[1])?{kind:"rewrite",command:[...o,"cat",rr(r[1]),...s].join(" "),capabilityId:"cat:file"}:(n==="head"||n==="tail")&&r.length===2&&Zi(r[1])?{kind:"rewrite",command:[...o,"cat",`--${n}`,"10",rr(r[1]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===4&&r[1]==="-n"&&/^[1-9][0-9]*$/.test(r[2])&&Zi(r[3])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[2],rr(r[3]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===3&&/^-[1-9][0-9]*$/.test(r[1])&&Zi(r[2])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[1].slice(1),rr(r[2]),...s].join(" "),capabilityId:`cat:${n}`}:null}function Zi(e){return!!e&&!e.startsWith("-")}async function nL(e,t){return await Qw(e,t)}async function sL(e,t){return await Qw(e,t)}async function Qw(e,t){return(await nd(e,t,"pre-exec")).decision}async function nd(e,t,r){let n=c_(e);if(!n.ok){let f={kind:"passthrough",reason:n.reason};return{decision:f,telemetryRoot:t.cwd,event:kn({hook:r,command:"",decision:f,reason:n.reason})}}let s=n.payload,o=tt(s,["cwd"])||tt(s,["tool_input","cwd"])||t.cwd;if(!await(t.isEnabled??aL)(o)){let f={kind:"passthrough",reason:"disabled"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:rd(s),decision:f,reason:"disabled"})}}let a=rd(s);if(!a){let f={kind:"passthrough",reason:"missing-command"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:a,decision:f,reason:"missing-command"})}}let c=t.rspInvocationPrefix??Ns();if(!ZI(t.resolveBinary??(()=>t.rspInvocationPrefix!==void 0||c[0]!=="rsp"||XI()))){eL();let f={kind:"passthrough",reason:"binary-unresolved"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:a,decision:f,reason:"binary-unresolved"})}}let l=process.hrtime.bigint(),p=De(o,process.env).proxyEnabled?hL(a,c):(t.rewrite??(f=>Yw(f,c)))(a),g=Number(process.hrtime.bigint()-l)/1e6;if(p.kind!=="rewrite"){let f=p.reason?p:{...p,reason:"unsupported-command"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:a,decision:f,reason:f.reason??"unsupported-command",decisionMs:g})}}return await uL(o,t.wakeResident??cL),{decision:p,telemetryRoot:o,event:kn({hook:r,command:a,decision:p,reason:p.capabilityId==="proxy:universal"?"universal-proxy":"matched-capability",decisionMs:g})}}function Xw(e){return e.kind==="rewrite"?e_(e.command):{stdout:"",status:0}}function Zw(e){return e.kind==="rewrite"?e_(e.command):{stdout:"",status:0}}function e_(e){return{stdout:`${JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{command:e}}})}
121
+ `,status:0}}async function oL(e){let t="";try{t=e?ra(e,"utf8"):ra(0,"utf8");let r=await nd(t,{cwd:process.cwd()},"claude-pre-exec");na(r.telemetryRoot,r.event);let n=r.decision;r_("claude-pre-exec",n);let s=Xw(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return na(process.cwd(),t_("claude-pre-exec",t,r)),n_("claude-pre-exec",r),0}}async function iL(e){let t="";try{t=e?ra(e,"utf8"):ra(0,"utf8");let r=await nd(t,{cwd:process.cwd()},"codex-pre-exec");na(r.telemetryRoot,r.event);let n=r.decision;r_("codex-pre-exec",n);let s=Zw(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return na(process.cwd(),t_("codex-pre-exec",t,r)),n_("codex-pre-exec",r),0}}function na(e,t){kr(e,t).catch(()=>{})}function kn(e){let t=e.command.trim(),r=e.decision.kind==="rewrite"?e.decision.capabilityId:void 0;return{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:e.hook,command:t||"unknown",command_family:He(t),decision:r?"contributed":"passed",reason:e.reason,capability_id:r,decision_ms:e.decisionMs}}function t_(e,t,r){let n=c_(t),s=n.ok?rd(n.payload):"";return{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:e,command:s||"unknown",command_family:He(s),decision:"failed-open",reason:"hook-exception",error:sd(r)}}function aL(e){return De(e,process.env).enabled}async function cL(e){let t=De(e,process.env);if(!t.enabled||!pL(t))return;let r=ct(e);await vo(r,dL(t))}async function uL(e,t){try{await Promise.resolve(t(e))}catch(r){lL(r)}}function r_(e,t){if(process.env.RSP_DEBUG==="1"){if(t.kind==="rewrite"){process.stderr.write(`rsp hook ${e}: rewrite ${t.capabilityId}
123
122
  `);return}process.stderr.write(`rsp hook ${e}: passthrough ${t.reason??"unsupported-command"}
124
- `)}}function qw(e,t){process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook ${e}: exception ${Kl(t)}
125
- `)}function LI(e){Tc(e)||process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook pre-exec: resident-wake-failed ${Kl(e)}
126
- `)}function Kl(e){return e instanceof Error?e.name||"Error":typeof e}function DI(e){return{storeUri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,telemetryTtlDays:e.telemetryTtlDays,telemetryByteBudget:e.telemetryByteBudget,telemetryDrainIntervalMs:e.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:e.telemetryDrainTimeoutMs,idleMs:e.idleMs}}function GI(e){if(!e.storeUri.startsWith("file://"))return!0;try{return bI(wI(e.storeUri))}catch{return!1}}function Jl(e){return nt(e,["tool_input","command"])||nt(e,["tool_input","cmd"])||nt(e,["tool_input","args","command"])||nt(e,["input","command"])||nt(e,["input","cmd"])||nt(e,["arguments","command"])||nt(e,["arguments","cmd"])||nt(e,["command"])||nt(e,["cmd"])}function $I(e){let t=e.trim();if(!t||/[\n\r|;()$`]/.test(t))return null;let r=zl(t);if(r.length===0||r[0]?.quoted||r.some(o=>/[()$`]/.test(o.text))||r.some(o=>o.text.includes("=")&&pn(o.text)))return null;let n=[],s=[];for(let o of r){if(o.text.includes(">")||o.text.includes("<")){if(o.quoted||o.text!=="2>/dev/null"&&o.text!=="2>&1")return null;s.push(o);continue}n.push(o)}return n.length===0?null:{tokens:n,redirectSuffix:s}}function zl(e){let t=[],r="",n=!1,s=null,o=()=>{!r&&!n||(t.push({text:r,quoted:n}),r="",n=!1)};for(let i=0;i<e.length;i+=1){let a=e[i];if(s){if(a===s){s=null;continue}if(s==='"'&&a==="\\"&&i+1<e.length){i+=1,r+=e[i];continue}r+=a;continue}if(a==="'"||a==='"'){s=a,n=!0;continue}if(a==="\\"&&i+1<e.length){i+=1,r+=e[i];continue}if(/[ \t]/.test(a)){o();continue}r+=a}return s?[]:(o(),t)}function NI(e,t){return e.length<t.length?!1:t.every((r,n)=>e[n]===r)}function FI(e){let t=zl(e.trim()).map(r=>r.text);return kr(t)?{kind:"passthrough",reason:SI}:null}function Ww(e){return e.map(t=>t.text)}function rr(e){return/[^\w@%+=:,./-]/.test(e)?Yl(e):e}function MI(e,t){let r=jI(e);return r?{kind:"passthrough",reason:r}:{kind:"rewrite",command:`${t.map(rr).join(" ")} proxy -- ${Yl(e.trim())}`,capabilityId:"proxy:universal"}}function BI(e){if(!process.argv[1])return!1;let t=zl(e);return t[0]?.text===process.execPath&&t[1]?.text===process.argv[1]}function jI(e){let t=e.trim();if(!t)return"missing-command";if(Vw(t))return"background";if(/\b(?:RSP_NO_PROXY|RED_SKILLS_RSP_NO_PROXY)=1\b/.test(t))return"opt-out";let r=ms(ps(t)[0]??"")[0];if(r==="rsp"||BI(t))return"opt-out";if(r&&Jw.has(r))return"interactive"}function Ki(e,t){let r=e.trim();return UI(r)?{kind:"rewrite",command:`${t.map(rr).join(" ")} exec -- ${Yl(r)}`,capabilityId:"exec:compound"}:{kind:"passthrough"}}function UI(e){return!(!e||!HI(e)||!qI(e)||Vw(e)||/<<-?/.test(e)||/\$\(|`/.test(e)||/[<>]/.test(e)||WI(e,"rsp")||Kw(e,Jw)||JI(e))}function HI(e){return/&&|[;|]/.test(e)}function Vw(e){for(let t=0;t<e.length;t+=1)if(e[t]==="&"&&!(e[t-1]==="&"||e[t+1]==="&")&&!(e[t-1]===">"||e[t+1]===">"))return!0;return!1}function qI(e){return ps(e).some(t=>{let r=ms(t);return r.length===0?!1:r[0]==="git"?["log","diff","show","blame"].includes(r[1]??""):r[0]==="gh"?r.some((n,s)=>s>0&&(n==="list"||n==="view")):r[0]==="vitest"?!0:r[0]==="cargo"&&r[1]==="test"})}function Kw(e,t){return ps(e).some(r=>{let n=ms(r)[0];return n?t.has(n):!1})}function WI(e,t){return Kw(e,new Set([t]))}function JI(e){return ps(e).some(t=>{let r=ms(t);return r[0]==="grep"&&r.includes("-q")})}function Yl(e){return`'${e.replace(/'/g,"'\\''")}'`}function VI(e){return e.join("\0")}function zw(e){try{let t=JSON.parse(e);return Yw(t)?{ok:!0,payload:t}:{ok:!1,reason:"payload-not-object"}}catch{return{ok:!1,reason:"payload-parse-error"}}}function nt(e,t){let r=e;for(let n of t){if(!Yw(r))return"";r=r[n]}return typeof r=="string"?r:""}function Yw(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var zi,Wl,Vs,GV,SI,Jw,Ks=h(()=>{"use strict";fs();Ze();dt();wr();Dl();et();Wl=!1;Vs=[{id:"git:status",command:["git","status"],wrapper:["git","status"]},{id:"git:log",command:["git","log"],wrapper:["git","log"]},{id:"git:diff",command:["git","diff"],wrapper:["git","diff"]},{id:"git:commit",command:["git","commit"],wrapper:["git","commit"]},{id:"git:push",command:["git","push"],wrapper:["git","push"]},{id:"git:blame",command:["git","blame"],wrapper:["git","blame"]},{id:"git:branch:av",command:["git","branch","-av"],wrapper:["git","branch","-av"]},{id:"git:show",command:["git","show"],wrapper:["git","show"]},{id:"gh:pr:list",command:["gh","pr","list"],wrapper:["gh","pr","list"]},{id:"gh:pr:view",command:["gh","pr","view"],wrapper:["gh","pr","view"]},{id:"gh:issue:list",command:["gh","issue","list"],wrapper:["gh","issue","list"]},{id:"gh:issue:view",command:["gh","issue","view"],wrapper:["gh","issue","view"]},{id:"gh:run:list",command:["gh","run","list"],wrapper:["gh","run","list"]},{id:"gh:run:view",command:["gh","run","view"],wrapper:["gh","run","view"]},{id:"gh:issues:batch",command:["gh","issues"],wrapper:["gh","issues"]},{id:"gh:prs:batch",command:["gh","prs"],wrapper:["gh","prs"]},{id:"gh:edit-labels:batch",command:["gh","edit-labels"],wrapper:["gh","edit-labels"]},{id:"gh:link-sub-issues:batch",command:["gh","link-sub-issues"],wrapper:["gh","link-sub-issues"]},{id:"vitest",command:["vitest"],wrapper:["vitest"]},{id:"vitest:run",command:["vitest","run"],wrapper:["vitest","run"]},{id:"cargo:test",command:["cargo","test"],wrapper:["cargo","test"]}],GV=$w(Vs),SI="lossless-gh-json-jq";Jw=new Set(["bash","fish","htop","less","more","nano","node","python","python3","ssh","top","vi","vim","zsh"])});var n_={};K(n_,{fastTelemetryRoot:()=>Xl,isFastGitStatus:()=>Zi,runFastGitStatus:()=>ea});import{spawnSync as t_}from"node:child_process";import{existsSync as r_,readdirSync as rL}from"node:fs";function Zi(e){return e.length===2&&e[0]==="git"&&e[1]==="status"}async function ea(){if(nL(process.cwd()))return{stdout:Ql(),stderr:Buffer.alloc(0),status:0,signal:null};if(t_("git",["diff-index","--quiet","HEAD","--"],{stdio:"ignore"}).status===0)return{stdout:Ql(),stderr:Buffer.alloc(0),status:0,signal:null};let t=t_("git",["status","--porcelain=v1"],{encoding:"buffer"});if((t.status??0)!==0)return{stdout:t.stdout,stderr:t.stderr,status:t.status??1,signal:t.signal};let r=t.stdout.length===0?Ql():t.stdout;return{stdout:r,stderr:t.stderr,status:0,signal:t.signal,rawOutput:r}}async function Xl(e){try{let{resolveResidentPaths:t}=await Promise.resolve().then(()=>(dt(),br));return t(e).rootDir}catch{return e}}function Ql(){return Buffer.from(`${se({command:"git status",category:"no-op",exit_code:0,noop:!0,scope:"git status",empty:!0,branch:"",rows:[],summary:"git status clean: 0 changes"})}
127
- `)}function nL(e){try{return!r_(`${e}/.git`)||r_(`${e}/.git/index`)?!1:rL(e).every(t=>t===".git")}catch{return!1}}var Zl=h(()=>{"use strict";Tt()});async function Tn(e,t,r){let n=new Array(e.length),s=0,o=Math.min(Math.max(1,Math.floor(t)),e.length),i=Array.from({length:o},async()=>{for(;s<e.length;){let a=s++;n[a]=await r(e[a])}});return await Promise.all(i),n}function i_(e,t,r,n={}){_L(t);let s=e==="issue"?"i":"p",o=t.map((d,g)=>({alias:`${s}${g}`,number:d})),i=(n.labelNames??[]).map((d,g)=>({alias:`l${g}`,name:d})),c=EL(["id","number",...r]).map(d=>RL(wL[d],6)).join(`
128
- `),u=o.map(({alias:d,number:g})=>[` ${d}: ${e}(number: ${g}) {`,c," }"].join(`
129
- `)),l=i.map(({alias:d,name:g})=>` ${d}: label(name: ${JSON.stringify(g)}) { id name }`),p=["query RspGitHubBatch($owner: String!, $repo: String!) {"," repository(owner: $owner, name: $repo) {",...u,...l," }","}"].join(`
130
- `);return{kind:e,query:p,aliases:o,labelAliases:i}}function a_(e,t){let r=Sn(t),n=Sn(r.data),s=Sn(n.repository),o=Array.isArray(r.errors)?r.errors.map(Sn):[];return e.aliases.map(({alias:i,number:a})=>{let c=s[i];if(l_(c))return{number:a,value:c};let u=o.find(l=>{let p=l.path;return Array.isArray(p)&&p.includes(i)});return{number:a,error:d_(u?.message)||"not found"}})}function c_(e,t,r){let n=[],s=[];return e.forEach((o,i)=>{if(t.length>0){let a=`add${i}`;n.push({alias:a,number:o.number}),s.push(` ${a}: addLabelsToLabelable(input: { labelableId: ${sr(o.nodeId)}, labelIds: ${o_(t)}, clientMutationId: ${sr(String(o.number))} }) { clientMutationId }`)}if(r.length>0){let a=`remove${i}`;n.push({alias:a,number:o.number}),s.push(` ${a}: removeLabelsFromLabelable(input: { labelableId: ${sr(o.nodeId)}, labelIds: ${o_(r)}, clientMutationId: ${sr(String(o.number))} }) { clientMutationId }`)}}),{aliases:n,query:["mutation RspEditLabels {",...s,"}"].join(`
131
- `)}}function u_(e,t){let r=t.map((s,o)=>({alias:`link${o}`,number:s.number})),n=t.map((s,o)=>` link${o}: addSubIssue(input: { issueId: ${sr(e.nodeId)}, subIssueId: ${sr(s.nodeId)}, clientMutationId: ${sr(String(s.number))} }) { clientMutationId }`);return{aliases:r,query:["mutation RspLinkSubIssues {",...n,"}"].join(`
132
- `)}}function ed(e,t){let r=Sn(t),n=Array.isArray(r.errors)?r.errors.map(Sn):[],s=new Map;for(let{alias:o}of e){let i=n.find(a=>Array.isArray(a.path)&&a.path.includes(o));i&&s.set(o,d_(i.message)||"mutation failed")}return s}function _L(e){if(e.length===0)throw new Error("at least one GitHub number is required");if(e.length>100)throw new Error("GitHub batch exceeds 100 nodes");for(let t of e)if(!Number.isSafeInteger(t)||t<=0)throw new Error(`invalid GitHub number: ${t}`)}function EL(e){return[...new Set(e)]}function RL(e,t){let r=" ".repeat(t);return e.split(`
123
+ `)}}function n_(e,t){process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook ${e}: exception ${sd(t)}
124
+ `)}function lL(e){Pc(e)||process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook pre-exec: resident-wake-failed ${sd(e)}
125
+ `)}function sd(e){return e instanceof Error?e.name||"Error":typeof e}function dL(e){return{storeUri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,telemetryTtlDays:e.telemetryTtlDays,telemetryByteBudget:e.telemetryByteBudget,telemetryDrainIntervalMs:e.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:e.telemetryDrainTimeoutMs,idleMs:e.idleMs}}function pL(e){if(!e.storeUri.startsWith("file://"))return!0;try{return zI(YI(e.storeUri))}catch{return!1}}function rd(e){return tt(e,["tool_input","command"])||tt(e,["tool_input","cmd"])||tt(e,["tool_input","args","command"])||tt(e,["input","command"])||tt(e,["input","cmd"])||tt(e,["arguments","command"])||tt(e,["arguments","cmd"])||tt(e,["command"])||tt(e,["cmd"])}function mL(e){let t=e.trim();if(!t||/[\n\r|;()$`]/.test(t))return null;let r=od(t);if(r.length===0||r[0]?.quoted||r.some(o=>/[()$`]/.test(o.text))||r.some(o=>o.text.includes("=")&&gn(o.text)))return null;let n=[],s=[];for(let o of r){if(o.text.includes(">")||o.text.includes("<")){if(o.quoted||o.text!=="2>/dev/null"&&o.text!=="2>&1")return null;s.push(o);continue}n.push(o)}return n.length===0?null:{tokens:n,redirectSuffix:s}}function od(e){let t=[],r="",n=!1,s=null,o=()=>{!r&&!n||(t.push({text:r,quoted:n}),r="",n=!1)};for(let i=0;i<e.length;i+=1){let a=e[i];if(s){if(a===s){s=null;continue}if(s==='"'&&a==="\\"&&i+1<e.length){i+=1,r+=e[i];continue}r+=a;continue}if(a==="'"||a==='"'){s=a,n=!0;continue}if(a==="\\"&&i+1<e.length){i+=1,r+=e[i];continue}if(/[ \t]/.test(a)){o();continue}r+=a}return s?[]:(o(),t)}function fL(e,t){return e.length<t.length?!1:t.every((r,n)=>e[n]===r)}function gL(e){let t=od(e.trim()).map(r=>r.text);return Sr(t)?{kind:"passthrough",reason:tL}:null}function s_(e){return e.map(t=>t.text)}function rr(e){return/[^\w@%+=:,./-]/.test(e)?id(e):e}function hL(e,t){let r=bL(e);return r?{kind:"passthrough",reason:r}:{kind:"rewrite",command:`${t.map(rr).join(" ")} proxy -- ${id(e.trim())}`,capabilityId:"proxy:universal"}}function yL(e){if(!process.argv[1])return!1;let t=od(e);return t[0]?.text===process.execPath&&t[1]?.text===process.argv[1]}function bL(e){let t=e.trim();if(!t)return"missing-command";if(i_(t))return"background";if(/\b(?:RSP_NO_PROXY|RED_SKILLS_RSP_NO_PROXY)=1\b/.test(t))return"opt-out";let r=ws(bs(t)[0]??"")[0];if(r==="rsp"||yL(t))return"opt-out";if(r&&o_.has(r))return"interactive"}function ea(e,t){let r=e.trim();return wL(r)?{kind:"rewrite",command:`${t.map(rr).join(" ")} exec -- ${id(r)}`,capabilityId:"exec:compound"}:{kind:"passthrough"}}function wL(e){return!(!e||!_L(e)||!EL(e)||i_(e)||/<<-?/.test(e)||/\$\(|`/.test(e)||/[<>]/.test(e)||RL(e,"rsp")||a_(e,o_)||kL(e))}function _L(e){return/&&|[;|]/.test(e)}function i_(e){for(let t=0;t<e.length;t+=1)if(e[t]==="&"&&!(e[t-1]==="&"||e[t+1]==="&")&&!(e[t-1]===">"||e[t+1]===">"))return!0;return!1}function EL(e){return bs(e).some(t=>{let r=ws(t);return r.length===0?!1:r[0]==="git"?["log","diff","show","blame"].includes(r[1]??""):r[0]==="gh"?r.some((n,s)=>s>0&&(n==="list"||n==="view")):r[0]==="vitest"?!0:r[0]==="cargo"&&r[1]==="test"})}function a_(e,t){return bs(e).some(r=>{let n=ws(r)[0];return n?t.has(n):!1})}function RL(e,t){return a_(e,new Set([t]))}function kL(e){return bs(e).some(t=>{let r=ws(t);return r[0]==="grep"&&r.includes("-q")})}function id(e){return`'${e.replace(/'/g,"'\\''")}'`}function SL(e){return e.join("\0")}function c_(e){try{let t=JSON.parse(e);return u_(t)?{ok:!0,payload:t}:{ok:!1,reason:"payload-not-object"}}catch{return{ok:!1,reason:"payload-parse-error"}}}function tt(e,t){let r=e;for(let n of t){if(!u_(r))return"";r=r[n]}return typeof r=="string"?r:""}function u_(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ta,td,Vs,c2,tL,o_,Ks=h(()=>{"use strict";_s();Be();ut();Jt();ql();mt();td=!1;Vs=[{id:"git:status",command:["git","status"],wrapper:["git","status"]},{id:"git:log",command:["git","log"],wrapper:["git","log"]},{id:"git:diff",command:["git","diff"],wrapper:["git","diff"]},{id:"git:commit",command:["git","commit"],wrapper:["git","commit"]},{id:"git:push",command:["git","push"],wrapper:["git","push"]},{id:"git:blame",command:["git","blame"],wrapper:["git","blame"]},{id:"git:branch:av",command:["git","branch","-av"],wrapper:["git","branch","-av"]},{id:"git:show",command:["git","show"],wrapper:["git","show"]},{id:"gh:pr:list",command:["gh","pr","list"],wrapper:["gh","pr","list"]},{id:"gh:pr:view",command:["gh","pr","view"],wrapper:["gh","pr","view"]},{id:"gh:issue:list",command:["gh","issue","list"],wrapper:["gh","issue","list"]},{id:"gh:issue:view",command:["gh","issue","view"],wrapper:["gh","issue","view"]},{id:"gh:run:list",command:["gh","run","list"],wrapper:["gh","run","list"]},{id:"gh:run:view",command:["gh","run","view"],wrapper:["gh","run","view"]},{id:"gh:issues:batch",command:["gh","issues"],wrapper:["gh","issues"]},{id:"gh:prs:batch",command:["gh","prs"],wrapper:["gh","prs"]},{id:"gh:edit-labels:batch",command:["gh","edit-labels"],wrapper:["gh","edit-labels"]},{id:"gh:link-sub-issues:batch",command:["gh","link-sub-issues"],wrapper:["gh","link-sub-issues"]},{id:"vitest",command:["vitest"],wrapper:["vitest"]},{id:"vitest:run",command:["vitest","run"],wrapper:["vitest","run"]},{id:"cargo:test",command:["cargo","test"],wrapper:["cargo","test"]}],c2=zw(Vs),tL="lossless-gh-json-jq";o_=new Set(["bash","fish","htop","less","more","nano","node","python","python3","ssh","top","vi","vim","zsh"])});var h_={};K(h_,{fastTelemetryRoot:()=>cd,isFastGitStatus:()=>oa,runFastGitStatus:()=>ia});import{spawnSync as f_}from"node:child_process";import{existsSync as g_,readdirSync as LL}from"node:fs";function oa(e){return e.length===2&&e[0]==="git"&&e[1]==="status"}async function ia(){if(GL(process.cwd()))return{stdout:ad(),stderr:Buffer.alloc(0),status:0,signal:null};if(f_("git",["diff-index","--quiet","HEAD","--"],{stdio:"ignore"}).status===0)return{stdout:ad(),stderr:Buffer.alloc(0),status:0,signal:null};let t=f_("git",["status","--porcelain=v1"],{encoding:"buffer"});if((t.status??0)!==0)return{stdout:t.stdout,stderr:t.stderr,status:t.status??1,signal:t.signal};let r=t.stdout.length===0?ad():t.stdout;return{stdout:r,stderr:t.stderr,status:0,signal:t.signal,rawOutput:r}}async function cd(e){try{let{resolveResidentPaths:t}=await Promise.resolve().then(()=>(ut(),br));return t(e).rootDir}catch{return e}}function ad(){return Buffer.from(`${ne({command:"git status",category:"no-op",exit_code:0,noop:!0,scope:"git status",empty:!0,branch:"",rows:[],summary:"git status clean: 0 changes"})}
126
+ `)}function GL(e){try{return!g_(`${e}/.git`)||g_(`${e}/.git/index`)?!1:LL(e).every(t=>t===".git")}catch{return!1}}var ud=h(()=>{"use strict";vt()});async function Tn(e,t,r){let n=new Array(e.length),s=0,o=Math.min(Math.max(1,Math.floor(t)),e.length),i=Array.from({length:o},async()=>{for(;s<e.length;){let a=s++;n[a]=await r(e[a])}});return await Promise.all(i),n}function w_(e,t,r,n={}){QL(t);let s=e==="issue"?"i":"p",o=t.map((p,g)=>({alias:`${s}${g}`,number:p})),i=(n.labelNames??[]).map((p,g)=>({alias:`l${g}`,name:p})),c=XL(["id","number",...r]).map(p=>ZL(YL[p],6)).join(`
127
+ `),u=o.map(({alias:p,number:g})=>[` ${p}: ${e}(number: ${g}) {`,c," }"].join(`
128
+ `)),l=i.map(({alias:p,name:g})=>` ${p}: label(name: ${JSON.stringify(g)}) { id name }`),d=["query RspGitHubBatch($owner: String!, $repo: String!) {"," repository(owner: $owner, name: $repo) {",...u,...l," }","}"].join(`
129
+ `);return{kind:e,query:d,aliases:o,labelAliases:i}}function __(e,t){let r=Sn(t),n=Sn(r.data),s=Sn(n.repository),o=Array.isArray(r.errors)?r.errors.map(Sn):[];return e.aliases.map(({alias:i,number:a})=>{let c=s[i];if(k_(c))return{number:a,value:c};let u=o.find(l=>{let d=l.path;return Array.isArray(d)&&d.includes(i)});return{number:a,error:S_(u?.message)||"not found"}})}function E_(e,t,r){let n=[],s=[];return e.forEach((o,i)=>{if(t.length>0){let a=`add${i}`;n.push({alias:a,number:o.number}),s.push(` ${a}: addLabelsToLabelable(input: { labelableId: ${sr(o.nodeId)}, labelIds: ${b_(t)}, clientMutationId: ${sr(String(o.number))} }) { clientMutationId }`)}if(r.length>0){let a=`remove${i}`;n.push({alias:a,number:o.number}),s.push(` ${a}: removeLabelsFromLabelable(input: { labelableId: ${sr(o.nodeId)}, labelIds: ${b_(r)}, clientMutationId: ${sr(String(o.number))} }) { clientMutationId }`)}}),{aliases:n,query:["mutation RspEditLabels {",...s,"}"].join(`
130
+ `)}}function R_(e,t){let r=t.map((s,o)=>({alias:`link${o}`,number:s.number})),n=t.map((s,o)=>` link${o}: addSubIssue(input: { issueId: ${sr(e.nodeId)}, subIssueId: ${sr(s.nodeId)}, clientMutationId: ${sr(String(s.number))} }) { clientMutationId }`);return{aliases:r,query:["mutation RspLinkSubIssues {",...n,"}"].join(`
131
+ `)}}function ld(e,t){let r=Sn(t),n=Array.isArray(r.errors)?r.errors.map(Sn):[],s=new Map;for(let{alias:o}of e){let i=n.find(a=>Array.isArray(a.path)&&a.path.includes(o));i&&s.set(o,S_(i.message)||"mutation failed")}return s}function QL(e){if(e.length===0)throw new Error("at least one GitHub number is required");if(e.length>100)throw new Error("GitHub batch exceeds 100 nodes");for(let t of e)if(!Number.isSafeInteger(t)||t<=0)throw new Error(`invalid GitHub number: ${t}`)}function XL(e){return[...new Set(e)]}function ZL(e,t){let r=" ".repeat(t);return e.split(`
133
132
  `).map(n=>`${r}${n}`).join(`
134
- `)}function sr(e){return JSON.stringify(e)}function o_(e){return`[${e.map(sr).join(", ")}]`}function Sn(e){return l_(e)?e:{}}function l_(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function d_(e){return typeof e=="string"?e:""}var wL,p_=h(()=>{wL={id:"id",number:"number",title:"title",state:"state",labels:"labels(first: 100) { nodes { id name } }",body:"body",mergeable:"mergeable",checks:["commits(last: 1) {"," nodes { commit { statusCheckRollup {"," state"," contexts(first: 100) { nodes {"," __typename"," ... on CheckRun { name status conclusion detailsUrl }"," ... on StatusContext { context state targetUrl }"," } }"," } } }","}"].join(`
135
- `),subIssues:"subIssues(first: 100) { nodes { number } }"}});import{spawn as SL,spawnSync as TL}from"node:child_process";function nd(e){return e[0]==="gh"&&["issues","prs","edit-labels","link-sub-issues"].includes(e[1]??"")}async function g_(e,t={}){let r=ML(e),n=r.repo??t.repo??process.env.GH_REPO??jL();if(!n||!n.includes("/"))return id(e,"repository is required; pass --repo owner/repo");let s=t.exec??UL,o=Math.max(1,Math.floor(t.restConcurrency??f_));return r.verb==="issues"||r.verb==="prs"?await CL(r,n,s,o,e):r.verb==="edit-labels"?await AL(r,n,s,o,e):await IL(r,n,s,o,e)}async function CL(e,t,r,n,s){let o=e.verb==="issues"?"issue":"pullRequest",i=h_(e),a=[],c=[];for(let l of od(e.numbers,100)){let p=i_(o,l,i.query),d=await sd(r,t,p.query);if(cd(d))return await OL(e,t,r,n,s);if(d.code!==0){c.push(d.stderr),a.push(...l.map(g=>({number:g,value:{error:Ue(d)||`failed to read ${g}`},failed:!0})));continue}a.push(...a_(p,or(d.stdout)).map(g=>({number:g.number,value:g.error?{error:g.error}:DL(e.verb,g.value??{},i.output),failed:!!g.error})))}let u=a.filter(l=>l.failed).length;return ra({command:na(s),transport:"graphql",order:e.numbers,[e.verb]:zs(a),summary:`${a.length-u}/${a.length} read`},c.length>0?1:0,c.filter(Boolean).join(`
136
- `))}async function OL(e,t,r,n,s){let o=h_(e),i=e.verb==="issues"?"issues":"pulls",a=await Tn(e.numbers,n,async u=>{let l=await r(["api",`repos/${t}/${i}/${u}`]);if(l.code!==0)return{number:u,value:{error:Ue(l)||"REST fallback failed"}};let p=ht(or(l.stdout));if(e.verb==="prs"&&o.output.some(y_)){let d=ee(ht(p.head).sha);if(!d)return{number:u,value:{error:"REST fallback pull response omitted head SHA"}};let g=await r(["api",`repos/${t}/commits/${d}/check-runs`]);if(g.code!==0)return{number:u,value:{error:Ue(g)||"REST check-runs fallback failed"}};let f=await r(["api",`repos/${t}/commits/${d}/status`]);if(f.code!==0)return{number:u,value:{error:Ue(f)||"REST commit-status fallback failed"}};p={...p,restCheckRollup:$L(ht(or(g.stdout)),ht(or(f.stdout)))}}return{number:u,value:GL(e.verb,p,o.output)}}),c=a.filter(u=>"error"in u.value).length;return ra({command:na(s),transport:"rest-fallback",degraded:"graphql-quota",concurrency:n,order:e.numbers,[e.verb]:zs(a),summary:`${a.length-c}/${a.length} read via REST fallback`})}async function AL(e,t,r,n,s){if(e.add.length===0&&e.remove.length===0)return id(s,"pass --add and/or --remove");let o=[...new Set([...e.add,...e.remove])],[i,a]=await Promise.all([b_(e.numbers,t,r,n),Tn(o,n,async d=>{let g=await r(["api",`repos/${t}/labels/${encodeURIComponent(d)}`]);return{name:d,nodeId:ee(ht(or(g.stdout)).node_id),error:g.code===0?"":Ue(g)}})]),c=new Map(a.map(d=>[d.name,d.nodeId])),u=o.filter(d=>!c.get(d));if(u.length>0)return xn(s,e.numbers,ad(e.numbers,()=>({error:`label not found: ${u.join(", ")}`})),"graphql");let l=new Map(i.filter(d=>d.error).map(d=>[d.number,{error:d.error}])),p=i.flatMap(d=>d.nodeId?[{number:d.number,nodeId:d.nodeId}]:[]);for(let d of od(p,100)){let g=c_(d,e.add.map(E=>c.get(E)),e.remove.map(E=>c.get(E))),f=await sd(r,t,g.query);if(cd(f))return await PL(e,t,r,n,s);if(f.code!==0){for(let E of d)l.set(E.number,{error:Ue(f)||"label mutation failed"});continue}let k=ed(g.aliases,or(f.stdout));for(let E of d){let _=g.aliases.filter(T=>T.number===E.number).map(T=>k.get(T.alias)).find(Boolean);l.set(E.number,_?{error:_}:{ok:!0})}}return xn(s,e.numbers,w_(e.numbers,l),"graphql")}async function PL(e,t,r,n,s){let o=await Tn(e.numbers,n,async i=>{for(let a of e.remove){let c=await r(["api","-X","DELETE",`repos/${t}/issues/${i}/labels/${encodeURIComponent(a)}`]);if(c.code!==0)return{number:i,value:{error:Ue(c)||`failed to remove label ${a}`}}}if(e.add.length>0){let a=["api","-X","POST",`repos/${t}/issues/${i}/labels`];for(let u of e.add)a.push("-f",`labels[]=${u}`);let c=await r(a);if(c.code!==0)return{number:i,value:{error:Ue(c)||"failed to add labels"}}}return{number:i,value:{ok:!0}}});return xn(s,e.numbers,zs(o),"rest-fallback",n)}async function IL(e,t,r,n,s){if(e.numbers.length<2)return id(s,"pass a parent and at least one child issue");let[o,...i]=e.numbers,a=await b_(e.numbers,t,r,n),c=a[0],u=c?.nodeId;if(!u)return xn(s,i,ad(i,()=>({error:c?.error??"parent not found"})),"graphql");let l=new Map,p=a.slice(1).flatMap(d=>d.nodeId?[{number:d.number,nodeId:d.nodeId}]:(l.set(d.number,{error:d.error??"child not found"}),[]));for(let d of od(p,100)){let g=u_({number:o,nodeId:u},d),f=await sd(r,t,g.query);if(cd(f))return await LL(o,i,t,r,n,s);if(f.code!==0){for(let E of d)l.set(E.number,{error:Ue(f)||"sub-issue mutation failed"});continue}let k=ed(g.aliases,or(f.stdout));for(let E of g.aliases){let y=k.get(E.alias);l.set(E.number,y?{error:y}:{ok:!0})}}return xn(s,i,w_(i,l),"graphql")}async function LL(e,t,r,n,s,o){let i=await Tn(t,s,async a=>{let c=await n(["api",`repos/${r}/issues/${a}`,"--jq",".id"]),u=Number(c.stdout.trim());if(c.code!==0||!Number.isSafeInteger(u)||u<=0)return{number:a,value:{error:Ue(c)||"REST id lookup failed"}};let l=await n(["api","-X","POST",`repos/${r}/issues/${e}/sub_issues`,"-F",`sub_issue_id=${u}`]);return{number:a,value:l.code===0?{ok:!0}:{error:Ue(l)||"REST link failed"}}});return xn(o,t,zs(i),"rest-fallback",s)}function xn(e,t,r,n,s){let o=Object.values(r).filter(i=>Cn(i)&&"error"in i).length;return ra({command:na(e),transport:n,...n==="rest-fallback"?{degraded:"graphql-quota",concurrency:s??f_}:{},order:[...t],issues:r,summary:`${t.length-o}/${t.length} mutated`})}function h_(e){if(e.verb==="issues"){let r=e.fields.length>0?e.fields:["title","state","labels","body"];return m_(r,vL),{output:r,query:r}}let t=e.fields.length>0?e.fields:["title","state","mergeable","checks"];return m_(t,xL),{output:t,query:t.map(r=>["checkRollup","statusCheckRollup"].includes(r)?"checks":r)}}function m_(e,t){let r=e.find(n=>!t.has(n));if(r)throw new Error(`unknown GitHub batch field: ${r}`)}function DL(e,t,r){let n={};for(let s of r)s==="labels"?n.labels=td(t.labels).map(o=>ee(o.name)).filter(Boolean):["checks","checkRollup","statusCheckRollup"].includes(s)?n[s]=FL(t.commits):s==="state"||s==="mergeable"?n[s]=ee(t[s]).toLowerCase():s!=="id"&&s!=="subIssues"&&(n[s]=__(t[s]));return"number"in n||(n.number=ud(t.number)),n}function GL(e,t,r){let n={};for(let s of r)if(s==="labels"){let o=Array.isArray(t.labels)?t.labels.filter(Cn):[];n.labels=o.map(i=>ee(i.name)).filter(Boolean)}else if(y_(s))n[s]=ht(t.restCheckRollup);else if(s==="state")n.state=ee(t.state).toLowerCase();else if(s==="mergeable"){let o=t.mergeable;n.mergeable=typeof o=="boolean"?o?"mergeable":"conflicting":"unknown"}else n[s]=__(t[s]);return"number"in n||(n.number=ud(t.number)),n}function $L(e,t){let r=Array.isArray(e.check_runs)?e.check_runs.filter(Cn):[],n=Array.isArray(t.statuses)?t.statuses.filter(Cn):[],s=[...r.map(o=>({name:ee(o.name),state:(ee(o.conclusion)||ee(o.status)).toLowerCase()})),...n.map(o=>({name:ee(o.context),state:ee(o.state).toLowerCase()}))];return{state:ee(t.state).toLowerCase()||NL(s.map(o=>o.state)),contexts:s}}function NL(e){return e.some(t=>["failure","error","cancelled","timed_out","action_required"].includes(t))?"failure":e.some(t=>["pending","queued","in_progress","requested","waiting"].includes(t))?"pending":e.length>0&&e.every(t=>["success","neutral","skipped"].includes(t))?"success":""}function y_(e){return["checks","checkRollup","statusCheckRollup"].includes(e)}function FL(e){let t=td(e).at(-1),r=ht(ht(t?.commit).statusCheckRollup);return{state:ee(r.state).toLowerCase(),contexts:td(r.contexts).map(n=>({name:ee(n.name)||ee(n.context),state:(ee(n.conclusion)||ee(n.status)||ee(n.state)).toLowerCase()}))}}async function sd(e,t,r){let[n,s]=BL(t);return await e(["api","graphql","-f",`query=${r}`,"-F",`owner=${n}`,"-F",`repo=${s}`])}async function b_(e,t,r,n){return await Tn(e,n,async s=>{let o=await r(["api",`repos/${t}/issues/${s}`]),i=ht(or(o.stdout)),a=ee(i.node_id),c=ud(i.id);return o.code!==0||!a?{number:s,error:Ue(o)||"REST issue lookup failed"}:{number:s,nodeId:a,databaseId:c>0?c:void 0}})}function od(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function ML(e){if(!nd(e))throw new Error("unsupported rsp gh batch command");let t=e[1],r=[],n=[],s=[],o=[],i;for(let a=2;a<e.length;a++){let c=e[a];if(c==="--repo")i=e[++a];else if(c==="--json")n.push(...vn(e[++a]??""));else if(c.startsWith("--json="))n.push(...vn(c.slice(7)));else if(c==="--add")s.push(...vn(e[++a]??""));else if(c.startsWith("--add="))s.push(...vn(c.slice(6)));else if(c==="--remove")o.push(...vn(e[++a]??""));else if(c.startsWith("--remove="))o.push(...vn(c.slice(9)));else{let u=Number(c);if(!Number.isSafeInteger(u)||u<=0)throw new Error(`invalid GitHub number: ${c}`);r.push(u)}}if(r.length===0)throw new Error("at least one GitHub number is required");return{verb:t,numbers:r,repo:i,fields:n,add:s,remove:o}}function ra(e,t=0,r=""){return{stdout:Buffer.from(`${$(e)}
137
- `),stderr:Buffer.from(r),status:t,signal:null,payload:e}}function id(e,t){return ra({command:na(e),category:"usage",error:t,help:"rsp gh --help",exit_code:2},2)}function ad(e,t){return zs(e.map(r=>({number:r,value:t(r)})))}function zs(e){return Object.fromEntries(e.map(t=>[String(t.number),t.value]))}function w_(e,t){return ad(e,r=>t.get(r)??{error:"mutation skipped"})}function cd(e){return e.code!==0&&/rate.?limit|rate_limit|RATE_LIMITED|quota/i.test(`${e.stderr}
138
- ${e.stdout}`)}function Ue(e){return(e.stderr||e.stdout).trim().split(`
139
- `)[0]?.slice(0,240)??""}function or(e){try{return e.trim()?JSON.parse(e):{}}catch{return{}}}function td(e){let t=ht(e).nodes;return Array.isArray(t)?t.filter(Cn):[]}function __(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||e===null?e:""}function ud(e){let t=Number(e);return Number.isFinite(t)?t:0}function vn(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function BL(e){let t=e.indexOf("/");return[e.slice(0,t),e.slice(t+1)]}function na(e){return`rsp ${e.join(" ")}`}function jL(){let e=TL("git",["config","--get","remote.origin.url"],{encoding:"utf8"});if(e.status!==0)return;let t=e.stdout.trim().match(/(?:github\.com[/:])([^/]+)\/([^/]+?)(?:\.git)?$/);return t?`${t[1]}/${t[2]}`:void 0}async function UL(e){let t=SL("gh",e,{stdio:["ignore","pipe","pipe"]}),r=ke();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",a=>o({code:a??1,stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(s).toString("utf8")}))})}function ht(e){return Cn(e)?e:{}}function Cn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ee(e){return typeof e=="string"?e:""}var f_,vL,xL,E_=h(()=>{"use strict";oe();W();p_();f_=4,vL=new Set(["number","title","state","labels","body"]),xL=new Set(["number","title","state","mergeable","checks","checkRollup","statusCheckRollup","body"])});var yd={};K(yd,{renderGhContract:()=>x_,runGhWrapper:()=>KL});import{spawn as HL}from"node:child_process";async function KL(e,t){if(nd(e))return await g_(e);let r=C_(e),n=await YL(r);return x_(e,n,t)}async function x_(e,t,r){if((t.status??0)!==0||t.signal){let g=Ve(e.join(" "),t.stdout,t.stderr);return{stdout:J(g),stderr:Buffer.from(t.stderr),status:g.exitCode??1,signal:t.signal}}let n=C_(e),s=Ys(t.stdout),o=sD(n,e,s);if(typeof o=="string")return{stdout:Buffer.from(o),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal};let i=pD(o);if(i){if(!r.store)throw new Error("truncated gh output requires an elision store");let g=await r.store.mint(Buffer.from(i.original),{command:e.join(" "),loss:{level:n.full?"brief":r.level,bytes_elided:i.bytes}});i.target.truncated.handle=g}let a=i?.target.truncated.handle||void 0,c=$(o);if(r.level!=="terse")return{stdout:Buffer.from(c),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o,mintedHandle:a,bytesElided:i?.bytes};let u=mD(o);if(!u)return{stdout:Buffer.from(c),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o,mintedHandle:a,bytesElided:i?.bytes};let l=Buffer.byteLength(c),p=await r.store?.mint(Buffer.from(c),{command:e.join(" "),loss:{level:"terse",bytes_elided:l}});if(!p)throw new Error("terse gh output requires an elision store");let d=`\u2026 elided ${u.rowsElided} rows (+${l}) \u2014 ${rt(p)}
133
+ `)}function sr(e){return JSON.stringify(e)}function b_(e){return`[${e.map(sr).join(", ")}]`}function Sn(e){return k_(e)?e:{}}function k_(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function S_(e){return typeof e=="string"?e:""}var YL,T_=h(()=>{YL={id:"id",number:"number",title:"title",state:"state",labels:"labels(first: 100) { nodes { id name } }",body:"body",mergeable:"mergeable",checks:["commits(last: 1) {"," nodes { commit { statusCheckRollup {"," state"," contexts(first: 100) { nodes {"," __typename"," ... on CheckRun { name status conclusion detailsUrl }"," ... on StatusContext { context state targetUrl }"," } }"," } } }","}"].join(`
134
+ `),subIssues:"subIssues(first: 100) { nodes { number } }"}});import{spawn as tG,spawnSync as rG}from"node:child_process";function md(e){return e[0]==="gh"&&["issues","prs","edit-labels","link-sub-issues"].includes(e[1]??"")}async function C_(e,t={}){let r=hG(e),n=r.repo??t.repo??process.env.GH_REPO??bG();if(!n||!n.includes("/"))return hd(e,"repository is required; pass --repo owner/repo");let s=t.exec??wG,o=Math.max(1,Math.floor(t.restConcurrency??x_));return r.verb==="issues"||r.verb==="prs"?await oG(r,n,s,o,e):r.verb==="edit-labels"?await aG(r,n,s,o,e):await uG(r,n,s,o,e)}async function oG(e,t,r,n,s){let o=e.verb==="issues"?"issue":"pullRequest",i=O_(e),a=[],c=[];for(let l of gd(e.numbers,100)){let d=w_(o,l,i.query),p=await fd(r,t,d.query);if(bd(p))return await iG(e,t,r,n,s);if(p.code!==0){c.push(p.stderr),a.push(...l.map(g=>({number:g,value:{error:We(p)||`failed to read ${g}`},failed:!0})));continue}a.push(...__(d,or(p.stdout)).map(g=>({number:g.number,value:g.error?{error:g.error}:dG(e.verb,g.value??{},i.output),failed:!!g.error})))}let u=a.filter(l=>l.failed).length;return ca({command:ua(s),transport:"graphql",order:e.numbers,[e.verb]:zs(a),summary:`${a.length-u}/${a.length} read`},c.length>0?1:0,c.filter(Boolean).join(`
135
+ `))}async function iG(e,t,r,n,s){let o=O_(e),i=e.verb==="issues"?"issues":"pulls",a=await Tn(e.numbers,n,async u=>{let l=await r(["api",`repos/${t}/${i}/${u}`]);if(l.code!==0)return{number:u,value:{error:We(l)||"REST fallback failed"}};let d=gt(or(l.stdout));if(e.verb==="prs"&&o.output.some(A_)){let p=te(gt(d.head).sha);if(!p)return{number:u,value:{error:"REST fallback pull response omitted head SHA"}};let g=await r(["api",`repos/${t}/commits/${p}/check-runs`]);if(g.code!==0)return{number:u,value:{error:We(g)||"REST check-runs fallback failed"}};let f=await r(["api",`repos/${t}/commits/${p}/status`]);if(f.code!==0)return{number:u,value:{error:We(f)||"REST commit-status fallback failed"}};d={...d,restCheckRollup:mG(gt(or(g.stdout)),gt(or(f.stdout)))}}return{number:u,value:pG(e.verb,d,o.output)}}),c=a.filter(u=>"error"in u.value).length;return ca({command:ua(s),transport:"rest-fallback",degraded:"graphql-quota",concurrency:n,order:e.numbers,[e.verb]:zs(a),summary:`${a.length-c}/${a.length} read via REST fallback`})}async function aG(e,t,r,n,s){if(e.add.length===0&&e.remove.length===0)return hd(s,"pass --add and/or --remove");let o=[...new Set([...e.add,...e.remove])],[i,a]=await Promise.all([P_(e.numbers,t,r,n),Tn(o,n,async p=>{let g=await r(["api",`repos/${t}/labels/${encodeURIComponent(p)}`]);return{name:p,nodeId:te(gt(or(g.stdout)).node_id),error:g.code===0?"":We(g)}})]),c=new Map(a.map(p=>[p.name,p.nodeId])),u=o.filter(p=>!c.get(p));if(u.length>0)return xn(s,e.numbers,yd(e.numbers,()=>({error:`label not found: ${u.join(", ")}`})),"graphql");let l=new Map(i.filter(p=>p.error).map(p=>[p.number,{error:p.error}])),d=i.flatMap(p=>p.nodeId?[{number:p.number,nodeId:p.nodeId}]:[]);for(let p of gd(d,100)){let g=E_(p,e.add.map(E=>c.get(E)),e.remove.map(E=>c.get(E))),f=await fd(r,t,g.query);if(bd(f))return await cG(e,t,r,n,s);if(f.code!==0){for(let E of p)l.set(E.number,{error:We(f)||"label mutation failed"});continue}let k=ld(g.aliases,or(f.stdout));for(let E of p){let _=g.aliases.filter(T=>T.number===E.number).map(T=>k.get(T.alias)).find(Boolean);l.set(E.number,_?{error:_}:{ok:!0})}}return xn(s,e.numbers,I_(e.numbers,l),"graphql")}async function cG(e,t,r,n,s){let o=await Tn(e.numbers,n,async i=>{for(let a of e.remove){let c=await r(["api","-X","DELETE",`repos/${t}/issues/${i}/labels/${encodeURIComponent(a)}`]);if(c.code!==0)return{number:i,value:{error:We(c)||`failed to remove label ${a}`}}}if(e.add.length>0){let a=["api","-X","POST",`repos/${t}/issues/${i}/labels`];for(let u of e.add)a.push("-f",`labels[]=${u}`);let c=await r(a);if(c.code!==0)return{number:i,value:{error:We(c)||"failed to add labels"}}}return{number:i,value:{ok:!0}}});return xn(s,e.numbers,zs(o),"rest-fallback",n)}async function uG(e,t,r,n,s){if(e.numbers.length<2)return hd(s,"pass a parent and at least one child issue");let[o,...i]=e.numbers,a=await P_(e.numbers,t,r,n),c=a[0],u=c?.nodeId;if(!u)return xn(s,i,yd(i,()=>({error:c?.error??"parent not found"})),"graphql");let l=new Map,d=a.slice(1).flatMap(p=>p.nodeId?[{number:p.number,nodeId:p.nodeId}]:(l.set(p.number,{error:p.error??"child not found"}),[]));for(let p of gd(d,100)){let g=R_({number:o,nodeId:u},p),f=await fd(r,t,g.query);if(bd(f))return await lG(o,i,t,r,n,s);if(f.code!==0){for(let E of p)l.set(E.number,{error:We(f)||"sub-issue mutation failed"});continue}let k=ld(g.aliases,or(f.stdout));for(let E of g.aliases){let y=k.get(E.alias);l.set(E.number,y?{error:y}:{ok:!0})}}return xn(s,i,I_(i,l),"graphql")}async function lG(e,t,r,n,s,o){let i=await Tn(t,s,async a=>{let c=await n(["api",`repos/${r}/issues/${a}`,"--jq",".id"]),u=Number(c.stdout.trim());if(c.code!==0||!Number.isSafeInteger(u)||u<=0)return{number:a,value:{error:We(c)||"REST id lookup failed"}};let l=await n(["api","-X","POST",`repos/${r}/issues/${e}/sub_issues`,"-F",`sub_issue_id=${u}`]);return{number:a,value:l.code===0?{ok:!0}:{error:We(l)||"REST link failed"}}});return xn(o,t,zs(i),"rest-fallback",s)}function xn(e,t,r,n,s){let o=Object.values(r).filter(i=>Cn(i)&&"error"in i).length;return ca({command:ua(e),transport:n,...n==="rest-fallback"?{degraded:"graphql-quota",concurrency:s??x_}:{},order:[...t],issues:r,summary:`${t.length-o}/${t.length} mutated`})}function O_(e){if(e.verb==="issues"){let r=e.fields.length>0?e.fields:["title","state","labels","body"];return v_(r,nG),{output:r,query:r}}let t=e.fields.length>0?e.fields:["title","state","mergeable","checks"];return v_(t,sG),{output:t,query:t.map(r=>["checkRollup","statusCheckRollup"].includes(r)?"checks":r)}}function v_(e,t){let r=e.find(n=>!t.has(n));if(r)throw new Error(`unknown GitHub batch field: ${r}`)}function dG(e,t,r){let n={};for(let s of r)s==="labels"?n.labels=dd(t.labels).map(o=>te(o.name)).filter(Boolean):["checks","checkRollup","statusCheckRollup"].includes(s)?n[s]=gG(t.commits):s==="state"||s==="mergeable"?n[s]=te(t[s]).toLowerCase():s!=="id"&&s!=="subIssues"&&(n[s]=L_(t[s]));return"number"in n||(n.number=wd(t.number)),n}function pG(e,t,r){let n={};for(let s of r)if(s==="labels"){let o=Array.isArray(t.labels)?t.labels.filter(Cn):[];n.labels=o.map(i=>te(i.name)).filter(Boolean)}else if(A_(s))n[s]=gt(t.restCheckRollup);else if(s==="state")n.state=te(t.state).toLowerCase();else if(s==="mergeable"){let o=t.mergeable;n.mergeable=typeof o=="boolean"?o?"mergeable":"conflicting":"unknown"}else n[s]=L_(t[s]);return"number"in n||(n.number=wd(t.number)),n}function mG(e,t){let r=Array.isArray(e.check_runs)?e.check_runs.filter(Cn):[],n=Array.isArray(t.statuses)?t.statuses.filter(Cn):[],s=[...r.map(o=>({name:te(o.name),state:(te(o.conclusion)||te(o.status)).toLowerCase()})),...n.map(o=>({name:te(o.context),state:te(o.state).toLowerCase()}))];return{state:te(t.state).toLowerCase()||fG(s.map(o=>o.state)),contexts:s}}function fG(e){return e.some(t=>["failure","error","cancelled","timed_out","action_required"].includes(t))?"failure":e.some(t=>["pending","queued","in_progress","requested","waiting"].includes(t))?"pending":e.length>0&&e.every(t=>["success","neutral","skipped"].includes(t))?"success":""}function A_(e){return["checks","checkRollup","statusCheckRollup"].includes(e)}function gG(e){let t=dd(e).at(-1),r=gt(gt(t?.commit).statusCheckRollup);return{state:te(r.state).toLowerCase(),contexts:dd(r.contexts).map(n=>({name:te(n.name)||te(n.context),state:(te(n.conclusion)||te(n.status)||te(n.state)).toLowerCase()}))}}async function fd(e,t,r){let[n,s]=yG(t);return await e(["api","graphql","-f",`query=${r}`,"-F",`owner=${n}`,"-F",`repo=${s}`])}async function P_(e,t,r,n){return await Tn(e,n,async s=>{let o=await r(["api",`repos/${t}/issues/${s}`]),i=gt(or(o.stdout)),a=te(i.node_id),c=wd(i.id);return o.code!==0||!a?{number:s,error:We(o)||"REST issue lookup failed"}:{number:s,nodeId:a,databaseId:c>0?c:void 0}})}function gd(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function hG(e){if(!md(e))throw new Error("unsupported rsp gh batch command");let t=e[1],r=[],n=[],s=[],o=[],i;for(let a=2;a<e.length;a++){let c=e[a];if(c==="--repo")i=e[++a];else if(c==="--json")n.push(...vn(e[++a]??""));else if(c.startsWith("--json="))n.push(...vn(c.slice(7)));else if(c==="--add")s.push(...vn(e[++a]??""));else if(c.startsWith("--add="))s.push(...vn(c.slice(6)));else if(c==="--remove")o.push(...vn(e[++a]??""));else if(c.startsWith("--remove="))o.push(...vn(c.slice(9)));else{let u=Number(c);if(!Number.isSafeInteger(u)||u<=0)throw new Error(`invalid GitHub number: ${c}`);r.push(u)}}if(r.length===0)throw new Error("at least one GitHub number is required");return{verb:t,numbers:r,repo:i,fields:n,add:s,remove:o}}function ca(e,t=0,r=""){return{stdout:Buffer.from(`${$(e)}
136
+ `),stderr:Buffer.from(r),status:t,signal:null,payload:e}}function hd(e,t){return ca({command:ua(e),category:"usage",error:t,help:"rsp gh --help",exit_code:2},2)}function yd(e,t){return zs(e.map(r=>({number:r,value:t(r)})))}function zs(e){return Object.fromEntries(e.map(t=>[String(t.number),t.value]))}function I_(e,t){return yd(e,r=>t.get(r)??{error:"mutation skipped"})}function bd(e){return e.code!==0&&/rate.?limit|rate_limit|RATE_LIMITED|quota/i.test(`${e.stderr}
137
+ ${e.stdout}`)}function We(e){return(e.stderr||e.stdout).trim().split(`
138
+ `)[0]?.slice(0,240)??""}function or(e){try{return e.trim()?JSON.parse(e):{}}catch{return{}}}function dd(e){let t=gt(e).nodes;return Array.isArray(t)?t.filter(Cn):[]}function L_(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||e===null?e:""}function wd(e){let t=Number(e);return Number.isFinite(t)?t:0}function vn(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function yG(e){let t=e.indexOf("/");return[e.slice(0,t),e.slice(t+1)]}function ua(e){return`rsp ${e.join(" ")}`}function bG(){let e=rG("git",["config","--get","remote.origin.url"],{encoding:"utf8"});if(e.status!==0)return;let t=e.stdout.trim().match(/(?:github\.com[/:])([^/]+)\/([^/]+?)(?:\.git)?$/);return t?`${t[1]}/${t[2]}`:void 0}async function wG(e){let t=tG("gh",e,{stdio:["ignore","pipe","pipe"]}),r=Ge();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",a=>o({code:a??1,stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(s).toString("utf8")}))})}function gt(e){return Cn(e)?e:{}}function Cn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function te(e){return typeof e=="string"?e:""}var x_,nG,sG,G_=h(()=>{"use strict";ae();J();T_();x_=4,nG=new Set(["number","title","state","labels","body"]),sG=new Set(["number","title","state","mergeable","checks","checkRollup","statusCheckRollup","body"])});var xd={};K(xd,{renderGhContract:()=>B_,runGhWrapper:()=>TG});import{spawn as _G}from"node:child_process";async function TG(e,t){if(md(e))return await C_(e);let r=j_(e),n=await xG(r);return B_(e,n,t)}async function B_(e,t,r){if((t.status??0)!==0||t.signal){let g=ze(e.join(" "),t.stdout,t.stderr);return{stdout:V(g),stderr:Buffer.from(t.stderr),status:g.exitCode??1,signal:t.signal}}let n=j_(e),s=Ys(t.stdout),o=DG(n,e,s);if(typeof o=="string")return{stdout:Buffer.from(o),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal};let i=HG(o);if(i){if(!r.store)throw new Error("truncated gh output requires an elision store");let g=await r.store.mint(Buffer.from(i.original),{command:e.join(" "),loss:{level:n.full?"brief":r.level,bytes_elided:i.bytes}});i.target.truncated.handle=g}let a=i?.target.truncated.handle||void 0,c=$(o);if(r.level!=="terse")return{stdout:Buffer.from(c),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o,mintedHandle:a,bytesElided:i?.bytes};let u=qG(o);if(!u)return{stdout:Buffer.from(c),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o,mintedHandle:a,bytesElided:i?.bytes};let l=Buffer.byteLength(c),d=await r.store?.mint(Buffer.from(c),{command:e.join(" "),loss:{level:"terse",bytes_elided:l}});if(!d)throw new Error("terse gh output requires an elision store");let p=`\u2026 elided ${u.rowsElided} rows (+${l}) \u2014 ${et(d)}
140
139
  `;return{stdout:Buffer.from(`${$(u.payload)}
141
- ${d}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:u.payload,mintedHandle:p,bytesElided:l,rowsElided:u.rowsElided,rawOutput:Buffer.from(c)}}function C_(e){let t=Hn(e);if(t.argv[0]!=="gh")throw new Error("expected rsp gh <surface> <subcommand>");let r=t.argv[1],n=t.argv[2];if(!(r==="pr"||r==="issue"||r==="run"))throw new Error(`unsupported gh surface: ${r??""}`);let s=r==="pr"&&n&&n!=="list"&&n!=="view";if(!(n==="list"||n==="view"||s))throw new Error(`unsupported gh subcommand: ${n??""}`);let o=r,i=[],a=!1,c=!1,u=new Set,l=t.argv.slice(3);for(let g=0;g<l.length;g+=1){let f=l[g]??"";f==="--full"?a=!0:f==="--wide"?c=!0:f==="--fields"?u=k_(l[++g]??""):f.startsWith("--fields=")?u=k_(f.slice(9)):i.push(f)}let d={kind:o,action:s?"combined":n==="list"?"list":"view",target:s?n:void 0,full:a,wide:c,fields:u,passthrough:i,query:t.query};return zL(d),d}function R_(e){if(e.action==="combined")throw new Error("combined gh command uses multiple machine calls");let t=`${e.kind}:${e.action}`,r=e.wide||e.fields.size>0?WL[t]:qL[t];return[e.kind,e.action,...e.passthrough,"--json",r.join(",")]}function k_(e){return new Set(e.split(",").map(t=>t.trim()).filter(Boolean))}function zL(e){if(e.fields.size===0)return;if(e.action!=="list")throw new sa(e,"--fields is supported for list outputs");let t=`${e.kind}:list`,r=VL[t];for(let n of e.fields)if(!r.includes(n))throw new sa(e,`unknown field: ${n}`,r)}async function YL(e){if(e.action==="combined")return await QL(e);let t=XL(e);if(!t)return await nD(R_(e));let r=await Oe({...t,command:["gh",...R_(e)].join(" ")});return r.status!==0?{stdout:r.stdout,stderr:r.stderr,status:r.status,signal:null}:{stdout:JSON.stringify(await ZL(e,r.stdout)),stderr:r.stderr,status:0,signal:null}}async function QL(e){let t=e.target??"",[r,n,s]=await Promise.all([Oe({path:`repos/{owner}/{repo}/pulls/${t}`,command:`gh pr view ${t}`}),Oe({path:`repos/{owner}/{repo}/pulls/${t}/commits`,command:`gh pr checks ${t}`}),Oe({path:`repos/{owner}/{repo}/issues/${t}/comments`,command:`gh pr view ${t} --comments`})]),o=[r,n,s].find(a=>(a.status??0)!==0);if(o)return{stdout:o.stdout,stderr:o.stderr,status:o.status,signal:null};let i=A_(Ys(r.stdout));return{stdout:JSON.stringify({view:i,checks:[],comments:{comments:Le(Ys(s.stdout)).map(tD)}}),stderr:[r.stderr,n.stderr,s.stderr].filter(Boolean).join(""),status:0,signal:null}}function XL(e){let t=P_(e.passthrough),r=rD(e.passthrough,"--limit")??30,n=yt(e.passthrough,"--state")??"open";switch(`${e.kind}:${e.action}`){case"pr:list":return{path:"repos/{owner}/{repo}/pulls",params:{state:n,per_page:r}};case"pr:view":return t?{path:`repos/{owner}/{repo}/pulls/${t}`}:null;case"issue:list":return{path:"repos/{owner}/{repo}/issues",params:{state:n,labels:yt(e.passthrough,"--label"),per_page:r}};case"issue:view":return t?{path:`repos/{owner}/{repo}/issues/${t}`}:null;case"run:list":return{path:"repos/{owner}/{repo}/actions/runs",params:{per_page:r}};case"run:view":return t?{path:`repos/{owner}/{repo}/actions/runs/${t}`}:null;default:return null}}async function ZL(e,t){let r=Ys(t);switch(`${e.kind}:${e.action}`){case"pr:list":return Le(r).map(O_);case"pr:view":return A_(r);case"issue:list":return Le(r).filter(n=>!Dr(n.pull_request)).map(S_);case"issue:view":return S_(r);case"run:list":return{items:Le(Y(r).workflow_runs).map(T_),total:Pe(Y(r),"total_count")};case"run:view":{let n=T_(r),s=P_(e.passthrough);if(!s)return n;let o=await Oe({path:`repos/{owner}/{repo}/actions/runs/${s}/jobs`,command:`gh run view ${s} jobs`});return{...n,jobs:o.status===0?Le(Y(Ys(o.stdout)).jobs).map(eD):[]}}default:return r}}function O_(e){let t=Y(e);return{number:Pe(t,"number"),title:L(t,"title"),state:L(t,"state").toUpperCase(),isDraft:!!t.draft,author:gd(t.user),labels:Le(t.labels).map(r=>({name:L(r,"name")})),url:L(t,"html_url"),updatedAt:L(t,"updated_at"),body:L(t,"body"),baseRefName:L(Y(t.base),"ref"),headRefName:L(Y(t.head),"ref")}}function A_(e){return O_(e)}function S_(e){let t=Y(e);return{number:Pe(t,"number"),title:L(t,"title"),state:L(t,"state").toUpperCase(),labels:Le(t.labels).map(r=>({name:L(r,"name")})),author:gd(t.user),url:L(t,"html_url"),updatedAt:L(t,"updated_at"),body:L(t,"body")}}function T_(e){let t=Y(e);return{databaseId:Pe(t,"database_id")||Pe(t,"id"),name:L(t,"name")||L(t,"display_title"),status:L(t,"status").toUpperCase(),conclusion:L(t,"conclusion").toUpperCase(),event:L(t,"event"),headBranch:L(t,"head_branch"),workflowName:L(t,"workflow_name"),createdAt:L(t,"created_at"),url:L(t,"html_url"),jobs:[]}}function eD(e){let t=Y(e);return{name:L(t,"name"),status:L(t,"status").toUpperCase(),conclusion:L(t,"conclusion").toUpperCase(),log:""}}function tD(e){let t=Y(e);return{author:gd(t.user),body:L(t,"body"),createdAt:L(t,"created_at")}}function gd(e){let t=Y(e);return{login:L(t,"login")}}function P_(e){return e.find(t=>!t.startsWith("-"))}function yt(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}function rD(e,t){let r=yt(e,t);if(!r)return;let n=Number(r);return Number.isFinite(n)&&n>0?n:void 0}async function nD(e){let t=HL("gh",e,{stdio:["ignore","pipe","pipe"]}),r=ke();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",(a,c)=>{o({stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(s).toString("utf8"),status:a,signal:c})})})}function sD(e,t,r){let n={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let s=ld(r,"prs"),o=s.rows.map(c=>I_(c,e)),i=Re(o,e.query),a=dd(i.length,o.length,s.total,e.query);return i.length===0?pd(n,e,"prs",a,["rsp gh issue list","rsp gh pr list --query <title-or-label>"]):On({...n,prs:i,aggregate:a,summary:`${md(i.length,o.length,e.query)} ${v_(i,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return On({...n,pr:L_(Y(r),e),summary:`PR #${Pe(Y(r),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return oD(e,t,Y(r));case"issue:list":{let s=ld(r,"issues"),o=s.rows.map(c=>D_(c,e)),i=Re(o,e.query),a=dd(i.length,o.length,s.total,e.query);return i.length===0?pd(n,e,"issues",a,["rsp gh issue list --state all","rsp gh issue list --query <label-or-title>"]):On({...n,issues:i,aggregate:a,summary:`${md(i.length,o.length,e.query)} ${v_(i,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return On({...n,issue:lD(Y(r),e),summary:`issue #${Pe(Y(r),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let s=ld(r,"runs"),o=s.rows.map(c=>G_(c,e)),i=Re(o,e.query),a=dd(i.length,o.length,s.total,e.query);return i.length===0?pd(n,e,"runs",a,["rsp gh run list --limit 20","rsp gh run list --query <workflow-or-status>"]):On({...n,runs:i,aggregate:a,summary:`${md(i.length,o.length,e.query)} runs`},e,["rsp gh run view <id>","rsp gh run list --query <workflow-or-status>"])}case"run:view":return On({...n,run:dD(Y(r),e),summary:`run ${Pe(Y(r),"databaseId")}`},e,["rsp gh run view <id> --full"])}throw new Error(`unsupported gh command: ${e.kind} ${e.action}`)}function oD(e,t,r){let n=L_(Y(r.view),{...e,action:"view",wide:!0}),s=Re(Le(r.checks).map(iD),e.query),o=Y(r.comments).comments,i=Re(Le(o).map(aD).slice(-3),e.query);return vt({command:t.join(" "),pr:n,checks:s,comments:i,summary:`PR #${Pe(Y(r.view),"number")}: ${s.length} checks, ${i.length} comments`},["rsp gh pr view <number> --full","rsp gh pr <number> --query <check-or-comment>","rsp gh run view <id>"])}function iD(e){return{name:L(e,"name"),state:Qs(e),bucket:L(e,"bucket"),conclusion:L(e,"conclusion"),workflow:L(e,"workflow"),link:L(e,"link")}}function aD(e){return{author:N_(e.author),body:oa(e,"body",fd,!1),created:L(e,"createdAt")}}function ld(e,t){if(Array.isArray(e))return{rows:Le(e)};let r=Y(e),n=Pe(r,"total")||Pe(r,"total_count")||void 0;return Array.isArray(r.items)?{rows:Le(r.items),total:n}:t==="runs"&&Array.isArray(r.workflow_runs)?{rows:Le(r.workflow_runs),total:n}:{rows:[]}}function dd(e,t,r,n){let s={returned:e};return typeof r=="number"&&r>0&&(s.total=r),n&&(s.unfiltered=t),s}function pd(e,t,r,n,s){return vt({...e,empty:!0,scope:cD(t),[r]:[],aggregate:n,summary:`0 ${uD(t)}`},s)}function cD(e){let t=yt(e.passthrough,"--state")??"open",r=e.query?` query=${e.query}`:"";if(e.kind==="pr")return`${t} PRs${r}`;if(e.kind==="issue"){let o=yt(e.passthrough,"--label");return`${t} issues${o?` label=${o}`:""}${r}`}let n=yt(e.passthrough,"--branch")??yt(e.passthrough,"-b"),s=yt(e.passthrough,"--workflow")??yt(e.passthrough,"-w");return`workflow runs${n?` branch=${n}`:""}${s?` workflow=${s}`:""}${r}`}function uD(e){let t=yt(e.passthrough,"--state")??"open";return e.kind==="pr"?`${t} PRs`:e.kind==="issue"?`${t} issues`:"runs"}function I_(e,t){let r={number:Pe(e,"number"),title:L(e,"title"),state:Qs(e),draft:!!e.isDraft};return hd(r,e,t,["author","labels","url","updated"]),r}function L_(e,t){let r=I_(e,t);return r.body=oa(e,"body",fd,t.full),t.wide&&(r.base=L(e,"baseRefName"),r.head=L(e,"headRefName")),r}function D_(e,t){let r={number:Pe(e,"number"),title:L(e,"title"),state:Qs(e),labels:$_(e.labels)};return hd(r,e,t,["author","url","updated"]),r}function lD(e,t){let r=D_(e,t);return r.body=oa(e,"body",fd,t.full),r}function G_(e,t){let r={id:Pe(e,"databaseId"),name:L(e,"name"),status:Qs(e),conclusion:L(e,"conclusion")};return hd(r,e,t,["event","branch","workflow","created"]),r}function dD(e,t){let r=G_(e,t),n=Le(e.jobs).map(s=>({name:L(s,"name"),status:Qs(s),conclusion:L(s,"conclusion"),log:oa(s,"log",JL,t.full)}));return r.jobs=n,r}function oa(e,t,r,n){let s=L(e,t);if(n||Buffer.byteLength(s)<=r)return s;let o=s.slice(0,r),i={preview:o,truncated:{bytes:Buffer.byteLength(s),shown_bytes:Buffer.byteLength(o),hint:"--full",handle:""}};return Object.defineProperty(i,"__rsp_original",{value:s,enumerable:!1}),i}function pD(e){let t=[e];for(;t.length>0;){let r=t.pop();if(Array.isArray(r))t.push(...r);else if(Dr(r)){if(Dr(r.truncated)&&r.truncated.handle===""&&typeof r.preview=="string"){let n=typeof r.__rsp_original=="string"?r.__rsp_original:r.preview;return{target:r,original:n,bytes:Number(r.truncated.bytes??0)}}t.push(...Object.values(r))}}return null}function mD(e){for(let t of["prs","issues","runs","jobs"]){let r=e[t];if(Array.isArray(r)&&r.length>1)return{payload:{...e,[t]:r.slice(0,1)},rowsElided:r.length-1}}return null}function v_(e,t){return e.every(r=>r.state===t)?t:"returned"}function md(e,t,r){return r?`${e}/${t}`:String(e)}function On(e,t,r){return t.query?vt(e,r):e}function Qs(e){return(L(e,"state")||L(e,"status")).toLowerCase()}function hd(e,t,r,n){if(!(!r.wide&&r.fields.size===0))for(let s of n)!r.wide&&!r.fields.has(s)||(s==="author"?e.author=N_(t.author):s==="labels"?e.labels=$_(t.labels):s==="url"?e.url=L(t,"url"):s==="updated"?e.updated=L(t,"updatedAt"):s==="event"?e.event=L(t,"event"):s==="branch"?e.branch=L(t,"headBranch"):s==="workflow"?e.workflow=L(t,"workflowName"):s==="created"&&(e.created=L(t,"createdAt")))}function $_(e){return Array.isArray(e)?e.map(t=>Dr(t)?L(t,"name"):String(t)).filter(Boolean):[]}function N_(e){return Dr(e)?L(e,"login"):""}function Ys(e){return e.trim()?JSON.parse(e):null}function Le(e){return Array.isArray(e)?e.filter(Dr):[]}function Y(e){return Dr(e)?e:{}}function L(e,t){let r=e[t];return typeof r=="string"?r:""}function Pe(e,t){let r=e[t];return typeof r=="number"?r:0}function Dr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var qL,WL,fd,JL,VL,sa,bd=h(()=>{"use strict";oe();W();hi();E_();Ar();qn();ut();qL={"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"]},WL={"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"]},fd=160,JL=160,VL={"pr:list":["number","title","state","draft","author","labels","url","updated"],"issue:list":["number","title","state","labels","author","url","updated"],"run:list":["id","name","status","conclusion","event","branch","workflow","created"]};sa=class extends Error{constructor(r,n,s=[]){super(n);this.command=r;this.validFields=s}render(){return J({command:`gh ${this.command.kind} ${this.command.action}`,category:"usage",error:this.message,help:`gh ${this.command.kind} ${this.command.action} --help`,validFlags:this.validFields})}}});var Ed={};K(Ed,{renderTestContract:()=>F_,runTestWrapper:()=>bD});import{spawn as fD}from"node:child_process";async function bD(e,t){let r=Hn(e),n=await kD(r.argv);return await F_(e,n,t)}async function F_(e,t,r){let n=Hn(e),o=M_(n.argv)==="vitest"?SD(t.stdout):TD(t.stdout),i=t.status;if(!o||(i??0)!==0&&o.failed===0){let f=Ve(e.join(" "),t.stdout,t.stderr);return{stdout:J(f),stderr:Buffer.from(t.stderr),status:f.exitCode??1,signal:t.signal}}let a=`${o.failed}/${o.total} failed \xB7 ${o.suites} suites \xB7 ${CD(o.durationSeconds)}`,c=Re(o.failures,n.query);if(r.level==="terse")return await wD(n.argv,t,{...o,failures:c},i,a,r,n.query);let u=[],l,p=0;for(let f of c){let k=await vD(f.excerpt,n.argv.join(" "),r.store);u.push({suite:f.suite,name:f.name,excerpt:k.text}),l??=k.handle,p+=k.bytesElided}let d={exit_code:i,summary:n.query?`${a} \xB7 ${c.length}/${o.failures.length} failures matched`:a};u.length>0&&(d.failures=u);let g=n.query?vt(d,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):d;return{stdout:Buffer.from($(g)),stderr:Buffer.from(t.stderr),status:_d(t.status),signal:t.signal,payload:g,mintedHandle:l,bytesElided:p>0?p:void 0,rowsElided:u.length>0?Math.max(0,o.total-u.length):void 0}}async function wD(e,t,r,n,s,o,i){let a=_D(r.failures),c={exit_code:n,summary:i?`${s} \xB7 ${r.failures.length} failures matched`:s};a.length>0&&(c.failures=a);let u=i?vt(c,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):c,l=$(u),p=Math.max(0,r.failures.length-a.length),d=a.some((T,v)=>T.excerpt!==r.failures[v].excerpt);if(p===0&&!d)return{stdout:Buffer.from(l),stderr:Buffer.from(t.stderr),status:_d(t.status),signal:t.signal,payload:u};let g={exit_code:n,summary:s};r.failures.length>0&&(g.failures=r.failures.map(T=>({suite:T.suite,name:T.name,excerpt:T.excerpt})));let f=$(g),k=Buffer.byteLength(f),E=await o.store?.mint(Buffer.from(f),{command:e.join(" "),loss:{level:"terse",bytes_elided:k}});if(!E)throw new Error("terse test output requires an elision store");let _=`\u2026 elided ${p>0?`${p} failures`:"full detail"} (+${k}) \u2014 ${rt(E)}`;return{stdout:Buffer.from(`${l}
142
- ${_}`),stderr:Buffer.from(t.stderr),status:_d(t.status),signal:t.signal,payload:u,mintedHandle:E,bytesElided:k,rowsElided:p,rawOutput:Buffer.from(f)}}function _d(e){return e===0||e===null?0:1}function _D(e){let t=[],r=hD;for(let n of e.slice(0,yD)){let s=ED(n.excerpt,Math.min(gD,r));r=Math.max(0,r-Buffer.byteLength(s)),t.push({suite:n.suite,name:n.name,excerpt:s})}return t}function ED(e,t){if(t<=0)return"";let r=e.split(`
140
+ ${p}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:u.payload,mintedHandle:d,bytesElided:l,rowsElided:u.rowsElided,rawOutput:Buffer.from(c)}}function j_(e){let t=Hn(e);if(t.argv[0]!=="gh")throw new Error("expected rsp gh <surface> <subcommand>");let r=t.argv[1],n=t.argv[2];if(!(r==="pr"||r==="issue"||r==="run"))throw new Error(`unsupported gh surface: ${r??""}`);let s=r==="pr"&&n&&n!=="list"&&n!=="view";if(!(n==="list"||n==="view"||s))throw new Error(`unsupported gh subcommand: ${n??""}`);let o=r,i=[],a=!1,c=!1,u=new Set,l=t.argv.slice(3);for(let g=0;g<l.length;g+=1){let f=l[g]??"";f==="--full"?a=!0:f==="--wide"?c=!0:f==="--fields"?u=$_(l[++g]??""):f.startsWith("--fields=")?u=$_(f.slice(9)):i.push(f)}let p={kind:o,action:s?"combined":n==="list"?"list":"view",target:s?n:void 0,full:a,wide:c,fields:u,passthrough:i,query:t.query};return vG(p),p}function D_(e){if(e.action==="combined")throw new Error("combined gh command uses multiple machine calls");let t=`${e.kind}:${e.action}`,r=e.wide||e.fields.size>0?RG[t]:EG[t];return[e.kind,e.action,...e.passthrough,"--json",r.join(",")]}function $_(e){return new Set(e.split(",").map(t=>t.trim()).filter(Boolean))}function vG(e){if(e.fields.size===0)return;if(e.action!=="list")throw new la(e,"--fields is supported for list outputs");let t=`${e.kind}:list`,r=SG[t];for(let n of e.fields)if(!r.includes(n))throw new la(e,`unknown field: ${n}`,r)}async function xG(e){if(e.action==="combined")return await CG(e);let t=OG(e);if(!t)return await GG(D_(e));let r=await xe({...t,command:["gh",...D_(e)].join(" ")});return r.status!==0?{stdout:r.stdout,stderr:r.stderr,status:r.status,signal:null}:{stdout:JSON.stringify(await AG(e,r.stdout)),stderr:r.stderr,status:0,signal:null}}async function CG(e){let t=e.target??"",[r,n,s]=await Promise.all([xe({path:`repos/{owner}/{repo}/pulls/${t}`,command:`gh pr view ${t}`}),xe({path:`repos/{owner}/{repo}/pulls/${t}/commits`,command:`gh pr checks ${t}`}),xe({path:`repos/{owner}/{repo}/issues/${t}/comments`,command:`gh pr view ${t} --comments`})]),o=[r,n,s].find(a=>(a.status??0)!==0);if(o)return{stdout:o.stdout,stderr:o.stderr,status:o.status,signal:null};let i=H_(Ys(r.stdout));return{stdout:JSON.stringify({view:i,checks:[],comments:{comments:$e(Ys(s.stdout)).map(IG)}}),stderr:[r.stderr,n.stderr,s.stderr].filter(Boolean).join(""),status:0,signal:null}}function OG(e){let t=q_(e.passthrough),r=LG(e.passthrough,"--limit")??30,n=ht(e.passthrough,"--state")??"open";switch(`${e.kind}:${e.action}`){case"pr:list":return{path:"repos/{owner}/{repo}/pulls",params:{state:n,per_page:r}};case"pr:view":return t?{path:`repos/{owner}/{repo}/pulls/${t}`}:null;case"issue:list":return{path:"repos/{owner}/{repo}/issues",params:{state:n,labels:ht(e.passthrough,"--label"),per_page:r}};case"issue:view":return t?{path:`repos/{owner}/{repo}/issues/${t}`}:null;case"run:list":return{path:"repos/{owner}/{repo}/actions/runs",params:{per_page:r}};case"run:view":return t?{path:`repos/{owner}/{repo}/actions/runs/${t}`}:null;default:return null}}async function AG(e,t){let r=Ys(t);switch(`${e.kind}:${e.action}`){case"pr:list":return $e(r).map(U_);case"pr:view":return H_(r);case"issue:list":return $e(r).filter(n=>!Gr(n.pull_request)).map(N_);case"issue:view":return N_(r);case"run:list":return{items:$e(Y(r).workflow_runs).map(F_),total:Pe(Y(r),"total_count")};case"run:view":{let n=F_(r),s=q_(e.passthrough);if(!s)return n;let o=await xe({path:`repos/{owner}/{repo}/actions/runs/${s}/jobs`,command:`gh run view ${s} jobs`});return{...n,jobs:o.status===0?$e(Y(Ys(o.stdout)).jobs).map(PG):[]}}default:return r}}function U_(e){let t=Y(e);return{number:Pe(t,"number"),title:G(t,"title"),state:G(t,"state").toUpperCase(),isDraft:!!t.draft,author:Td(t.user),labels:$e(t.labels).map(r=>({name:G(r,"name")})),url:G(t,"html_url"),updatedAt:G(t,"updated_at"),body:G(t,"body"),baseRefName:G(Y(t.base),"ref"),headRefName:G(Y(t.head),"ref")}}function H_(e){return U_(e)}function N_(e){let t=Y(e);return{number:Pe(t,"number"),title:G(t,"title"),state:G(t,"state").toUpperCase(),labels:$e(t.labels).map(r=>({name:G(r,"name")})),author:Td(t.user),url:G(t,"html_url"),updatedAt:G(t,"updated_at"),body:G(t,"body")}}function F_(e){let t=Y(e);return{databaseId:Pe(t,"database_id")||Pe(t,"id"),name:G(t,"name")||G(t,"display_title"),status:G(t,"status").toUpperCase(),conclusion:G(t,"conclusion").toUpperCase(),event:G(t,"event"),headBranch:G(t,"head_branch"),workflowName:G(t,"workflow_name"),createdAt:G(t,"created_at"),url:G(t,"html_url"),jobs:[]}}function PG(e){let t=Y(e);return{name:G(t,"name"),status:G(t,"status").toUpperCase(),conclusion:G(t,"conclusion").toUpperCase(),log:""}}function IG(e){let t=Y(e);return{author:Td(t.user),body:G(t,"body"),createdAt:G(t,"created_at")}}function Td(e){let t=Y(e);return{login:G(t,"login")}}function q_(e){return e.find(t=>!t.startsWith("-"))}function ht(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}function LG(e,t){let r=ht(e,t);if(!r)return;let n=Number(r);return Number.isFinite(n)&&n>0?n:void 0}async function GG(e){let t=_G("gh",e,{stdio:["ignore","pipe","pipe"]}),r=Ge();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",(a,c)=>{o({stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(s).toString("utf8"),status:a,signal:c})})})}function DG(e,t,r){let n={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let s=_d(r,"prs"),o=s.rows.map(c=>W_(c,e)),i=Re(o,e.query),a=Ed(i.length,o.length,s.total,e.query);return i.length===0?Rd(n,e,"prs",a,["rsp gh issue list","rsp gh pr list --query <title-or-label>"]):On({...n,prs:i,aggregate:a,summary:`${kd(i.length,o.length,e.query)} ${M_(i,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return On({...n,pr:J_(Y(r),e),summary:`PR #${Pe(Y(r),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return $G(e,t,Y(r));case"issue:list":{let s=_d(r,"issues"),o=s.rows.map(c=>V_(c,e)),i=Re(o,e.query),a=Ed(i.length,o.length,s.total,e.query);return i.length===0?Rd(n,e,"issues",a,["rsp gh issue list --state all","rsp gh issue list --query <label-or-title>"]):On({...n,issues:i,aggregate:a,summary:`${kd(i.length,o.length,e.query)} ${M_(i,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return On({...n,issue:jG(Y(r),e),summary:`issue #${Pe(Y(r),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let s=_d(r,"runs"),o=s.rows.map(c=>K_(c,e)),i=Re(o,e.query),a=Ed(i.length,o.length,s.total,e.query);return i.length===0?Rd(n,e,"runs",a,["rsp gh run list --limit 20","rsp gh run list --query <workflow-or-status>"]):On({...n,runs:i,aggregate:a,summary:`${kd(i.length,o.length,e.query)} runs`},e,["rsp gh run view <id>","rsp gh run list --query <workflow-or-status>"])}case"run:view":return On({...n,run:UG(Y(r),e),summary:`run ${Pe(Y(r),"databaseId")}`},e,["rsp gh run view <id> --full"])}throw new Error(`unsupported gh command: ${e.kind} ${e.action}`)}function $G(e,t,r){let n=J_(Y(r.view),{...e,action:"view",wide:!0}),s=Re($e(r.checks).map(NG),e.query),o=Y(r.comments).comments,i=Re($e(o).map(FG).slice(-3),e.query);return xt({command:t.join(" "),pr:n,checks:s,comments:i,summary:`PR #${Pe(Y(r.view),"number")}: ${s.length} checks, ${i.length} comments`},["rsp gh pr view <number> --full","rsp gh pr <number> --query <check-or-comment>","rsp gh run view <id>"])}function NG(e){return{name:G(e,"name"),state:Qs(e),bucket:G(e,"bucket"),conclusion:G(e,"conclusion"),workflow:G(e,"workflow"),link:G(e,"link")}}function FG(e){return{author:Y_(e.author),body:da(e,"body",Sd,!1),created:G(e,"createdAt")}}function _d(e,t){if(Array.isArray(e))return{rows:$e(e)};let r=Y(e),n=Pe(r,"total")||Pe(r,"total_count")||void 0;return Array.isArray(r.items)?{rows:$e(r.items),total:n}:t==="runs"&&Array.isArray(r.workflow_runs)?{rows:$e(r.workflow_runs),total:n}:{rows:[]}}function Ed(e,t,r,n){let s={returned:e};return typeof r=="number"&&r>0&&(s.total=r),n&&(s.unfiltered=t),s}function Rd(e,t,r,n,s){return xt({...e,empty:!0,scope:MG(t),[r]:[],aggregate:n,summary:`0 ${BG(t)}`},s)}function MG(e){let t=ht(e.passthrough,"--state")??"open",r=e.query?` query=${e.query}`:"";if(e.kind==="pr")return`${t} PRs${r}`;if(e.kind==="issue"){let o=ht(e.passthrough,"--label");return`${t} issues${o?` label=${o}`:""}${r}`}let n=ht(e.passthrough,"--branch")??ht(e.passthrough,"-b"),s=ht(e.passthrough,"--workflow")??ht(e.passthrough,"-w");return`workflow runs${n?` branch=${n}`:""}${s?` workflow=${s}`:""}${r}`}function BG(e){let t=ht(e.passthrough,"--state")??"open";return e.kind==="pr"?`${t} PRs`:e.kind==="issue"?`${t} issues`:"runs"}function W_(e,t){let r={number:Pe(e,"number"),title:G(e,"title"),state:Qs(e),draft:!!e.isDraft};return vd(r,e,t,["author","labels","url","updated"]),r}function J_(e,t){let r=W_(e,t);return r.body=da(e,"body",Sd,t.full),t.wide&&(r.base=G(e,"baseRefName"),r.head=G(e,"headRefName")),r}function V_(e,t){let r={number:Pe(e,"number"),title:G(e,"title"),state:Qs(e),labels:z_(e.labels)};return vd(r,e,t,["author","url","updated"]),r}function jG(e,t){let r=V_(e,t);return r.body=da(e,"body",Sd,t.full),r}function K_(e,t){let r={id:Pe(e,"databaseId"),name:G(e,"name"),status:Qs(e),conclusion:G(e,"conclusion")};return vd(r,e,t,["event","branch","workflow","created"]),r}function UG(e,t){let r=K_(e,t),n=$e(e.jobs).map(s=>({name:G(s,"name"),status:Qs(s),conclusion:G(s,"conclusion"),log:da(s,"log",kG,t.full)}));return r.jobs=n,r}function da(e,t,r,n){let s=G(e,t);if(n||Buffer.byteLength(s)<=r)return s;let o=s.slice(0,r),i={preview:o,truncated:{bytes:Buffer.byteLength(s),shown_bytes:Buffer.byteLength(o),hint:"--full",handle:""}};return Object.defineProperty(i,"__rsp_original",{value:s,enumerable:!1}),i}function HG(e){let t=[e];for(;t.length>0;){let r=t.pop();if(Array.isArray(r))t.push(...r);else if(Gr(r)){if(Gr(r.truncated)&&r.truncated.handle===""&&typeof r.preview=="string"){let n=typeof r.__rsp_original=="string"?r.__rsp_original:r.preview;return{target:r,original:n,bytes:Number(r.truncated.bytes??0)}}t.push(...Object.values(r))}}return null}function qG(e){for(let t of["prs","issues","runs","jobs"]){let r=e[t];if(Array.isArray(r)&&r.length>1)return{payload:{...e,[t]:r.slice(0,1)},rowsElided:r.length-1}}return null}function M_(e,t){return e.every(r=>r.state===t)?t:"returned"}function kd(e,t,r){return r?`${e}/${t}`:String(e)}function On(e,t,r){return t.query?xt(e,r):e}function Qs(e){return(G(e,"state")||G(e,"status")).toLowerCase()}function vd(e,t,r,n){if(!(!r.wide&&r.fields.size===0))for(let s of n)!r.wide&&!r.fields.has(s)||(s==="author"?e.author=Y_(t.author):s==="labels"?e.labels=z_(t.labels):s==="url"?e.url=G(t,"url"):s==="updated"?e.updated=G(t,"updatedAt"):s==="event"?e.event=G(t,"event"):s==="branch"?e.branch=G(t,"headBranch"):s==="workflow"?e.workflow=G(t,"workflowName"):s==="created"&&(e.created=G(t,"createdAt")))}function z_(e){return Array.isArray(e)?e.map(t=>Gr(t)?G(t,"name"):String(t)).filter(Boolean):[]}function Y_(e){return Gr(e)?G(e,"login"):""}function Ys(e){return e.trim()?JSON.parse(e):null}function $e(e){return Array.isArray(e)?e.filter(Gr):[]}function Y(e){return Gr(e)?e:{}}function G(e,t){let r=e[t];return typeof r=="string"?r:""}function Pe(e,t){let r=e[t];return typeof r=="number"?r:0}function Gr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var EG,RG,Sd,kG,SG,la,Cd=h(()=>{"use strict";ae();J();Yo();G_();Ar();qn();at();EG={"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"]},RG={"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"]},Sd=160,kG=160,SG={"pr:list":["number","title","state","draft","author","labels","url","updated"],"issue:list":["number","title","state","labels","author","url","updated"],"run:list":["id","name","status","conclusion","event","branch","workflow","created"]};la=class extends Error{constructor(r,n,s=[]){super(n);this.command=r;this.validFields=s}render(){return V({command:`gh ${this.command.kind} ${this.command.action}`,category:"usage",error:this.message,help:`gh ${this.command.kind} ${this.command.action} --help`,validFlags:this.validFields})}}});var Pd={};K(Pd,{renderTestContract:()=>Q_,runTestWrapper:()=>zG});import{spawn as WG}from"node:child_process";async function zG(e,t){let r=Hn(e),n=await eD(r.argv);return await Q_(e,n,t)}async function Q_(e,t,r){let n=Hn(e),o=X_(n.argv)==="vitest"?tD(t.stdout):rD(t.stdout),i=t.status;if(!o||(i??0)!==0&&o.failed===0){let f=ze(e.join(" "),t.stdout,t.stderr);return{stdout:V(f),stderr:Buffer.from(t.stderr),status:f.exitCode??1,signal:t.signal}}let a=`${o.failed}/${o.total} failed \xB7 ${o.suites} suites \xB7 ${oD(o.durationSeconds)}`,c=Re(o.failures,n.query);if(r.level==="terse")return await YG(n.argv,t,{...o,failures:c},i,a,r,n.query);let u=[],l,d=0;for(let f of c){let k=await nD(f.excerpt,n.argv.join(" "),r.store);u.push({suite:f.suite,name:f.name,excerpt:k.text}),l??=k.handle,d+=k.bytesElided}let p={exit_code:i,summary:n.query?`${a} \xB7 ${c.length}/${o.failures.length} failures matched`:a};u.length>0&&(p.failures=u);let g=n.query?xt(p,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):p;return{stdout:Buffer.from($(g)),stderr:Buffer.from(t.stderr),status:Ad(t.status),signal:t.signal,payload:g,mintedHandle:l,bytesElided:d>0?d:void 0,rowsElided:u.length>0?Math.max(0,o.total-u.length):void 0}}async function YG(e,t,r,n,s,o,i){let a=QG(r.failures),c={exit_code:n,summary:i?`${s} \xB7 ${r.failures.length} failures matched`:s};a.length>0&&(c.failures=a);let u=i?xt(c,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):c,l=$(u),d=Math.max(0,r.failures.length-a.length),p=a.some((T,C)=>T.excerpt!==r.failures[C].excerpt);if(d===0&&!p)return{stdout:Buffer.from(l),stderr:Buffer.from(t.stderr),status:Ad(t.status),signal:t.signal,payload:u};let g={exit_code:n,summary:s};r.failures.length>0&&(g.failures=r.failures.map(T=>({suite:T.suite,name:T.name,excerpt:T.excerpt})));let f=$(g),k=Buffer.byteLength(f),E=await o.store?.mint(Buffer.from(f),{command:e.join(" "),loss:{level:"terse",bytes_elided:k}});if(!E)throw new Error("terse test output requires an elision store");let _=`\u2026 elided ${d>0?`${d} failures`:"full detail"} (+${k}) \u2014 ${et(E)}`;return{stdout:Buffer.from(`${l}
141
+ ${_}`),stderr:Buffer.from(t.stderr),status:Ad(t.status),signal:t.signal,payload:u,mintedHandle:E,bytesElided:k,rowsElided:d,rawOutput:Buffer.from(f)}}function Ad(e){return e===0||e===null?0:1}function QG(e){let t=[],r=VG;for(let n of e.slice(0,KG)){let s=XG(n.excerpt,Math.min(JG,r));r=Math.max(0,r-Buffer.byteLength(s)),t.push({suite:n.suite,name:n.name,excerpt:s})}return t}function XG(e,t){if(t<=0)return"";let r=e.split(`
143
142
  `),n=r.length<=2?e:`${r[0]}
144
143
  \u2026
145
- ${r[r.length-1]}`,s=Buffer.from(n);return s.length<=t?n:s.subarray(0,t).toString("utf8").replace(/�$/,"")}function M_(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 RD(e){if(M_(e)==="vitest"){let s=e.slice(1);return{executable:"vitest",args:s.some(i=>i==="--reporter=json"||i==="--reporter"||i.startsWith("--reporter="))?s:["run","--reporter=json",...s]}}let r=e.slice(1);return{executable:"cargo",args:r.some(s=>s==="--message-format=json"||s.startsWith("--message-format="))?r:["test","--message-format=json",...r.slice(1)]}}async function kD(e){let t=RD(e),r=fD(t.executable,t.args,{stdio:["ignore","pipe","pipe"]}),n=ke();r.once("close",n),r.once("error",n);let s=[],o=[];return r.stdout.on("data",i=>s.push(i)),r.stderr.on("data",i=>o.push(i)),await new Promise((i,a)=>{r.on("error",a),r.on("close",(c,u)=>{i({stdout:Buffer.concat(s).toString("utf8"),stderr:Buffer.concat(o).toString("utf8"),status:c,signal:u})})})}function SD(e){let t=B_(e);if(!ir(t))return null;let r=Array.isArray(t.testResults)?t.testResults:[],n=[],s=ar(t.numTotalTests),o=ar(t.numFailedTests),i=OD(ar(t.startTime),ar(t.endTime));for(let a of r){if(!ir(a))continue;let c=bt(a.name)||bt(a.file)||"",u=Array.isArray(a.assertionResults)?a.assertionResults:[];for(let l of u)ir(l)&&l.status==="failed"&&n.push({suite:c,name:bt(l.fullName)||bt(l.title)||bt(l.name),excerpt:xD(l.failureMessages)||bt(l.failureMessage)})}return s||=r.reduce((a,c)=>!ir(c)||!Array.isArray(c.assertionResults)?a:a+c.assertionResults.length,0),o||=n.length,i||=r.reduce((a,c)=>ir(c)?a+ar(c.perfStats&&ir(c.perfStats)?c.perfStats.runtime:c.duration)/1e3:a,0),{failed:o,total:s,suites:r.length||1,durationSeconds:i,failures:n}}function TD(e){let t=e.split(`
146
- `).filter(Boolean).map(c=>B_(c)).filter(ir);if(t.length===0)return null;let r=[],n=0,s=0,o=0,i=0,a=[];for(let c of t){if(c.type==="suite"){c.event==="started"&&(o+=1,n+=ar(c.test_count)),(c.event==="failed"||c.event==="ok")&&(s+=ar(c.failed),i+=ar(c.exec_time));continue}if(c.type==="test"&&c.event==="failed"){r.push({suite:bt(c.name).split("::").slice(0,-1).join("::"),name:bt(c.name),excerpt:bt(c.stdout)});continue}if(c.reason==="compiler-message"&&ir(c.message)){let u=bt(c.message.rendered);u&&a.push(u)}}return r.length===0&&a.length>0&&(r.push({suite:"cargo check",name:"compile-error",excerpt:a.join(`
147
- `)}),o||=1,n||=1,s||=1),s||=r.length,o||=1,n||=Math.max(s,r.length),{failed:s,total:n,suites:o,durationSeconds:i,failures:r}}async function vD(e,t,r){let n=Buffer.from(e);if(n.length<=wd)return{text:e,bytesElided:0};if(!r)throw new Error("over-limit test failure excerpt requires an elision store");let s=await r.mint(n,{command:t,loss:{level:"brief",bytes_elided:n.length}}),o=n.subarray(0,wd).toString("utf8").replace(/\uFFFD$/,""),i=n.length-Buffer.byteLength(o);return{text:`${o}
148
- \u2026 elided ${i} bytes (+${n.length}) \u2014 ${rt(s)}`,handle:s,bytesElided:n.length}}function B_(e){try{return JSON.parse(e)}catch{return null}}function xD(e){return Array.isArray(e)?e.map(t=>String(t)).filter(Boolean).join(`
149
- `):""}function CD(e){return`${Number(e.toFixed(1))}s`}function OD(e,t){return e>0&&t>e?(t-e)/1e3:0}function ar(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function bt(e){return typeof e=="string"?e:""}function ir(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var wd,gD,hD,yD,Rd=h(()=>{"use strict";oe();W();Ar();qn();ut();wd=320,gD=160,hD=wd,yD=3});var Td={};K(Td,{parseCatCommand:()=>Sd,renderCatContract:()=>ND,runCatWrapper:()=>$D});import{isUtf8 as AD}from"node:buffer";import{readFile as PD}from"node:fs/promises";import{extname as ID}from"node:path";async function $D(e,t){let r=Sd(e),n;try{n=await PD(r.file)}catch(s){let o=s instanceof Error?s.message:String(s),i=Ve(e.join(" "),"",o);return{stdout:J({...i,help:`ls ${r.file}`}),stderr:Buffer.from(`${o}
150
- `),status:1,signal:null}}return J_(n)?{stdout:n,stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:n}:await W_(e,r,n,t)}async function ND(e,t,r){if((t.status??0)!==0||t.signal){let i=Ve(e.join(" "),t.stdout,t.stderr);return{stdout:J(i),stderr:Buffer.from(t.stderr),status:i.exitCode??1,signal:t.signal}}let n=Sd(e),s=Buffer.from(t.stdout,"utf8");return J_(s)?{stdout:s,stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,rawOutput:s}:{...await W_(e,n,s,r),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal}}function Sd(e){if(e[0]!=="cat")throw new Error("expected rsp cat <file>");let t=e.slice(1),r="full",n,s=!1,o=[];for(let i=0;i<t.length;i++){let a=t[i];if(a==="--full"){s=!0;continue}if(a==="--head"||a==="--tail"){r=a.slice(2),n=q_(t[++i],kd);continue}if(a.startsWith("--head=")||a.startsWith("--tail=")){let[c,u]=a.split("=",2);r=c.slice(2),n=q_(u,kd);continue}o.push(a)}if(o.length!==1)throw new Error("usage: rsp cat [--full] [--head N|--tail N] <file>");return{file:o[0],mode:r,...n?{limit:n}:{},...s?{inlineFull:s}:{}}}async function W_(e,t,r,n){let s=r.toString("utf8"),o=BD(s,t);if(t.inlineFull)return{stdout:Buffer.from(o.text),stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:r};let i=n.level!=="lossless"||r.length>H_(n.heavyByteThreshold,j_)||o.truncated;if(!U_(t.file)&&!i)return{stdout:Buffer.from(o.text),stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:r};let a=U_(t.file)?FD(e,t.file,r,s,n.level,o):MD(e,t.file,r,s,o),c=`${$(a)}
151
- `;if(!i&&Buffer.byteLength(c)<=H_(n.heavyByteThreshold,j_))return{stdout:Buffer.from(c),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,rawOutput:r};let u=await n.store?.mint(r,{command:e.join(" "),loss:{level:n.level==="lossless"?"terse":n.level,bytes_elided:r.length}});if(!u)throw new Error("rsp cat elision requires an elision store");let l=`\u2026 elided file bytes (+${r.length}) \u2014 ${rt(u)}
152
- `;return{stdout:Buffer.from(`${c}${l}`),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,mintedHandle:u,bytesElided:r.length,rawOutput:r}}function FD(e,t,r,n,s,o){let i=ia(n),a=s==="terse"?DD:LD,c=ia(o.text),u=c.slice(0,a),l=c.slice(Math.max(u.length,c.length-a));return{command:e.join(" "),file:t,kind:"code",outline_source:"regex",bytes:r.length,lines:i.length,symbols:jD(i),content:{head:u,tail:l,truncated:o.truncated||u.length+l.length<i.length}}}function MD(e,t,r,n,s){return{command:e.join(" "),file:t,kind:"text",bytes:r.length,lines:ia(n).length,content:ia(s.text),truncated:s.truncated}}function BD(e,t){if(t.mode==="full")return{text:e,truncated:!1};let r=e.split(`
153
- `),n=r.at(-1)==="",s=n?r.slice(0,-1):r,o=t.limit??kd,i=t.mode==="head"?s.slice(0,o):s.slice(Math.max(0,s.length-o));return{text:`${i.join(`
144
+ ${r[r.length-1]}`,s=Buffer.from(n);return s.length<=t?n:s.subarray(0,t).toString("utf8").replace(/�$/,"")}function X_(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 ZG(e){if(X_(e)==="vitest"){let s=e.slice(1);return{executable:"vitest",args:s.some(i=>i==="--reporter=json"||i==="--reporter"||i.startsWith("--reporter="))?s:["run","--reporter=json",...s]}}let r=e.slice(1);return{executable:"cargo",args:r.some(s=>s==="--message-format=json"||s.startsWith("--message-format="))?r:["test","--message-format=json",...r.slice(1)]}}async function eD(e){let t=ZG(e),r=WG(t.executable,t.args,{stdio:["ignore","pipe","pipe"]}),n=Ge();r.once("close",n),r.once("error",n);let s=[],o=[];return r.stdout.on("data",i=>s.push(i)),r.stderr.on("data",i=>o.push(i)),await new Promise((i,a)=>{r.on("error",a),r.on("close",(c,u)=>{i({stdout:Buffer.concat(s).toString("utf8"),stderr:Buffer.concat(o).toString("utf8"),status:c,signal:u})})})}function tD(e){let t=Z_(e);if(!ir(t))return null;let r=Array.isArray(t.testResults)?t.testResults:[],n=[],s=ar(t.numTotalTests),o=ar(t.numFailedTests),i=iD(ar(t.startTime),ar(t.endTime));for(let a of r){if(!ir(a))continue;let c=yt(a.name)||yt(a.file)||"",u=Array.isArray(a.assertionResults)?a.assertionResults:[];for(let l of u)ir(l)&&l.status==="failed"&&n.push({suite:c,name:yt(l.fullName)||yt(l.title)||yt(l.name),excerpt:sD(l.failureMessages)||yt(l.failureMessage)})}return s||=r.reduce((a,c)=>!ir(c)||!Array.isArray(c.assertionResults)?a:a+c.assertionResults.length,0),o||=n.length,i||=r.reduce((a,c)=>ir(c)?a+ar(c.perfStats&&ir(c.perfStats)?c.perfStats.runtime:c.duration)/1e3:a,0),{failed:o,total:s,suites:r.length||1,durationSeconds:i,failures:n}}function rD(e){let t=e.split(`
145
+ `).filter(Boolean).map(c=>Z_(c)).filter(ir);if(t.length===0)return null;let r=[],n=0,s=0,o=0,i=0,a=[];for(let c of t){if(c.type==="suite"){c.event==="started"&&(o+=1,n+=ar(c.test_count)),(c.event==="failed"||c.event==="ok")&&(s+=ar(c.failed),i+=ar(c.exec_time));continue}if(c.type==="test"&&c.event==="failed"){r.push({suite:yt(c.name).split("::").slice(0,-1).join("::"),name:yt(c.name),excerpt:yt(c.stdout)});continue}if(c.reason==="compiler-message"&&ir(c.message)){let u=yt(c.message.rendered);u&&a.push(u)}}return r.length===0&&a.length>0&&(r.push({suite:"cargo check",name:"compile-error",excerpt:a.join(`
146
+ `)}),o||=1,n||=1,s||=1),s||=r.length,o||=1,n||=Math.max(s,r.length),{failed:s,total:n,suites:o,durationSeconds:i,failures:r}}async function nD(e,t,r){let n=Buffer.from(e);if(n.length<=Od)return{text:e,bytesElided:0};if(!r)throw new Error("over-limit test failure excerpt requires an elision store");let s=await r.mint(n,{command:t,loss:{level:"brief",bytes_elided:n.length}}),o=n.subarray(0,Od).toString("utf8").replace(/\uFFFD$/,""),i=n.length-Buffer.byteLength(o);return{text:`${o}
147
+ \u2026 elided ${i} bytes (+${n.length}) \u2014 ${et(s)}`,handle:s,bytesElided:n.length}}function Z_(e){try{return JSON.parse(e)}catch{return null}}function sD(e){return Array.isArray(e)?e.map(t=>String(t)).filter(Boolean).join(`
148
+ `):""}function oD(e){return`${Number(e.toFixed(1))}s`}function iD(e,t){return e>0&&t>e?(t-e)/1e3:0}function ar(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function yt(e){return typeof e=="string"?e:""}function ir(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Od,JG,VG,KG,Id=h(()=>{"use strict";ae();J();Ar();qn();at();Od=320,JG=160,VG=Od,KG=3});var Dd={};K(Dd,{parseCatCommand:()=>Gd,renderCatContract:()=>fD,runCatWrapper:()=>mD});import{isUtf8 as aD}from"node:buffer";import{readFile as cD}from"node:fs/promises";import{extname as uD}from"node:path";async function mD(e,t){let r=Gd(e),n;try{n=await cD(r.file)}catch(s){let o=s instanceof Error?s.message:String(s),i=ze(e.join(" "),"",o);return{stdout:V({...i,help:`ls ${r.file}`}),stderr:Buffer.from(`${o}
149
+ `),status:1,signal:null}}return oE(n)?{stdout:n,stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:n}:await sE(e,r,n,t)}async function fD(e,t,r){if((t.status??0)!==0||t.signal){let i=ze(e.join(" "),t.stdout,t.stderr);return{stdout:V(i),stderr:Buffer.from(t.stderr),status:i.exitCode??1,signal:t.signal}}let n=Gd(e),s=Buffer.from(t.stdout,"utf8");return oE(s)?{stdout:s,stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,rawOutput:s}:{...await sE(e,n,s,r),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal}}function Gd(e){if(e[0]!=="cat")throw new Error("expected rsp cat <file>");let t=e.slice(1),r="full",n,s=!1,o=[];for(let i=0;i<t.length;i++){let a=t[i];if(a==="--full"){s=!0;continue}if(a==="--head"||a==="--tail"){r=a.slice(2),n=nE(t[++i],Ld);continue}if(a.startsWith("--head=")||a.startsWith("--tail=")){let[c,u]=a.split("=",2);r=c.slice(2),n=nE(u,Ld);continue}o.push(a)}if(o.length!==1)throw new Error("usage: rsp cat [--full] [--head N|--tail N] <file>");return{file:o[0],mode:r,...n?{limit:n}:{},...s?{inlineFull:s}:{}}}async function sE(e,t,r,n){let s=r.toString("utf8"),o=yD(s,t);if(t.inlineFull)return{stdout:Buffer.from(o.text),stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:r};let i=n.level!=="lossless"||r.length>rE(n.heavyByteThreshold,eE)||o.truncated;if(!tE(t.file)&&!i)return{stdout:Buffer.from(o.text),stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:r};let a=tE(t.file)?gD(e,t.file,r,s,n.level,o):hD(e,t.file,r,s,o),c=`${$(a)}
150
+ `;if(!i&&Buffer.byteLength(c)<=rE(n.heavyByteThreshold,eE))return{stdout:Buffer.from(c),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,rawOutput:r};let u=await n.store?.mint(r,{command:e.join(" "),loss:{level:n.level==="lossless"?"terse":n.level,bytes_elided:r.length}});if(!u)throw new Error("rsp cat elision requires an elision store");let l=`\u2026 elided file bytes (+${r.length}) \u2014 ${et(u)}
151
+ `;return{stdout:Buffer.from(`${c}${l}`),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,mintedHandle:u,bytesElided:r.length,rawOutput:r}}function gD(e,t,r,n,s,o){let i=pa(n),a=s==="terse"?dD:lD,c=pa(o.text),u=c.slice(0,a),l=c.slice(Math.max(u.length,c.length-a));return{command:e.join(" "),file:t,kind:"code",outline_source:"regex",bytes:r.length,lines:i.length,symbols:bD(i),content:{head:u,tail:l,truncated:o.truncated||u.length+l.length<i.length}}}function hD(e,t,r,n,s){return{command:e.join(" "),file:t,kind:"text",bytes:r.length,lines:pa(n).length,content:pa(s.text),truncated:s.truncated}}function yD(e,t){if(t.mode==="full")return{text:e,truncated:!1};let r=e.split(`
152
+ `),n=r.at(-1)==="",s=n?r.slice(0,-1):r,o=t.limit??Ld,i=t.mode==="head"?s.slice(0,o):s.slice(Math.max(0,s.length-o));return{text:`${i.join(`
154
153
  `)}${n&&i.length>0?`
155
- `:""}`,truncated:i.length<s.length}}function jD(e){let t=[];for(let r=0;r<e.length;r++){let s=e[r].trim(),o=/^(?:export\s+)?(?:default\s+)?(?:abstract\s+)?(class|interface|type)\s+([A-Za-z_$][\w$]*)/.exec(s);if(o){t.push({kind:o[1],name:o[2],line:r+1,signature:s});continue}let i=/^(?:export\s+)?(?:default\s+)?(?:async\s+)?function\s+([A-Za-z_$][\w$]*)\s*\([^)]*\)\s*(?::[^{]+)?/.exec(s);if(i){t.push({kind:"function",name:i[1],line:r+1,signature:s});continue}let a=/^(?:public\s+|private\s+|protected\s+|static\s+|async\s+)*([A-Za-z_$][\w$]*)\s*\([^)]*\)\s*(?::[^{]+)?\s*\{/.exec(s);a&&!UD(a[1])&&t.push({kind:"method",name:a[1],line:r+1,signature:s})}return t}function ia(e){let t=e.split(`
156
- `);return t.at(-1)===""?t.slice(0,-1):t}function J_(e){return e.includes(0)||!AD(e)}function U_(e){return GD.has(ID(e).toLowerCase())}function UD(e){return["for","if","switch","while"].includes(e)}function H_(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function q_(e,t){let r=Number(e);return Number.isInteger(r)&&r>0?r:t}var j_,kd,LD,DD,GD,vd=h(()=>{"use strict";W();Ar();ut();j_=8*1024,kd=10,LD=8,DD=2,GD=new Set([".c",".cc",".cpp",".cs",".go",".java",".js",".jsx",".mjs",".py",".rs",".ts",".tsx"])});var eE={};K(eE,{REPO_STORE_PATH:()=>Od,mergeRspBlock:()=>Q_,provisionRspRepoStore:()=>XD});import{constants as HD}from"node:fs";import{access as qD,copyFile as WD,mkdir as K_,readFile as JD,rename as VD,writeFile as z_}from"node:fs/promises";import{dirname as KD,join as Xs,resolve as zD}from"node:path";async function XD(e,t={}){let r=zD(e),n=Xs(r,".red"),s=Xs(n,"config.yaml"),o=Xs(r,Od);await K_(n,{recursive:!0}),await K_(KD(o),{recursive:!0});let i="";try{i=await JD(s,"utf8")}catch(g){if(g.code!=="ENOENT")throw g}let a=Q_(i,{enabled:!0,ttlDays:t.ttlDays??ze,ephemeralTtlHours:t.ephemeralTtlHours??Ye,byteBudget:t.byteBudget??Qe,heavyGitByteThreshold:t.heavyGitByteThreshold??It}),c=a!==i;c&&await z_(s,a,"utf8");let u=!await Cd(o),l=!1,p=!1;if(u){let g=Xs(r,YD),f=Xs(r,QD);if(await Cd(g))await VD(g,o),p=!0;else if(await Cd(f))await WD(f,o),l=!0;else{let{provisionElisionStore:k}=await Promise.resolve().then(()=>(fi(),gh)),E=process.env.REDDB_BIN;try{await k({uri:`file://${o}`,ttlDays:t.ttlDays??ze,ephemeralTtlHours:t.ephemeralTtlHours??Ye,byteBudget:t.byteBudget??Qe})}finally{E===void 0?delete process.env.REDDB_BIN:process.env.REDDB_BIN=E}}}let d=ZD(a,Od);return d!==a&&await z_(s,d,"utf8"),{configPath:s,storePath:o,configChanged:c||d!==a,storeCreated:u,memoryStoreMigrated:l,legacyStoreMigrated:p}}function Q_(e,t){let r=["rsp:",` enabled: ${t.enabled?"true":"false"}`,` ttlDays: ${aa(t.ttlDays,ze)}`,` ephemeralTtlHours: ${aa(t.ephemeralTtlHours,Ye)}`,` byteBudget: ${aa(t.byteBudget,Qe)}`,` heavyGitByteThreshold: ${aa(t.heavyGitByteThreshold,It)}`],n=e===""?[]:e.replace(/\n+$/,"").split(`
157
- `),s=X_(n,"rsp");if(s===-1){let a=[...n];return a.length>0&&a[a.length-1].trim()!==""&&a.push(""),a.push(...r),`${a.join(`
154
+ `:""}`,truncated:i.length<s.length}}function bD(e){let t=[];for(let r=0;r<e.length;r++){let s=e[r].trim(),o=/^(?:export\s+)?(?:default\s+)?(?:abstract\s+)?(class|interface|type)\s+([A-Za-z_$][\w$]*)/.exec(s);if(o){t.push({kind:o[1],name:o[2],line:r+1,signature:s});continue}let i=/^(?:export\s+)?(?:default\s+)?(?:async\s+)?function\s+([A-Za-z_$][\w$]*)\s*\([^)]*\)\s*(?::[^{]+)?/.exec(s);if(i){t.push({kind:"function",name:i[1],line:r+1,signature:s});continue}let a=/^(?:public\s+|private\s+|protected\s+|static\s+|async\s+)*([A-Za-z_$][\w$]*)\s*\([^)]*\)\s*(?::[^{]+)?\s*\{/.exec(s);a&&!wD(a[1])&&t.push({kind:"method",name:a[1],line:r+1,signature:s})}return t}function pa(e){let t=e.split(`
155
+ `);return t.at(-1)===""?t.slice(0,-1):t}function oE(e){return e.includes(0)||!aD(e)}function tE(e){return pD.has(uD(e).toLowerCase())}function wD(e){return["for","if","switch","while"].includes(e)}function rE(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function nE(e,t){let r=Number(e);return Number.isInteger(r)&&r>0?r:t}var eE,Ld,lD,dD,pD,$d=h(()=>{"use strict";J();Ar();at();eE=8*1024,Ld=10,lD=8,dD=2,pD=new Set([".c",".cc",".cpp",".cs",".go",".java",".js",".jsx",".mjs",".py",".rs",".ts",".tsx"])});var mE={};K(mE,{REPO_STORE_PATH:()=>Md,mergeRspBlock:()=>lE,provisionRspRepoStore:()=>OD});import{constants as _D}from"node:fs";import{access as ED,copyFile as RD,mkdir as aE,readFile as kD,rename as SD,writeFile as cE}from"node:fs/promises";import{dirname as TD,join as Xs,resolve as vD}from"node:path";async function OD(e,t={}){let r=vD(e),n=Xs(r,".red"),s=Xs(n,"config.yaml"),o=Xs(r,Md);await aE(n,{recursive:!0}),await aE(TD(o),{recursive:!0});let i="";try{i=await kD(s,"utf8")}catch(g){if(g.code!=="ENOENT")throw g}let a=lE(i,{enabled:!0,ttlDays:t.ttlDays??Ye,ephemeralTtlHours:t.ephemeralTtlHours??Qe,byteBudget:t.byteBudget??Xe,heavyGitByteThreshold:t.heavyGitByteThreshold??Gt}),c=a!==i;c&&await cE(s,a,"utf8");let u=!await Fd(o),l=!1,d=!1;if(u){let g=Xs(r,xD),f=Xs(r,CD);if(await Fd(g))await SD(g,o),d=!0;else if(await Fd(f))await RD(f,o),l=!0;else{let{provisionElisionStore:k}=await Promise.resolve().then(()=>(Ni(),Yb)),E=process.env.REDDB_BIN;try{await k({uri:`file://${o}`,ttlDays:t.ttlDays??Ye,ephemeralTtlHours:t.ephemeralTtlHours??Qe,byteBudget:t.byteBudget??Xe})}finally{E===void 0?delete process.env.REDDB_BIN:process.env.REDDB_BIN=E}}}let p=AD(a,Md);return p!==a&&await cE(s,p,"utf8"),{configPath:s,storePath:o,configChanged:c||p!==a,storeCreated:u,memoryStoreMigrated:l,legacyStoreMigrated:d}}function lE(e,t){let r=["rsp:",` enabled: ${t.enabled?"true":"false"}`,` ttlDays: ${ma(t.ttlDays,Ye)}`,` ephemeralTtlHours: ${ma(t.ephemeralTtlHours,Qe)}`,` byteBudget: ${ma(t.byteBudget,Xe)}`,` heavyGitByteThreshold: ${ma(t.heavyGitByteThreshold,Gt)}`],n=e===""?[]:e.replace(/\n+$/,"").split(`
156
+ `),s=dE(n,"rsp");if(s===-1){let a=[...n];return a.length>0&&a[a.length-1].trim()!==""&&a.push(""),a.push(...r),`${a.join(`
158
157
  `)}
159
- `}let o=Ad(n,s,0);return`${[...n.slice(0,s),...r,...n.slice(o)].join(`
158
+ `}let o=Bd(n,s,0);return`${[...n.slice(0,s),...r,...n.slice(o)].join(`
160
159
  `)}
161
- `}function X_(e,t){for(let r=0;r<e.length;r++){let n=e[r];if(Id(n)&&Pd(n)===0&&Z_(n)===t)return r}return-1}function Ad(e,t,r){let n=e.length;for(let s=t+1;s<e.length;s++)if(Id(e[s])&&Pd(e[s])<=r){n=s;break}for(;n-1>t&&e[n-1].trim()==="";)n--;return n}function Pd(e){return(e.match(/^ */)?.[0]??"").length}function Id(e){let t=e.trim();return t!==""&&!t.startsWith("#")}function Z_(e){return e.replace(/^ */,"").replace(/:.*$/,"").trim()}function aa(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function ZD(e,t){let r=e===""?[]:e.replace(/\n+$/,"").split(`
162
- `),n=X_(r,"plugins");if(n===-1)return e;let s=Ad(r,n,0),o=Y_(r,"memory",n+1,s,2);if(o===-1)return e;let i=Ad(r,o,2),a=[...r],c=Y_(a,"storePath",o+1,i,4);return c!==-1?a[c]=` storePath: ${t}`:a.splice(i,0,` storePath: ${t}`),`${a.join(`
160
+ `}function dE(e,t){for(let r=0;r<e.length;r++){let n=e[r];if(Ud(n)&&jd(n)===0&&pE(n)===t)return r}return-1}function Bd(e,t,r){let n=e.length;for(let s=t+1;s<e.length;s++)if(Ud(e[s])&&jd(e[s])<=r){n=s;break}for(;n-1>t&&e[n-1].trim()==="";)n--;return n}function jd(e){return(e.match(/^ */)?.[0]??"").length}function Ud(e){let t=e.trim();return t!==""&&!t.startsWith("#")}function pE(e){return e.replace(/^ */,"").replace(/:.*$/,"").trim()}function ma(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function AD(e,t){let r=e===""?[]:e.replace(/\n+$/,"").split(`
161
+ `),n=dE(r,"plugins");if(n===-1)return e;let s=Bd(r,n,0),o=uE(r,"memory",n+1,s,2);if(o===-1)return e;let i=Bd(r,o,2),a=[...r],c=uE(a,"storePath",o+1,i,4);return c!==-1?a[c]=` storePath: ${t}`:a.splice(i,0,` storePath: ${t}`),`${a.join(`
163
162
  `)}
164
- `}function Y_(e,t,r,n,s){for(let o=r;o<n;o++){let i=e[o];if(Id(i)&&Pd(i)===s&&Z_(i)===t)return o}return-1}async function Cd(e){try{return await qD(e,HD.F_OK),!0}catch{return!1}}var Od,YD,QD,tE=h(()=>{"use strict";$e();Ze();Od=Qc,YD=um,QD=".red/memory/graph.rdb"});var aE={};K(aE,{runRspMcpServer:()=>tG});import{createInterface as eG}from"node:readline";async function tG(){let e=Xe(process.cwd(),process.env),t=eG({input:process.stdin,crlfDelay:1/0});for await(let r of t){if(!r.trim())continue;let n;try{n=JSON.parse(r);let s=await rG(n,e);sE({jsonrpc:"2.0",id:n.id??null,result:s})}catch(s){sE({jsonrpc:"2.0",id:typeof oE(r)?.id>"u"?null:oE(r)?.id,error:{code:-32e3,message:s instanceof Error?s.message:String(s)}})}}}async function rG(e,t){if(e.method==="initialize")return{protocolVersion:"2024-11-05",capabilities:{tools:{}},serverInfo:{name:"rsp",version:"0.1.0"}};if(e.method==="tools/list")return t.enabled?{tools:[{name:"rsp_status",description:"Explain whether rsp is enabled in this directory.",inputSchema:{type:"object",properties:{}}},{name:"rsp_stats",description:"Read resident rsp accounting stats.",inputSchema:{type:"object",properties:{}}},{name:"rsp_show",description:"Read an rsp elision handle through the resident server.",inputSchema:{type:"object",properties:{handle:{type:"string"}},required:["handle"]}},{name:"rsp_compress",description:"Compress arbitrary text or JSON through rsp normalization, JSON selection, TOON rendering, and reversible elision.",inputSchema:{type:"object",properties:{payload:{description:"Text, JSON value, or JSON-serializable payload to compress."},level:{type:"string",enum:["brief","terse"],description:"Compression level. Defaults to brief."}},required:["payload"]}}]}:{tools:[{name:"rsp_status",description:"Explain whether rsp is enabled in this directory.",inputSchema:{type:"object",properties:{}}}]};if(e.method==="tools/call"){let r=e.params;if(r?.name==="rsp_status")return{content:[{type:"text",text:nE(t)}]};if(!t.enabled)return{content:[{type:"text",text:nE(t)}],isError:!0};let n=lG(t);if(r?.name==="rsp_stats")return{content:[{type:"text",text:Gr({tool:"rsp_stats",...await n.accountingStats(t.telemetryByteBudget)})}]};if(r?.name==="rsp_show"){let s=String(r.arguments?.handle??""),o=await n.get(s);return o?"status"in o?{content:[{type:"text",text:Gr({tool:"rsp_show",handle:s,found:!1,category:"real-error",error:o.status,expired_at:o.expired_at,help:[o.command]})}],isError:!0}:{content:[{type:"text",text:Gr({tool:"rsp_show",handle:s,found:!0,bytes:o.original.length,text:o.original.toString("utf8")})}]}:{content:[{type:"text",text:Gr(nG(s,"not found"))}],isError:!0}}if(r?.name==="rsp_compress")return{content:[{type:"text",text:await sG(r.arguments,n)}]}}return{}}function Gr(e){return`${se(e)}
165
- `}function nG(e,t){return{tool:"rsp_show",handle:e,found:!1,category:"real-error",error:t,help:["rsp show el:<id>"]}}async function sG(e,t){let r=iG(e?.payload);try{return await oG(r,e,t)}catch(n){if(process.env.RSP_DEBUG==="1")throw n;return iE(r)}}async function oG(e,t,r){let n=aG(t?.level),s=await Bl(e,{level:n,command:"rsp mcp compress",store:r});if(s.detected)return iE(s.output);let o=Ui(e);if(n==="brief"&&Buffer.byteLength(o)<=2*1024)return Gr({tool:"rsp_compress",level:n,detected:"text",bytes:Buffer.byteLength(e),text:o});let i=Buffer.from(e),a=await r.mint(i,{command:"rsp mcp compress",loss:{level:n,bytes_elided:i.length}});return cG(o,i.length,a,n)}function iG(e){return typeof e=="string"?e:e==null?"":JSON.stringify(e)}function aG(e){return e==="terse"?"terse":"brief"}function cG(e,t,r,n){let s=n==="terse"?1024:2048,o=Buffer.from(e),i=Math.max(1,Math.floor(s/2)),a=rE(o.subarray(0,i)),c=rE(o.subarray(Math.max(0,o.length-i)));return Gr({tool:"rsp_compress",level:n,detected:"text",bytes:t,lines:uG(o),head:a,tail:c&&c!==a?c:null,handle:r,help:[`rsp show ${r}`]})}function iE(e){return e.endsWith(`
163
+ `}function uE(e,t,r,n,s){for(let o=r;o<n;o++){let i=e[o];if(Ud(i)&&jd(i)===s&&pE(i)===t)return o}return-1}async function Fd(e){try{return await ED(e,_D.F_OK),!0}catch{return!1}}var Md,xD,CD,fE=h(()=>{"use strict";Le();Be();Md=tu,xD=_m,CD=".red/memory/graph.rdb"});var _E={};K(_E,{runRspMcpServer:()=>ID});import{createInterface as PD}from"node:readline";async function ID(){let e=De(process.cwd(),process.env),t=PD({input:process.stdin,crlfDelay:1/0});for await(let r of t){if(!r.trim())continue;let n;try{n=JSON.parse(r);let s=await LD(n,e);yE({jsonrpc:"2.0",id:n.id??null,result:s})}catch(s){yE({jsonrpc:"2.0",id:typeof bE(r)?.id>"u"?null:bE(r)?.id,error:{code:-32e3,message:s instanceof Error?s.message:String(s)}})}}}async function LD(e,t){if(e.method==="initialize")return{protocolVersion:"2024-11-05",capabilities:{tools:{}},serverInfo:{name:"rsp",version:"0.1.0"}};if(e.method==="tools/list")return t.enabled?{tools:[{name:"rsp_status",description:"Explain whether rsp is enabled in this directory.",inputSchema:{type:"object",properties:{}}},{name:"rsp_stats",description:"Read resident rsp accounting stats.",inputSchema:{type:"object",properties:{}}},{name:"rsp_show",description:"Read an rsp elision handle through the resident server.",inputSchema:{type:"object",properties:{handle:{type:"string"}},required:["handle"]}},{name:"rsp_compress",description:"Compress arbitrary text or JSON through rsp normalization, JSON selection, TOON rendering, and reversible elision.",inputSchema:{type:"object",properties:{payload:{description:"Text, JSON value, or JSON-serializable payload to compress."},level:{type:"string",enum:["brief","terse"],description:"Compression level. Defaults to brief."}},required:["payload"]}}]}:{tools:[{name:"rsp_status",description:"Explain whether rsp is enabled in this directory.",inputSchema:{type:"object",properties:{}}}]};if(e.method==="tools/call"){let r=e.params;if(r?.name==="rsp_status")return{content:[{type:"text",text:hE(t)}]};if(!t.enabled)return{content:[{type:"text",text:hE(t)}],isError:!0};let n=jD(t);if(r?.name==="rsp_stats")return{content:[{type:"text",text:Dr({tool:"rsp_stats",...await n.accountingStats(t.telemetryByteBudget)})}]};if(r?.name==="rsp_show"){let s=String(r.arguments?.handle??""),o=await n.get(s);return o?"status"in o?{content:[{type:"text",text:Dr({tool:"rsp_show",handle:s,found:!1,category:"real-error",error:o.status,expired_at:o.expired_at,help:[o.command]})}],isError:!0}:{content:[{type:"text",text:Dr({tool:"rsp_show",handle:s,found:!0,bytes:o.original.length,text:o.original.toString("utf8")})}]}:{content:[{type:"text",text:Dr(GD(s,"not found"))}],isError:!0}}if(r?.name==="rsp_compress")return{content:[{type:"text",text:await DD(r.arguments,n)}]}}return{}}function Dr(e){return`${ne(e)}
164
+ `}function GD(e,t){return{tool:"rsp_show",handle:e,found:!1,category:"real-error",error:t,help:["rsp show el:<id>"]}}async function DD(e,t){let r=ND(e?.payload);try{return await $D(r,e,t)}catch(n){if(process.env.RSP_DEBUG==="1")throw n;return wE(r)}}async function $D(e,t,r){let n=FD(t?.level),s=await Yl(e,{level:n,command:"rsp mcp compress",store:r});if(s.detected)return wE(s.output);let o=Ki(e);if(n==="brief"&&Buffer.byteLength(o)<=2*1024)return Dr({tool:"rsp_compress",level:n,detected:"text",bytes:Buffer.byteLength(e),text:o});let i=Buffer.from(e),a=await r.mint(i,{command:"rsp mcp compress",loss:{level:n,bytes_elided:i.length}});return MD(o,i.length,a,n)}function ND(e){return typeof e=="string"?e:e==null?"":JSON.stringify(e)}function FD(e){return e==="terse"?"terse":"brief"}function MD(e,t,r,n){let s=n==="terse"?1024:2048,o=Buffer.from(e),i=Math.max(1,Math.floor(s/2)),a=gE(o.subarray(0,i)),c=gE(o.subarray(Math.max(0,o.length-i)));return Dr({tool:"rsp_compress",level:n,detected:"text",bytes:t,lines:BD(o),head:a,tail:c&&c!==a?c:null,handle:r,help:[`rsp show ${r}`]})}function wE(e){return e.endsWith(`
166
165
  `)?e:`${e}
167
- `}function rE(e){return e.toString("utf8").replace(/�$/g,"")}function uG(e){if(e.length===0)return 0;let t=0;for(let r of e)r===10&&t++;return e[e.length-1]===10?t:t+1}function lG(e){return Sc(process.cwd(),e)}function nE(e){let t=e.enabled?Wt(process.cwd(),e.overhead):null;return Gr({tool:"rsp_status",enabled:e.enabled,status:e.enabled?"enabled":"disabled",message:e.enabled?"rsp is enabled in this directory":"rsp is not enabled in this directory",overhead_verdict:t?.verdict??"unknown",overhead_summary:t?.summary??"rsp is not enabled in this directory",overhead_disabled_families:t?.disabled_families.map(r=>r.family)??[],help:e.enabled?[]:["/red-setup"]})}function sE(e){process.stdout.write(`${JSON.stringify(e)}
168
- `)}function oE(e){try{return JSON.parse(e)}catch{return null}}var cE=h(()=>{"use strict";Tt();Ze();oe();Bs();wr()});var lE={};K(lE,{renderShellInit:()=>dG});function dG(e,t=Vs){if(e==="fish")return pG(t);if(e==="bash"||e==="zsh")return mG(e,t);throw new Error(`unsupported shell: ${e}`)}function pG(e){return["# rsp shell-init fish","# Opt-in only: source this output from config.fish; remove that line to restore raw commands.","if type -q rsp",...[...new Set(e.map(r=>r.command[0]).filter(ua))].map(r=>` abbr --add --position command -- ${r} '${yG(`rsp ${r}`)}'`)," function rspx --description 'Run a shell pipeline through rsp exec'"," rsp exec -- $argv"," end","else"," # rsp is not on PATH; rsp abbreviations and rspx were not installed.","end",""].join(`
169
- `)}function mG(e,t){let r=gG(t);return[`# rsp shell-init ${e}`,`# Opt-in only: source this output from ${e} startup files; remove that line to restore raw commands.`,...ca("git",r.get("git")??[]),...ca("gh",r.get("gh")??[]),...ca("vitest",r.get("vitest")??[]),...ca("cargo",r.get("cargo")??[]),"rspx() {"," if command -v rsp >/dev/null 2>&1; then",' command rsp exec -- "$@"'," return"," fi"," printf '%s\\n' 'rspx requires rsp with exec support on PATH' >&2"," return 127","}",""].join(`
170
- `)}function ca(e,t){if(t.length===0)return[];if(t.some(o=>o.command.length===1))return[`${e}() {`," if command -v rsp >/dev/null 2>&1; then",` command rsp ${e} "$@"`," return"," fi",` command ${e} "$@"`,"}"];let r=t.map(o=>o.command.slice(1)).filter(o=>o.length===1).map(o=>o[0]).filter(ua),n=t.map(o=>o.command.slice(1)).filter(o=>o.length>1&&o.every(ua)),s=[`${e}() {`," if ! command -v rsp >/dev/null 2>&1; then",` command ${e} "$@"`," return"," fi",' case "$1" in'];if(r.length>0){let o=r.map(i=>uE(i)).join("|");s.push(` ${o}) command rsp ${e} "$@" ;;`)}for(let[o,i]of fG(n)){let a=i.map(c=>c.map((u,l)=>`[ "$${l+2}" = '${hG(u)}' ]`).join(" && ")).join(" || ");s.push(` ${uE(o)}) if ${a}; then command rsp ${e} "$@"; else command ${e} "$@"; fi ;;`)}return s.push(` *) command ${e} "$@" ;;`," esac","}"),s}function fG(e){let t=new Map;for(let[r,...n]of e){if(!r)continue;let s=t.get(r)??[];s.push(n),t.set(r,s)}return t}function gG(e){let t=new Map;for(let r of e){let n=r.command[0];if(!n||!ua(n))continue;let s=t.get(n)??[];s.push(r),t.set(n,s)}return t}function ua(e){return!!(e&&/^[A-Za-z0-9_./:-]+$/.test(e))}function uE(e){return e.replace(/[\\|)&;]/g,"\\$&")}function hG(e){return e.replace(/'/g,"'\\''")}function yG(e){return e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}var dE=h(()=>{"use strict";Ks()});function Ld(e){if(typeof e!="object"||e===null)return!1;let t=e;return t.schemaVersion===1&&typeof t.id=="string"&&t.id.length>0&&typeof t.emitter=="string"&&t.emitter.length>0&&typeof t.occurredAt=="string"&&typeof t.taskClass=="string"&&bG(t.chosenOption)&&wG(t.outcome)&&_G(t.cost)}function bG(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.kind=="string"&&t.kind.length>0}function wG(e){return e==="success"||e==="failure"||e==="escalated"}function _G(e){if(typeof e!="object"||e===null)return!1;let t=e.signal;return t==="none"||t==="low"||t==="medium"||t==="high"||t==="unknown"}var pE=h(()=>{});import{createHash as EG}from"node:crypto";function SE(e,t){return new Gd(e,t)}function mE(e){let t=Number(e.red_entity_id??e.rid),r=$d(e.properties??e.PROPERTIES),n=TE(String(e.node_type??e.NODE_TYPE??r.kind??"note"));if(!Number.isFinite(t))return null;let s=String(r.id??e.label??e.LABEL??t),o=String(r.title??e.label??e.LABEL??s),i=String(r.content??""),a=Array.isArray(r.tags)?r.tags.map(String):[],c=Date.now();return{rid:t,label:String(e.label??e.LABEL??s),kind:n,properties:{...r,id:s,title:o,content:i,tags:a,created_at:Number(r.created_at??c),updated_at:Number(r.updated_at??r.created_at??c),hash:String(r.hash??"")}}}function fE(e){let t=Number(e.red_entity_id??e.rid),r=Number(e.from??e.FROM??e.from_rid??e.source),n=Number(e.to??e.TO??e.to_rid??e.target),s=vE(String(e.label??e.LABEL??"related_to"));return!Number.isFinite(t)||!Number.isFinite(r)||!Number.isFinite(n)?null:{rid:t,kind:s,from_rid:r,to_rid:n,weight:Number(e.weight??1),properties:$d(e.properties??e.PROPERTIES)}}function SG(e){let t=Number(e.red_entity_id??e.rid),r=$d(e.properties??e.PROPERTIES);return!Number.isFinite(t)||!Ld(r)?null:{rid:t,event:r}}function $d(e){return e==null?{}:typeof e=="string"?JSON.parse(e):la(e)?e:{}}function TE(e){let t=e==="contact"?"person":e;if(RG.has(t))return t;throw new Error(`invalid Brain artifact kind: ${e}`)}function vE(e){if(kG.has(e))return e;throw new Error(`invalid Brain connection kind: ${e}`)}function TG(e){return e==="hour"||e==="week"||e==="month"?e:"day"}function gE(e){if(typeof e=="number")return e;let t=String(e??"");return/^\d+$/.test(t)?Number(t):t}function Nr(e){return la(e)?e:{}}function hE(e,t){return Nr(e)[t]}function yE(e,t){let r=e[t];if(typeof r!="string")throw new Error(`brain ${t} must be a string`);return r}function bE(e,t){let r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function wE(e){let t=Nr(e);return{excludeRids:Array.isArray(t.excludeRids)?t.excludeRids.map(Number).filter(Number.isFinite):void 0}}function Ie(e){return typeof e=="string"&&e.length>0?e:void 0}function la(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Dd(e){return e!=null}function vG(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean))).sort()}function xG(e){return EG("sha256").update(JSON.stringify(e)).digest("hex")}function CG(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"artifact"}function _E(e){return`artifact-hash:${e}`}function EE(e,t,r){return`connection:${e}:${t}:${r}`}function RE(){return"model-tier-bandit:v1"}function OG(e){return e.toLowerCase().split(/[^a-z0-9_]+/).map(t=>t.trim()).filter(t=>t.length>1)}function kE(e,t){let r=0,n=e.indexOf(t);for(;n>=0;)r++,n=e.indexOf(t,n+t.length);return r}function xE(e,t){let r=e.properties.title.toLowerCase(),n=e.properties.content.toLowerCase(),s=e.properties.tags.map(i=>i.toLowerCase()),o=e.kind.toLowerCase();return{lexical:t.reduce((i,a)=>i+kE(r,a)*3+kE(n,a),0),tags:t.reduce((i,a)=>i+s.reduce((c,u)=>c+(u===a?4:u.includes(a)||a.includes(u)?2:0),0),0),kind:t.reduce((i,a)=>i+(o===a?3:o.includes(a)||a.includes(o)?1:0),0)}}function AG(e,t,r,n){let s=0;for(let o of r){let i=o.from_rid===e.rid?o.to_rid:o.to_rid===e.rid?o.from_rid:null;if(i==null)continue;let a=n.get(i);if(!a)continue;let c=CE({...xE(a,t),connections:0,vector:0}).total;c>0&&(s+=Math.min(c,12)*.35)}return $r(s)}function CE(e){return{...e,lexical:$r(e.lexical),tags:$r(e.tags),kind:$r(e.kind),connections:$r(e.connections),vector:$r(e.vector),total:$r(e.lexical+e.tags+e.kind+e.connections+e.vector)}}function $r(e){return Math.round(e*1e3)/1e3}function PG(e,t){if(e.length<=220)return e;let r=e.toLowerCase(),n=t.map(o=>r.indexOf(o)).filter(o=>o>=0).sort((o,i)=>o-i)[0]??0,s=Math.max(0,n-80);return`${s>0?"...":""}${e.slice(s,s+220)}${s+220<e.length?"...":""}`}function IG(e,t){let r=t.length===0?"none":t[0].score>=5?"high":t[0].score>=3?"medium":"low",n=t.length===0?[`No Brain artifacts matched "${e}".`]:[];return{answer:t.length===0?`Brain has no cited evidence for "${e}".`:`Brain found ${t.length} cited artifact${t.length===1?"":"s"} for "${e}".`,hits:t,citations:t.map((s,o)=>({ref:`B${o+1}`,rid:s.artifact.rid,id:s.artifact.properties.id,title:s.artifact.properties.title,kind:s.artifact.kind,score:s.score,score_breakdown:s.score_breakdown,excerpt:s.excerpt})),confidence:r,missing_evidence:n}}function LG(e){let t={};for(let r of e)t[r]=(t[r]??0)+1;return t}var wt,RG,kG,Gd,OE=h(()=>{"use strict";pE();wt={artifacts:"brain_artifacts",connections:"brain_connections",outcomeEvents:"brain_outcome_events",kv:"brain_kv"},RG=new Set(["pillar","decision","concept","question","playbook","task","event","pattern","hypothesis","fact","source","bookmark","note","reference","custom","project","idea","meeting","claim","organization","person"]),kG=new Set(["supports","contradicts","depends_on","derived_from","related_to","part_of","preceded_by","followed_by","authored","tagged"]),Gd=class{constructor(t,r){this.db=t;this.uri=r}async request(t,r){if(await this.bootstrap(),t==="status")return await this.status();if(t==="capture")return await this.capture(Nr(r));if(t==="getArtifact")return await this.getArtifact(hE(r,"ridOrId"));if(t==="listArtifacts")return await this.listArtifacts();if(t==="search"){let n=Nr(r);return await this.search(yE(n,"query"),bE(n,"limit")??10,wE(n.options))}if(t==="think"){let n=Nr(r);return await this.think(yE(n,"query"),bE(n,"limit")??8,wE(n.options))}if(t==="link")return await this.link(Nr(r));if(t==="backlinks")return await this.backlinks(hE(r,"target"));if(t==="listConnections")return await this.listConnections();if(t==="eventKpis")return await this.eventKpis(Nr(r));if(t==="appendOutcomeEvent")return await this.appendOutcomeEvent(r);if(t==="replayOutcomeEvents")return await this.replayOutcomeEvents();if(t==="loadModelTierBanditDocument")return await this.loadModelTierBanditDocument();if(t==="saveModelTierBanditDocument")return await this.saveModelTierBanditDocument(r);if(t==="refreshModelTierBanditDocument")return await this.refreshModelTierBanditDocument();throw new Error(`unsupported resident brain action: ${t}`)}async bootstrap(){await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${wt.artifacts}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${wt.connections}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${wt.outcomeEvents}`)}async status(){let t=await this.listArtifacts(),r=await this.listConnections();return{uri:this.uri,artifacts:t.length,connections:r.length,kinds:LG(t.map(n=>n.kind))}}async capture(t){let r=Ie(t.title)||"Untitled artifact",n=Ie(t.content);if(!n)throw new Error("brain capture requires content");let s=TE(Ie(t.kind)||"note"),o=vG(Array.isArray(t.tags)?t.tags.map(String):[]),i=Date.now(),a=xG([s,r,n,o,Ie(t.sourcePath),Ie(t.sourceSession)]),c=await this.kv().get(_E(a));if(c!=null){let f=await this.getArtifact(Number(c));if(f)return f}let u=`${CG(r)}-${a.slice(0,8)}`,l={id:u,title:r,content:n,tags:o,source_agent:Ie(t.sourceAgent),source_runner:Ie(t.sourceRunner),source_session:Ie(t.sourceSession),source_path:Ie(t.sourcePath),created_at:i,updated_at:i,hash:a,metadata:la(t.metadata)?t.metadata:void 0},d=(await this.db.query(`INSERT INTO ${wt.artifacts} NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *`,u,s,a,l)).rows[0];if(!d)throw new Error("INSERT artifact returned no row");let g=mE(d);if(!g)throw new Error("INSERT artifact returned invalid row");return await this.kv().put(_E(a),g.rid),await this.materializeTagConnections(g),g}async getArtifact(t){let r=await this.listArtifacts();return typeof t=="number"?r.find(n=>n.rid===t)??null:r.find(n=>n.properties.id===t||n.label===t)??null}async listArtifacts(){return(await this.db.query(`SELECT * FROM ${wt.artifacts}`)).rows.map(mE).filter(Dd)}async search(t,r,n={}){let s=OG(t),o=new Set(n.excludeRids??[]),i=await this.listArtifacts(),a=await this.listConnections(),c=new Map(i.map(u=>[u.rid,u]));return i.filter(u=>!o.has(u.rid)).map(u=>{let l=xE(u,s),p=CE({...l,connections:AG(u,s,a,c),vector:0});return{artifact:u,score:p.total,score_breakdown:p,excerpt:PG(u.properties.content,s)}}).filter(u=>u.score>0).sort((u,l)=>l.score-u.score||l.artifact.properties.updated_at-u.artifact.properties.updated_at).slice(0,Math.max(1,Math.min(100,r)))}async think(t,r,n={}){let s=(await this.search(t,Math.max(r*2,r+5),n)).slice(0,r);return IG(t,s)}async link(t){let r=await this.getArtifact(gE(t.from)),n=await this.getArtifact(gE(t.to));if(!r)throw new Error(`Brain artifact not found: ${String(t.from)}`);if(!n)throw new Error(`Brain artifact not found: ${String(t.to)}`);let s=vE(Ie(t.kind)||"related_to"),o=await this.findConnection(r.rid,n.rid,s);if(o!=null){let l=(await this.listConnections()).find(p=>p.rid===o);if(l)return l}let i={reason:Ie(t.reason),confidence:Ie(t.confidence)||"explicit",created_at:Date.now(),metadata:la(t.metadata)?t.metadata:void 0},c=(await this.db.query(`INSERT INTO ${wt.connections} EDGE (label, from, to, weight, properties) VALUES ($1, $2, $3, $4, $5) RETURNING *`,s,r.rid,n.rid,1,i)).rows[0];if(!c)throw new Error("INSERT connection returned no row");let u=fE(c);if(!u)throw new Error("INSERT connection returned invalid row");return await this.kv().put(EE(r.rid,n.rid,s),u.rid),u}async backlinks(t){let r=await this.getArtifact(t);if(!r)throw new Error(`Brain artifact not found: ${t}`);return(await this.listConnections()).filter(n=>n.to_rid===r.rid)}async listConnections(){return(await this.db.query(`SELECT * FROM ${wt.connections}`)).rows.map(fE).filter(Dd)}async eventKpis(t){let r=(await this.listArtifacts()).filter(o=>o.kind==="event"),n=TG(Ie(t.interval)||"day"),s=Ie(t.timeField)==="ingested"?"ingested":"event";return{kind:"event",interval:n,timeField:s,range:{from:null,to:null},total:r.length,series:[{group:null,total:r.length,buckets:[]}]}}async appendOutcomeEvent(t){if(!Ld(t))throw new Error("invalid Brain outcome event");if(!(await this.db.query(`INSERT INTO ${wt.outcomeEvents} NODE (label, node_type, properties) VALUES ($1, $2, $3) RETURNING *`,t.id,`outcome_event.v${t.schemaVersion}`,t)).rows[0])throw new Error("INSERT outcome event returned no row");return t}async replayOutcomeEvents(){return(await this.db.query(`SELECT * FROM ${wt.outcomeEvents}`)).rows.map(SG).filter(Dd).sort((r,n)=>r.rid-n.rid).map(({event:r})=>r)}async loadModelTierBanditDocument(){let t=await this.kv().get(RE());return typeof t=="string"?JSON.parse(t):t}async saveModelTierBanditDocument(t){return await this.kv().put(RE(),JSON.stringify(t)),t}async refreshModelTierBanditDocument(){let t=await this.loadModelTierBanditDocument();if(t!=null)return t;let r={schema_version:"brain.model-tier-bandit.v1",updated_at:new Date().toISOString(),arms:{}};return await this.saveModelTierBanditDocument(r),r}async materializeTagConnections(t){if(t.properties.metadata?.derived_kind!=="tag")for(let r of t.properties.tags){let n=await this.capture({title:r,content:`Tag: ${r}`,kind:"custom",tags:["tag"],metadata:{derived:!0,derived_kind:"tag"}});await this.link({from:t.rid,to:n.rid,kind:"tagged",confidence:"derived"})}}async findConnection(t,r,n){let s=await this.kv().get(EE(t,r,n));return s!=null?Number(s):null}kv(){return this.db.kv(wt.kv)}}});var jE={};K(jE,{runResidentServer:()=>jG});import{randomUUID as An}from"node:crypto";import{execFileSync as DG,spawn as GG}from"node:child_process";import{existsSync as $G}from"node:fs";import{mkdir as $E,rename as NG,rm as AE,writeFile as NE}from"node:fs/promises";import{createServer as FG}from"node:net";import{dirname as Bd,join as da}from"node:path";import{fileURLToPath as MG,pathToFileURL as BG}from"node:url";async function jG(e){await $E(Bd(e.socketPath),{recursive:!0});let t=e$();ZG();let r=e.telemetryDrainTimeoutMs??FE,n={kind:"opening",startedAt:process.hrtime.bigint()},s,o=!1,i=e.idleMs??Wo,a,c,u=!1,l=new Set,p=e.telemetryDrainIntervalMs??3e4,d=FG(v=>{l.add(v),v.once("close",()=>l.delete(v)),f(),a$(v,async(G,B)=>{f();let V=await c$(n,G,e.storeUri,e.residentVersion??"0.0.0-dev"),te={id:G.id,ok:!0,value:V,storeOpenCount:n.kind==="ready"?n.storeOpenCount:void 0,storeElapsedMs:n.kind==="ready"?n.storeElapsedMs:void 0};B(te),G.op==="handover"&&setImmediate(()=>g())})});function g(){o=!0,u=!0,c=XG(c),d.close();for(let v of l)v.destroy()}function f(){n.kind!=="opening"&&(a&&clearTimeout(a),a=setTimeout(()=>{g()},i),a.unref())}let E=["SIGINT","SIGTERM"].map(v=>{let G=()=>{pa(),d.close();for(let B of l)B.destroy();setTimeout(()=>process.exit(0),1e3)};return process.once(v,G),{signal:v,handler:G}});await new Promise((v,G)=>{d.once("error",G),d.listen(e.socketPath,()=>{d.off("error",G),v()})}),(async()=>{let v=process.hrtime.bigint();process.env.RSP_TEST_HANG_RESIDENT_STORE_OPEN==="1"&&await new Promise(()=>{});let G=Number(process.env.RSP_TEST_DELAY_RESIDENT_STORE_OPEN_MS??"0");Number.isFinite(G)&&G>0&&await new Promise(re=>setTimeout(re,G));let B=await xr.open({uri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,allowResidentOpen:!0}),V=Number(process.hrtime.bigint()-v)/1e6,te=new Md(B,{rootDir:e.rootDir??process.cwd(),ttlDays:e.telemetryTtlDays??Ho,byteBudget:e.telemetryByteBudget??e.byteBudget??qo});if(o){await B.close();return}if(await Nd(te,r),o){await B.close();return}n={kind:"ready",store:B,telemetry:te,storeOpenCount:1,storeElapsedMs:V},s=setInterval(()=>{let re=n.kind==="ready"?n:void 0;re&&Nd(re.telemetry,r)},p),s.unref(),f()})().catch(v=>{n={kind:"failed",error:v instanceof Error?v:new Error(String(v))},f()}),e.pidPath&&await NE(e.pidPath,`${process.pid}
171
- `,{encoding:"utf8",mode:384});let y=e.residentVersion??"0.0.0-dev",_=e.registryPath??da(ne(e.rootDir??process.cwd()),"rsp-resident.pid.json");try{await To(_,{socket_path:e.socketPath,store_uri:e.storeUri,resident_version:y})}catch{}await new Promise(v=>d.once("close",v)),a&&clearTimeout(a),s&&clearInterval(s),await AE(e.socketPath,{force:!0});let T=n;T.kind==="ready"&&(await Nd(T.telemetry,r,u),await T.store.close()),c&&clearTimeout(c);for(let{signal:v,handler:G}of E)process.off(v,G);t?.kill("SIGTERM"),pa(),e.pidPath&&await AE(e.pidPath,{force:!0}),await vo(_)}async function VG(e,t,r=new Date){let n=await gi(e,1,r),s=r.toISOString().slice(0,10),o=n.savings.daily_tokens_saved.find(l=>l.date===s)?.tokens_saved??0,i=n.savings.tokens_saved>0?o/n.savings.tokens_saved*n.savings.dollars_saved_estimate_usd:0,a=da(ne(t),WG),c=`${a}.${process.pid}.${Date.now()}.tmp`,u={version:1,tokens_saved_today:o,dollars_saved_today_usd:Math.round(i*1e6)/1e6,show_total_today:n.health.show_total,updated_at:r.toISOString()};n.health.show_total>0&&(u.show_hit_rate=n.health.show_hit_rate),n.decisions.seen>0&&(u.decisions={seen:n.decisions.seen,contributed:n.decisions.contributed}),await $E(Bd(a),{recursive:!0}),await NE(c,`${se(u)}
172
- `,{encoding:"utf8",mode:384}),await NG(c,a)}async function Nd(e,t=FE,r=!1){try{r&&process.env.RSP_TEST_HANG_TELEMETRY_DRAIN==="1"&&await new Promise(()=>{}),await BE(e.drainAndSweep(),t,"telemetry drain timed out")}catch(n){process.stderr.write(`rsp resident: telemetry drain failed: ${n instanceof Error?n.message:String(n)}
173
- `)}}async function KG(e){let t=[];for(let r of JG){let n=await zG(e,r);n.ok||(n.previousModel&&(n.previousModel!=="collection"&&await YG(e,r,n.previousModel),t.push({collection:r,previousModel:n.previousModel})),await e.query(`CREATE KV IF NOT EXISTS ${ME(r)}`))}return t}async function zG(e,t){try{return await e.kv(t).get("__rsp_telemetry_model_probe__"),{ok:!0}}catch(r){let n=r instanceof Error?r.message:String(r);if(/\bnot found\b/i.test(n))return{ok:!1,previousModel:null};let s=n.match(/model mismatch: expected kv, got ([A-Za-z_][A-Za-z0-9_]*)/i);if(s?.[1])return{ok:!1,previousModel:s[1].toLowerCase()};if(/does not allow 'kv' operations/i.test(n))return{ok:!1,previousModel:"collection"};let o=(await e.list()).find(i=>i.name===t);if(o&&o.model!=="kv")return{ok:!1,previousModel:o.model};throw r}}async function YG(e,t,r){let n=QG(r);if(!n)throw new Error(`cannot self-heal telemetry collection ${t}: unsupported model ${r}`);await e.query(`DROP ${n} ${ME(t)}`)}function QG(e){let t=e.toLowerCase();return t==="table"?"TABLE":t==="kv"?"KV":t==="graph"?"GRAPH":t==="queue"?"QUEUE":t==="document"||t==="documents"?"DOCUMENT":null}function ME(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid telemetry collection name: ${e}`);return e}function XG(e){return e&&clearTimeout(e),setTimeout(()=>{pa(),process.exit(0)},qG)}function ZG(){PE||(PE=!0,process.on("exit",()=>pa()))}function e$(){if(process.platform==="win32")return;let t=GG(process.execPath,["-e",`
166
+ `}function gE(e){return e.toString("utf8").replace(/�$/g,"")}function BD(e){if(e.length===0)return 0;let t=0;for(let r of e)r===10&&t++;return e[e.length-1]===10?t:t+1}function jD(e){return Xn(process.cwd(),e)}function hE(e){let t=e.enabled?qt(process.cwd(),e.overhead):null;return Dr({tool:"rsp_status",enabled:e.enabled,status:e.enabled?"enabled":"disabled",message:e.enabled?"rsp is enabled in this directory":"rsp is not enabled in this directory",overhead_verdict:t?.verdict??"unknown",overhead_summary:t?.summary??"rsp is not enabled in this directory",overhead_disabled_families:t?.disabled_families.map(r=>r.family)??[],help:e.enabled?[]:["/red-setup"]})}function yE(e){process.stdout.write(`${JSON.stringify(e)}
167
+ `)}function bE(e){try{return JSON.parse(e)}catch{return null}}var EE=h(()=>{"use strict";vt();Be();ae();Bs();Jt()});var kE={};K(kE,{renderShellInit:()=>UD});function UD(e,t=Vs){if(e==="fish")return HD(t);if(e==="bash"||e==="zsh")return qD(e,t);throw new Error(`unsupported shell: ${e}`)}function HD(e){return["# rsp shell-init fish","# Opt-in only: source this output from config.fish; remove that line to restore raw commands.","if type -q rsp",...[...new Set(e.map(r=>r.command[0]).filter(ga))].map(r=>` abbr --add --position command -- ${r} '${KD(`rsp ${r}`)}'`)," function rspx --description 'Run a shell pipeline through rsp exec'"," rsp exec -- $argv"," end","else"," # rsp is not on PATH; rsp abbreviations and rspx were not installed.","end",""].join(`
168
+ `)}function qD(e,t){let r=JD(t);return[`# rsp shell-init ${e}`,`# Opt-in only: source this output from ${e} startup files; remove that line to restore raw commands.`,...fa("git",r.get("git")??[]),...fa("gh",r.get("gh")??[]),...fa("vitest",r.get("vitest")??[]),...fa("cargo",r.get("cargo")??[]),"rspx() {"," if command -v rsp >/dev/null 2>&1; then",' command rsp exec -- "$@"'," return"," fi"," printf '%s\\n' 'rspx requires rsp with exec support on PATH' >&2"," return 127","}",""].join(`
169
+ `)}function fa(e,t){if(t.length===0)return[];if(t.some(o=>o.command.length===1))return[`${e}() {`," if command -v rsp >/dev/null 2>&1; then",` command rsp ${e} "$@"`," return"," fi",` command ${e} "$@"`,"}"];let r=t.map(o=>o.command.slice(1)).filter(o=>o.length===1).map(o=>o[0]).filter(ga),n=t.map(o=>o.command.slice(1)).filter(o=>o.length>1&&o.every(ga)),s=[`${e}() {`," if ! command -v rsp >/dev/null 2>&1; then",` command ${e} "$@"`," return"," fi",' case "$1" in'];if(r.length>0){let o=r.map(i=>RE(i)).join("|");s.push(` ${o}) command rsp ${e} "$@" ;;`)}for(let[o,i]of WD(n)){let a=i.map(c=>c.map((u,l)=>`[ "$${l+2}" = '${VD(u)}' ]`).join(" && ")).join(" || ");s.push(` ${RE(o)}) if ${a}; then command rsp ${e} "$@"; else command ${e} "$@"; fi ;;`)}return s.push(` *) command ${e} "$@" ;;`," esac","}"),s}function WD(e){let t=new Map;for(let[r,...n]of e){if(!r)continue;let s=t.get(r)??[];s.push(n),t.set(r,s)}return t}function JD(e){let t=new Map;for(let r of e){let n=r.command[0];if(!n||!ga(n))continue;let s=t.get(n)??[];s.push(r),t.set(n,s)}return t}function ga(e){return!!(e&&/^[A-Za-z0-9_./:-]+$/.test(e))}function RE(e){return e.replace(/[\\|)&;]/g,"\\$&")}function VD(e){return e.replace(/'/g,"'\\''")}function KD(e){return e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}var SE=h(()=>{"use strict";Ks()});function Hd(e){if(typeof e!="object"||e===null)return!1;let t=e;return t.schemaVersion===1&&typeof t.id=="string"&&t.id.length>0&&typeof t.emitter=="string"&&t.emitter.length>0&&typeof t.occurredAt=="string"&&typeof t.taskClass=="string"&&zD(t.chosenOption)&&YD(t.outcome)&&QD(t.cost)}function zD(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.kind=="string"&&t.kind.length>0}function YD(e){return e==="success"||e==="failure"||e==="escalated"}function QD(e){if(typeof e!="object"||e===null)return!1;let t=e.signal;return t==="none"||t==="low"||t==="medium"||t==="high"||t==="unknown"}var TE=h(()=>{});import{createHash as XD}from"node:crypto";function NE(e,t){return new Wd(e,t)}function vE(e){let t=Number(e.red_entity_id??e.rid),r=Jd(e.properties??e.PROPERTIES),n=FE(String(e.node_type??e.NODE_TYPE??r.kind??"note"));if(!Number.isFinite(t))return null;let s=String(r.id??e.label??e.LABEL??t),o=String(r.title??e.label??e.LABEL??s),i=String(r.content??""),a=Array.isArray(r.tags)?r.tags.map(String):[],c=Date.now();return{rid:t,label:String(e.label??e.LABEL??s),kind:n,properties:{...r,id:s,title:o,content:i,tags:a,created_at:Number(r.created_at??c),updated_at:Number(r.updated_at??r.created_at??c),hash:String(r.hash??"")}}}function xE(e){let t=Number(e.red_entity_id??e.rid),r=Number(e.from??e.FROM??e.from_rid??e.source),n=Number(e.to??e.TO??e.to_rid??e.target),s=ME(String(e.label??e.LABEL??"related_to"));return!Number.isFinite(t)||!Number.isFinite(r)||!Number.isFinite(n)?null:{rid:t,kind:s,from_rid:r,to_rid:n,weight:Number(e.weight??1),properties:Jd(e.properties??e.PROPERTIES)}}function t$(e){let t=Number(e.red_entity_id??e.rid),r=Jd(e.properties??e.PROPERTIES);return!Number.isFinite(t)||!Hd(r)?null:{rid:t,event:r}}function Jd(e){return e==null?{}:typeof e=="string"?JSON.parse(e):ha(e)?e:{}}function FE(e){let t=e==="contact"?"person":e;if(ZD.has(t))return t;throw new Error(`invalid Brain artifact kind: ${e}`)}function ME(e){if(e$.has(e))return e;throw new Error(`invalid Brain connection kind: ${e}`)}function r$(e){return e==="hour"||e==="week"||e==="month"?e:"day"}function CE(e){if(typeof e=="number")return e;let t=String(e??"");return/^\d+$/.test(t)?Number(t):t}function Nr(e){return ha(e)?e:{}}function OE(e,t){return Nr(e)[t]}function AE(e,t){let r=e[t];if(typeof r!="string")throw new Error(`brain ${t} must be a string`);return r}function PE(e,t){let r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function IE(e){let t=Nr(e);return{excludeRids:Array.isArray(t.excludeRids)?t.excludeRids.map(Number).filter(Number.isFinite):void 0}}function Ie(e){return typeof e=="string"&&e.length>0?e:void 0}function ha(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function qd(e){return e!=null}function n$(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean))).sort()}function s$(e){return XD("sha256").update(JSON.stringify(e)).digest("hex")}function o$(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"artifact"}function LE(e){return`artifact-hash:${e}`}function GE(e,t,r){return`connection:${e}:${t}:${r}`}function DE(){return"model-tier-bandit:v1"}function i$(e){return e.toLowerCase().split(/[^a-z0-9_]+/).map(t=>t.trim()).filter(t=>t.length>1)}function $E(e,t){let r=0,n=e.indexOf(t);for(;n>=0;)r++,n=e.indexOf(t,n+t.length);return r}function BE(e,t){let r=e.properties.title.toLowerCase(),n=e.properties.content.toLowerCase(),s=e.properties.tags.map(i=>i.toLowerCase()),o=e.kind.toLowerCase();return{lexical:t.reduce((i,a)=>i+$E(r,a)*3+$E(n,a),0),tags:t.reduce((i,a)=>i+s.reduce((c,u)=>c+(u===a?4:u.includes(a)||a.includes(u)?2:0),0),0),kind:t.reduce((i,a)=>i+(o===a?3:o.includes(a)||a.includes(o)?1:0),0)}}function a$(e,t,r,n){let s=0;for(let o of r){let i=o.from_rid===e.rid?o.to_rid:o.to_rid===e.rid?o.from_rid:null;if(i==null)continue;let a=n.get(i);if(!a)continue;let c=jE({...BE(a,t),connections:0,vector:0}).total;c>0&&(s+=Math.min(c,12)*.35)}return $r(s)}function jE(e){return{...e,lexical:$r(e.lexical),tags:$r(e.tags),kind:$r(e.kind),connections:$r(e.connections),vector:$r(e.vector),total:$r(e.lexical+e.tags+e.kind+e.connections+e.vector)}}function $r(e){return Math.round(e*1e3)/1e3}function c$(e,t){if(e.length<=220)return e;let r=e.toLowerCase(),n=t.map(o=>r.indexOf(o)).filter(o=>o>=0).sort((o,i)=>o-i)[0]??0,s=Math.max(0,n-80);return`${s>0?"...":""}${e.slice(s,s+220)}${s+220<e.length?"...":""}`}function u$(e,t){let r=t.length===0?"none":t[0].score>=5?"high":t[0].score>=3?"medium":"low",n=t.length===0?[`No Brain artifacts matched "${e}".`]:[];return{answer:t.length===0?`Brain has no cited evidence for "${e}".`:`Brain found ${t.length} cited artifact${t.length===1?"":"s"} for "${e}".`,hits:t,citations:t.map((s,o)=>({ref:`B${o+1}`,rid:s.artifact.rid,id:s.artifact.properties.id,title:s.artifact.properties.title,kind:s.artifact.kind,score:s.score,score_breakdown:s.score_breakdown,excerpt:s.excerpt})),confidence:r,missing_evidence:n}}function l$(e){let t={};for(let r of e)t[r]=(t[r]??0)+1;return t}var bt,ZD,e$,Wd,UE=h(()=>{"use strict";TE();bt={artifacts:"brain_artifacts",connections:"brain_connections",outcomeEvents:"brain_outcome_events",kv:"brain_kv"},ZD=new Set(["pillar","decision","concept","question","playbook","task","event","pattern","hypothesis","fact","source","bookmark","note","reference","custom","project","idea","meeting","claim","organization","person"]),e$=new Set(["supports","contradicts","depends_on","derived_from","related_to","part_of","preceded_by","followed_by","authored","tagged"]),Wd=class{constructor(t,r){this.db=t;this.uri=r}async request(t,r){if(await this.bootstrap(),t==="status")return await this.status();if(t==="capture")return await this.capture(Nr(r));if(t==="getArtifact")return await this.getArtifact(OE(r,"ridOrId"));if(t==="listArtifacts")return await this.listArtifacts();if(t==="search"){let n=Nr(r);return await this.search(AE(n,"query"),PE(n,"limit")??10,IE(n.options))}if(t==="think"){let n=Nr(r);return await this.think(AE(n,"query"),PE(n,"limit")??8,IE(n.options))}if(t==="link")return await this.link(Nr(r));if(t==="backlinks")return await this.backlinks(OE(r,"target"));if(t==="listConnections")return await this.listConnections();if(t==="eventKpis")return await this.eventKpis(Nr(r));if(t==="appendOutcomeEvent")return await this.appendOutcomeEvent(r);if(t==="replayOutcomeEvents")return await this.replayOutcomeEvents();if(t==="loadModelTierBanditDocument")return await this.loadModelTierBanditDocument();if(t==="saveModelTierBanditDocument")return await this.saveModelTierBanditDocument(r);if(t==="refreshModelTierBanditDocument")return await this.refreshModelTierBanditDocument();throw new Error(`unsupported resident brain action: ${t}`)}async bootstrap(){await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${bt.artifacts}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${bt.connections}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${bt.outcomeEvents}`)}async status(){let t=await this.listArtifacts(),r=await this.listConnections();return{uri:this.uri,artifacts:t.length,connections:r.length,kinds:l$(t.map(n=>n.kind))}}async capture(t){let r=Ie(t.title)||"Untitled artifact",n=Ie(t.content);if(!n)throw new Error("brain capture requires content");let s=FE(Ie(t.kind)||"note"),o=n$(Array.isArray(t.tags)?t.tags.map(String):[]),i=Date.now(),a=s$([s,r,n,o,Ie(t.sourcePath),Ie(t.sourceSession)]),c=await this.kv().get(LE(a));if(c!=null){let f=await this.getArtifact(Number(c));if(f)return f}let u=`${o$(r)}-${a.slice(0,8)}`,l={id:u,title:r,content:n,tags:o,source_agent:Ie(t.sourceAgent),source_runner:Ie(t.sourceRunner),source_session:Ie(t.sourceSession),source_path:Ie(t.sourcePath),created_at:i,updated_at:i,hash:a,metadata:ha(t.metadata)?t.metadata:void 0},p=(await this.db.query(`INSERT INTO ${bt.artifacts} NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *`,u,s,a,l)).rows[0];if(!p)throw new Error("INSERT artifact returned no row");let g=vE(p);if(!g)throw new Error("INSERT artifact returned invalid row");return await this.kv().put(LE(a),g.rid),await this.materializeTagConnections(g),g}async getArtifact(t){let r=await this.listArtifacts();return typeof t=="number"?r.find(n=>n.rid===t)??null:r.find(n=>n.properties.id===t||n.label===t)??null}async listArtifacts(){return(await this.db.query(`SELECT * FROM ${bt.artifacts}`)).rows.map(vE).filter(qd)}async search(t,r,n={}){let s=i$(t),o=new Set(n.excludeRids??[]),i=await this.listArtifacts(),a=await this.listConnections(),c=new Map(i.map(u=>[u.rid,u]));return i.filter(u=>!o.has(u.rid)).map(u=>{let l=BE(u,s),d=jE({...l,connections:a$(u,s,a,c),vector:0});return{artifact:u,score:d.total,score_breakdown:d,excerpt:c$(u.properties.content,s)}}).filter(u=>u.score>0).sort((u,l)=>l.score-u.score||l.artifact.properties.updated_at-u.artifact.properties.updated_at).slice(0,Math.max(1,Math.min(100,r)))}async think(t,r,n={}){let s=(await this.search(t,Math.max(r*2,r+5),n)).slice(0,r);return u$(t,s)}async link(t){let r=await this.getArtifact(CE(t.from)),n=await this.getArtifact(CE(t.to));if(!r)throw new Error(`Brain artifact not found: ${String(t.from)}`);if(!n)throw new Error(`Brain artifact not found: ${String(t.to)}`);let s=ME(Ie(t.kind)||"related_to"),o=await this.findConnection(r.rid,n.rid,s);if(o!=null){let l=(await this.listConnections()).find(d=>d.rid===o);if(l)return l}let i={reason:Ie(t.reason),confidence:Ie(t.confidence)||"explicit",created_at:Date.now(),metadata:ha(t.metadata)?t.metadata:void 0},c=(await this.db.query(`INSERT INTO ${bt.connections} EDGE (label, from, to, weight, properties) VALUES ($1, $2, $3, $4, $5) RETURNING *`,s,r.rid,n.rid,1,i)).rows[0];if(!c)throw new Error("INSERT connection returned no row");let u=xE(c);if(!u)throw new Error("INSERT connection returned invalid row");return await this.kv().put(GE(r.rid,n.rid,s),u.rid),u}async backlinks(t){let r=await this.getArtifact(t);if(!r)throw new Error(`Brain artifact not found: ${t}`);return(await this.listConnections()).filter(n=>n.to_rid===r.rid)}async listConnections(){return(await this.db.query(`SELECT * FROM ${bt.connections}`)).rows.map(xE).filter(qd)}async eventKpis(t){let r=(await this.listArtifacts()).filter(o=>o.kind==="event"),n=r$(Ie(t.interval)||"day"),s=Ie(t.timeField)==="ingested"?"ingested":"event";return{kind:"event",interval:n,timeField:s,range:{from:null,to:null},total:r.length,series:[{group:null,total:r.length,buckets:[]}]}}async appendOutcomeEvent(t){if(!Hd(t))throw new Error("invalid Brain outcome event");if(!(await this.db.query(`INSERT INTO ${bt.outcomeEvents} NODE (label, node_type, properties) VALUES ($1, $2, $3) RETURNING *`,t.id,`outcome_event.v${t.schemaVersion}`,t)).rows[0])throw new Error("INSERT outcome event returned no row");return t}async replayOutcomeEvents(){return(await this.db.query(`SELECT * FROM ${bt.outcomeEvents}`)).rows.map(t$).filter(qd).sort((r,n)=>r.rid-n.rid).map(({event:r})=>r)}async loadModelTierBanditDocument(){let t=await this.kv().get(DE());return typeof t=="string"?JSON.parse(t):t}async saveModelTierBanditDocument(t){return await this.kv().put(DE(),JSON.stringify(t)),t}async refreshModelTierBanditDocument(){let t=await this.loadModelTierBanditDocument();if(t!=null)return t;let r={schema_version:"brain.model-tier-bandit.v1",updated_at:new Date().toISOString(),arms:{}};return await this.saveModelTierBanditDocument(r),r}async materializeTagConnections(t){if(t.properties.metadata?.derived_kind!=="tag")for(let r of t.properties.tags){let n=await this.capture({title:r,content:`Tag: ${r}`,kind:"custom",tags:["tag"],metadata:{derived:!0,derived_kind:"tag"}});await this.link({from:t.rid,to:n.rid,kind:"tagged",confidence:"derived"})}}async findConnection(t,r,n){let s=await this.kv().get(GE(t,r,n));return s!=null?Number(s):null}kv(){return this.db.kv(bt.kv)}}});import{join as d$}from"node:path";function WE(e){let t=yu({path:d$(X(e.rootDir),"github","spend.toonl")}),r=qu({token:e.token,attribution:t,...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}});return p$(r)}function p$(e){return{async read(t){let r=gu(t.args);if(r.kind!=="read")return Zs(r,"github-write-passthrough","writes are executed by the original gh command unchanged");if(t.actor.trim()==="")return Zs(r,"github-actor-missing","retry through rsp so the caller can be attributed");if(r.budget==="search")return Zs(r,"github-search-not-routable","search reads are never a fallback; narrow the read to a classified object");try{if(r.surface==="graphql"){let s=m$(r,t);if(!s)return Zs(r,"github-graphql-read-not-realized","use a classified rsp summary whose GraphQL projection is declared");let o=await e.graphql(s.query,s.variables,{operation:r,actor:t.actor});return{status:0,stdout:JSON.stringify(s.decode(o)),stderr:"",surface:r.surface,pool:r.budget,quotaFree:!1}}let n=await e.conditionalRest({cacheKey:h$(t.path,t.params),route:`GET /${t.path.replace(/^\/+/,"")}`,parameters:y$(t.params),operation:r,actor:t.actor});return{status:0,stdout:JSON.stringify(n.data),stderr:"",surface:r.surface,pool:r.budget,quotaFree:n.quotaFree}}catch(n){return Wu(n)?Zs(r,"github-budget-refused","wait for the reported GitHub rate-limit reset, then retry"):{status:b$(n),stdout:"",stderr:n instanceof Error?n.message:String(n),surface:r.surface,pool:r.budget,quotaFree:!1}}}}}function m$(e,t){let r=Vd(t.params,"owner"),n=Vd(t.params,"repo");if(!r||!n)return null;let s=f$(t.params,"per_page",30),o=[String(t.params?.state??"open").toUpperCase()];return e.key==="issue list"?{query:`query RspIssueList($owner: String!, $repo: String!, $first: Int!, $states: [IssueState!], $labels: [String!]) {
170
+ repository(owner: $owner, name: $repo) {
171
+ issues(first: $first, states: $states, labels: $labels, orderBy: {field: UPDATED_AT, direction: DESC}) {
172
+ nodes { number title body state url updatedAt author { login } labels(first: 100) { nodes { name } } }
173
+ }
174
+ }
175
+ }`,variables:{owner:r,repo:n,first:s,states:o,labels:g$(t.params,"labels")},decode:i=>HE(i,"issues").map(a=>({number:a.number,title:a.title,body:a.body,state:String(a.state??"").toLowerCase(),html_url:a.url,updated_at:a.updatedAt,user:a.author,labels:qE(a.labels)}))}:e.key==="pr list"?{query:`query RspPrList($owner: String!, $repo: String!, $first: Int!, $states: [PullRequestState!]) {
176
+ repository(owner: $owner, name: $repo) {
177
+ pullRequests(first: $first, states: $states, orderBy: {field: UPDATED_AT, direction: DESC}) {
178
+ nodes { number title body state url updatedAt isDraft author { login } baseRefName headRefName labels(first: 100) { nodes { name } } }
179
+ }
180
+ }
181
+ }`,variables:{owner:r,repo:n,first:s,states:o},decode:i=>HE(i,"pullRequests").map(a=>({number:a.number,title:a.title,body:a.body,state:String(a.state??"").toLowerCase(),html_url:a.url,updated_at:a.updatedAt,draft:a.isDraft===!0,user:a.author,base:{ref:a.baseRefName},head:{ref:a.headRefName},labels:qE(a.labels)}))}:null}function HE(e,t){let r=eo(e.repository),n=eo(r?.[t]);return Array.isArray(n?.nodes)?n.nodes.map(eo).filter(s=>s!==null):[]}function qE(e){let t=eo(e);return Array.isArray(t?.nodes)?t.nodes.map(eo).filter(r=>r!==null):[]}function eo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Vd(e,t){let r=e?.[t];return typeof r=="string"?r.trim():""}function f$(e,t,r){let n=Number(e?.[t]);return Number.isSafeInteger(n)&&n>0?n:r}function g$(e,t){let r=Vd(e,t);return r===""?null:r.split(",").map(n=>n.trim()).filter(Boolean)}function Zs(e,t,r){return{status:75,stdout:"",stderr:JSON.stringify({refused:!0,reason:t,operation:e.key,pool:e.budget,repair:r}),surface:e.surface,pool:e.budget,quotaFree:!1,refused:!0}}function h$(e,t){return JSON.stringify({path:e,params:Object.entries(t??{}).filter(r=>r[1]!==void 0).sort(([r],[n])=>r.localeCompare(n))})}function y$(e){return Object.fromEntries(Object.entries(e??{}).filter(t=>t[1]!==void 0))}function b$(e){if(typeof e=="object"&&e!==null&&"status"in e){let t=e.status;if(typeof t=="number"&&Number.isInteger(t)&&t>0)return t}return 1}var JE=h(()=>{"use strict";Ju();Le()});var oR={};K(oR,{runResidentServer:()=>T$});import{randomUUID as An}from"node:crypto";import{execFileSync as ZE,spawn as w$}from"node:child_process";import{existsSync as _$}from"node:fs";import{mkdir as eR,rename as E$,rm as VE,writeFile as tR}from"node:fs/promises";import{createServer as R$}from"node:net";import{dirname as Qd,join as ya}from"node:path";import{fileURLToPath as k$,pathToFileURL as S$}from"node:url";async function T$(e){await eR(Qd(e.socketPath),{recursive:!0});let t=F$();N$();let r=e.telemetryDrainTimeoutMs??rR,n={kind:"opening",startedAt:process.hrtime.bigint()},s,o=!1,i=e.github??V$(e.rootDir??process.cwd()),a=e.idleMs??Ko,c,u,l=!1,d=new Set,p=e.telemetryDrainIntervalMs??3e4,g=R$(L=>{d.add(L),L.once("close",()=>d.delete(L)),k(),W$(L,async(F,q)=>{k();let se=await J$(n,F,e.storeUri,e.residentVersion??"0.0.0-dev",i),re={id:F.id,ok:!0,value:se,storeOpenCount:n.kind==="ready"?n.storeOpenCount:void 0,storeElapsedMs:n.kind==="ready"?n.storeElapsedMs:void 0};q(re),F.op==="handover"&&setImmediate(()=>f())})});function f(){o=!0,l=!0,u=$$(u),g.close();for(let L of d)L.destroy()}function k(){n.kind!=="opening"&&(c&&clearTimeout(c),c=setTimeout(()=>{f()},a),c.unref())}let y=["SIGINT","SIGTERM"].map(L=>{let F=()=>{ba(),g.close();for(let q of d)q.destroy();setTimeout(()=>process.exit(0),1e3)};return process.once(L,F),{signal:L,handler:F}});await new Promise((L,F)=>{g.once("error",F),g.listen(e.socketPath,()=>{g.off("error",F),L()})}),(async()=>{let L=process.hrtime.bigint();process.env.RSP_TEST_HANG_RESIDENT_STORE_OPEN==="1"&&await new Promise(()=>{});let F=Number(process.env.RSP_TEST_DELAY_RESIDENT_STORE_OPEN_MS??"0");Number.isFinite(F)&&F>0&&await new Promise(de=>setTimeout(de,F));let q=await Cr.open({uri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,allowResidentOpen:!0}),se=Number(process.hrtime.bigint()-L)/1e6,re=new Yd(q,{rootDir:e.rootDir??process.cwd(),ttlDays:e.telemetryTtlDays??Jo,byteBudget:e.telemetryByteBudget??e.byteBudget??Vo});if(o){await q.close();return}if(await Kd(re,r),o){await q.close();return}n={kind:"ready",store:q,telemetry:re,storeOpenCount:1,storeElapsedMs:se},s=setInterval(()=>{let de=n.kind==="ready"?n:void 0;de&&Kd(de.telemetry,r)},p),s.unref(),k()})().catch(L=>{n={kind:"failed",error:L instanceof Error?L:new Error(String(L))},k()}),e.pidPath&&await tR(e.pidPath,`${process.pid}
182
+ `,{encoding:"utf8",mode:384});let _=e.residentVersion??"0.0.0-dev",T=e.registryPath??ya(X(e.rootDir??process.cwd()),"rsp-resident.pid.json");try{await xo(T,{socket_path:e.socketPath,store_uri:e.storeUri,resident_version:_})}catch{}await new Promise(L=>g.once("close",L)),c&&clearTimeout(c),s&&clearInterval(s),await VE(e.socketPath,{force:!0});let C=n;C.kind==="ready"&&(await Kd(C.telemetry,r,l),await C.store.close()),u&&clearTimeout(u);for(let{signal:L,handler:F}of y)process.off(L,F);t?.kill("SIGTERM"),ba(),e.pidPath&&await VE(e.pidPath,{force:!0}),await Co(T)}async function P$(e,t,r=new Date){let n=await Fi(e,1,r),s=r.toISOString().slice(0,10),o=n.savings.daily_tokens_saved.find(l=>l.date===s)?.tokens_saved??0,i=n.savings.tokens_saved>0?o/n.savings.tokens_saved*n.savings.dollars_saved_estimate_usd:0,a=ya(X(t),O$),c=`${a}.${process.pid}.${Date.now()}.tmp`,u={version:1,tokens_saved_today:o,dollars_saved_today_usd:Math.round(i*1e6)/1e6,show_total_today:n.health.show_total,updated_at:r.toISOString()};n.health.show_total>0&&(u.show_hit_rate=n.health.show_hit_rate),n.decisions.seen>0&&(u.decisions={seen:n.decisions.seen,contributed:n.decisions.contributed}),await eR(Qd(a),{recursive:!0}),await tR(c,`${ne(u)}
183
+ `,{encoding:"utf8",mode:384}),await E$(c,a)}async function Kd(e,t=rR,r=!1){try{r&&process.env.RSP_TEST_HANG_TELEMETRY_DRAIN==="1"&&await new Promise(()=>{}),await sR(e.drainAndSweep(),t,"telemetry drain timed out")}catch(n){process.stderr.write(`rsp resident: telemetry drain failed: ${n instanceof Error?n.message:String(n)}
184
+ `)}}async function I$(e){let t=[];for(let r of A$){let n=await L$(e,r);n.ok||(n.previousModel&&(n.previousModel!=="collection"&&await G$(e,r,n.previousModel),t.push({collection:r,previousModel:n.previousModel})),await e.query(`CREATE KV IF NOT EXISTS ${nR(r)}`))}return t}async function L$(e,t){try{return await e.kv(t).get("__rsp_telemetry_model_probe__"),{ok:!0}}catch(r){let n=r instanceof Error?r.message:String(r);if(/\bnot found\b/i.test(n))return{ok:!1,previousModel:null};let s=n.match(/model mismatch: expected kv, got ([A-Za-z_][A-Za-z0-9_]*)/i);if(s?.[1])return{ok:!1,previousModel:s[1].toLowerCase()};if(/does not allow 'kv' operations/i.test(n))return{ok:!1,previousModel:"collection"};let o=(await e.list()).find(i=>i.name===t);if(o&&o.model!=="kv")return{ok:!1,previousModel:o.model};throw r}}async function G$(e,t,r){let n=D$(r);if(!n)throw new Error(`cannot self-heal telemetry collection ${t}: unsupported model ${r}`);await e.query(`DROP ${n} ${nR(t)}`)}function D$(e){let t=e.toLowerCase();return t==="table"?"TABLE":t==="kv"?"KV":t==="graph"?"GRAPH":t==="queue"?"QUEUE":t==="document"||t==="documents"?"DOCUMENT":null}function nR(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid telemetry collection name: ${e}`);return e}function $$(e){return e&&clearTimeout(e),setTimeout(()=>{ba(),process.exit(0)},C$)}function N$(){KE||(KE=!0,process.on("exit",()=>ba()))}function F$(){if(process.platform==="win32")return;let t=w$(process.execPath,["-e",`
174
185
  const { execFileSync } = require("node:child_process");
175
186
  const parentPid = Number(process.argv[1]);
176
187
  const known = new Set();
@@ -211,26 +222,26 @@ const timer = setInterval(() => {
211
222
  clearInterval(timer);
212
223
  process.exit(0);
213
224
  }, 500);
214
- `,String(process.pid)],{detached:!0,stdio:"ignore"});return t.unref(),t}function pa(){for(let e of t$())try{process.kill(e,"SIGTERM")}catch{}}function t$(){if(process.platform==="win32")return[];let e="";try{e=DG("ps",["-eo","pid=,ppid=,args="],{encoding:"utf8"})}catch{return[]}let t=[];for(let r of e.split(/\n/)){let n=/^\s*(\d+)\s+(\d+)\s+([\s\S]*)$/.exec(r);if(!n)continue;let s=Number(n[1]),o=Number(n[2]),i=n[3]??"";o===process.pid&&/(^|\s)\S*red(?:\.exe)?\s+rpc\s+--stdio(\s|$)/.test(i)&&t.push(s)}return t}async function r$(e){if(e.collection!==Fe)return e;let t=await IE(e.raw_text,DE(e.raw_bytes)),r=await IE(e.emitted_text,DE(e.emitted_bytes)),{raw_text:n,emitted_text:s,...o}=e;return{...o,tokens_raw:t.tokens,tokens_emitted:r.tokens,estimated:t.estimated||r.estimated}}async function IE(e,t){if(typeof e=="string"){let r=Buffer.byteLength(e,"utf8");if(r<=UG)try{return await BE((async()=>({tokens:(await n$())("cl100k_base").encode(e).length,estimated:!1}))(),HG,"telemetry tokenization timed out")}catch{return{tokens:Math.ceil(r/4),estimated:!0}}return{tokens:Math.ceil(r/4),estimated:!0}}return t!=null?{tokens:Math.ceil(t/4),estimated:!0}:{tokens:0,estimated:!1}}async function n$(){return LE??=import(BG(s$()).href).then(e=>{let t=e.getEncoding;if(!t)throw new Error("js-tiktoken getEncoding export not found");return t}),await LE}function s$(){let e=Bd(MG(import.meta.url)),r=[da(e,"..","node_modules","js-tiktoken","dist","index.js"),da(e,"..","apps","rsp","node_modules","js-tiktoken","dist","index.js")].find(n=>$G(n));if(!r)throw new Error("js-tiktoken dependency not found");return r}function DE(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function we(e){return typeof e=="string"&&e.trim()!==""?e:void 0}function Fd(e){return e.trim().split(/\s+/).filter(Boolean)[0]??"unknown"}async function BE(e,t,r){let n;try{return await Promise.race([e,new Promise((s,o)=>{n=setTimeout(()=>o(new Error(r)),t),n.unref()})])}finally{n&&clearTimeout(n)}}function o$(e){try{return JSON.parse(e)}catch{return e}}function i$(e){return GE(e)&&e.version===1&&Array.isArray(e.records)&&e.records.every(t=>GE(t)&&(t.collection===Ce||t.collection===he||t.collection===Fe||t.collection===ft)&&typeof t.key=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&typeof t.bytes=="number")}function GE(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function a$(e,t){Nm(e,(r,n)=>t(r,n),(r,n,s)=>{s({id:n?.id??An(),ok:!1,error:r instanceof Error?r.message:String(r)})})}async function c$(e,t,r,n){if(t.op==="handover")return{handover:!0,version:n,clientVersion:t.clientVersion};if(e.kind==="opening")throw new Error("rsp resident store is not ready");if(e.kind==="failed")throw new Error(`rsp resident store failed to open: ${e.error.message}`);let s=e.store;if(t.op==="ping")return{pong:!0,version:n};if(t.op==="stats")return await s.stats();if(t.op==="recovery-handles")return await s.recoveryHandles(t.limit);if(t.op==="accounting-stats"){let o=s.redDb();if(!o)throw new Error("rsp accounting stats require the shared RedDB store");return await Uu(o,t.byteBudget)}if(t.op==="telemetry-stats"){let o=s.redDb();if(!o)throw new Error("rsp telemetry stats require the shared RedDB store");return await gi(o,t.sinceDays)}if(t.op==="telemetry-gains"){let o=s.redDb();if(!o)throw new Error("rsp telemetry gains require the shared RedDB store");return await Hu(o,t.sinceDays)}if(t.op==="mint")return{handle:await s.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return l$(await s.get(t.handle));if(t.op==="memory")return await s.memory(t.action,t.payload);if(t.op==="brain")return await u$(s,r,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}async function u$(e,t,r,n){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await SE(s,t).request(r,n)}function l$(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var UG,HG,FE,qG,WG,JG,Md,PE,LE,UE=h(()=>{"use strict";$e();xo();_o();Tt();fi();OE();et();Ze();UG=256*1024,HG=500,FE=2e3,qG=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),WG="rsp-status-summary.json",JG=[Ce,he,Fe,ft,ls],Md=class{constructor(t,r){this.store=t;this.opts=r;this.pendingHeals=[...r.bootHeals??[]]}running;pending=!1;pendingHeals;async drainAndSweep(){if(this.running){this.pending=!0,await this.running;return}this.running=(async()=>{do this.pending=!1,await this.drainAndSweepOnce();while(this.pending)})().finally(()=>{this.running=void 0}),await this.running}async drainAndSweepOnce(){let t=this.store.redDb();if(!t)return;let r=await KG(t);r.unshift(...this.pendingHeals),this.pendingHeals=[];let n=await this.readIndex(t),s=n.records.length,o=[...n.records];for(let a of r)o.push(await this.writeDrainDegradation(t,{reason:"telemetry collection model mismatch",command:"rsp resident telemetry drain",source_collection:a.collection,error:`expected kv, got ${a.previousModel}`,bytes:0}));await cu(this.opts.rootDir,async a=>{let c=dn(a);if(!c){let u=await this.writeDrainDegradation(t,{reason:"telemetry parse failed",command:"unknown",bytes:Buffer.byteLength(a,"utf8")});return o.push(u),!0}try{let u=await this.writeEvent(t,c);o.push(u);let l=await this.writeAccountingMirror(t,c);return l&&o.push(l),!0}catch(u){let l=await this.writeDrainDegradation(t,{reason:"telemetry event dropped",command:we(c.command)||"unknown",source_id:we(c.id),source_collection:we(c.collection),error:u instanceof Error?u.message:String(u),bytes:Buffer.byteLength(a,"utf8")});return o.push(l),!0}});let i=o.length>s;await this.prune(t,{version:1,records:o},i),await VG(t,this.opts.rootDir)}async writeEvent(t,r){let n=new Date,s=typeof r.created_at=="string"?r.created_at:n.toISOString(),o=new Date(Date.parse(s)+this.opts.ttlDays*24*60*60*1e3).toISOString(),i=typeof r.id=="string"&&r.id.trim()!==""?r.id:An(),a={...await r$(r),id:i,created_at:s,expires_at:o};return await t.kv(r.collection).put(i,a),{collection:r.collection,key:i,created_at:s,expires_at:o,bytes:r.collection===Ce?0:typeof r.bytes=="number"&&Number.isFinite(r.bytes)?Math.max(0,r.bytes):Buffer.byteLength(JSON.stringify(a),"utf8")}}async writeAccountingMirror(t,r){return r.collection===Ce||r.accounting_recorded===!0?null:r.collection===Fe?await this.writeEvent(t,{collection:Ce,id:`mirror:${we(r.id)||An()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:Fd(we(r.command)||"unknown"),wrapper:r.wrapper,loss:r.loss,elided:r.elided,raw_bytes:r.raw_bytes,emitted_bytes:r.emitted_bytes,tokens_raw:r.tokens_raw,tokens_emitted:r.tokens_emitted,estimated:r.estimated,wrapper_ms:r.wrapper_ms,store_open_count:r.store_open_count,store_elapsed_ms:r.store_elapsed_ms}):r.collection===ft?await this.writeEvent(t,{collection:Ce,id:`mirror:${we(r.id)||An()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:Fd(we(r.command)||"unknown"),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:we(r.reason)||"unknown",wrapper_family:we(r.wrapper_family),wrapper_exit_code:r.wrapper_exit_code,stderr_head:we(r.stderr_head)}):null}async writeDrainDegradation(t,r){let n=await this.writeEvent(t,{collection:ft,id:An(),created_at:new Date().toISOString(),reason:r.reason,command:r.command,bytes:r.bytes,source_id:r.source_id,source_collection:r.source_collection,error:r.error});return await this.writeEvent(t,{collection:Ce,id:`mirror:${An()}`,created_at:n.created_at,event_type:"invocation",command:r.command,command_class:Fd(r.command),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:r.reason,source_id:r.source_id,source_collection:r.source_collection,error:r.error}),n}async readIndex(t){let r=await t.kv(ls).get("index:v1"),n=typeof r=="string"?o$(r):r;return i$(n)?n:{version:1,records:[]}}async writeIndex(t,r){await t.kv(ls).put("index:v1",r)}async prune(t,r,n=!1){let s=Date.now(),o=[];for(let a of r.records)Date.parse(a.expires_at)<=s?await t.kv(a.collection).delete(a.key):o.push(a);let i=o.reduce((a,c)=>a+c.bytes,0);for(o.sort((a,c)=>a.created_at.localeCompare(c.created_at));i>this.opts.byteBudget&&o.length>0;){let a=o.shift();i-=a.bytes,await t.kv(a.collection).delete(a.key)}(n||o.length<r.records.length)&&await this.writeIndex(t,{version:1,records:o})}};PE=!1});Ra();ut();var zp={"store-uri":{kind:"value",coerce:e=>e},brief:{kind:"boolean"},terse:{kind:"boolean"},query:{kind:"value",coerce:e=>e}},Gk={json:{kind:"boolean"}},$k={help:{kind:"boolean",aliases:["h"]}},Nk={commands:{dashboard:{},stats:{},gains:{},show:{},git:{},gh:{},vitest:{},cargo:{},cat:{},exec:{},proxy:{},wait:{},doctor:{},status:{},sweep:{},setup:{},mcp:{},"shell-init":{},server:{},"warm-resident":{},"gh-api-json":{},hook:{}},default:"dashboard",keepArgvOnDefault:!0,errorOnUnknownCommand:!0};function Yp(e){let{command:t,args:r}=Ea(e,Fk);return t==="--version"?{kind:"version",json:Gn(r,Gk).values.json===!0}:Mk(e)?{kind:"help"}:{kind:"command"}}var Fk={commands:{"--version":{aliases:["-v"]},run:{}},default:"run",keepArgvOnDefault:!0};function Mk(e){return dr(e,$k).values.help===!0}function Qp(e){let{values:t,rest:r}=jk(e),n=r[0];if(n!==void 0&&n!=="--"&&n.startsWith("--"))throw co.unknownFlag(n);let s=Ea(r,Nk).command,o=[...r],i=t.query;return i!==void 0&&s!=="show"&&o.push("--query",i),{command:s,handle:r[1],storeUri:t["store-uri"],query:i,level:t.terse===!0?"terse":t.brief===!0?"brief":"lossless",positional:o}}var co=class e extends Error{static unknownFlag(t){return new e(`unknown flag: ${t}`)}render(){return J({command:"rsp",category:"usage",error:this.message,help:"rsp --help",validFlags:Bk})}},Bk=Object.keys(zp).map(e=>`--${e}`);function jk(e){try{return dr(e,zp)}catch(t){throw new co(t instanceof Error?t.message:String(t))}}function Xp(e){return J({command:`rsp ${e.token}`,category:"usage",error:`unknown command: ${e.token}`,help:"rsp --help",validFlags:e.known})}function Zp(e){return e instanceof Dn}function Vr(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}var Uk={socket:{kind:"value",coerce:e=>e},"pid-file":{kind:"value",coerce:e=>e},"wake-lock":{kind:"value",coerce:e=>e},registry:{kind:"value",coerce:e=>e},"resident-version":{kind:"value",coerce:e=>e},"ttl-days":{kind:"value",coerce:qt},"ephemeral-ttl-hours":{kind:"value",coerce:qt},"byte-budget":{kind:"value",coerce:qt},"telemetry-ttl-days":{kind:"value",coerce:qt},"telemetry-byte-budget":{kind:"value",coerce:qt},"telemetry-drain-interval-ms":{kind:"value",coerce:qt},"telemetry-drain-timeout-ms":{kind:"value",coerce:qt},"idle-ms":{kind:"value",coerce:qt}};function Wa(e){return Gn(e,Uk).values}var em={since:{kind:"value",coerce:qk},full:{kind:"boolean"}};function uo(e,t){return Gn(e,em).values.since??t}function tm(e){return Gn(e,em).values.full===!0}var Hk={field:{kind:"value",type:"array",aliases:["f","F"],coerce:e=>e}};function rm(e){let{values:t,rest:r}=dr(e,Hk),n=r[1];if(!n)return null;let s={};for(let o of t.field??[]){let i=o.indexOf("=");i<=0||(s[o.slice(0,i)]=o.slice(i+1))}return{path:n,params:s}}function qt(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function qk(e){let t=/^(\d+)(d)?$/.exec(e);if(!t)return;let r=Number(t[1]);return Number.isFinite(r)&&r>0?r:void 0}Ja();ut();import{existsSync as d$}from"node:fs";import{fileURLToPath as p$}from"node:url";Tt();qn();oe();dt();import{existsSync as kA}from"node:fs";import{fileURLToPath as SA}from"node:url";Tt();kc();oe();import{existsSync as wT}from"node:fs";import{fileURLToPath as _T}from"node:url";async function Qr(e,t){let r={stats:ET(e.telemetryByteBudget),telemetry:Cc(t)};if(!e.storeUri.startsWith("file://"))return r;let n=_T(e.storeUri);if(!wT(n))return r;let{residentElisionStore:s}=await Promise.resolve().then(()=>(wr(),es)),o=s(process.cwd(),e);try{return n.endsWith("red-skills.rdb")?{stats:await o.accountingStats(e.telemetryByteBudget),telemetry:await o.telemetryStats(t)}:{stats:await o.stats(),telemetry:Cc(t)}}catch{return r}finally{await o.close()}}function Oc(e,t=Cc(30),r=!1,n=ff()){return`${se(Ac(e,t,r,n))}
215
- `}function mf(e,t){return`${se({...e,overhead:gf(t)})}
216
- `}function ff(){return{schema_version:"red.rsp.overhead.v1",verdict:"green",summary:"every wrapper family is inside its overhead ceiling",ceiling:Ke,breaching_families:[],disabled_families:[],families:[]}}function gf(e){return{schema_version:e.schema_version,verdict:e.verdict,summary:e.summary,ceiling:e.ceiling,breaching_families:e.breaching_families,disabled_families:e.disabled_families,families:e.families}}function Ac(e,t,r,n=ff()){let s=t.savings.top_commands.slice(0,r?10:3),o=r?t.savings.daily_tokens_saved:t.savings.daily_tokens_saved.slice(-7),i=e.storage_classes??Co(),a=t.health.recent_failures.slice(0,r?20:5),c=t.decisions.top_pass_reasons.slice(0,r?10:3);return{records:e.records,bytes:e.bytes,oldest:e.oldest,budget:e.budget,storage_classes:i,savings:{window_days:t.window_days,empty:t.empty,...t.savings,tokens_saved_display:RT(t.savings),dollars_saved_estimate_usd_display:kT(t.savings),daily_tokens_saved:o,daily_tokens_saved_elided:r?0:Math.max(0,t.savings.daily_tokens_saved.length-o.length),top_commands:s,top_commands_elided:r?0:Math.max(0,t.savings.top_commands.length-s.length)},overhead:gf(n),health:{overhead_verdict:n.verdict,overhead_summary:n.summary,...t.health,degradation_rate_display:xc(t.health.degradation_rate),show_hit_rate_display:xc(t.health.show_hit_rate),by_reason:t.health.by_reason,by_family:t.health.by_family,recent_failures:a,recent_failures_elided:r?0:Math.max(0,t.health.recent_failures.length-a.length),most_recent_degradation_at:t.health.most_recent?.timestamp??null,most_recent_degradation_reason:t.health.most_recent?.reason??null},decisions:{...t.decisions,contribution_rate_display:xc(t.decisions.contribution_rate),top_pass_reasons:c,top_pass_reasons_elided:r?0:Math.max(0,t.decisions.top_pass_reasons.length-c.length),by_command_family:r?t.decisions.by_command_family:t.decisions.by_command_family.slice(0,5),by_command_family_elided:r?0:Math.max(0,t.decisions.by_command_family.length-5)},latency:{...t.latency,wrapper_ms_p50_display:vc(t.latency.wrapper_ms_p50),wrapper_ms_p95_display:vc(t.latency.wrapper_ms_p95),store_elapsed_ms_avg_display:vc(t.latency.store_elapsed_ms_avg)}}}function hf(e){return`${se(e)}
217
- `}function Cc(e){return{window_days:e,empty:!0,savings:{invocations:0,elided:0,raw_bytes:0,emitted_bytes:0,bytes_saved:0,tokens_saved:0,tokens_saved_estimated:!1,token_estimate_range_pct:null,tokens_saved_low:null,tokens_saved_high:null,dollars_saved_estimate_usd:0,dollars_saved_low_usd:null,dollars_saved_high_usd:null,pricing_model_family:"gpt-5",pricing_input_usd_per_million_tokens:1.25,pricing_note:"estimate derived from byte-based token estimate when token counts are estimated",daily_tokens_saved:[],top_commands:[]},health:{degradations:0,degradation_rate:0,show_total:0,show_hits:0,show_misses:0,show_hit_rate:0,by_reason:[],by_family:[],recent_failures:[],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},decisions:{seen:0,contributed:0,passed:0,failed_open:0,quota_free_saved_units:0,contribution_rate:0,top_pass_reasons:[],by_command_family:[]}}}function ET(e){return{records:0,bytes:0,oldest:null,budget:e,storage_classes:Co()}}function Co(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}function Pc(e){let t=e.legacyStoreMigrated?"migrated":e.storeCreated?"created":"existing";return[`config: ${e.configChanged?"updated":"unchanged"}`,`store: ${t}`,""].join(`
218
- `)}function RT(e){return e.tokens_saved_estimated?`${e.tokens_saved_low}-${e.tokens_saved_high} (estimate_midpoint: ${e.tokens_saved}, range_pct: ${e.token_estimate_range_pct})`:String(e.tokens_saved)}function kT(e){return e.dollars_saved_low_usd==null||e.dollars_saved_high_usd==null?Zn(e.dollars_saved_estimate_usd):`${Zn(e.dollars_saved_low_usd)}-${Zn(e.dollars_saved_high_usd)} (estimate_midpoint: ${Zn(e.dollars_saved_estimate_usd)})`}function vc(e){return e==null?"none":String(e)}function xc(e){return e.toFixed(4).replace(/0+$/,"").replace(/\.$/,".0")}async function Bb(e){let{stats:t,telemetry:r}=await Qr(e,30),[n,s]=await Promise.all([TA(e),Promise.resolve().then(()=>(Ll(),Il)).then(o=>o.listWaits(process.cwd()),()=>[])]);return{stats:t,telemetry:r,recoveryHandles:n,waits:s,overhead:Wt(lt(process.cwd()).rootDir,e.overhead)}}function jb(e){let t=Ac(e.stats,e.telemetry,!1,e.overhead),r=Ya({executable:{name:"rsp",command:"rsp"},recovery:{pending:e.recoveryHandles.length,handles:e.recoveryHandles},waits:{active:e.waits.length,entries:e.waits},store:{records:e.stats.records,bytes:e.stats.bytes,oldest:e.stats.oldest,budget:e.stats.budget,storage_classes:e.stats.storage_classes??Co()},savings:t.savings,overhead:t.overhead,health:t.health,decisions:t.decisions,latency:t.latency},vA(e));return`${se(r)}
219
- `}async function TA(e){if(!e.storeUri.startsWith("file://"))return[];let t=SA(e.storeUri);if(!kA(t))return[];let{residentElisionStore:r}=await Promise.resolve().then(()=>(wr(),es)),n=r(process.cwd(),e);try{return await n.recoveryHandles(5)}catch{return[]}finally{await n.close()}}function vA(e){return[e.recoveryHandles.length>0?"rsp show <handle>":"rsp <wrapped-command> --terse",e.waits.length>0?"rsp wait ls":'rsp wait cmd -- "<command>"',"rsp stats --since <days>d"]}Tt();oe();ut();import{existsSync as KI}from"node:fs";import{fileURLToPath as zI}from"node:url";et();import{spawn as Hi}from"node:child_process";async function Ow(e,t,r){let n=process.hrtime.bigint(),s=await Aw(e.positional),o=Number(process.hrtime.bigint()-n)/1e6;return lI(t,e,s,o,r),s.signal?(process.kill(process.pid,s.signal),128):s.status??0}async function Aw(e){let t=e[0];if(!t)return{stdoutBytes:0,stderrBytes:0,status:2,signal:null};let r;if(t==="exec"||t==="proxy"){let o=t==="proxy"?await Promise.resolve().then(()=>(Di(),Li)).then(i=>i.parseProxyCommandLine(e)):await Promise.resolve().then(()=>(qs(),Hs)).then(i=>i.parseExecCommandLine(e));r=Hi(o,{shell:!0,stdio:["inherit","pipe","pipe"]})}else r=Hi(t,e.slice(1),{stdio:["inherit","pipe","pipe"]});let n=0,s=0;return r.stdout?.on("data",o=>{n+=o.length,process.stdout.write(o)}),r.stderr?.on("data",o=>{s+=o.length,process.stderr.write(o)}),await new Promise(o=>{r.on("error",i=>{let a=`${i instanceof Error?i.message:String(i)}
220
- `;s+=Buffer.byteLength(a),process.stderr.write(a),o({stdoutBytes:n,stderrBytes:s,status:127,signal:null})}),r.on("close",(i,a)=>o({stdoutBytes:n,stderrBytes:s,status:i,signal:a}))})}function Pw(e){return e>0&&Math.random()<e}async function Js(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw r instanceof Error?r:new Error(e);process.stderr.write(`rsp: ${e}, passing through
221
- `);let s=await Gw(t);if(n){let o=dI(e,t,r),{appendTelemetryEvent:i,RSP_ACCOUNTING_EVENTS_COLLECTION:a,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:c}=await Promise.resolve().then(()=>(et(),As));Wi(i(n,{collection:a,event_type:"invocation",ts:new Date().toISOString(),command:qi(t),command_class:t[0]??"unknown",loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:o.reason,wrapper_family:o.family,wrapper_exit_code:o.exitCode,stderr_head:o.stderrHead})),Wi(i(n,{collection:c,ts:new Date().toISOString(),command:qi(t),reason:o.reason,wrapper_family:o.family,wrapper_exit_code:o.exitCode,stderr_head:o.stderrHead,accounting_recorded:!0}))}return s}async function Iw(e,t,r){let n=await Aw(e),{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:i}=await Promise.resolve().then(()=>(et(),As)),a={ts:new Date().toISOString(),command:qi(e),reason:"overhead-ceiling-self-disabled",wrapper_family:r.family,wrapper_exit_code:n.status??0,stderr_head:r.disabled_reason??r.reasons.join(",")};return Wi(s(t,{collection:o,event_type:"invocation",command_class:e[0]??"unknown",loss:"lossless",raw_bytes:n.stdoutBytes+n.stderrBytes,emitted_bytes:n.stdoutBytes+n.stderrBytes,degradation_reason:a.reason,...a})),Wi(s(t,{collection:i,accounting_recorded:!0,...a})),n.signal?(process.kill(process.pid,n.signal),128):n.status??0}async function Lw(e){return process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp: ${Ji()}, passing through
222
- `),await Gw(e)}function Ji(){return"rsp is not enabled in this directory; run /red-setup"}function Dw(e){return e==="git"||e==="gh"||e==="vitest"||e==="cargo"||e==="cat"||e==="exec"||e==="proxy"||e==="gh-api-json"}function gt(e){return qi(e.positional)}function qi(e){if(e[0]!=="exec")return e.join(" ");try{let t=e.indexOf("--"),r=t>=0?e.slice(t+1):e.slice(1);return r.length===1?r[0]:r.join(" ")}catch{return e.join(" ")}}function Ws(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function lI(e,t,r,n,s){let o=r.stdoutBytes+r.stderrBytes,i={event_type:"control_holdout",control_holdout:!0,holdout_share:s,ts:new Date().toISOString(),command:gt(t),command_class:t.command??"unknown",wrapper:t.command,loss:"lossless",elided:!1,raw_bytes:o,emitted_bytes:o,wrapper_ms:n};Kt(e,{collection:"rsp_accounting_events_v1",...i}),Kt(e,{collection:"rsp_telemetry_invocations_v1",...i,accounting_recorded:!0})}function dI(e,t,r){let n=t[0]??"unknown",s=pI(r)||e;return{reason:Cw(r)==="ENOENT"||Cw(r)==="MODULE_NOT_FOUND"||/(?:command not found|cannot find package|cannot find module|module not found|not provisioned)/i.test(s)?"wrapper-unavailable":"wrapper-crash",family:n,exitCode:fI(r)??1,stderrHead:mI(s,240)}}function pI(e){return e instanceof Error?Ws(e.message):Ws(String(e??""))}function mI(e,t){let r=Ws(e).replace(/\s+/g," ").trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}\u2026`}function Cw(e){if(typeof e!="object"||e===null||!("code"in e))return"";let t=e.code;return typeof t=="string"?t:""}function fI(e){if(typeof e!="object"||e===null)return null;for(let t of["status","exitCode","exit_code"]){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r}return null}function Wi(e){e.catch(()=>{})}async function Gw(e){if(e[0]==="exec"||e[0]==="proxy")return await gI(e);let t=e[0];if(!t)return 2;let r=Hi(t,e.slice(1),{stdio:"inherit"});return await new Promise(n=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
223
- `),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function gI(e){let t;try{if(e[0]==="proxy"){let{parseProxyCommandLine:n}=await Promise.resolve().then(()=>(Di(),Li));t=n(e)}else{let{parseExecCommandLine:n}=await Promise.resolve().then(()=>(qs(),Hs));t=n(e)}}catch(n){return process.stderr.write(`${n instanceof Error?n.message:String(n)}
224
- `),2}let r=Hi(t,{shell:!0,stdio:"inherit"});return await new Promise(n=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
225
- `),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function Xw(e,t,r){let n=[],s=!e.enabled;if(n.push(s?le("config_gate_resolution","rsp disabled in this directory; run /red-setup to opt in"):le("config_gate_resolution","rsp.enabled resolved true for this directory")),s)return n.push(le("hook_wiring","skipped because rsp is disabled"),le("proxy_mode","skipped because rsp is disabled"),le("resident_liveness","skipped because rsp is disabled"),le("store_provisioning","skipped because rsp is disabled"),le("recent_degradation_rate","skipped because rsp is disabled"),le("overhead_budget","skipped because rsp is disabled")),Qw("disabled",n,r);n.push(await YI(e)),n.push(e.proxyEnabled?le("proxy_mode","proxy routing enabled for pre-exec rewrites"):Ir("proxy_mode","proxy routing is explicitly disabled; hook falls back to fixed wrapper capabilities","rsp setup"));let{residentRegistryStatus:o}=await Promise.resolve().then(()=>(dt(),br));if(n.push(QI(await o(t))),n.push(XI(e)),e_(e)){let{telemetry:i}=await Qr(e,r);n.push(ZI(i,r))}else n.push(le("recent_degradation_rate","no telemetry store available yet; no recent degradation spike detected"));return n.push(eL(Wt(process.cwd(),e.overhead))),Qw(n.some(i=>!i.pass)?"fail":"pass",n,r)}function Zw(e){let{exitCode:t,...r}=e;return`${se({...r,exit_code:e.exitCode,probes:e.probes,errors:e.errors})}
226
- `}async function YI(e){try{if(e.proxyEnabled)return le("hook_wiring","pre-exec hook would rewrite git status through rsp proxy");let{rewriteCommand:t}=await Promise.resolve().then(()=>(Ks(),Xi)),r=t("git status");return r.kind==="rewrite"?le("hook_wiring",`pre-exec hook would rewrite git status through ${r.capabilityId}`):Ir("hook_wiring",`pre-exec hook passed git status through: ${r.reason??"unsupported-command"}`,"rsp setup")}catch(t){return Ir("hook_wiring",`pre-exec hook probe failed: ${t instanceof Error?Ws(t.message):"unknown error"}`,"rsp setup")}}function QI(e){return e.state==="registered-alive-socket-healthy"?le("resident_liveness","resident registry points at a healthy socket"):Ir("resident_liveness",`resident registry state is ${e.state}`,"rsp warm-resident")}function XI(e){return e.storeUri.startsWith("file://")?e_(e)?le("store_provisioning","rsp store exists for this directory"):Ir("store_provisioning","rsp store is not provisioned","rsp setup"):le("store_provisioning","non-file store URI configured; provisioning is delegated to that backend")}function ZI(e,t){let r=e.health.by_reason[0];if(e.health.degradations===0)return le("recent_degradation_rate",`0 degradations in the recent ${t}d window`);let n=e.health.degradations,s=r?.reason??e.health.most_recent?.reason??"unknown",o=r?.count??n;return Ir("recent_degradation_rate",`${n} degradation(s) in the recent ${t}d window; dominant reason ${s} (${o})`,tL(s,t))}function eL(e){return e.verdict==="green"?le("overhead_budget",e.summary):Ir("overhead_budget",e.summary,"rsp status")}function tL(e,t){return/unavailable|not provisioned|missing/i.test(e)?"rsp setup":/resident|socket|registry/i.test(e)?"rsp warm-resident":`rsp stats --since ${t}d --full`}function e_(e){if(!e.storeUri.startsWith("file://"))return!0;try{return KI(zI(e.storeUri))}catch{return!1}}function le(e,t){return{name:e,pass:!0,finding:t}}function Ir(e,t,r){return{name:e,pass:!1,finding:t,fix_command:r,error:qa({command:`rsp doctor:${e}`,category:"real-error",error:t,help:r})}}function Qw(e,t,r){return{schema_version:"red.rsp.doctor.v1",status:e,exitCode:e==="fail"?1:0,window_days:r,probes:t,errors:t.map(n=>n.error).filter(n=>!!n)}}Zl();function s_(e){let t=e[0]==="--help"||e[0]==="-h"?void 0:e[0];return`${sL(t).join(`
225
+ `,String(process.pid)],{detached:!0,stdio:"ignore"});return t.unref(),t}function ba(){for(let e of M$())try{process.kill(e,"SIGTERM")}catch{}}function M$(){if(process.platform==="win32")return[];let e="";try{e=ZE("ps",["-eo","pid=,ppid=,args="],{encoding:"utf8"})}catch{return[]}let t=[];for(let r of e.split(/\n/)){let n=/^\s*(\d+)\s+(\d+)\s+([\s\S]*)$/.exec(r);if(!n)continue;let s=Number(n[1]),o=Number(n[2]),i=n[3]??"";o===process.pid&&/(^|\s)\S*red(?:\.exe)?\s+rpc\s+--stdio(\s|$)/.test(i)&&t.push(s)}return t}async function B$(e){if(e.collection!==je)return e;let t=await zE(e.raw_text,QE(e.raw_bytes)),r=await zE(e.emitted_text,QE(e.emitted_bytes)),{raw_text:n,emitted_text:s,...o}=e;return{...o,tokens_raw:t.tokens,tokens_emitted:r.tokens,estimated:t.estimated||r.estimated}}async function zE(e,t){if(typeof e=="string"){let r=Buffer.byteLength(e,"utf8");if(r<=v$)try{return await sR((async()=>({tokens:(await j$())("cl100k_base").encode(e).length,estimated:!1}))(),x$,"telemetry tokenization timed out")}catch{return{tokens:Math.ceil(r/4),estimated:!0}}return{tokens:Math.ceil(r/4),estimated:!0}}return t!=null?{tokens:Math.ceil(t/4),estimated:!0}:{tokens:0,estimated:!1}}async function j$(){return YE??=import(S$(U$()).href).then(e=>{let t=e.getEncoding;if(!t)throw new Error("js-tiktoken getEncoding export not found");return t}),await YE}function U$(){let e=Qd(k$(import.meta.url)),r=[ya(e,"..","node_modules","js-tiktoken","dist","index.js"),ya(e,"..","apps","rsp","node_modules","js-tiktoken","dist","index.js")].find(n=>_$(n));if(!r)throw new Error("js-tiktoken dependency not found");return r}function QE(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function we(e){return typeof e=="string"&&e.trim()!==""?e:void 0}function zd(e){return e.trim().split(/\s+/).filter(Boolean)[0]??"unknown"}async function sR(e,t,r){let n;try{return await Promise.race([e,new Promise((s,o)=>{n=setTimeout(()=>o(new Error(r)),t),n.unref()})])}finally{n&&clearTimeout(n)}}function H$(e){try{return JSON.parse(e)}catch{return e}}function q$(e){return XE(e)&&e.version===1&&Array.isArray(e.records)&&e.records.every(t=>XE(t)&&(t.collection===Oe||t.collection===Ae||t.collection===je||t.collection===pt)&&typeof t.key=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&typeof t.bytes=="number")}function XE(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function W$(e,t){Km(e,(r,n)=>t(r,n),(r,n,s)=>{s({id:n?.id??An(),ok:!1,error:r instanceof Error?r.message:String(r)})})}async function J$(e,t,r,n,s){if(t.op==="handover")return{handover:!0,version:n,clientVersion:t.clientVersion};if(e.kind==="opening")throw new Error("rsp resident store is not ready");if(e.kind==="failed")throw new Error(`rsp resident store failed to open: ${e.error.message}`);let o=e.store;if(t.op==="ping")return{pong:!0,version:n};if(t.op==="stats")return await o.stats();if(t.op==="recovery-handles")return await o.recoveryHandles(t.limit);if(t.op==="accounting-stats"){let i=o.redDb();if(!i)throw new Error("rsp accounting stats require the shared RedDB store");return await Ul(i,t.byteBudget)}if(t.op==="telemetry-stats"){let i=o.redDb();if(!i)throw new Error("rsp telemetry stats require the shared RedDB store");return await Fi(i,t.sinceDays)}if(t.op==="telemetry-gains"){let i=o.redDb();if(!i)throw new Error("rsp telemetry gains require the shared RedDB store");return await Hl(i,t.sinceDays)}if(t.op==="mint")return{handle:await o.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return z$(await o.get(t.handle));if(t.op==="github-read")return await s.read({args:t.args,path:t.path,actor:t.actor,...t.params?{params:t.params}:{}});if(t.op==="memory")return await o.memory(t.action,t.payload);if(t.op==="brain")return await K$(o,r,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}function V$(e){let t;return{async read(r){if(!t){let n=String(ZE("gh",["auth","token"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})).trim();if(n==="")throw new Error("rsp resident could not obtain a GitHub credential from gh");t=WE({rootDir:e,token:n})}return await t.read(r)}}}async function K$(e,t,r,n){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await NE(s,t).request(r,n)}function z$(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var v$,x$,rR,C$,O$,A$,Yd,KE,YE,iR=h(()=>{"use strict";Le();Oo();Ro();vt();Ni();UE();JE();mt();Be();v$=256*1024,x$=500,rR=2e3,C$=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),O$="rsp-status-summary.json",A$=[Oe,Ae,je,pt,hs],Yd=class{constructor(t,r){this.store=t;this.opts=r;this.pendingHeals=[...r.bootHeals??[]]}running;pending=!1;pendingHeals;async drainAndSweep(){if(this.running){this.pending=!0,await this.running;return}this.running=(async()=>{do this.pending=!1,await this.drainAndSweepOnce();while(this.pending)})().finally(()=>{this.running=void 0}),await this.running}async drainAndSweepOnce(){let t=this.store.redDb();if(!t)return;let r=await I$(t);r.unshift(...this.pendingHeals),this.pendingHeals=[];let n=await this.readIndex(t),s=n.records.length,o=[...n.records];for(let a of r)o.push(await this.writeDrainDegradation(t,{reason:"telemetry collection model mismatch",command:"rsp resident telemetry drain",source_collection:a.collection,error:`expected kv, got ${a.previousModel}`,bytes:0}));await cl(this.opts.rootDir,async a=>{let c=fn(a);if(!c){let u=await this.writeDrainDegradation(t,{reason:"telemetry parse failed",command:"unknown",bytes:Buffer.byteLength(a,"utf8")});return o.push(u),!0}try{let u=await this.writeEvent(t,c);o.push(u);let l=await this.writeAccountingMirror(t,c);return l&&o.push(l),!0}catch(u){let l=await this.writeDrainDegradation(t,{reason:"telemetry event dropped",command:we(c.command)||"unknown",source_id:we(c.id),source_collection:we(c.collection),error:u instanceof Error?u.message:String(u),bytes:Buffer.byteLength(a,"utf8")});return o.push(l),!0}});let i=o.length>s;await this.prune(t,{version:1,records:o},i),await P$(t,this.opts.rootDir)}async writeEvent(t,r){let n=new Date,s=typeof r.created_at=="string"?r.created_at:n.toISOString(),o=new Date(Date.parse(s)+this.opts.ttlDays*24*60*60*1e3).toISOString(),i=typeof r.id=="string"&&r.id.trim()!==""?r.id:An(),a={...await B$(r),id:i,created_at:s,expires_at:o};return await t.kv(r.collection).put(i,a),{collection:r.collection,key:i,created_at:s,expires_at:o,bytes:r.collection===Oe?0:typeof r.bytes=="number"&&Number.isFinite(r.bytes)?Math.max(0,r.bytes):Buffer.byteLength(JSON.stringify(a),"utf8")}}async writeAccountingMirror(t,r){return r.collection===Oe||r.accounting_recorded===!0?null:r.collection===je?await this.writeEvent(t,{collection:Oe,id:`mirror:${we(r.id)||An()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:zd(we(r.command)||"unknown"),wrapper:r.wrapper,loss:r.loss,elided:r.elided,raw_bytes:r.raw_bytes,emitted_bytes:r.emitted_bytes,tokens_raw:r.tokens_raw,tokens_emitted:r.tokens_emitted,estimated:r.estimated,wrapper_ms:r.wrapper_ms,store_open_count:r.store_open_count,store_elapsed_ms:r.store_elapsed_ms}):r.collection===pt?await this.writeEvent(t,{collection:Oe,id:`mirror:${we(r.id)||An()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:zd(we(r.command)||"unknown"),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:we(r.reason)||"unknown",wrapper_family:we(r.wrapper_family),wrapper_exit_code:r.wrapper_exit_code,stderr_head:we(r.stderr_head)}):null}async writeDrainDegradation(t,r){let n=await this.writeEvent(t,{collection:pt,id:An(),created_at:new Date().toISOString(),reason:r.reason,command:r.command,bytes:r.bytes,source_id:r.source_id,source_collection:r.source_collection,error:r.error});return await this.writeEvent(t,{collection:Oe,id:`mirror:${An()}`,created_at:n.created_at,event_type:"invocation",command:r.command,command_class:zd(r.command),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:r.reason,source_id:r.source_id,source_collection:r.source_collection,error:r.error}),n}async readIndex(t){let r=await t.kv(hs).get("index:v1"),n=typeof r=="string"?H$(r):r;return q$(n)?n:{version:1,records:[]}}async writeIndex(t,r){await t.kv(hs).put("index:v1",r)}async prune(t,r,n=!1){let s=Date.now(),o=[];for(let a of r.records)Date.parse(a.expires_at)<=s?await t.kv(a.collection).delete(a.key):o.push(a);let i=o.reduce((a,c)=>a+c.bytes,0);for(o.sort((a,c)=>a.created_at.localeCompare(c.created_at));i>this.opts.byteBudget&&o.length>0;){let a=o.shift();i-=a.bytes,await t.kv(a.collection).delete(a.key)}(n||o.length<r.records.length)&&await this.writeIndex(t,{version:1,records:o})}};KE=!1});Ca();at();var im={"store-uri":{kind:"value",coerce:e=>e},brief:{kind:"boolean"},terse:{kind:"boolean"},query:{kind:"value",coerce:e=>e}},Zk={json:{kind:"boolean"}},eS={help:{kind:"boolean",aliases:["h"]}},tS={commands:{dashboard:{},stats:{},gains:{},show:{},git:{},gh:{},vitest:{},cargo:{},cat:{},exec:{},proxy:{},wait:{},doctor:{},status:{},sweep:{},setup:{},mcp:{},"shell-init":{},server:{},"warm-resident":{},"gh-api-json":{},hook:{}},default:"dashboard",keepArgvOnDefault:!0,errorOnUnknownCommand:!0};function am(e){let{command:t,args:r}=xa(e,rS);return t==="--version"?{kind:"version",json:Dn(r,Zk).values.json===!0}:nS(e)?{kind:"help"}:{kind:"command"}}var rS={commands:{"--version":{aliases:["-v"]},run:{}},default:"run",keepArgvOnDefault:!0};function nS(e){return dr(e,eS).values.help===!0}function cm(e){let{values:t,rest:r}=oS(e),n=r[0];if(n!==void 0&&n!=="--"&&n.startsWith("--"))throw lo.unknownFlag(n);let s=xa(r,tS).command,o=[...r],i=t.query;return i!==void 0&&s!=="show"&&o.push("--query",i),{command:s,handle:r[1],storeUri:t["store-uri"],query:i,level:t.terse===!0?"terse":t.brief===!0?"brief":"lossless",positional:o}}var lo=class e extends Error{static unknownFlag(t){return new e(`unknown flag: ${t}`)}render(){return V({command:"rsp",category:"usage",error:this.message,help:"rsp --help",validFlags:sS})}},sS=Object.keys(im).map(e=>`--${e}`);function oS(e){try{return dr(e,im)}catch(t){throw new lo(t instanceof Error?t.message:String(t))}}function um(e){return V({command:`rsp ${e.token}`,category:"usage",error:`unknown command: ${e.token}`,help:"rsp --help",validFlags:e.known})}function lm(e){return e instanceof Gn}function Vr(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}var iS={socket:{kind:"value",coerce:e=>e},"pid-file":{kind:"value",coerce:e=>e},"wake-lock":{kind:"value",coerce:e=>e},registry:{kind:"value",coerce:e=>e},"resident-version":{kind:"value",coerce:e=>e},"ttl-days":{kind:"value",coerce:Ht},"ephemeral-ttl-hours":{kind:"value",coerce:Ht},"byte-budget":{kind:"value",coerce:Ht},"telemetry-ttl-days":{kind:"value",coerce:Ht},"telemetry-byte-budget":{kind:"value",coerce:Ht},"telemetry-drain-interval-ms":{kind:"value",coerce:Ht},"telemetry-drain-timeout-ms":{kind:"value",coerce:Ht},"idle-ms":{kind:"value",coerce:Ht}};function Qa(e){return Dn(e,iS).values}var dm={since:{kind:"value",coerce:cS},full:{kind:"boolean"}};function po(e,t){return Dn(e,dm).values.since??t}function pm(e){return Dn(e,dm).values.full===!0}var aS={field:{kind:"value",type:"array",aliases:["f","F"],coerce:e=>e}};function mm(e){let{values:t,rest:r}=dr(e,aS),n=r[1];if(!n)return null;let s={};for(let o of t.field??[]){let i=o.indexOf("=");i<=0||(s[o.slice(0,i)]=o.slice(i+1))}return{path:n,params:s}}function Ht(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function cS(e){let t=/^(\d+)(d)?$/.exec(e);if(!t)return;let r=Number(t[1]);return Number.isFinite(r)&&r>0?r:void 0}Xa();at();import{existsSync as Y$}from"node:fs";import{fileURLToPath as Q$}from"node:url";vt();qn();ae();ut();import{existsSync as KO}from"node:fs";import{fileURLToPath as zO}from"node:url";vt();Ac();ae();import{existsSync as FT}from"node:fs";import{fileURLToPath as MT}from"node:url";async function Qr(e,t){let r={stats:BT(e.telemetryByteBudget),telemetry:Gc(t)};if(!e.storeUri.startsWith("file://"))return r;let n=MT(e.storeUri);if(!FT(n))return r;let{residentElisionStore:s}=await Promise.resolve().then(()=>(Jt(),Zn)),o=s(process.cwd(),e);try{return n.endsWith("red-skills.rdb")?{stats:await o.accountingStats(e.telemetryByteBudget),telemetry:await o.telemetryStats(t)}:{stats:await o.stats(),telemetry:Gc(t)}}catch{return r}finally{await o.close()}}function Dc(e,t=Gc(30),r=!1,n=Tf()){return`${ne($c(e,t,r,n))}
226
+ `}function Sf(e,t){return`${ne({...e,overhead:vf(t)})}
227
+ `}function Tf(){return{schema_version:"red.rsp.overhead.v1",verdict:"green",summary:"every wrapper family is inside its overhead ceiling",ceiling:Ct,breaching_families:[],disabled_families:[],families:[]}}function vf(e){return{schema_version:e.schema_version,verdict:e.verdict,summary:e.summary,ceiling:e.ceiling,breaching_families:e.breaching_families,disabled_families:e.disabled_families,families:e.families}}function $c(e,t,r,n=Tf()){let s=t.savings.top_commands.slice(0,r?10:3),o=r?t.savings.daily_tokens_saved:t.savings.daily_tokens_saved.slice(-7),i=e.storage_classes??Ao(),a=t.health.recent_failures.slice(0,r?20:5),c=t.decisions.top_pass_reasons.slice(0,r?10:3);return{records:e.records,bytes:e.bytes,oldest:e.oldest,budget:e.budget,storage_classes:i,savings:{window_days:t.window_days,empty:t.empty,...t.savings,tokens_saved_display:jT(t.savings),dollars_saved_estimate_usd_display:UT(t.savings),daily_tokens_saved:o,daily_tokens_saved_elided:r?0:Math.max(0,t.savings.daily_tokens_saved.length-o.length),top_commands:s,top_commands_elided:r?0:Math.max(0,t.savings.top_commands.length-s.length)},overhead:vf(n),health:{overhead_verdict:n.verdict,overhead_summary:n.summary,...t.health,degradation_rate_display:Lc(t.health.degradation_rate),show_hit_rate_display:Lc(t.health.show_hit_rate),by_reason:t.health.by_reason,by_family:t.health.by_family,recent_failures:a,recent_failures_elided:r?0:Math.max(0,t.health.recent_failures.length-a.length),most_recent_degradation_at:t.health.most_recent?.timestamp??null,most_recent_degradation_reason:t.health.most_recent?.reason??null},decisions:{...t.decisions,contribution_rate_display:Lc(t.decisions.contribution_rate),top_pass_reasons:c,top_pass_reasons_elided:r?0:Math.max(0,t.decisions.top_pass_reasons.length-c.length),by_command_family:r?t.decisions.by_command_family:t.decisions.by_command_family.slice(0,5),by_command_family_elided:r?0:Math.max(0,t.decisions.by_command_family.length-5)},latency:{...t.latency,wrapper_ms_p50_display:Ic(t.latency.wrapper_ms_p50),wrapper_ms_p95_display:Ic(t.latency.wrapper_ms_p95),store_elapsed_ms_avg_display:Ic(t.latency.store_elapsed_ms_avg)}}}function xf(e){return`${ne(e)}
228
+ `}function Gc(e){return{window_days:e,empty:!0,savings:{invocations:0,elided:0,raw_bytes:0,emitted_bytes:0,bytes_saved:0,tokens_saved:0,tokens_saved_estimated:!1,token_estimate_range_pct:null,tokens_saved_low:null,tokens_saved_high:null,dollars_saved_estimate_usd:0,dollars_saved_low_usd:null,dollars_saved_high_usd:null,pricing_model_family:"gpt-5",pricing_input_usd_per_million_tokens:1.25,pricing_note:"estimate derived from byte-based token estimate when token counts are estimated",daily_tokens_saved:[],top_commands:[]},health:{degradations:0,degradation_rate:0,show_total:0,show_hits:0,show_misses:0,show_hit_rate:0,by_reason:[],by_family:[],recent_failures:[],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},decisions:{seen:0,contributed:0,passed:0,failed_open:0,quota_free_saved_units:0,contribution_rate:0,top_pass_reasons:[],by_command_family:[]}}}function BT(e){return{records:0,bytes:0,oldest:null,budget:e,storage_classes:Ao()}}function Ao(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}function Nc(e){let t=e.legacyStoreMigrated?"migrated":e.storeCreated?"created":"existing";return[`config: ${e.configChanged?"updated":"unchanged"}`,`store: ${t}`,""].join(`
229
+ `)}function jT(e){return e.tokens_saved_estimated?`${e.tokens_saved_low}-${e.tokens_saved_high} (estimate_midpoint: ${e.tokens_saved}, range_pct: ${e.token_estimate_range_pct})`:String(e.tokens_saved)}function UT(e){return e.dollars_saved_low_usd==null||e.dollars_saved_high_usd==null?Qn(e.dollars_saved_estimate_usd):`${Qn(e.dollars_saved_low_usd)}-${Qn(e.dollars_saved_high_usd)} (estimate_midpoint: ${Qn(e.dollars_saved_estimate_usd)})`}function Ic(e){return e==null?"none":String(e)}function Lc(e){return e.toFixed(4).replace(/0+$/,"").replace(/\.$/,".0")}async function Vy(e){let{stats:t,telemetry:r}=await Qr(e,30),[n,s]=await Promise.all([YO(e),Promise.resolve().then(()=>(Xu(),Qu)).then(o=>o.listWaits(process.cwd()),()=>[])]);return{stats:t,telemetry:r,recoveryHandles:n,waits:s,overhead:qt(ct(process.cwd()).rootDir,e.overhead)}}function Ky(e){let t=$c(e.stats,e.telemetry,!1,e.overhead),r=rc({executable:{name:"rsp",command:"rsp"},recovery:{pending:e.recoveryHandles.length,handles:e.recoveryHandles},waits:{active:e.waits.length,entries:e.waits},store:{records:e.stats.records,bytes:e.stats.bytes,oldest:e.stats.oldest,budget:e.stats.budget,storage_classes:e.stats.storage_classes??Ao()},savings:t.savings,overhead:t.overhead,health:t.health,decisions:t.decisions,latency:t.latency},QO(e));return`${ne(r)}
230
+ `}async function YO(e){if(!e.storeUri.startsWith("file://"))return[];let t=zO(e.storeUri);if(!KO(t))return[];let{residentElisionStore:r}=await Promise.resolve().then(()=>(Jt(),Zn)),n=r(process.cwd(),e);try{return await n.recoveryHandles(5)}catch{return[]}finally{await n.close()}}function QO(e){return[e.recoveryHandles.length>0?"rsp show <handle>":"rsp <wrapped-command> --terse",e.waits.length>0?"rsp wait ls":'rsp wait cmd -- "<command>"',"rsp stats --since <days>d"]}vt();ae();at();import{existsSync as TL}from"node:fs";import{fileURLToPath as vL}from"node:url";mt();import{spawn as zi}from"node:child_process";async function Uw(e,t,r){let n=process.hrtime.bigint(),s=await Hw(e.positional),o=Number(process.hrtime.bigint()-n)/1e6;return jI(t,e,s,o,r),s.signal?(process.kill(process.pid,s.signal),128):s.status??0}async function Hw(e){let t=e[0];if(!t)return{stdoutBytes:0,stderrBytes:0,status:2,signal:null};let r;if(t==="exec"||t==="proxy"){let o=t==="proxy"?await Promise.resolve().then(()=>(Bi(),Mi)).then(i=>i.parseProxyCommandLine(e)):await Promise.resolve().then(()=>(qs(),Hs)).then(i=>i.parseExecCommandLine(e));r=zi(o,{shell:!0,stdio:["inherit","pipe","pipe"]})}else r=zi(t,e.slice(1),{stdio:["inherit","pipe","pipe"]});let n=0,s=0;return r.stdout?.on("data",o=>{n+=o.length,process.stdout.write(o)}),r.stderr?.on("data",o=>{s+=o.length,process.stderr.write(o)}),await new Promise(o=>{r.on("error",i=>{let a=`${i instanceof Error?i.message:String(i)}
231
+ `;s+=Buffer.byteLength(a),process.stderr.write(a),o({stdoutBytes:n,stderrBytes:s,status:127,signal:null})}),r.on("close",(i,a)=>o({stdoutBytes:n,stderrBytes:s,status:i,signal:a}))})}function qw(e){return e>0&&Math.random()<e}async function Js(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw r instanceof Error?r:new Error(e);process.stderr.write(`rsp: ${e}, passing through
232
+ `);let s=await Kw(t);if(n){let o=UI(e,t,r),{appendTelemetryEvent:i,RSP_ACCOUNTING_EVENTS_COLLECTION:a,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:c}=await Promise.resolve().then(()=>(mt(),$s));Qi(i(n,{collection:a,event_type:"invocation",ts:new Date().toISOString(),command:Yi(t),command_class:t[0]??"unknown",loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:o.reason,wrapper_family:o.family,wrapper_exit_code:o.exitCode,stderr_head:o.stderrHead})),Qi(i(n,{collection:c,ts:new Date().toISOString(),command:Yi(t),reason:o.reason,wrapper_family:o.family,wrapper_exit_code:o.exitCode,stderr_head:o.stderrHead,accounting_recorded:!0}))}return s}async function Ww(e,t,r){let n=await Hw(e),{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:i}=await Promise.resolve().then(()=>(mt(),$s)),a={ts:new Date().toISOString(),command:Yi(e),reason:"overhead-ceiling-self-disabled",wrapper_family:r.family,wrapper_exit_code:n.status??0,stderr_head:r.disabled_reason??r.reasons.join(",")};return Qi(s(t,{collection:o,event_type:"invocation",command_class:e[0]??"unknown",loss:"lossless",raw_bytes:n.stdoutBytes+n.stderrBytes,emitted_bytes:n.stdoutBytes+n.stderrBytes,degradation_reason:a.reason,...a})),Qi(s(t,{collection:i,accounting_recorded:!0,...a})),n.signal?(process.kill(process.pid,n.signal),128):n.status??0}async function Jw(e){return process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp: ${Xi()}, passing through
233
+ `),await Kw(e)}function Xi(){return"rsp is not enabled in this directory; run /red-setup"}function Vw(e){return e==="git"||e==="gh"||e==="vitest"||e==="cargo"||e==="cat"||e==="exec"||e==="proxy"||e==="gh-api-json"}function ft(e){return Yi(e.positional)}function Yi(e){if(e[0]!=="exec")return e.join(" ");try{let t=e.indexOf("--"),r=t>=0?e.slice(t+1):e.slice(1);return r.length===1?r[0]:r.join(" ")}catch{return e.join(" ")}}function Ws(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function jI(e,t,r,n,s){let o=r.stdoutBytes+r.stderrBytes,i={event_type:"control_holdout",control_holdout:!0,holdout_share:s,ts:new Date().toISOString(),command:ft(t),command_class:t.command??"unknown",wrapper:t.command,loss:"lossless",elided:!1,raw_bytes:o,emitted_bytes:o,wrapper_ms:n};Yt(e,{collection:"rsp_accounting_events_v1",...i}),Yt(e,{collection:"rsp_telemetry_invocations_v1",...i,accounting_recorded:!0})}function UI(e,t,r){let n=t[0]??"unknown",s=HI(r)||e;return{reason:jw(r)==="ENOENT"||jw(r)==="MODULE_NOT_FOUND"||/(?:command not found|cannot find package|cannot find module|module not found|not provisioned)/i.test(s)?"wrapper-unavailable":"wrapper-crash",family:n,exitCode:WI(r)??1,stderrHead:qI(s,240)}}function HI(e){return e instanceof Error?Ws(e.message):Ws(String(e??""))}function qI(e,t){let r=Ws(e).replace(/\s+/g," ").trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}\u2026`}function jw(e){if(typeof e!="object"||e===null||!("code"in e))return"";let t=e.code;return typeof t=="string"?t:""}function WI(e){if(typeof e!="object"||e===null)return null;for(let t of["status","exitCode","exit_code"]){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r}return null}function Qi(e){e.catch(()=>{})}async function Kw(e){if(e[0]==="exec"||e[0]==="proxy")return await JI(e);let t=e[0];if(!t)return 2;let r=zi(t,e.slice(1),{stdio:"inherit"});return await new Promise(n=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
234
+ `),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function JI(e){let t;try{if(e[0]==="proxy"){let{parseProxyCommandLine:n}=await Promise.resolve().then(()=>(Bi(),Mi));t=n(e)}else{let{parseExecCommandLine:n}=await Promise.resolve().then(()=>(qs(),Hs));t=n(e)}}catch(n){return process.stderr.write(`${n instanceof Error?n.message:String(n)}
235
+ `),2}let r=zi(t,{shell:!0,stdio:"inherit"});return await new Promise(n=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
236
+ `),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function d_(e,t,r){let n=[],s=!e.enabled;if(n.push(s?le("config_gate_resolution","rsp disabled in this directory; run /red-setup to opt in"):le("config_gate_resolution","rsp.enabled resolved true for this directory")),s)return n.push(le("hook_wiring","skipped because rsp is disabled"),le("proxy_mode","skipped because rsp is disabled"),le("resident_liveness","skipped because rsp is disabled"),le("store_provisioning","skipped because rsp is disabled"),le("recent_degradation_rate","skipped because rsp is disabled"),le("overhead_budget","skipped because rsp is disabled")),l_("disabled",n,r);n.push(await xL(e)),n.push(e.proxyEnabled?le("proxy_mode","proxy routing enabled for pre-exec rewrites"):Ir("proxy_mode","proxy routing is explicitly disabled; hook falls back to fixed wrapper capabilities","rsp setup"));let{residentRegistryStatus:o}=await Promise.resolve().then(()=>(ut(),br));if(n.push(CL(await o(t))),n.push(OL(e)),m_(e)){let{telemetry:i}=await Qr(e,r);n.push(AL(i,r))}else n.push(le("recent_degradation_rate","no telemetry store available yet; no recent degradation spike detected"));return n.push(PL(qt(process.cwd(),e.overhead))),l_(n.some(i=>!i.pass)?"fail":"pass",n,r)}function p_(e){let{exitCode:t,...r}=e;return`${ne({...r,exit_code:e.exitCode,probes:e.probes,errors:e.errors})}
237
+ `}async function xL(e){try{if(e.proxyEnabled)return le("hook_wiring","pre-exec hook would rewrite git status through rsp proxy");let{rewriteCommand:t}=await Promise.resolve().then(()=>(Ks(),sa)),r=t("git status");return r.kind==="rewrite"?le("hook_wiring",`pre-exec hook would rewrite git status through ${r.capabilityId}`):Ir("hook_wiring",`pre-exec hook passed git status through: ${r.reason??"unsupported-command"}`,"rsp setup")}catch(t){return Ir("hook_wiring",`pre-exec hook probe failed: ${t instanceof Error?Ws(t.message):"unknown error"}`,"rsp setup")}}function CL(e){return e.state==="registered-alive-socket-healthy"?le("resident_liveness","resident registry points at a healthy socket"):Ir("resident_liveness",`resident registry state is ${e.state}`,"rsp warm-resident")}function OL(e){return e.storeUri.startsWith("file://")?m_(e)?le("store_provisioning","rsp store exists for this directory"):Ir("store_provisioning","rsp store is not provisioned","rsp setup"):le("store_provisioning","non-file store URI configured; provisioning is delegated to that backend")}function AL(e,t){let r=e.health.by_reason[0];if(e.health.degradations===0)return le("recent_degradation_rate",`0 degradations in the recent ${t}d window`);let n=e.health.degradations,s=r?.reason??e.health.most_recent?.reason??"unknown",o=r?.count??n;return Ir("recent_degradation_rate",`${n} degradation(s) in the recent ${t}d window; dominant reason ${s} (${o})`,IL(s,t))}function PL(e){return e.verdict==="green"?le("overhead_budget",e.summary):Ir("overhead_budget",e.summary,"rsp status")}function IL(e,t){return/unavailable|not provisioned|missing/i.test(e)?"rsp setup":/resident|socket|registry/i.test(e)?"rsp warm-resident":`rsp stats --since ${t}d --full`}function m_(e){if(!e.storeUri.startsWith("file://"))return!0;try{return TL(vL(e.storeUri))}catch{return!1}}function le(e,t){return{name:e,pass:!0,finding:t}}function Ir(e,t,r){return{name:e,pass:!1,finding:t,fix_command:r,error:Ya({command:`rsp doctor:${e}`,category:"real-error",error:t,help:r})}}function l_(e,t,r){return{schema_version:"red.rsp.doctor.v1",status:e,exitCode:e==="fail"?1:0,window_days:r,probes:t,errors:t.map(n=>n.error).filter(n=>!!n)}}ud();function y_(e){let t=e[0]==="--help"||e[0]==="-h"?void 0:e[0];return`${DL(t).join(`
227
238
  `)}
228
- `}function sL(e){switch(e){case"stats":return z("rsp stats [--since <days>d] [--full]",["Defaults: --since 30d, --full false","--since <days>d telemetry window, default 30d","--full include wider daily/top-command/failure lists, default false","--store-uri <uri> read a non-default store"],["rsp stats","rsp stats --since 7d --full"]);case"gains":return z("rsp gains [--since <days>d]",["--since <days>d gains window, default 28d","--store-uri <uri> read a non-default shared RedDB store"],["rsp gains","rsp gains --since 14d"]);case"show":return z("rsp show <handle>",["<handle> elision handle such as el:<id>","--store-uri <uri> read a non-default store"],["rsp show el:<id>","rsp show <handle>"]);case"git":return z("rsp git <status|log|diff|show|blame|branch|commit|push> [options]",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail"],["rsp git status --brief","rsp git log --terse","rsp git diff --query <path>"]);case"gh":return z("rsp gh <pr|issue|run> <list|view> [options] | <issues|prs|edit-labels|link-sub-issues> ...",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail","--json <fields> select fields for batched issues/prs","--repo <slug> owner/repo override for batched operations"],["rsp gh issues 42 43 --json state,title,labels,body","rsp gh prs 12 13 --json state,mergeable,statusCheckRollup","rsp gh edit-labels --add ready-for-agent --remove blocked:crashed 42 43","rsp gh link-sub-issues 100 101 102"]);case"vitest":return z("rsp vitest [run] [vitest-options]",["--brief compact output, default lossless","--terse summarize long failures and mint recovery handles","--query <text> filter failure rows"],["rsp vitest run","rsp vitest run --query <suite-or-test>"]);case"cargo":return z("rsp cargo test [cargo-test-options]",["--brief compact output, default lossless","--terse summarize long failures and mint recovery handles","--query <text> filter failure rows"],["rsp cargo test","rsp cargo test --query <test-name>"]);case"cat":return z("rsp cat [--head <n>|--tail <n>|--full] <file>",["--head <n> show first n lines, default slice 10","--tail <n> show last n lines, default slice 10","--full emit full text even when it is large","--brief/--terse reduce large text context"],["rsp cat <file>","rsp cat --head 20 <file>","rsp cat --tail 20 <file>"]);case"exec":return z('rsp exec -- "<command line>"',["--brief compact recognized stdout, default lossless","--terse summarize large stdout and mint recovery handles","--query <text> filter supported structured summaries"],['rsp exec -- "pnpm -C apps/rsp build"','rsp exec -- "git status --short"']);case"proxy":return z("rsp proxy -- <command line>",["--brief compact recognized stdout, default lossless","--terse summarize recognized large stdout"],["rsp proxy -- git status","rsp proxy -- pnpm test"]);case"wait":return["usage: rsp wait <subcommand> [options]","","Flags and defaults:"," --timeout <duration> default 30m for cmd, 60m for pr/run, 2h for release"," --reason <text> default empty"," --signal-pid <pid> optional completion signal target"," --signal <signal> default USR1"," --notify-cmd <cmd> optional completion command","","Examples:",' rsp wait pr 123 --reason "before merge"'," rsp wait run --branch feature/wait --latest",' rsp wait release --tag "v2.*"',' rsp wait cmd -- "pnpm -C apps/rsp build"'," rsp wait ls","","Exit codes: 0 = success verdict, 1 = failure verdict, 2 = timeout/indeterminate."];case"doctor":return z("rsp doctor [--since <days>d]",["--since <days>d recent degradation window, default 1d"],["rsp doctor","rsp doctor --since 7d"]);case"status":return z("rsp status",["No flags. Prints resident registry status as TOON."],["rsp status"]);case"sweep":return z("rsp sweep",["No flags. Removes stale resident registry entries, reclaims orphan state temps,","re-bounds the gh ETag cache, and prints TOON status."],["rsp sweep"]);case"setup":return z("rsp setup",["No flags. Provisions repo rsp configuration and store state."],["rsp setup"]);case"mcp":return z("rsp mcp",["No flags. Starts the rsp MCP server over stdio."],["rsp mcp"]);case"shell-init":return z("rsp shell-init <fish|bash|zsh>",["<fish|bash|zsh> target shell, no default"],["rsp shell-init bash","rsp shell-init fish"]);case"server":return z("rsp server [options]",["--socket <path> default resident socket","--pid-file <path> default resident pid file","--store-uri <uri> default repo store","--ttl-days <days> default from config","--ephemeral-ttl-hours <hours> default from config","--byte-budget <bytes> default from config","--idle-ms <ms> default from config"],["rsp server","rsp server --socket <path> --store-uri <uri>"]);case"warm-resident":return z("rsp warm-resident [options]",["--socket <path> default resident socket","--wake-lock <path> default resident wake lock","--store-uri <uri> default repo store","--idle-ms <ms> default from config"],["rsp warm-resident","rsp warm-resident --store-uri <uri>"]);case"gh-api-json":return z("rsp gh-api-json <path> [-f name=value ...]",["-f name=value string GitHub API field","-F name=value typed GitHub API field"],["rsp gh-api-json repos/{owner}/{repo}","rsp gh-api-json repos/{owner}/{repo}/pulls -f state=open"]);case"dashboard":return z("rsp dashboard",["No flags. The explicit spelling of the bare `rsp` invocation."],["rsp","rsp dashboard"]);case"hook":return z("rsp hook <claude-pre-exec|codex-pre-exec|claude-post-exec|codex-post-exec>",["Reads hook payload from stdin. Defaults come from the calling host."],["rsp hook codex-pre-exec","rsp hook claude-pre-exec"]);case void 0:return["usage: rsp <subcommand> [options]","","Bare invocation:"," rsp"," renders a live TOON dashboard with recovery handles, active waits, savings, and health.","","Subcommands:"," dashboard, stats, gains, show, git, gh, vitest, cargo, cat, exec, proxy, wait"," doctor, status, sweep, setup, mcp, shell-init, server, warm-resident, gh-api-json, hook","","Global flags:"," --store-uri <uri> default repo store"," --brief compact summaries"," --terse aggressive summaries with recovery handles"," --query <text> filter supported rendered output"," --help, -h scoped help"," --version, -v build version; add --json for structured build info","","Examples:"," rsp"," rsp stats --since 7d"," rsp git log --terse"," rsp show el:<id>"];default:return z(`rsp ${e} [options]`,["Unknown rsp subcommand. Use root help to list supported subcommands."],["rsp --help"])}}function z(e,t,r){return[`usage: ${e}`,"","Flags and defaults:",...t.map(n=>` ${n}`),"","Examples:",...r.map(n=>` ${n}`)]}$e();oe();et();import{spawn as oL}from"node:child_process";import{createHash as iL}from"node:crypto";import{existsSync as aL,readFileSync as cL,statSync as uL}from"node:fs";import{tmpdir as lL}from"node:os";import{dirname as dL,join as nr}from"node:path";async function Te(e,t,r,n,s=process.cwd(),o,i=o?.overhead??Ke){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let a=Number(process.hrtime.bigint()-r)/1e6;n&&o&&mL(s,o);let c=pL(e,t,a);return Jn(s,c,i),n?Lr(yL(s,e,t,c,i,n.lastResponseMetrics())):bL(s,e,t,c,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}function pL(e,t,r){let n=Kn(),s=t.stdout.length+t.stderr.length,o=(t.rawOutput?.length??t.stdout.length)+t.stderr.length;return{family:e.command??"unknown",wrapperMs:r,childMs:n.childMs,selfStateBytesRead:n.selfStateBytesRead,bytesSaved:Math.max(0,o-s)}}function Lr(e){e.catch(()=>{})}async function ta(e,t,r,n){let{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o}=await Promise.resolve().then(()=>(et(),As));await s(e,{collection:o,event_type:"show",ts:new Date().toISOString(),command:"rsp show",command_class:"show",handle:t,hit:r,loss:"lossless",raw_bytes:r?n:0,emitted_bytes:n})}function mL(e,t){try{let r=Lt(e),n=uL(r),s=t.telemetryDrainIntervalMs*2;if(n.size<t.telemetryByteBudget&&!hL(r,Date.now()-s))return;let o=fL(e),i=gL(o),a=nr(i,"rsp.sock"),c=nr(i,"rsp.pid"),u=nr(ne(o),"rsp-resident.pid.json"),l=nr(o,".red","tmp","rsp","wake.lock");oL(process.execPath,[...process.execArgv,process.argv[1]??"","warm-resident","--socket",a,"--pid-file",c,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours),"--byte-budget",String(t.byteBudget),"--telemetry-ttl-days",String(t.telemetryTtlDays),"--telemetry-byte-budget",String(t.telemetryByteBudget),"--telemetry-drain-interval-ms",String(t.telemetryDrainIntervalMs),"--telemetry-drain-timeout-ms",String(t.telemetryDrainTimeoutMs),"--idle-ms",String(t.idleMs),"--registry",u,"--wake-lock",l],{cwd:o,detached:!0,stdio:"ignore",env:{...process.env,RSP_RESIDENT_WARMER:"1"}}).unref()}catch{}}function fL(e){let t=e;for(;;){if(aL(nr(t,".git")))return t;let r=dL(t);if(r===t)return e;t=r}}function gL(e){let t=iL("sha256").update(e).digest("hex").slice(0,20),r=process.env.XDG_RUNTIME_DIR;if(r){let s=nr(r,"red-skills",t);if(nr(s,"rsp.sock").length<108)return s}let n=typeof process.getuid=="function"?process.getuid():"nouid";return nr(lL(),`red-skills-${n}`,t)}function hL(e,t){try{let r=cL(e,"utf8");Vn(Buffer.byteLength(r));for(let n of r.split(/\r?\n/))if(n.trim())try{let s=JSON.parse(n),o=typeof s.created_at=="string"?s.created_at:s.ts;if(typeof o=="string"){let i=Date.parse(o);if(Number.isFinite(i)&&i<=t)return!0}}catch{}}catch{}return!1}async function yL(e,t,r,n,s,o){let i=Buffer.concat([r.stdout,r.stderr]),a=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),c=yo(n,s),{appendTelemetryEvent:u,RSP_ACCOUNTING_EVENTS_COLLECTION:l,RSP_TELEMETRY_INVOCATIONS_COLLECTION:p}=await Promise.resolve().then(()=>(et(),As));await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:gt(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs}),await u(e,{collection:p,ts:new Date().toISOString(),command:gt(t),wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,raw_text:a.toString("utf8"),emitted_text:i.toString("utf8"),...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs,accounting_recorded:!0}),r.degradation&&(await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:gt(t),command_class:t.command??"unknown",loss:t.level,raw_bytes:a.length,emitted_bytes:i.length,degradation_reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead}),await u(e,{collection:"rsp_telemetry_degradations_v1",ts:new Date().toISOString(),command:gt(t),reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead,accounting_recorded:!0}))}function bL(e,t,r,n,s){try{let o=Buffer.concat([r.stdout,r.stderr]),i=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),a=yo(n,s);Kt(e,{collection:"rsp_accounting_events_v1",event_type:"invocation",ts:new Date().toISOString(),command:gt(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a}),Kt(e,{collection:"rsp_telemetry_invocations_v1",ts:new Date().toISOString(),command:gt(t),wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a,accounting_recorded:!0})}catch{}}var cr=class{constructor(t){this.openStore=t}store;metrics;async mint(...t){try{let r=await this.open(),n=await r.mint(...t);return this.metrics=r.lastResponseMetrics?.(),n}catch{return`recovery unavailable (resident cold) \u2014 re-run: ${t[1].command}`}}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}},xd=class{async mint(t,r){return`recovery unavailable (cold store) \u2014 re-run: ${r.command}`}lastResponseMetrics(){}async close(){}};async function V_(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw n instanceof Error?n:new Error("cold store");let s=new xd,o=process.hrtime.bigint();try{if(e.command==="git"){let{isFastGitStatus:i,runFastGitStatus:a}=await Promise.resolve().then(()=>(Zl(),n_));if(i(e.positional))return await Te(e,await a(),o,s,r,t);let{runGitWrapper:c}=await Promise.resolve().then(()=>(Ar(),Fl)),u=await c(e.positional,{level:e.level,store:s,heavyGitByteThreshold:t.heavyGitByteThreshold});return await Te(e,u,o,s,r,t)}if(e.command==="gh"){let{runGhWrapper:i}=await Promise.resolve().then(()=>(bd(),yd)),a=await i(e.positional,{level:e.level,store:s});return await Te(e,a,o,s,r,t)}if(e.command==="vitest"||e.command==="cargo"){let{runTestWrapper:i}=await Promise.resolve().then(()=>(Rd(),Ed)),a=await i(e.positional,{level:e.level,store:s});return await Te(e,a,o,s,r,t)}if(e.command==="cat"){let{runCatWrapper:i}=await Promise.resolve().then(()=>(vd(),Td)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Te(e,a,o,s,r,t)}if(e.command==="exec"){let{runExecWrapper:i}=await Promise.resolve().then(()=>(qs(),Hs)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Te(e,a,o,s)}}catch(i){return Vr(i)?(process.stdout.write(i.render()),2):await Js("wrapper failed",e.positional,i,r)}finally{await s.close()}return await Js("wrapper failed",e.positional,n,r)}async function HE(e=process.argv.slice(2)){let t=lo("rsp"),r=Yp(e);if(r.kind==="version")return process.stdout.write(r.json?`${JSON.stringify(t)}
229
- `:`${nm(t)}
230
- `),0;if(r.kind==="help")return process.stdout.write(s_(e)),0;let n;try{n=Qp(e)}catch(y){if(Zp(y))return process.stdout.write(Xp(y)),2;throw y}if(n.command==="hook"&&n.positional[1]==="claude-pre-exec"){let{runClaudePreExecHook:y}=await Promise.resolve().then(()=>(Ks(),Xi));return await y()}if(n.command==="hook"&&n.positional[1]==="codex-pre-exec"){let{runCodexPreExecHook:y}=await Promise.resolve().then(()=>(Ks(),Xi));return await y()}if(n.command==="hook"&&n.positional[1]==="claude-post-exec"){let{runClaudePostExecHook:y}=await Promise.resolve().then(()=>(Bs(),Ul));return await y()}if(n.command==="hook"&&n.positional[1]==="codex-post-exec"){let{runCodexPostExecHook:y}=await Promise.resolve().then(()=>(Bs(),Ul));return await y()}if(n.command==="setup"){let{provisionRspRepoStore:y}=await Promise.resolve().then(()=>(tE(),eE)),_=await y(process.cwd());return process.stdout.write(Pc(_)),0}if(n.command==="mcp"){let{runRspMcpServer:y}=await Promise.resolve().then(()=>(cE(),aE));return await y(),0}if(n.command==="wait"){let{runWait:y}=await Promise.resolve().then(()=>(Ll(),Il));return await y(n.positional)}if(n.command==="shell-init"){let y=n.positional[1];if(y!=="fish"&&y!=="bash"&&y!=="zsh")return process.stdout.write(J({command:n.positional.join(" ")||"shell-init",category:"usage",error:"usage rsp shell-init fish|bash|zsh",help:"rsp shell-init bash"})),2;let{renderShellInit:_}=await Promise.resolve().then(()=>(dE(),lE));return process.stdout.write(_(y)),0}let{resolveRspConfig:s}=await Promise.resolve().then(()=>(Ze(),ag)),o=s(process.cwd(),process.env,n.storeUri);if(n.command==="doctor"){let{resolveResidentPaths:y}=await Promise.resolve().then(()=>(dt(),br)),_=y(process.cwd()),T=await Xw(o,_,uo(n.positional,1));return process.stdout.write(Zw(T)),T.exitCode}let i=Dw(n.command);if(!o.enabled)return i?await Lw(n.positional):(process.stdout.write(`${Ji()}
231
- `),0);if(n.command==="git"&&Zi(n.positional)){let y=process.hrtime.bigint();return await Te(n,await ea(),y,void 0,await Xl(process.cwd()),o)}let{resolveResidentPaths:a,ensureResidentServer:c}=await Promise.resolve().then(()=>(dt(),br)),u=a(process.cwd());if(i&&n.command){let{overheadFamilyDisabled:y}=await Promise.resolve().then(()=>(oe(),wo)),_=y(u.rootDir,n.command);if(_)return await Iw(n.positional,u.rootDir,_)}if(i&&Pw(o.measurementHoldoutShare))return await Ow(n,u.rootDir,o.measurementHoldoutShare);if(n.command==="server"){let{runResidentServer:y}=await Promise.resolve().then(()=>(UE(),jE)),_=a(process.cwd()),T=Wa(n.positional),v=s(process.cwd(),process.env,n.storeUri);return v.enabled?(await y({socketPath:T.socket??_.socketPath,pidPath:T["pid-file"]??_.pidPath,rootDir:_.rootDir,storeUri:v.storeUri,ttlDays:T["ttl-days"]??v.ttlDays,ephemeralTtlHours:T["ephemeral-ttl-hours"]??v.ephemeralTtlHours,byteBudget:T["byte-budget"]??v.byteBudget,telemetryTtlDays:T["telemetry-ttl-days"]??v.telemetryTtlDays,telemetryByteBudget:T["telemetry-byte-budget"]??v.telemetryByteBudget,telemetryDrainIntervalMs:T["telemetry-drain-interval-ms"]??v.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:T["telemetry-drain-timeout-ms"]??v.telemetryDrainTimeoutMs,idleMs:T["idle-ms"]??v.idleMs,residentVersion:T["resident-version"]??t.version,registryPath:T.registry??_.registryPath}),0):(process.stdout.write(`${Ji()}
232
- `),0)}if(n.command==="warm-resident"){let y=a(process.cwd()),_=Wa(n.positional),T=s(process.cwd(),process.env,n.storeUri);if(!T.enabled)return 0;let{warmResidentServer:v}=await Promise.resolve().then(()=>(dt(),br));return await v({...y,socketPath:_.socket??y.socketPath,wakeLockPath:_["wake-lock"]??y.wakeLockPath},{storeUri:T.storeUri,ttlDays:_["ttl-days"]??T.ttlDays,ephemeralTtlHours:_["ephemeral-ttl-hours"]??T.ephemeralTtlHours,byteBudget:_["byte-budget"]??T.byteBudget,telemetryTtlDays:_["telemetry-ttl-days"]??T.telemetryTtlDays,telemetryByteBudget:_["telemetry-byte-budget"]??T.telemetryByteBudget,telemetryDrainIntervalMs:_["telemetry-drain-interval-ms"]??T.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:_["telemetry-drain-timeout-ms"]??T.telemetryDrainTimeoutMs,idleMs:_["idle-ms"]??T.idleMs,clientVersion:t.version}),0}if(n.command==="proxy"){let{runProxy:y}=await Promise.resolve().then(()=>(Di(),Li));return await y(n.positional,{telemetryRoot:u.rootDir,level:n.level})}if(n.command==="status"||n.command==="sweep"){let{residentRegistryStatus:y,sweepResidentRegistry:_}=await Promise.resolve().then(()=>(dt(),br)),T=n.command==="sweep"?await _(u):await y(u);if(n.command==="sweep"){let{sweepGhEtagCache:B}=await Promise.resolve().then(()=>(us(),tg));await B(u.rootDir,{maxBytes:o.ghEtagCacheMaxBytes})}let{overheadHealth:v}=await Promise.resolve().then(()=>(oe(),wo)),G=v(u.rootDir,o.overhead);return process.stdout.write(mf(T,G)),0}if(n.command==="gh-api-json"){let{readGhConditionalJson:y}=await Promise.resolve().then(()=>(hi(),Eh)),_=rm(n.positional);if(!_)return process.stdout.write(J({command:n.positional.join(" "),category:"usage",error:"usage rsp gh-api-json <path> [-f name=value ...]",help:"rsp gh-api-json repos/{owner}/{repo}",validFlags:["-f","-F"]})),2;let T=await y({path:_.path,params:_.params,cwd:process.cwd(),telemetryRoot:u.rootDir,command:`rsp ${n.positional.join(" ")}`,overheadCeiling:o.overhead});return process.stdout.write(T.stdout),T.stderr&&process.stderr.write(`${T.stderr}
233
- `),T.status}if(n.command==="dashboard"){let y=await Bb(o);return process.stdout.write(jb(y)),0}if(!n.storeUri&&o.storeUri.startsWith("file://")&&!d$(p$(o.storeUri)))return i?await V_(n,o,u.rootDir):(process.stdout.write(J({command:gt(n)||"rsp",category:"real-error",error:"rsp repo store is not provisioned",help:"/red-setup"})),1);let{residentConfigFor:l,residentElisionStore:p,reportResidentEntryDiagnostic:d}=await Promise.resolve().then(()=>(wr(),es)),g=(y=!0)=>Promise.resolve(p(process.cwd(),o,{ensureResident:y,paths:u})),f=()=>c(u,l(o,t.version)).catch(y=>void d(y)),k=()=>g(),E;try{if(n.command==="stats"){let{stats:y,telemetry:_}=await Qr(o,uo(n.positional,30)),{overheadHealth:T}=await Promise.resolve().then(()=>(oe(),wo));return process.stdout.write(Oc(y,_,tm(n.positional),T(u.rootDir,o.overhead))),0}if(n.command==="gains"){let y=await k();E=()=>y.close();let _;try{_=await y.telemetryGains(uo(n.positional,28))}catch(T){return process.stdout.write(J({command:`rsp ${n.positional.join(" ")}`.trim(),category:"real-error",error:T instanceof Error?T.message:"rsp gains unavailable",help:"rsp gains requires the shared RedDB store"})),1}return process.stdout.write(hf(_)),0}if(n.command==="git"){if(Lr(f()),Zi(n.positional)){let G=process.hrtime.bigint();return await Te(n,await ea(),G,void 0,u.rootDir,o)}let{runGitWrapper:y}=await Promise.resolve().then(()=>(Ar(),Fl)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),v=await y(n.positional,{level:n.level,store:_,heavyGitByteThreshold:o.heavyGitByteThreshold});return await Te(n,v,T,_,u.rootDir,o)}if(n.command==="gh"){Lr(f());let{runGhWrapper:y}=await Promise.resolve().then(()=>(bd(),yd)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),v=await y(n.positional,{level:n.level,store:_});return await Te(n,v,T,_,u.rootDir,o)}if(n.command==="vitest"||n.command==="cargo"){Lr(f());let{runTestWrapper:y}=await Promise.resolve().then(()=>(Rd(),Ed)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),v=await y(n.positional,{level:n.level,store:_});return await Te(n,v,T,_,u.rootDir,o)}if(n.command==="cat"){Lr(f());let{runCatWrapper:y}=await Promise.resolve().then(()=>(vd(),Td)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),v=await y(n.positional,{level:n.level,store:_,heavyByteThreshold:o.heavyGitByteThreshold});return await Te(n,v,T,_,u.rootDir,o)}if(n.command==="exec"){Lr(f());let{runExecWrapper:y}=await Promise.resolve().then(()=>(qs(),Hs)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),v=await y(n.positional,{level:n.level,store:_,heavyByteThreshold:o.heavyGitByteThreshold});return await Te(n,v,T,_,u.rootDir,o)}if(n.command==="show"&&n.handle){let y=await k();E=()=>y.close();let _=await y.get(n.handle);if(_&&"original"in _&&_.original)return process.stdout.write(_.original),await ta(u.rootDir,n.handle,!0,_.original.length),0;if(_?.status==="expired"){let v=J({command:`rsp show ${n.handle}`,category:"real-error",error:`expired ${_.expired_at}`,help:_.command});return process.stdout.write(v),await ta(u.rootDir,n.handle,!1,v.length),1}let T=J({command:`rsp show ${n.handle}`,category:"real-error",error:"expired unknown",help:n.handle});return process.stdout.write(T),await ta(u.rootDir,n.handle,!1,T.length),1}return process.stdout.write(J({command:n.positional.join(" ")||"rsp",category:"usage",error:"usage rsp show el:<id>",help:"rsp show el:<id>"})),2}catch(y){if(Vr(y))return process.stdout.write(y.render()),2;if(i)return await Js("wrapper failed",n.positional,y,u.rootDir);throw y}finally{await E?.()}}ut();import.meta.url===`file://${process.argv[1]}`&&HE().then(e=>process.exit(e),e=>{Vr(e)&&(process.stdout.write(e.render()),process.exit(2)),process.stdout.write(J({command:"rsp",category:"real-error",error:e instanceof Error?e.message:String(e),help:"rsp --help"})),process.exit(1)});export{HE as main,Pc as renderSetupResult,Oc as renderStats};
239
+ `}function DL(e){switch(e){case"stats":return z("rsp stats [--since <days>d] [--full]",["Defaults: --since 30d, --full false","--since <days>d telemetry window, default 30d","--full include wider daily/top-command/failure lists, default false","--store-uri <uri> read a non-default store"],["rsp stats","rsp stats --since 7d --full"]);case"gains":return z("rsp gains [--since <days>d]",["--since <days>d gains window, default 28d","--store-uri <uri> read a non-default shared RedDB store"],["rsp gains","rsp gains --since 14d"]);case"show":return z("rsp show <handle>",["<handle> elision handle such as el:<id>","--store-uri <uri> read a non-default store"],["rsp show el:<id>","rsp show <handle>"]);case"git":return z("rsp git <status|log|diff|show|blame|branch|commit|push> [options]",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail"],["rsp git status --brief","rsp git log --terse","rsp git diff --query <path>"]);case"gh":return z("rsp gh <pr|issue|run> <list|view> [options] | <issues|prs|edit-labels|link-sub-issues> ...",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail","--json <fields> select fields for batched issues/prs","--repo <slug> owner/repo override for batched operations"],["rsp gh issues 42 43 --json state,title,labels,body","rsp gh prs 12 13 --json state,mergeable,statusCheckRollup","rsp gh edit-labels --add ready-for-agent --remove blocked:crashed 42 43","rsp gh link-sub-issues 100 101 102"]);case"vitest":return z("rsp vitest [run] [vitest-options]",["--brief compact output, default lossless","--terse summarize long failures and mint recovery handles","--query <text> filter failure rows"],["rsp vitest run","rsp vitest run --query <suite-or-test>"]);case"cargo":return z("rsp cargo test [cargo-test-options]",["--brief compact output, default lossless","--terse summarize long failures and mint recovery handles","--query <text> filter failure rows"],["rsp cargo test","rsp cargo test --query <test-name>"]);case"cat":return z("rsp cat [--head <n>|--tail <n>|--full] <file>",["--head <n> show first n lines, default slice 10","--tail <n> show last n lines, default slice 10","--full emit full text even when it is large","--brief/--terse reduce large text context"],["rsp cat <file>","rsp cat --head 20 <file>","rsp cat --tail 20 <file>"]);case"exec":return z('rsp exec -- "<command line>"',["--brief compact recognized stdout, default lossless","--terse summarize large stdout and mint recovery handles","--query <text> filter supported structured summaries"],['rsp exec -- "pnpm -C apps/rsp build"','rsp exec -- "git status --short"']);case"proxy":return z("rsp proxy -- <command line>",["--brief compact recognized stdout, default lossless","--terse summarize recognized large stdout"],["rsp proxy -- git status","rsp proxy -- pnpm test"]);case"wait":return["usage: rsp wait <subcommand> [options]","","Flags and defaults:"," --timeout <duration> default 30m for cmd, 60m for pr/run, 2h for release"," --reason <text> default empty"," --signal-pid <pid> optional completion signal target"," --signal <signal> default USR1"," --notify-cmd <cmd> optional completion command","","Examples:",' rsp wait pr 123 --reason "before merge"'," rsp wait run --branch feature/wait --latest",' rsp wait release --tag "v2.*"',' rsp wait cmd -- "pnpm -C apps/rsp build"'," rsp wait ls","","Exit codes: 0 = success verdict, 1 = failure verdict, 2 = timeout/indeterminate."];case"doctor":return z("rsp doctor [--since <days>d]",["--since <days>d recent degradation window, default 1d"],["rsp doctor","rsp doctor --since 7d"]);case"status":return z("rsp status",["No flags. Prints resident registry status as TOON."],["rsp status"]);case"sweep":return z("rsp sweep",["No flags. Removes stale resident registry entries, reclaims orphan state temps,","re-bounds the gh ETag cache, and prints TOON status."],["rsp sweep"]);case"setup":return z("rsp setup",["No flags. Provisions repo rsp configuration and store state."],["rsp setup"]);case"mcp":return z("rsp mcp",["No flags. Starts the rsp MCP server over stdio."],["rsp mcp"]);case"shell-init":return z("rsp shell-init <fish|bash|zsh>",["<fish|bash|zsh> target shell, no default"],["rsp shell-init bash","rsp shell-init fish"]);case"server":return z("rsp server [options]",["--socket <path> default resident socket","--pid-file <path> default resident pid file","--store-uri <uri> default repo store","--ttl-days <days> default from config","--ephemeral-ttl-hours <hours> default from config","--byte-budget <bytes> default from config","--idle-ms <ms> default from config"],["rsp server","rsp server --socket <path> --store-uri <uri>"]);case"warm-resident":return z("rsp warm-resident [options]",["--socket <path> default resident socket","--wake-lock <path> default resident wake lock","--store-uri <uri> default repo store","--idle-ms <ms> default from config"],["rsp warm-resident","rsp warm-resident --store-uri <uri>"]);case"gh-api-json":return z("rsp gh-api-json <path> [-f name=value ...]",["-f name=value string GitHub API field","-F name=value typed GitHub API field"],["rsp gh-api-json repos/{owner}/{repo}","rsp gh-api-json repos/{owner}/{repo}/pulls -f state=open"]);case"dashboard":return z("rsp dashboard",["No flags. The explicit spelling of the bare `rsp` invocation."],["rsp","rsp dashboard"]);case"hook":return z("rsp hook <claude-pre-exec|codex-pre-exec|claude-post-exec|codex-post-exec>",["Reads hook payload from stdin. Defaults come from the calling host."],["rsp hook codex-pre-exec","rsp hook claude-pre-exec"]);case void 0:return["usage: rsp <subcommand> [options]","","Bare invocation:"," rsp"," renders a live TOON dashboard with recovery handles, active waits, savings, and health.","","Subcommands:"," dashboard, stats, gains, show, git, gh, vitest, cargo, cat, exec, proxy, wait"," doctor, status, sweep, setup, mcp, shell-init, server, warm-resident, gh-api-json, hook","","Global flags:"," --store-uri <uri> default repo store"," --brief compact summaries"," --terse aggressive summaries with recovery handles"," --query <text> filter supported rendered output"," --help, -h scoped help"," --version, -v build version; add --json for structured build info","","Examples:"," rsp"," rsp stats --since 7d"," rsp git log --terse"," rsp show el:<id>"];default:return z(`rsp ${e} [options]`,["Unknown rsp subcommand. Use root help to list supported subcommands."],["rsp --help"])}}function z(e,t,r){return[`usage: ${e}`,"","Flags and defaults:",...t.map(n=>` ${n}`),"","Examples:",...r.map(n=>` ${n}`)]}Le();ae();mt();import{spawn as $L}from"node:child_process";import{createHash as NL}from"node:crypto";import{existsSync as FL,readFileSync as ML,statSync as BL}from"node:fs";import{tmpdir as jL}from"node:os";import{dirname as UL,join as nr}from"node:path";async function Se(e,t,r,n,s=process.cwd(),o,i=o?.overhead??Ct){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let a=Number(process.hrtime.bigint()-r)/1e6;n&&o&&qL(s,o);let c=HL(e,t,a);return ac(s,c,i),n?Lr(KL(s,e,t,c,i,n.lastResponseMetrics())):zL(s,e,t,c,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}function HL(e,t,r){let n=lc(),s=t.stdout.length+t.stderr.length,o=(t.rawOutput?.length??t.stdout.length)+t.stderr.length;return{family:e.command??"unknown",wrapperMs:r,childMs:n.childMs,selfStateBytesRead:n.selfStateBytesRead,bytesSaved:Math.max(0,o-s)}}function Lr(e){e.catch(()=>{})}async function aa(e,t,r,n){let{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o}=await Promise.resolve().then(()=>(mt(),$s));await s(e,{collection:o,event_type:"show",ts:new Date().toISOString(),command:"rsp show",command_class:"show",handle:t,hit:r,loss:"lossless",raw_bytes:r?n:0,emitted_bytes:n})}function qL(e,t){try{let r=$t(e),n=BL(r),s=t.telemetryDrainIntervalMs*2;if(n.size<t.telemetryByteBudget&&!VL(r,Date.now()-s))return;let o=WL(e),i=JL(o),a=nr(i,"rsp.sock"),c=nr(i,"rsp.pid"),u=nr(X(o),"rsp-resident.pid.json"),l=nr(o,".red","tmp","rsp","wake.lock");$L(process.execPath,[...process.execArgv,process.argv[1]??"","warm-resident","--socket",a,"--pid-file",c,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours),"--byte-budget",String(t.byteBudget),"--telemetry-ttl-days",String(t.telemetryTtlDays),"--telemetry-byte-budget",String(t.telemetryByteBudget),"--telemetry-drain-interval-ms",String(t.telemetryDrainIntervalMs),"--telemetry-drain-timeout-ms",String(t.telemetryDrainTimeoutMs),"--idle-ms",String(t.idleMs),"--registry",u,"--wake-lock",l],{cwd:o,detached:!0,stdio:"ignore",env:{...process.env,RSP_RESIDENT_WARMER:"1"}}).unref()}catch{}}function WL(e){let t=e;for(;;){if(FL(nr(t,".git")))return t;let r=UL(t);if(r===t)return e;t=r}}function JL(e){let t=NL("sha256").update(e).digest("hex").slice(0,20),r=process.env.XDG_RUNTIME_DIR;if(r){let s=nr(r,"red-skills",t);if(nr(s,"rsp.sock").length<108)return s}let n=typeof process.getuid=="function"?process.getuid():"nouid";return nr(jL(),`red-skills-${n}`,t)}function VL(e,t){try{let r=ML(e,"utf8");Jn(Buffer.byteLength(r));for(let n of r.split(/\r?\n/))if(n.trim())try{let s=JSON.parse(n),o=typeof s.created_at=="string"?s.created_at:s.ts;if(typeof o=="string"){let i=Date.parse(o);if(Number.isFinite(i)&&i<=t)return!0}}catch{}}catch{}return!1}async function KL(e,t,r,n,s,o){let i=Buffer.concat([r.stdout,r.stderr]),a=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),c=wo(n,s),{appendTelemetryEvent:u,RSP_ACCOUNTING_EVENTS_COLLECTION:l,RSP_TELEMETRY_INVOCATIONS_COLLECTION:d}=await Promise.resolve().then(()=>(mt(),$s));await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:ft(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs}),await u(e,{collection:d,ts:new Date().toISOString(),command:ft(t),wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,raw_text:a.toString("utf8"),emitted_text:i.toString("utf8"),...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs,accounting_recorded:!0}),r.degradation&&(await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:ft(t),command_class:t.command??"unknown",loss:t.level,raw_bytes:a.length,emitted_bytes:i.length,degradation_reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead}),await u(e,{collection:"rsp_telemetry_degradations_v1",ts:new Date().toISOString(),command:ft(t),reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead,accounting_recorded:!0}))}function zL(e,t,r,n,s){try{let o=Buffer.concat([r.stdout,r.stderr]),i=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),a=wo(n,s);Yt(e,{collection:"rsp_accounting_events_v1",event_type:"invocation",ts:new Date().toISOString(),command:ft(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a}),Yt(e,{collection:"rsp_telemetry_invocations_v1",ts:new Date().toISOString(),command:ft(t),wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a,accounting_recorded:!0})}catch{}}var cr=class{constructor(t){this.openStore=t}store;metrics;async mint(...t){try{let r=await this.open(),n=await r.mint(...t);return this.metrics=r.lastResponseMetrics?.(),n}catch{return`recovery unavailable (resident cold) \u2014 re-run: ${t[1].command}`}}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}},Nd=class{async mint(t,r){return`recovery unavailable (cold store) \u2014 re-run: ${r.command}`}lastResponseMetrics(){}async close(){}};async function iE(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw n instanceof Error?n:new Error("cold store");let s=new Nd,o=process.hrtime.bigint();try{if(e.command==="git"){let{isFastGitStatus:i,runFastGitStatus:a}=await Promise.resolve().then(()=>(ud(),h_));if(i(e.positional))return await Se(e,await a(),o,s,r,t);let{runGitWrapper:c}=await Promise.resolve().then(()=>(Ar(),Kl)),u=await c(e.positional,{level:e.level,store:s,heavyGitByteThreshold:t.heavyGitByteThreshold});return await Se(e,u,o,s,r,t)}if(e.command==="gh"){let{runGhWrapper:i}=await Promise.resolve().then(()=>(Cd(),xd)),a=await i(e.positional,{level:e.level,store:s});return await Se(e,a,o,s,r,t)}if(e.command==="vitest"||e.command==="cargo"){let{runTestWrapper:i}=await Promise.resolve().then(()=>(Id(),Pd)),a=await i(e.positional,{level:e.level,store:s});return await Se(e,a,o,s,r,t)}if(e.command==="cat"){let{runCatWrapper:i}=await Promise.resolve().then(()=>($d(),Dd)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Se(e,a,o,s,r,t)}if(e.command==="exec"){let{runExecWrapper:i}=await Promise.resolve().then(()=>(qs(),Hs)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Se(e,a,o,s)}}catch(i){return Vr(i)?(process.stdout.write(i.render()),2):await Js("wrapper failed",e.positional,i,r)}finally{await s.close()}return await Js("wrapper failed",e.positional,n,r)}async function aR(e=process.argv.slice(2)){let t=mo("rsp"),r=am(e);if(r.kind==="version")return process.stdout.write(r.json?`${JSON.stringify(t)}
240
+ `:`${fm(t)}
241
+ `),0;if(r.kind==="help")return process.stdout.write(y_(e)),0;let n;try{n=cm(e)}catch(y){if(lm(y))return process.stdout.write(um(y)),2;throw y}if(n.command==="hook"&&n.positional[1]==="claude-pre-exec"){let{runClaudePreExecHook:y}=await Promise.resolve().then(()=>(Ks(),sa));return await y()}if(n.command==="hook"&&n.positional[1]==="codex-pre-exec"){let{runCodexPreExecHook:y}=await Promise.resolve().then(()=>(Ks(),sa));return await y()}if(n.command==="hook"&&n.positional[1]==="claude-post-exec"){let{runClaudePostExecHook:y}=await Promise.resolve().then(()=>(Bs(),Xl));return await y()}if(n.command==="hook"&&n.positional[1]==="codex-post-exec"){let{runCodexPostExecHook:y}=await Promise.resolve().then(()=>(Bs(),Xl));return await y()}if(n.command==="setup"){let{provisionRspRepoStore:y}=await Promise.resolve().then(()=>(fE(),mE)),_=await y(process.cwd());return process.stdout.write(Nc(_)),0}if(n.command==="mcp"){let{runRspMcpServer:y}=await Promise.resolve().then(()=>(EE(),_E));return await y(),0}if(n.command==="wait"){let{runWait:y}=await Promise.resolve().then(()=>(Xu(),Qu));return await y(n.positional)}if(n.command==="shell-init"){let y=n.positional[1];if(y!=="fish"&&y!=="bash"&&y!=="zsh")return process.stdout.write(V({command:n.positional.join(" ")||"shell-init",category:"usage",error:"usage rsp shell-init fish|bash|zsh",help:"rsp shell-init bash"})),2;let{renderShellInit:_}=await Promise.resolve().then(()=>(SE(),kE));return process.stdout.write(_(y)),0}let{resolveRspConfig:s}=await Promise.resolve().then(()=>(Be(),bg)),o=s(process.cwd(),process.env,n.storeUri);if(n.command==="doctor"){let{resolveResidentPaths:y}=await Promise.resolve().then(()=>(ut(),br)),_=y(process.cwd()),T=await d_(o,_,po(n.positional,1));return process.stdout.write(p_(T)),T.exitCode}let i=Vw(n.command);if(!o.enabled)return i?await Jw(n.positional):(process.stdout.write(`${Xi()}
242
+ `),0);if(n.command==="git"&&oa(n.positional)){let y=process.hrtime.bigint();return await Se(n,await ia(),y,void 0,await cd(process.cwd()),o)}let{resolveResidentPaths:a,ensureResidentServer:c}=await Promise.resolve().then(()=>(ut(),br)),u=a(process.cwd());if(i&&n.command){let{overheadFamilyDisabled:y}=await Promise.resolve().then(()=>(ae(),Eo)),_=y(u.rootDir,n.command);if(_)return await Ww(n.positional,u.rootDir,_)}if(i&&qw(o.measurementHoldoutShare))return await Uw(n,u.rootDir,o.measurementHoldoutShare);if(n.command==="server"){let{runResidentServer:y}=await Promise.resolve().then(()=>(iR(),oR)),_=a(process.cwd()),T=Qa(n.positional),C=s(process.cwd(),process.env,n.storeUri);return C.enabled?(await y({socketPath:T.socket??_.socketPath,pidPath:T["pid-file"]??_.pidPath,rootDir:_.rootDir,storeUri:C.storeUri,ttlDays:T["ttl-days"]??C.ttlDays,ephemeralTtlHours:T["ephemeral-ttl-hours"]??C.ephemeralTtlHours,byteBudget:T["byte-budget"]??C.byteBudget,telemetryTtlDays:T["telemetry-ttl-days"]??C.telemetryTtlDays,telemetryByteBudget:T["telemetry-byte-budget"]??C.telemetryByteBudget,telemetryDrainIntervalMs:T["telemetry-drain-interval-ms"]??C.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:T["telemetry-drain-timeout-ms"]??C.telemetryDrainTimeoutMs,idleMs:T["idle-ms"]??C.idleMs,residentVersion:T["resident-version"]??t.version,registryPath:T.registry??_.registryPath}),0):(process.stdout.write(`${Xi()}
243
+ `),0)}if(n.command==="warm-resident"){let y=a(process.cwd()),_=Qa(n.positional),T=s(process.cwd(),process.env,n.storeUri);if(!T.enabled)return 0;let{warmResidentServer:C}=await Promise.resolve().then(()=>(ut(),br));return await C({...y,socketPath:_.socket??y.socketPath,wakeLockPath:_["wake-lock"]??y.wakeLockPath},{storeUri:T.storeUri,ttlDays:_["ttl-days"]??T.ttlDays,ephemeralTtlHours:_["ephemeral-ttl-hours"]??T.ephemeralTtlHours,byteBudget:_["byte-budget"]??T.byteBudget,telemetryTtlDays:_["telemetry-ttl-days"]??T.telemetryTtlDays,telemetryByteBudget:_["telemetry-byte-budget"]??T.telemetryByteBudget,telemetryDrainIntervalMs:_["telemetry-drain-interval-ms"]??T.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:_["telemetry-drain-timeout-ms"]??T.telemetryDrainTimeoutMs,idleMs:_["idle-ms"]??T.idleMs,clientVersion:t.version}),0}if(n.command==="proxy"){let{runProxy:y}=await Promise.resolve().then(()=>(Bi(),Mi));return await y(n.positional,{telemetryRoot:u.rootDir,level:n.level})}if(n.command==="status"||n.command==="sweep"){let{residentRegistryStatus:y,sweepResidentRegistry:_}=await Promise.resolve().then(()=>(ut(),br)),T=n.command==="sweep"?await _(u):await y(u);if(n.command==="sweep"){let{sweepGhEtagCache:F}=await Promise.resolve().then(()=>(Wo(),pg));await F(u.rootDir,{maxBytes:o.ghEtagCacheMaxBytes})}let{overheadHealth:C}=await Promise.resolve().then(()=>(ae(),Eo)),L=C(u.rootDir,o.overhead);return process.stdout.write(Sf(T,L)),0}if(n.command==="gh-api-json"){let{readGhConditionalJson:y}=await Promise.resolve().then(()=>(Yo(),Tg)),_=mm(n.positional);if(!_)return process.stdout.write(V({command:n.positional.join(" "),category:"usage",error:"usage rsp gh-api-json <path> [-f name=value ...]",help:"rsp gh-api-json repos/{owner}/{repo}",validFlags:["-f","-F"]})),2;let T=await y({path:_.path,params:_.params,cwd:process.cwd(),telemetryRoot:u.rootDir,command:`rsp ${n.positional.join(" ")}`,overheadCeiling:o.overhead});return process.stdout.write(T.stdout),T.stderr&&process.stderr.write(`${T.stderr}
244
+ `),T.status}if(n.command==="dashboard"){let y=await Vy(o);return process.stdout.write(Ky(y)),0}if(!n.storeUri&&o.storeUri.startsWith("file://")&&!Y$(Q$(o.storeUri)))return i?await iE(n,o,u.rootDir):(process.stdout.write(V({command:ft(n)||"rsp",category:"real-error",error:"rsp repo store is not provisioned",help:"/red-setup"})),1);let{residentConfigFor:l,residentElisionStore:d,reportResidentEntryDiagnostic:p}=await Promise.resolve().then(()=>(Jt(),Zn)),g=(y=!0)=>Promise.resolve(d(process.cwd(),o,{ensureResident:y,paths:u})),f=()=>c(u,l(o,t.version)).catch(y=>void p(y)),k=()=>g(),E;try{if(n.command==="stats"){let{stats:y,telemetry:_}=await Qr(o,po(n.positional,30)),{overheadHealth:T}=await Promise.resolve().then(()=>(ae(),Eo));return process.stdout.write(Dc(y,_,pm(n.positional),T(u.rootDir,o.overhead))),0}if(n.command==="gains"){let y=await k();E=()=>y.close();let _;try{_=await y.telemetryGains(po(n.positional,28))}catch(T){return process.stdout.write(V({command:`rsp ${n.positional.join(" ")}`.trim(),category:"real-error",error:T instanceof Error?T.message:"rsp gains unavailable",help:"rsp gains requires the shared RedDB store"})),1}return process.stdout.write(xf(_)),0}if(n.command==="git"){if(Lr(f()),oa(n.positional)){let L=process.hrtime.bigint();return await Se(n,await ia(),L,void 0,u.rootDir,o)}let{runGitWrapper:y}=await Promise.resolve().then(()=>(Ar(),Kl)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),C=await y(n.positional,{level:n.level,store:_,heavyGitByteThreshold:o.heavyGitByteThreshold});return await Se(n,C,T,_,u.rootDir,o)}if(n.command==="gh"){Lr(f());let{runGhWrapper:y}=await Promise.resolve().then(()=>(Cd(),xd)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),C=await y(n.positional,{level:n.level,store:_});return await Se(n,C,T,_,u.rootDir,o)}if(n.command==="vitest"||n.command==="cargo"){Lr(f());let{runTestWrapper:y}=await Promise.resolve().then(()=>(Id(),Pd)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),C=await y(n.positional,{level:n.level,store:_});return await Se(n,C,T,_,u.rootDir,o)}if(n.command==="cat"){Lr(f());let{runCatWrapper:y}=await Promise.resolve().then(()=>($d(),Dd)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),C=await y(n.positional,{level:n.level,store:_,heavyByteThreshold:o.heavyGitByteThreshold});return await Se(n,C,T,_,u.rootDir,o)}if(n.command==="exec"){Lr(f());let{runExecWrapper:y}=await Promise.resolve().then(()=>(qs(),Hs)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),C=await y(n.positional,{level:n.level,store:_,heavyByteThreshold:o.heavyGitByteThreshold});return await Se(n,C,T,_,u.rootDir,o)}if(n.command==="show"&&n.handle){let y=await k();E=()=>y.close();let _=await y.get(n.handle);if(_&&"original"in _&&_.original)return process.stdout.write(_.original),await aa(u.rootDir,n.handle,!0,_.original.length),0;if(_?.status==="expired"){let C=V({command:`rsp show ${n.handle}`,category:"real-error",error:`expired ${_.expired_at}`,help:_.command});return process.stdout.write(C),await aa(u.rootDir,n.handle,!1,C.length),1}let T=V({command:`rsp show ${n.handle}`,category:"real-error",error:"expired unknown",help:n.handle});return process.stdout.write(T),await aa(u.rootDir,n.handle,!1,T.length),1}return process.stdout.write(V({command:n.positional.join(" ")||"rsp",category:"usage",error:"usage rsp show el:<id>",help:"rsp show el:<id>"})),2}catch(y){if(Vr(y))return process.stdout.write(y.render()),2;if(i)return await Js("wrapper failed",n.positional,y,u.rootDir);throw y}finally{await E?.()}}at();import.meta.url===`file://${process.argv[1]}`&&aR().then(e=>process.exit(e),e=>{Vr(e)&&(process.stdout.write(e.render()),process.exit(2)),process.stdout.write(V({command:"rsp",category:"real-error",error:e instanceof Error?e.message:String(e),help:"rsp --help"})),process.exit(1)});export{aR as main,Nc as renderSetupResult,Dc as renderStats};
234
245
  /*! Bundled license information:
235
246
 
236
247
  @octokit/request-error/dist-src/index.js: