@reddb-io/red-skills 3.14.0 → 3.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,74 +1,76 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
3
- var NR=Object.create;var Oa=Object.defineProperty;var FR=Object.getOwnPropertyDescriptor;var MR=Object.getOwnPropertyNames;var jR=Object.getPrototypeOf,BR=Object.prototype.hasOwnProperty;var y=(e,t)=>()=>(e&&(t=e(e=0)),t);var bp=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),K=(e,t)=>{for(var r in t)Oa(e,r,{get:t[r],enumerable:!0})},UR=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of MR(t))!BR.call(e,s)&&s!==r&&Oa(e,s,{get:()=>t[s],enumerable:!(n=FR(t,s))||n.enumerable});return e};var Aa=(e,t,r)=>(r=e!=null?NR(jR(e)):{},UR(t||!e||!e.__esModule?Oa(r,"default",{value:e,enumerable:!0}):r,e));function qR(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 WR(e=wp){return Object.entries(e).map(([t,r])=>qR(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function JR(e){return/^-\d+(\.\d+)?$/.test(e)}function Ur(e){return!(!e||e.startsWith("-")&&!JR(e))}function oo(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 _p(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(e.startsWith("[")&&e.endsWith("]")||e.startsWith("{")&&e.endsWith("}"))try{return JSON.parse(e)}catch{}let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e.includes(",")?e.split(",").map(r=>_p(r.trim())):e}function mr(e,t){switch(t){case"boolean":return VR(e);case"number":return KR(e);case"array":return e.split(",").map(r=>oo(r.trim()));case"string":default:return e}}function VR(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function KR(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 qt(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function zR(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 YR(e){let t=[],r=XR(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=ZR(e.options);t.push(...n)}return t}function QR(e,t){let r=YR(e);return zR(r,t)}function XR(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 ZR(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=R=>{d.includes(R)||d.push(R)};l.short&&p(`-${l.short}`),p(`--${u}`);for(let R of l.aliases??[])R.length===1?p(`-${R}`):p(`--${R}`);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 Ep(e){let t=ik(e.options??{},e.autoShort??!1),r=WR(e.separators??wp);return{schema:e,parse(n){return ek(n,e,t,r)},help(){return QR(e,e.formatter)}}}function ek(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?mr(f,p.type):f),c++}s.positional[p.name]=g,i++}else{let g=p.type?mr(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=sk(l,c,e,s,r,t);continue}if(l.startsWith("-")&&l.length>1&&!dk(l)){c=ok(l,c,e,s,r,t);continue}let d=tk(l,n);if(d){let{key:p,value:g,config:f}=d,R=s,b=R[f.to]??(R[f.to]={});b[p]=f.typed?_p(g):qt(g),c++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;c<e.length&&!e[c].startsWith("-");){let R=e[c];f.push(p.type?mr(R,p.type):R),c++}s.positional[p.name]=f,i++;continue}let g=p.type?mr(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 ck(s,t,r),uk(s,t,a),lk(s,t,r),s}function tk(e,t){if(HR.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(rk(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(nk(s,o,r))return{key:s,value:o,config:r}}}return null}function rk(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function nk(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 sk(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 io(u,l,t+1,n,s,o)}let a=s.get(i);if(a){if(a.type!=="boolean"){let c=r[t+1];return Ur(c)?io(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 ok(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=Pa(c,s);return l?io(l.name,u,t+1,n,s,o):(o.strict?n.errors.push(`Unknown option: -${c}`):o.allowUnknown!==!1&&(n.options[c]=oo(qt(u))),t+1)}if(i.length===1){let a=Pa(i,s);if(a){if(a.type!=="boolean"){let c=r[t+1];return Ur(c)?io(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(Ur(c))return n.options[i]=oo(qt(c)),t+2;n.options[i]=!0}return t+1}for(let a of i){let c=Pa(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 io(e,t,r,n,s,o){let i=s.get(e);if(i){if(i.choices){let c=i.type?mr(qt(t),i.type):qt(t);if(!i.choices.includes(c))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?mr(qt(t),i.type):qt(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]=oo(qt(t)));return r}function ik(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=ak(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 ak(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 Pa(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function ck(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?mr(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 uk(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 lk(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 dk(e){return/^-\d+(\.\d+)?$/.test(e)}var wp,HR,Rp=y(()=>{wp={"=":"data",":=":{to:"data",typed:!0},":":"meta"},HR=/^[a-z][a-z0-9+.-]*:\/\//i});function pk(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 mk(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&&Ur(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 jn(e,t,r={}){let s=Ep({options:pk(t),separators:{},allowUnknown:!0}).parse([...e]),o={},i=mk(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 Ia(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 hk(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 fr(e,t,r={}){let n=hk(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=fk.exec(c)??gk.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&&Ur(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 Ga(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 Mn(r,Object.keys(t.commands))}let s=t.keepArgvOnDefault??!0;return{command:t.default,args:s?[...e]:n}}var Ia,fk,gk,Mn,La=y(()=>{Rp();Ia=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}};fk=/^--([^=]+)(?:=([\s\S]*))?$/,gk=/^-([^-=])(?:=([\s\S]*))?$/;Mn=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 Sp(e){return yk.test(e)}var yk,kp,Tp=y(()=>{yk=/rate limit exceeded|secondary rate limit|abuse detection mechanism|API rate limit|API rate limited|RATE_LIMITED|too many requests|\b429\b/i,kp="wait for the GitHub rate limit window to reset, then retry: gh api rate_limit"});var vp=y(()=>{});function v(e,t){return new Hr(e,t)}function B(e,t){return new gr(e,t)}function qr(e){return e instanceof gr?e:e instanceof Hr?new gr(e.line,e.reason):new gr(0,String(e&&e.message?e.message:e))}var Hr,gr,St=y(()=>{Hr=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},gr=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}}});var xp,hr,Cp,Wr=y(()=>{xp=["type","kind","event"],hr="|",Cp=new Set(["order","discriminator","rows","common"])});function ao(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 ot(e){return v(e,"invalid quoted string")}function Fe(e,t){if(e==="")return"";if(e.startsWith('"'))return Pp(e,t);if(e.includes('"'))throw ot(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:bk(e)?Number(e):e}function Ve(e,t){let r=e.trim();if(r.startsWith('"'))return[Pp(r,t),!0];if(r.includes('"')||/\s/.test(r))throw v(t,"expected non-empty field name");return[r,!1]}function Pp(e,t){if(e.charCodeAt(0)!==34)throw ot(t);let r="",n=1;for(;n<e.length;){Op.lastIndex=n;let s=Op.exec(e);if(s===null)break;if(s[0]==='"'){if(e.slice(s.index+1).trim()==="")return r+e.slice(n,s.index);throw ot(t)}if(s[0]!=="\\")throw ot(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 ot(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw ot(t);r+=String.fromCharCode(a),n+=4;break}default:throw ot(t)}}throw ot(t)}function Ip(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 ot(r);t=s+2;continue}if(n===-1)throw ot(r);return n+1}}function Ke(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=Ip(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=Ip(e,s+1,r)}return-1}function bk(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function wk(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function _k(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 it(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 _k(e);if(typeof e=="string")return Rk(e,t);throw v(0,"not a primitive")}function Ek(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ie(e){return Ek(e)?e:co(e)}function Rk(e,t){return Da(e,t)?co(e):e}function Da(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||wk(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}function co(e){let t='"',r=0;Ap.lastIndex=0;let n;for(;(n=Ap.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 ze(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var Q,Op,Ap,yr=y(()=>{St();Q=",";Op=/["\\\u0000-\u0008\u000a-\u001f]/g;Ap=/["\\\u0000-\u001f]/g});function Z(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Bn=y(()=>{});function Gp(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 Lp(e,t){let r=[],n=!1;return ao(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);at(c,i,t),r.push({number:i,depth:c,content:s.slice(a),blankBefore:n}),n=!1}),r}function at(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw v(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function qn(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,at(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}var $a=y(()=>{St();yr();Wr()});function Np(e){if(!Z(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let s=kk(n,1);if(s===void 0)return e;ze(t,r,s)}return t}function kk(e,t){if(!Z(e)||!Sk(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 Fp(t);let c=new Map;for(let[d,p]of Object.entries(e))if(!Cp.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 Na(t);let f=u.get(d)??0,R=g[f];if(R===void 0)throw Na(t);return u.set(d,f+1),vk(n,d,a[p],R,t)});for(let[d,p]of c)if((u.get(d)??0)!==p.length)throw Na(t);return l}function Sk(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=>Ak(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 Fp(r);return Array.from({length:u},(l,d)=>a[d%a.length])}function vk(e,t,r,n,s){let o={};ze(o,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw fe(s);ze(o,i,a)}for(let[i,a]of Object.entries(xk(n,s))){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw fe(s);ze(o,i,a)}return o}function xk(e,t){let r={};for(let[n,s]of Object.entries(e))Ck(r,n.split("."),s,t);return uo(r,t)}function Ck(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 uo(e,t){return Array.isArray(e)?e.map(r=>uo(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 uo(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,uo(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 Ak(e,t){try{return decodeURIComponent(e)}catch{throw fe(t)}}function Dp(e){return encodeURIComponent(e)}function fe(e){return v(e,"invalid cyclic array wire")}function Fp(e){return v(e,"cyclic array length mismatch")}function Na(e){return v(e,"cyclic array group length mismatch")}function Mp(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=Pk(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 Pk(e){if(!Array.isArray(e)||e.length===0||!e.every(Z))return;let t=Ik(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=Gk(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)&&!Fa(d,l,u))return;o.get(c).push(u)}let i=[];for(let a of n.cycle){let c=o.get(a),u=Nk(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 Ik(e){return xp.find(t=>e.every(r=>typeof r[t]=="string"))}function Gk(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(Dp).join(","),o=`cycle(${r.map(Dp).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(!$k(o)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,o))||!e.every(i=>it(i[o])))break;r.push(o)}return r}function Dk(e,t,r){e.push(ie(t),`:
14
- `),e.push(" order: ",Ee(r.order.encoded,hr),`
15
- `),e.push(" discriminator: ",Ee(r.discriminator,hr),`
3
+ var tk=Object.create;var $a=Object.defineProperty;var rk=Object.getOwnPropertyDescriptor;var nk=Object.getOwnPropertyNames;var sk=Object.getPrototypeOf,ok=Object.prototype.hasOwnProperty;var y=(e,t)=>()=>(e&&(t=e(e=0)),t);var vp=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),K=(e,t)=>{for(var r in t)$a(e,r,{get:t[r],enumerable:!0})},ik=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of nk(t))!ok.call(e,s)&&s!==r&&$a(e,s,{get:()=>t[s],enumerable:!(n=rk(t,s))||n.enumerable});return e};var Na=(e,t,r)=>(r=e!=null?tk(sk(e)):{},ik(t||!e||!e.__esModule?$a(r,"default",{value:e,enumerable:!0}):r,e));function ck(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 uk(e=xp){return Object.entries(e).map(([t,r])=>ck(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function lk(e){return/^-\d+(\.\d+)?$/.test(e)}function Wr(e){return!(!e||e.startsWith("-")&&!lk(e))}function mo(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 Op(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=>Op(r.trim())):e}function gr(e,t){switch(t){case"boolean":return dk(e);case"number":return pk(e);case"array":return e.split(",").map(r=>mo(r.trim()));case"string":default:return e}}function dk(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function pk(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 mk(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function J(e,t){return{type:e,value:t}}function fk(e){let t=[],r=hk(e);if(t.push(J("section-header","Usage:"),J("text"," "),J("usage-text",r),J("newline",`
4
+ `),J("newline",`
5
+ `)),e.positional&&e.positional.length>0){t.push(J("section-header","Arguments:"),J("newline",`
6
+ `));for(let n of e.positional)if(n.description){let s=n.variadic?`${n.name}...`:n.name;t.push(J("indent"," "),J("positional-name",`<${s}>`)),n.required||t.push(J("positional-optional"," (optional)")),t.push(J("newline",`
7
+ `),J("indent"," "),J("option-description",n.description),J("newline",`
8
+ `))}t.push(J("newline",`
9
+ `))}if(e.options&&Object.keys(e.options).length>0){t.push(J("section-header","Options:"),J("newline",`
10
+ `));let n=yk(e.options);t.push(...n)}return t}function gk(e,t){let r=fk(e);return mk(r,t)}function hk(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 yk(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=R=>{d.includes(R)||d.push(R)};l.short&&p(`-${l.short}`),p(`--${u}`);for(let R of l.aliases??[])R.length===1?p(`-${R}`):p(`--${R}`);let m=d.join(", "),g=l.type&&l.type!=="boolean"?`<${l.type}>`:void 0;n.push({flags:m,type:g,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(J("indent"," ")),r.push(J(s,u.flags)),u.type&&(r.push(J("text"," ")),r.push(J(o,u.type))),r.push(J("text",d)),r.push(J(a,u.desc)),u.default!==void 0&&(r.push(J("text"," ")),r.push(J(i,`(default: ${u.default})`))),r.push(J("newline",`
11
+ `))}return r}function Cp(e){let t=Sk(e.options??{},e.autoShort??!1),r=uk(e.separators??xp);return{schema:e,parse(n){return bk(n,e,t,r)},help(){return gk(e,e.formatter)}}}function bk(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 m=[];for(;c<e.length;){let g=e[c];m.push(p.type?gr(g,p.type):g),c++}s.positional[p.name]=m,i++}else{let m=p.type?gr(l,p.type):l;s.positional[p.name]=m,i++,c++}}else t.allowUnknown!==!1&&(s.rest=s.rest??[],s.rest.push(l)),c++;continue}if(l.startsWith("--")){c=Rk(l,c,e,s,r,t);continue}if(l.startsWith("-")&&l.length>1&&!Ck(l)){c=kk(l,c,e,s,r,t);continue}let d=wk(l,n);if(d){let{key:p,value:m,config:g}=d,R=s,b=R[g.to]??(R[g.to]={});b[p]=g.typed?Op(m):Jt(m),c++;continue}if(i<a.length){let p=a[i];if(p.variadic){let g=[];for(;c<e.length&&!e[c].startsWith("-");){let R=e[c];g.push(p.type?gr(R,p.type):R),c++}s.positional[p.name]=g,i++;continue}let m=p.type?gr(l,p.type):l;s.positional[p.name]=m,i++}else t.allowUnknown!==!1?s.rest.push(l):s.errors.push(`Unexpected positional argument: ${l}`);c++}return vk(s,t,r),xk(s,t,a),Ok(s,t,r),s}function wk(e,t){if(ak.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(_k(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(Ek(s,o,r))return{key:s,value:o,config:r}}}return null}function _k(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function Ek(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 Rk(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 fo(u,l,t+1,n,s,o)}let a=s.get(i);if(a){if(a.type!=="boolean"){let c=r[t+1];return Wr(c)?fo(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 kk(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=Fa(c,s);return l?fo(l.name,u,t+1,n,s,o):(o.strict?n.errors.push(`Unknown option: -${c}`):o.allowUnknown!==!1&&(n.options[c]=mo(Jt(u))),t+1)}if(i.length===1){let a=Fa(i,s);if(a){if(a.type!=="boolean"){let c=r[t+1];return Wr(c)?fo(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(Wr(c))return n.options[i]=mo(Jt(c)),t+2;n.options[i]=!0}return t+1}for(let a of i){let c=Fa(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 fo(e,t,r,n,s,o){let i=s.get(e);if(i){if(i.choices){let c=i.type?gr(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?gr(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]=mo(Jt(t)));return r}function Sk(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=Tk(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 Tk(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 Fa(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function vk(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?gr(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 xk(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 Ok(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 Ck(e){return/^-\d+(\.\d+)?$/.test(e)}var xp,ak,Ap=y(()=>{xp={"=":"data",":=":{to:"data",typed:!0},":":"meta"},ak=/^[a-z][a-z0-9+.-]*:\/\//i});function Ak(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 Pk(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&&Wr(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 Hn(e,t,r={}){let s=Cp({options:Ak(t),separators:{},allowUnknown:!0}).parse([...e]),o={},i=Pk(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 Ma(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 Gk(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 hr(e,t,r={}){let n=Gk(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=Ik.exec(c)??Lk.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&&Wr(e[a+1])&&(p=e[a+1],a+=1),p===void 0)throw new Error(`${c} requires a value`);if(d.type==="array"){let m=o[l]??[];m.push(d.coerce(p)),o[l]=m}else o[l]=d.coerce(p)}return{values:o,rest:i}}function ja(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 Un(r,Object.keys(t.commands))}let s=t.keepArgvOnDefault??!0;return{command:t.default,args:s?[...e]:n}}var Ma,Ik,Lk,Un,Ba=y(()=>{Ap();Ma=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}};Ik=/^--([^=]+)(?:=([\s\S]*))?$/,Lk=/^-([^-=])(?:=([\s\S]*))?$/;Un=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 Ip(e){return Dk.test(e)}var Dk,Pp,Lp=y(()=>{Dk=/rate limit exceeded|secondary rate limit|abuse detection mechanism|API rate limit|API rate limited|RATE_LIMITED|too many requests|\b429\b/i,Pp="wait for the GitHub rate limit window to reset, then retry: gh api rate_limit"});var Gp=y(()=>{});function v(e,t){return new Jr(e,t)}function B(e,t){return new yr(e,t)}function Vr(e){return e instanceof yr?e:e instanceof Jr?new yr(e.line,e.reason):new yr(0,String(e&&e.message?e.message:e))}var Jr,yr,xt=y(()=>{Jr=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},yr=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}}});var Dp,br,$p,Kr=y(()=>{Dp=["type","kind","event"],br="|",$p=new Set(["order","discriminator","rows","common"])});function go(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 ut(e){return v(e,"invalid quoted string")}function je(e,t){if(e==="")return"";if(e.startsWith('"'))return Mp(e,t);if(e.includes('"'))throw ut(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:$k(e)?Number(e):e}function ze(e,t){let r=e.trim();if(r.startsWith('"'))return[Mp(r,t),!0];if(r.includes('"')||/\s/.test(r))throw v(t,"expected non-empty field name");return[r,!1]}function Mp(e,t){if(e.charCodeAt(0)!==34)throw ut(t);let r="",n=1;for(;n<e.length;){Np.lastIndex=n;let s=Np.exec(e);if(s===null)break;if(s[0]==='"'){if(e.slice(s.index+1).trim()==="")return r+e.slice(n,s.index);throw ut(t)}if(s[0]!=="\\")throw ut(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 ut(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw ut(t);r+=String.fromCharCode(a),n+=4;break}default:throw ut(t)}}throw ut(t)}function jp(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 ut(r);t=s+2;continue}if(n===-1)throw ut(r);return n+1}}function Ye(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=jp(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=jp(e,s+1,r)}return-1}function $k(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Nk(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Fk(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 lt(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 Fk(e);if(typeof e=="string")return jk(e,t);throw v(0,"not a primitive")}function Mk(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ie(e){return Mk(e)?e:ho(e)}function jk(e,t){return Ua(e,t)?ho(e):e}function Ua(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||Nk(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}function ho(e){let t='"',r=0;Fp.lastIndex=0;let n;for(;(n=Fp.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 Qe(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var Q,Np,Fp,wr=y(()=>{xt();Q=",";Np=/["\\\u0000-\u0008\u000a-\u001f]/g;Fp=/["\\\u0000-\u001f]/g});function Z(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var qn=y(()=>{});function Bp(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 Up(e,t){let r=[],n=!1;return go(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);dt(c,i,t),r.push({number:i,depth:c,content:s.slice(a),blankBefore:n}),n=!1}),r}function dt(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw v(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function Vn(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,dt(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}var Ha=y(()=>{xt();wr();Kr()});function Wp(e){if(!Z(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let s=Bk(n,1);if(s===void 0)return e;Qe(t,r,s)}return t}function Bk(e,t){if(!Z(e)||!Uk(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=Hk(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 Jp(t);let c=new Map;for(let[d,p]of Object.entries(e))if(!$p.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 m=c.get(d);if(m===void 0)throw qa(t);let g=u.get(d)??0,R=m[g];if(R===void 0)throw qa(t);return u.set(d,g+1),qk(n,d,a[p],R,t)});for(let[d,p]of c)if((u.get(d)??0)!==p.length)throw qa(t);return l}function Uk(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function Hk(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=>Kk(l,r));if(a.some(l=>l===""))throw fe(r);let c=Vk(i,r),u=a.length*c;if(!Number.isSafeInteger(u))throw fe(r);if(u!==t)throw Jp(r);return Array.from({length:u},(l,d)=>a[d%a.length])}function qk(e,t,r,n,s){let o={};Qe(o,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw fe(s);Qe(o,i,a)}for(let[i,a]of Object.entries(Wk(n,s))){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw fe(s);Qe(o,i,a)}return o}function Wk(e,t){let r={};for(let[n,s]of Object.entries(e))Jk(r,n.split("."),s,t);return yo(r,t)}function Jk(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 yo(e,t){return Array.isArray(e)?e.map(r=>yo(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 yo(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,yo(n,t)])):e}function Vk(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 Kk(e,t){try{return decodeURIComponent(e)}catch{throw fe(t)}}function Hp(e){return encodeURIComponent(e)}function fe(e){return v(e,"invalid cyclic array wire")}function Jp(e){return v(e,"cyclic array length mismatch")}function qa(e){return v(e,"cyclic array group length mismatch")}function Vp(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=zk(o);if(i===void 0)return;r.push([s,i])}let n=[];for(let[s,o]of r)Zk(n,s,o);return n.join("")}function zk(e){if(!Array.isArray(e)||e.length===0||!e.every(Z))return;let t=Yk(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=Qk(r);if(n===void 0)return;let s=Xk(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)&&!Wa(d,l,u))return;o.get(c).push(u)}let i=[];for(let a of n.cycle){let c=o.get(a),u=tS(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 Yk(e){return Dp.find(t=>e.every(r=>typeof r[t]=="string"))}function Qk(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(Hp).join(","),o=`cycle(${r.map(Hp).join(",")})*${n}`;if(o.length<=s.length*.4)return{cycle:r,encoded:o,repeats:n}}}function Xk(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(!eS(o)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,o))||!e.every(i=>lt(i[o])))break;r.push(o)}return r}function Zk(e,t,r){e.push(ie(t),`:
14
+ `),e.push(" order: ",Ee(r.order.encoded,br),`
15
+ `),e.push(" discriminator: ",Ee(r.discriminator,br),`
16
16
  `),e.push(" rows: ",String(r.rows.length),`
17
- `),r.common.length>0&&$p(e,"common",r.common,r.commonRows);for(let n of r.groups)$p(e,n.label,n.fields,n.rows)}function $p(e,t,r,n){e.push(" ",ie(t),"[",String(n.length),hr,"]{",r.map(ie).join(hr),`}:
18
- `);for(let s of n)e.push(" ",r.map(o=>Ee(s[o],hr)).join(hr),`
19
- `)}function $k(e){return e!==""&&Ma(e)}function Fa(e,t,r,n=new Set){if(!Ma(t))return!1;if(it(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)=>Fa(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(".")&&Fa(i,`${t}.${o}`,r,n));return n.delete(e),s}return!1}function Nk(e){let t=Object.keys(e[0]??{});if(e.every(r=>Fk(Object.keys(r),t)))return t.every(Ma)?t:void 0}function Fk(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Ma(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}var ja=y(()=>{St();yr();Wr();Bn()});function Jr(e,t){let r=e[t]??e[e.length-1];return v(r===void 0?1:r.number,"array length mismatch")}function lo(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]=Ve(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=jk(p.slice(1,-1),d),g=Ua(f)}catch(R){throw v(0,R.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 jp(e){let t=_e(e,"{",0);if(t===-1||!e.endsWith("}"))throw v(0,"invalid keyed map header");let r,n;try{[r,n]=Ve(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=Mk(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 Mk(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]=Ve(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 R=e.slice(f,s);if(!Bp(R,r))throw v(0,"invalid array header");s+=1,n.push({path:[...c,p],listDelimiter:R})}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(Up(n[c].path,n[u].path)||Wn(n[c].path,n[u].path)||Wn(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 jk(e,t){if(t!==Q&&e.includes(Q)&&(e.includes("[")||e.includes("{")))return Ba(e,Q,t);try{return Ba(e,t,t)}catch(r){if(t!==Q&&r.reason!=="duplicate key")return Ba(e,Q,t);throw r}}function Ba(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]=Ve(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 R=e.slice(f,n);n+=1;let b=Bk(R);if(b!==void 0){if(b.delimiter!==r)throw v(0,"invalid array header");g.fixedLength=b.len,g.fixedDelimiter=b.delimiter}else if(Bp(R,r))g.listDelimiter=R;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=Ua(i);for(let c=0;c<a.length;c+=1)for(let u=c+1;u<a.length;u+=1)if(Up(a[c].path,a[u].path)||Wn(a[c].path,a[u].path)||Wn(a[u].path,a[c].path))throw v(0,"duplicate key");return i}function Bk(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 Ua(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?Ua(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function po(e,t,r){return e.listDelimiter===void 0?Fe(t,r):Ke(t,e.listDelimiter,r).map(n=>Fe(n,r))}function Bp(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Up(e,t){return e.length===t.length&&Wn(e,t)}function Wn(e,t){return t.every((r,n)=>e[n]===r)}function mo(e,t){return v(t,e.reason??String(e.message))}var Hp=y(()=>{St();yr()});function H(e,t){let r=Gp(t),n=Lp(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("[")){qn(s.content,s.number,r);let u;try{u=lo(s.content,_e(s.content,":",s.number))}catch(l){if(r.strict)throw mo(l,s.number);u=void 0}if(u!==void 0)return qk(u,n,r)}if(o&&_e(s.content,":",s.number)===-1)return Fe(s.content.trim(),s.number);let i={index:0},a=qa(n,i,0,r),c=n[i.index];if(c!==void 0)throw v(c.number,"expected end of document");return r.cyclicDiscriminatedArrays?Np(a):a}function qa(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}=Uk(e,t,r,n);Yp(s,i,a,c,n,o.number)}return s}function Uk(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)){qn(a,s.number,n);let f;try{f=jp(a)}catch(b){if(n.strict)throw mo(b,s.number);t.index+=1;let h=Ha(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:h}}if(c.trim()!=="")throw v(s.number,"expected keyed map rows");let R=Hk(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:R}}if(u!==-1){qn(a,s.number,n);let f;try{f=lo(a,i)}catch(b){if(n.strict)throw mo(b,s.number);t.index+=1;let h=Ha(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:h}}if(f.key===""&&!f.keyQuoted)throw v(s.number,"expected non-empty field name");let R=Wa(f,c,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:R}}let[d,p]=Ve(a,s.number);if(d===""&&!p)throw v(s.number,"expected non-empty field name");t.index+=1;let g=Ha(e,t,r,c,s.number,n);return{key:d,quoted:p,value:g}}function Ha(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?qa(e,t,r+1,o):{}}function Hk(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]=Ve(i.content.slice(0,a),i.number);if(c===""&&!u)throw v(i.number,"expected non-empty field name");let l=Ke(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)=>{Kr(d,p.path,po(p,l[g],i.number),s,i.number)}),Yp(o,c,u,d,s,i.number),r.index+=1}return o}function qk(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=Wa(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 Wa(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 Wk(e,e.fields,r,n,s+1,o)}if(a!==""){let c=Ke(a,e.delimiter,i).map(u=>Fe(u,i));if(c.length!==e.len)throw v(i,"array length mismatch");return c}return Xk(e,r,n,s+1,o)}function Wk(e,t,r,n,s,o){if(e.fieldTree!==void 0&&Yk(e.fieldTree))return Jk(e,r,n,s,o);let i=[];for(;i.length<e.len;){let c=r[n.index];if(c===void 0)throw Jr(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(!Vr(c.content,e.delimiter,c.number))break;let u=Ke(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)=>{Kr(l,d.path,po(d,u[p],c.number),o,c.number)}),i.push(l),n.index+=1}if(i.length!==e.len)throw Jr(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=s&&Vr(a.content,e.delimiter,a.number))throw v(a.number,"array length mismatch");return i}function Jk(e,t,r,n,s){return qp(e.len,e.fieldTree,e.delimiter,t,r,n,s,!0)}function qp(e,t,r,n,s,o,i,a){let c=[],u=Jp(e,t,r,n,s.index,o,i);for(;c.length<e;){let d=n[s.index];if(d===void 0)throw Jr(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(!Vr(d.content,r,d.number))break;let p=Ke(d.content,r,d.number),g={cellIndex:0,nextIndex:s.index+1,flatWidth:fo(t),childTableFields:u},f=Wp(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(zk(t,f,a)),s.index=g.nextIndex}if(c.length!==e)throw Jr(n,s.index);let l=n[s.index];if(l!==void 0&&l.depth>=o&&Vr(l.content,r,l.number))throw v(l.number,"array length mismatch");return c}function Wp(e,t,r,n,s,o,i,a){let c={};return e.forEach((u,l)=>{let d=e.slice(l+1),p=Vk(u,d,t,r,n,s,o,i,a);Kr(c,[u.key],p,a,r)}),c}function Vk(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=fo(e.children),d=r[o.cellIndex],p=Kp(d),g=r.length-o.cellIndex-1,f=s[o.nextIndex],R=f!==void 0&&f.depth===i,b=o.childTableFields===void 0?void 0:o.childTableFields.has(e);if(b===void 0?p!==void 0&&(R||r.length!==o.flatWidth&&g<l+Qk(t)):b){if(p===void 0)throw v(n,"array row length mismatch");return o.cellIndex+=1,qp(p,e.children,a,s,{get index(){return o.nextIndex},set index(E){o.nextIndex=E}},i,c,!1)}return Wp(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,po(e,u,n)}function Jp(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=Vp(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 Vp(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||!Vr(p.content,n,p.number))return;let g=Ke(p.content,n,p.number),f=Kk(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&&Vr(l.content,n,l.number))return}catch{return}return{nextIndex:c,consumedChildRows:u}}function Kk(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=Kp(r[c]);if(p===void 0)return;c+=1;let g=Jp(p,d.children,n,s,u,i,a);if(g===void 0)return;let f=Vp(p,d.children,g,n,s,u,i,a);if(f===void 0)return;u=f.nextIndex,l+=p+f.consumedChildRows}else c+=fo(d.children);else c+=1;if(c>r.length)return}if(c===r.length)return{nextIndex:u,consumedChildRows:l}}function zk(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function Kp(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function Yk(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function fo(e){return e.reduce((t,r)=>t+zp(r),0)}function zp(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?fo(e.children):1}function Qk(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+zp(r),0)}function Vr(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 Xk(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 Jr(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(Zk(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 Zk(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);qn(o,s.number,n);let a;try{a=lo(o,i)}catch{a=void 0}if(a!==void 0){let c=o.slice(i+1);return Wa(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 qa(i,{index:0},r+1,n)}return t.index+=1,Fe(o,s.number)}function Yp(e,t,r,n,s,o){if(s.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(eS)){Kr(e,i,n,s,o);return}}Kr(e,[t],n,s,o)}function Kr(e,t,r,n,s){at(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");ze(e,o,r);return}if(i&&!Z(e[o])){if(n.strict)throw v(s,"path expansion conflict");ze(e,o,{})}else i||ze(e,o,{});Kr(e[o],t.slice(1),r,n,s)}function eS(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var Qp=y(()=>{St();yr();Wr();Bn();$a();ja();Hp()});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=Mp(e);if(i!==void 0)return i}let o=[];return Array.isArray(e)?za(o,void 0,e,0,!1,s):Z(e)?Xp(o,e,0,s):o.push(Ee(e,n)),o.join("")}function zr(e,t){e.push(" ".repeat(t*2))}function Xp(e,t,r,n){at(r,0,n);for(let[s,o]of Object.entries(t))zr(e,r),Va(e,s,o,r,n)}function Va(e,t,r,n,s){if(at(n,0,s),Array.isArray(r)){za(e,t,r,n,!1,s);return}if(Z(r)){let o=s.keyedMapCollapse?rS(r,s,n+1):void 0;if(o!==void 0){e.push(ie(t),"{",Ya(s.delimiter),o.fields.map(i=>Za(i,s.delimiter)).join(s.delimiter),`}:
20
- `);for(let[i,a]of Object.entries(r)){zr(e,n+1);let c=[];e.push(ie(i),": ",o.paths.map(u=>ec(Xa(a,u.path),u,s.delimiter,s,c,n+2)).join(s.delimiter),`
17
+ `),r.common.length>0&&qp(e,"common",r.common,r.commonRows);for(let n of r.groups)qp(e,n.label,n.fields,n.rows)}function qp(e,t,r,n){e.push(" ",ie(t),"[",String(n.length),br,"]{",r.map(ie).join(br),`}:
18
+ `);for(let s of n)e.push(" ",r.map(o=>Ee(s[o],br)).join(br),`
19
+ `)}function eS(e){return e!==""&&Ja(e)}function Wa(e,t,r,n=new Set){if(!Ja(t))return!1;if(lt(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)=>Wa(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(".")&&Wa(i,`${t}.${o}`,r,n));return n.delete(e),s}return!1}function tS(e){let t=Object.keys(e[0]??{});if(e.every(r=>rS(Object.keys(r),t)))return t.every(Ja)?t:void 0}function rS(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Ja(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}var Va=y(()=>{xt();wr();Kr();qn()});function zr(e,t){let r=e[t]??e[e.length-1];return v(r===void 0?1:r.number,"array length mismatch")}function bo(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]=ze(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),m,g;if(p==="")m=void 0,g=void 0;else if(p.startsWith("{")&&p.endsWith("}")&&p.length>=2)try{g=sS(p.slice(1,-1),d),m=za(g)}catch(R){throw v(0,R.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:m,fieldTree:g}}function Kp(e){let t=_e(e,"{",0);if(t===-1||!e.endsWith("}"))throw v(0,"invalid keyed map header");let r,n;try{[r,n]=ze(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=nS(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 nS(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 g=e[s];if(g==='"'){i();continue}if(g===t||g==="{"||g==="}"||g==="[")break;s+=1}let[p,m]=ze(e.slice(d,s),0);if(p===""&&!m)throw v(0,"invalid array header");if(l+=1,e[s]==="["){s+=1;let g=s;for(;s<e.length&&e[s]!=="]";)s+=1;if(s>=e.length)throw v(0,"invalid array header");let R=e.slice(g,s);if(!zp(R,r))throw v(0,"invalid array header");s+=1,n.push({path:[...c,p],listDelimiter:R})}else if(e[s]==="{"){s+=1;let g=n.length;if(o([...c,p],!0),e[s]!=="}"||n.length===g)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(Yp(n[c].path,n[u].path)||Kn(n[c].path,n[u].path)||Kn(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 sS(e,t){if(t!==Q&&e.includes(Q)&&(e.includes("[")||e.includes("{")))return Ka(e,Q,t);try{return Ka(e,t,t)}catch(r){if(t!==Q&&r.reason!=="duplicate key")return Ka(e,Q,t);throw r}}function Ka(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 g=e[n];if(g==='"'){o();continue}if(g===t||g==="{"||g==="}"||g==="[")break;n+=1}let[d,p]=ze(e.slice(l,n),0);if(d===""&&!p)throw v(0,"invalid array header");let m={key:d};if(e[n]==="["){n+=1;let g=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw v(0,"invalid array header");let R=e.slice(g,n);n+=1;let b=oS(R);if(b!==void 0){if(b.delimiter!==r)throw v(0,"invalid array header");m.fixedLength=b.len,m.fixedDelimiter=b.delimiter}else if(zp(R,r))m.listDelimiter=R;else throw v(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,m.children=s(!0),e[n]!=="}"||m.children.length===0)throw v(0,"invalid array header");n+=1}if(u.push(m),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=za(i);for(let c=0;c<a.length;c+=1)for(let u=c+1;u<a.length;u+=1)if(Yp(a[c].path,a[u].path)||Kn(a[c].path,a[u].path)||Kn(a[u].path,a[c].path))throw v(0,"duplicate key");return i}function oS(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 za(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?za(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function wo(e,t,r){return e.listDelimiter===void 0?je(t,r):Ye(t,e.listDelimiter,r).map(n=>je(n,r))}function zp(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Yp(e,t){return e.length===t.length&&Kn(e,t)}function Kn(e,t){return t.every((r,n)=>e[n]===r)}function _o(e,t){return v(t,e.reason??String(e.message))}var Qp=y(()=>{xt();wr()});function H(e,t){let r=Bp(t),n=Up(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("[")){Vn(s.content,s.number,r);let u;try{u=bo(s.content,_e(s.content,":",s.number))}catch(l){if(r.strict)throw _o(l,s.number);u=void 0}if(u!==void 0)return cS(u,n,r)}if(o&&_e(s.content,":",s.number)===-1)return je(s.content.trim(),s.number);let i={index:0},a=Qa(n,i,0,r),c=n[i.index];if(c!==void 0)throw v(c.number,"expected end of document");return r.cyclicDiscriminatedArrays?Wp(a):a}function Qa(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}=iS(e,t,r,n);sm(s,i,a,c,n,o.number)}return s}function iS(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)){Vn(a,s.number,n);let g;try{g=Kp(a)}catch(b){if(n.strict)throw _o(b,s.number);t.index+=1;let h=Ya(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:h}}if(c.trim()!=="")throw v(s.number,"expected keyed map rows");let R=aS(g,e,t,r+1,n);return{key:g.key,quoted:g.keyQuoted,value:R}}if(u!==-1){Vn(a,s.number,n);let g;try{g=bo(a,i)}catch(b){if(n.strict)throw _o(b,s.number);t.index+=1;let h=Ya(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:h}}if(g.key===""&&!g.keyQuoted)throw v(s.number,"expected non-empty field name");let R=Xa(g,c,e,t,r,n);return{key:g.key,quoted:g.keyQuoted,value:R}}let[d,p]=ze(a,s.number);if(d===""&&!p)throw v(s.number,"expected non-empty field name");t.index+=1;let m=Ya(e,t,r,c,s.number,n);return{key:d,quoted:p,value:m}}function Ya(e,t,r,n,s,o){let i=n.trim();if(i==="[]")return[];if(i!=="")return je(i,s);let a=e[t.index];return a!==void 0&&a.depth>r?Qa(e,t,r+1,o):{}}function aS(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]=ze(i.content.slice(0,a),i.number);if(c===""&&!u)throw v(i.number,"expected non-empty field name");let l=Ye(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,m)=>{Qr(d,p.path,wo(p,l[m],i.number),s,i.number)}),sm(o,c,u,d,s,i.number),r.index+=1}return o}function cS(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=Xa(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 Xa(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 uS(e,e.fields,r,n,s+1,o)}if(a!==""){let c=Ye(a,e.delimiter,i).map(u=>je(u,i));if(c.length!==e.len)throw v(i,"array length mismatch");return c}return hS(e,r,n,s+1,o)}function uS(e,t,r,n,s,o){if(e.fieldTree!==void 0&&fS(e.fieldTree))return lS(e,r,n,s,o);let i=[];for(;i.length<e.len;){let c=r[n.index];if(c===void 0)throw zr(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(!Yr(c.content,e.delimiter,c.number))break;let u=Ye(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)=>{Qr(l,d.path,wo(d,u[p],c.number),o,c.number)}),i.push(l),n.index+=1}if(i.length!==e.len)throw zr(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=s&&Yr(a.content,e.delimiter,a.number))throw v(a.number,"array length mismatch");return i}function lS(e,t,r,n,s){return Xp(e.len,e.fieldTree,e.delimiter,t,r,n,s,!0)}function Xp(e,t,r,n,s,o,i,a){let c=[],u=em(e,t,r,n,s.index,o,i);for(;c.length<e;){let d=n[s.index];if(d===void 0)throw zr(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(!Yr(d.content,r,d.number))break;let p=Ye(d.content,r,d.number),m={cellIndex:0,nextIndex:s.index+1,flatWidth:Eo(t),childTableFields:u},g=Zp(t,p,d.number,n,m,o+1,r,i);if(m.cellIndex!==p.length)throw v(d.number,"array row length mismatch");c.push(mS(t,g,a)),s.index=m.nextIndex}if(c.length!==e)throw zr(n,s.index);let l=n[s.index];if(l!==void 0&&l.depth>=o&&Yr(l.content,r,l.number))throw v(l.number,"array length mismatch");return c}function Zp(e,t,r,n,s,o,i,a){let c={};return e.forEach((u,l)=>{let d=e.slice(l+1),p=dS(u,d,t,r,n,s,o,i,a);Qr(c,[u.key],p,a,r)}),c}function dS(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=>je(d,n));return o.cellIndex+=e.fixedLength,l}if(e.children!==void 0){let l=Eo(e.children),d=r[o.cellIndex],p=rm(d),m=r.length-o.cellIndex-1,g=s[o.nextIndex],R=g!==void 0&&g.depth===i,b=o.childTableFields===void 0?void 0:o.childTableFields.has(e);if(b===void 0?p!==void 0&&(R||r.length!==o.flatWidth&&m<l+gS(t)):b){if(p===void 0)throw v(n,"array row length mismatch");return o.cellIndex+=1,Xp(p,e.children,a,s,{get index(){return o.nextIndex},set index(E){o.nextIndex=E}},i,c,!1)}return Zp(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,wo(e,u,n)}function em(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((m,g)=>{l&1<<g&&d.add(m)});let p=tm(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 tm(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||!Yr(p.content,n,p.number))return;let m=Ye(p.content,n,p.number),g=pS(t,r,m,n,s,c+1,i+1,a);if(g===void 0||s[g.nextIndex]?.depth>i)return;u+=g.consumedChildRows,c=g.nextIndex}let l=s[c];if(l!==void 0&&l.depth>=i&&Yr(l.content,n,l.number))return}catch{return}return{nextIndex:c,consumedChildRows:u}}function pS(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=rm(r[c]);if(p===void 0)return;c+=1;let m=em(p,d.children,n,s,u,i,a);if(m===void 0)return;let g=tm(p,d.children,m,n,s,u,i,a);if(g===void 0)return;u=g.nextIndex,l+=p+g.consumedChildRows}else c+=Eo(d.children);else c+=1;if(c>r.length)return}if(c===r.length)return{nextIndex:u,consumedChildRows:l}}function mS(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function rm(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function fS(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Eo(e){return e.reduce((t,r)=>t+nm(r),0)}function nm(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Eo(e.children):1}function gS(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+nm(r),0)}function Yr(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 hS(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 zr(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(yS(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 yS(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);Vn(o,s.number,n);let a;try{a=bo(o,i)}catch{a=void 0}if(a!==void 0){let c=o.slice(i+1);return Xa(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 Qa(i,{index:0},r+1,n)}return t.index+=1,je(o,s.number)}function sm(e,t,r,n,s,o){if(s.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(bS)){Qr(e,i,n,s,o);return}}Qr(e,[t],n,s,o)}function Qr(e,t,r,n,s){dt(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");Qe(e,o,r);return}if(i&&!Z(e[o])){if(n.strict)throw v(s,"path expansion conflict");Qe(e,o,{})}else i||Qe(e,o,{});Qr(e[o],t.slice(1),r,n,s)}function bS(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var om=y(()=>{xt();wr();Kr();qn();Ha();Va();Qp()});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=Vp(e);if(i!==void 0)return i}let o=[];return Array.isArray(e)?rc(o,void 0,e,0,!1,s):Z(e)?im(o,e,0,s):o.push(Ee(e,n)),o.join("")}function Xr(e,t){e.push(" ".repeat(t*2))}function im(e,t,r,n){dt(r,0,n);for(let[s,o]of Object.entries(t))Xr(e,r),ec(e,s,o,r,n)}function ec(e,t,r,n,s){if(dt(n,0,s),Array.isArray(r)){rc(e,t,r,n,!1,s);return}if(Z(r)){let o=s.keyedMapCollapse?_S(r,s,n+1):void 0;if(o!==void 0){e.push(ie(t),"{",nc(s.delimiter),o.fields.map(i=>ic(i,s.delimiter)).join(s.delimiter),`}:
20
+ `);for(let[i,a]of Object.entries(r)){Xr(e,n+1);let c=[];e.push(ie(i),": ",o.paths.map(u=>ac(oc(a,u.path),u,s.delimiter,s,c,n+2)).join(s.delimiter),`
21
21
  `),e.push(...c)}return}e.push(ie(t),`:
22
- `),Xp(e,r,n+1,s);return}e.push(ie(t),": ",Ee(r,s.delimiter),`
23
- `)}function za(e,t,r,n,s,o){if(at(n,0,o),r.length===0){t!==void 0?e.push(ie(t),`: []
22
+ `),im(e,r,n+1,s);return}e.push(ie(t),": ",Ee(r,s.delimiter),`
23
+ `)}function rc(e,t,r,n,s,o){if(dt(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(it)){Ja(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:Zp(r,o,n+1);if(i!==void 0){Ja(e,t,r.length,i.fields,o.delimiter),e.push(`
28
- `);for(let a of r){zr(e,n+1);let c=[];e.push(i.paths.map(u=>ec(Xa(a,u.path),u,o.delimiter,o,c,n+2)).join(o.delimiter)),e.push(`
29
- `),e.push(...c)}return}Ja(e,t,r.length,void 0,o.delimiter),e.push(`
30
- `);for(let a of r)zr(e,n+1),tS(e,a,n+1,o)}function tS(e,t,r,n){if(at(r,0,n),Array.isArray(t)){e.push("- "),za(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("- "),Va(e,s[0][0],s[0][1],r+1,n);for(let[o,i]of s.slice(1))zr(e,r+1),Va(e,o,i,r+1,n);return}e.push("- ",Ee(t,n.delimiter),`
32
- `)}function Ja(e,t,r,n,s){t!==void 0&&e.push(ie(t)),e.push("[",String(r),Ya(s),"]"),n!==void 0&&e.push("{",n.map(o=>Za(o,s)).join(s),"}"),e.push(":")}function Ya(e){return e===Q?"":e}function Zp(e,t,r){let n=nS(e,t);if(n!==void 0)return n;let s=Ka(e.map(o=>({value:o})),t,r);return s===void 0?void 0:{fields:s,paths:Qa(s)}}function rS(e,t,r){let n=Object.values(e);if(!(n.length<2))return Zp(n,t,r)}function Ka(e,t,r){at(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})=>it(c)))continue;if(t.primitiveArrayColumns&&i.every(({value:c})=>Array.isArray(c)&&c.every(it))){o.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:c})=>Array.isArray(c))){let c=em(i.map(({value:l})=>l));if(c!==void 0){o.fixedLength=c.fixedLength,o.fixedDelimiter=t.delimiter;continue}let u=Ka(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=Ka(i,t,r+1);if(a===void 0)return;o.children=a}return s}}function nS(e,t){if(!t.objectArrayColumns)return;let r=em(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function em(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(it)))return{fixedLength:t}}function Qa(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}]:Qa(r.children,n)})}function Xa(e,t){let r=e;for(let n of t)r=r[n];return r}function Za(e,t){return e.listDelimiter!==void 0?`${ie(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ie(e.key)}[${e.fixedLength}${Ya(t)}]`:e.children===void 0?ie(e.key):`${ie(e.key)}{${e.children.map(r=>Za(r,t)).join(t)}}`}function ec(e,t,r,n,s,o){return t.childFields!==void 0?(sS(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=>oS(i,r,t.listDelimiter)).join(t.listDelimiter)}function sS(e,t,r,n,s){for(let o of t){zr(e,s);let i=[];e.push(Qa(r).map(a=>ec(Xa(o,a.path),a,n.delimiter,n,i,s+1)).join(n.delimiter)),e.push(`
33
- `),e.push(...i)}}function oS(e,t,r){return typeof e!="string"?Ee(e,t):Da(e,t)||e.includes(r)?co(e):e}var tm=y(()=>{St();yr();Wr();Bn();$a();ja()});var Jn=y(()=>{Wr();Qp();Bn();tm()});var rm=y(()=>{Jn()});function uS(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw B(t,"invalid trailer count");return Number.parseInt(r,10)}function mm(e,t){if(!pm.test(e))throw B(t,"invalid tag")}function lS(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!pm.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw B(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function dS(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw B(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(!lm.includes(i)&&i!=="")throw B(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 B(t,"invalid tag");if(u=c.slice(1,p),mm(u,t),i!=="")throw B(t,"invalid header delimiter");c=c.slice(p+1)}if(!c.startsWith("{")||!c.endsWith("}:"))throw B(t,"invalid header");let l=c.slice(1,-2),d;try{d=Ke(l,a,t).map(p=>Ve(p,t)[0])}catch(p){throw qr(p)}if(d.length===0||d.some(p=>p===""))throw B(t,"invalid header fields");return{delimiter:a,fields:d,fieldText:l,continuation:o,tag:u}}function pS(e,t,r){if(e===null||e.delimiter===void 0)throw B(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw B(r,"continuation header mismatch")}function nm(e,t,r,n){let s;try{s=Ke(e,t,n)}catch(o){throw qr(o)}if(s.length!==r)throw B(n,"row arity mismatch");for(let o of s)try{Fe(o,n)}catch(i){throw qr(i)}return s}function mS(e,t,r){let n={};return e.forEach((s,o)=>{try{ze(n,s,Fe(t[o],r))}catch(i){throw qr(i)}}),n}function fS(e,t,r){if(e.startsWith("- "))throw B(t,"reserved line prefix");let n=uS(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw B(t,"trailer without header");if(r.rowCount!==n)throw B(t,"trailer count mismatch");return{kind:"trailer"}}let s=dS(e,t);if(s!==null)return s.continuation?(pS(r,s,t),{kind:"continuation"}):s.tag!==null?{kind:"tag-header",header:s}:{kind:"header",header:s};let o=lS(e,t);if(o!==null){let i=r?.taggedLanes?.get(o.tag);if(i===void 0)throw B(t,"unknown tag");return{kind:"tagged-row",tag:o.tag,cells:nm(o.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw B(t,"row before header");return{kind:"row",cells:nm(e,r.delimiter,r.fields.length,t)}}function gS(e,t={}){let r=[],n=new Map,s=[],o=[],i=null,a=!1,c=!1;function u(g,f){let R=o.at(-1);if(R!==void 0&&R.lane===g.lane&&R.delimiter===g.delimiter&&R.fieldText===g.fieldText){R.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,R){let b=n.get(g);if(b===void 0){if(n.size>=dm)throw B(R,"too many tagged lanes");b={segments:[],current:null},n.set(g,b),r.push(g)}else b.current!==null&&b.segments.push(b.current);b.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},b.delimiter=f.delimiter,b.fields=f.fields,b.fieldText=f.fieldText}if(ao(e).forEach((g,f)=>{let R=f+1;if(g==="")return;let b=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},h=fS(g,R,b);if(h.kind==="trailer"){l(),i=null;return}if(h.kind!=="continuation"){if(h.kind==="tag-header"){c=!0,d(h.header.tag,h.header,R);return}if(h.kind==="header"){l(),a||(r.push(null),a=!0),i={lane:null,delimiter:h.header.delimiter,fields:h.header.fields,fieldText:h.header.fieldText,rows:[]};return}if(h.kind==="tagged-row"){c=!0;let E=n.get(h.tag).current;E.rows.push(h.cells),u(E,h.cells);return}if(i===null)throw B(R,"row before header");i.rows.push(h.cells),u(i,h.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 Tt(e){return gS(e).flatMap(t=>t.rows.map(r=>mS(t.fields,r,0)))}function hS(e){if(!lm.includes(e))throw B(0,"invalid header delimiter")}function sm(e,t,r=!1){return`[${`${r?"~":""}${e===Q?"":e}`}]{${t}}:
34
- `}function om(e,t){return`[]<${e}>{${t}}:
35
- `}function tc(e,t){return t.map(ie).join(e)}function yS(e){if(!Array.isArray(e)||e.length===0)throw B(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=Ve(String(t),0)}catch(n){throw qr(n)}if(r==="")throw B(0,"TOONL header requires fields");return r})}function im(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function am(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw B(0,"TOONL continuation cadence must be positive")}function bS(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function cm(e){if(e===null||typeof e!="object"||Array.isArray(e))throw B(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw B(0,"TOONL output requires object rows");if(t.some(r=>!it(e[r])))throw B(0,"TOONL rows must be flat objects");return t}function wS(e){return JSON.stringify([...e].sort())}function um(e,t){let r=wS(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function vt({delimiter:e=Q,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){hS(e),am(r),am(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=()=>bS(p,c,u)?(c=0,u=0,sm(e,o,!0)):"",R=b=>{mm(b,0);let h=l.get(b);if(h===void 0){if(l.size>=dm)throw B(0,"too many tagged lanes");h={fields:null,fieldsByShape:new Map},l.set(b,h)}return h};return{push(b){if(d)throw B(0,"TOONL encoder is closed");let h=um(cm(b),i),E="";(s===null||s.length!==h.length||s.some((G,F)=>G!==h[F]))&&(E+=g(),s=h,o=tc(e,s),a=0,c=0,u=0,E+=sm(e,o));let T=s.map(G=>Ee(b[G],e));E+=f();let C=`${T.join(e)}
37
- `;return E+=C,a+=1,c+=1,u+=C.length,E},declareLane(b,h){if(d)throw B(0,"TOONL encoder is closed");let E=yS(h),T=tc(Q,E),C=R(b);return im(C.fields,E)?"":(C.fields=E,om(b,T))},pushTagged(b,h){if(d)throw B(0,"TOONL encoder is closed");let E=R(b),T=um(cm(h),E.fieldsByShape),C=tc(Q,T),G=T.map(q=>Ee(h[q],Q)),F="";return im(E.fields,T)||(E.fields=T,F+=om(b,C)),`${F}${b}:${G.join(Q)}
38
- `},end(){return d?"":(d=!0,g())}}}var lm,dm,pm,DF,$F,fm=y(()=>{St();Jn();yr();lm=[Q,"|"," "],dm=8,pm=/^[A-Za-z0-9_-]+$/,DF=new TextEncoder,$F=new TextDecoder});var J=y(()=>{vp();St();Jn();Jn();rm();fm()});function ES(e){return e==="no-op"?0:e==="usage"?2:1}function V(e){return Buffer.from(`${$(rc(e))}
39
- `)}function rc(e){let t={command:e.command,category:e.category,exit_code:e.exitCode??ES(e.category),error:e.error,help:[e.help]};return e.validFlags&&e.validFlags.length>0&&(t.valid_flags=[...e.validFlags]),e.diagnostics&&(t.diagnostics=RS(e.diagnostics,3)),t}function Ye(e,t,r){let s=([r,t].find(i=>i.trim())??"").trim(),o=s.toLowerCase();return/\bgh\b/.test(e)&&Sp(s)?{command:e,category:"transient",error:Vn(s)||"GitHub API rate limit exceeded",help:kp,diagnostics:s}:/\bgh\b/.test(e)&&(o.includes("gh_token")||o.includes("not logged in")||o.includes("authentication"))?{command:e,category:"real-error",error:Vn(s)||"GitHub authentication failed",help:"gh auth login",diagnostics:s}:o.includes("not a git repository")?{command:e,category:"real-error",error:Vn(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:Vn(s)||"repository is unavailable",help:e.startsWith("gh ")?"gh repo view":"git remote -v",diagnostics:s}:{command:e,category:"real-error",error:Vn(s)||"command failed",help:`${e} --help`,diagnostics:s}}function gm(e,t,r,n){return V({command:e,category:"usage",error:`unknown flag: ${t}`,help:n,validFlags:r})}function Vn(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function RS(e,t){return e.split(/\r?\n/).slice(0,t).join(`
40
- `).trim()}var ct=y(()=>{"use strict";Tp();J()});function yo(e){let t={app:e,version:GS(Qr("__RED_BUILD_VERSION__",()=>"3.14.0")??"0.0.0-dev"),gitSha:Qr("__RED_BUILD_GIT_SHA__",()=>"82a1d2afb4a6c7588b36242c5b589576ac9863c4")??"unknown",buildTime:Qr("__RED_BUILD_TIME__",()=>"2026-08-11T10:17:46-03:00")??"unknown",bundleAsset:Qr("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},r=Qr("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=Qr("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function GS(e){return e.startsWith("v")?e.slice(1):e}function Sm(e){return`${e.app} ${e.version} ${e.gitSha}`}function Qr(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var sc=y(()=>{});import{isAbsolute as LS,join as xt,resolve as oc}from"node:path";function NS(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}function vm(e){return xt(NS(e),Tm)}function xm(e){return xt(vm(e),"state")}function Cm(e){return xt(vm(e),"tmp")}function X(e){return xt(xm(e),"rsp")}function FS(e){return xt(xm(e),"red-skills.rdb")}function MS(e){return xt(Cm(e),"red-skills.rdb")}function Pm(e,t){let r=FS(e);if(t(r))return r;let n=MS(e);if(t(n))throw jS();return r}function jS(){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 Im(e){return xt(Cm(e),"waits")}function Gm(e){let t=e.overrideEnvVars??ic;for(let n of t){let s=e.env[n];if(s)return LS(s)?s:oc(e.startDir,s)}let r=oc(e.startDir);for(;;){if(e.exists(xt(r,Tm)))return r;let n=xt(r,".."),s=oc(n);if(s===r)break;r=s}return e.startDir}var Tm,DS,$S,ic,Om,Am,Ge=y(()=>{Tm=".red",DS="MEMORY_ROOT",$S="RED_BRAIN_ROOT",ic=[DS,$S];Om=".red/state/red-skills.rdb";Am=".red/tmp/red-skills.rdb"});function ne(e){return $(e,{keyedMapCollapse:!0})}var BS,US,bM,Ct=y(()=>{J();Ge();BS=[{id:"memory.config",plugin:"memory",legacyPath:".red/memory/config.json",toonPath:".red/memory/config.toon",kind:"toon"}],US=[{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"}],bM=[...BS,...US]});function Kn(e){let{values:t,rest:r}=fr(e,{query:Lm.query},Dm);return{argv:r,query:t.query?.trim()||void 0}}function $m(e){let{values:t,rest:r}=fr(e,Lm,Dm);return{argv:r,query:t.query?.trim()||void 0,full:t.full===!0}}function HS(e,t){if(!t)return!0;let r=ac(e).toLowerCase();return t.toLowerCase().split(/\s+/).filter(Boolean).every(n=>r.includes(n))}function Re(e,t){return t?e.filter(r=>HS(r,t)):[...e]}function Ot(e,t){return cc(e,t,{includeLegacyHelp:!0})}function cc(e,t,r={}){let n=t.filter(Boolean);return n.length===0?e:{...e,...r.includeLegacyHelp?{help:n}:{},next_steps:n}}function ac(e){return Array.isArray(e)?e.map(ac).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(ac).join(" "):String(e??"")}var Lm,Dm,zn=y(()=>{"use strict";La();Lm={query:{kind:"value",coerce:e=>e},full:{kind:"boolean"}},Dm={stopAtSeparator:!1}});var To={};K(To,{DEFAULT_RSP_MAX_OVERHEAD_MS:()=>bo,DEFAULT_RSP_MAX_SELF_STATE_BYTES:()=>wo,DEFAULT_RSP_OVERHEAD_CEILING:()=>At,DEFAULT_RSP_OVERHEAD_CONSECUTIVE_BREACHES:()=>Eo,DEFAULT_RSP_OVERHEAD_COOLDOWN_MS:()=>Ro,DEFAULT_RSP_OVERHEAD_NET_LOSS_FLOOR_BYTES:()=>_o,RSP_OVERHEAD_FAMILIES:()=>YS,RSP_OVERHEAD_LEDGER_FILE:()=>Mm,RSP_OVERHEAD_SCHEMA_VERSION:()=>jm,classifyOverheadSample:()=>dc,noteChildProcessMs:()=>Um,noteSelfStateBytesRead:()=>Qn,overheadCounters:()=>hc,overheadFamilyDisabled:()=>QS,overheadHealth:()=>Jt,overheadLedgerPath:()=>pc,overheadMsOf:()=>Bm,overheadTelemetryFields:()=>ko,readOverheadLedger:()=>Yn,readSelfStateFile:()=>So,readSelfStateFileSync:()=>eT,recordOverheadSample:()=>mc,resetOverheadCounters:()=>ZS,resetOverheadLedger:()=>XS,startChildProcessTimer:()=>Le});import{existsSync as qS,mkdirSync as WS,readFileSync as Nm,renameSync as JS,writeFileSync as VS}from"node:fs";import{readFile as KS}from"node:fs/promises";import{dirname as zS,join as Fm}from"node:path";function Bm(e){let t=e.wrapperMs-e.childMs;return Number.isFinite(t)?Math.max(0,lc(t)):0}function dc(e,t=At){let r=Bm(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 ko(e,t=At){let r=dc(e,t);return{wrapper_ms:lc(e.wrapperMs),overhead_ms:r.overhead_ms,child_ms:lc(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 pc(e){return Fm(X(e),Mm)}function Yn(e){try{let t=Nm(pc(e),"utf8"),r=sT(t);if(oT(r))return r}catch{}return{version:1,families:{}}}function mc(e,t,r=At,n=Date.now()){let s=Yn(e),o=dc(t,r),i=s.families[t.family]??nT(t.family,n),a=yc(i,n)?Hm(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=tT(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,qm(e,s),u}function QS(e,t,r=Date.now()){let n=Yn(e).families[t];return!n?.disabled||yc(n,r)?null:n}function XS(e,t){let r=Yn(e);return t?delete r.families[t]:r.families={},qm(e,r),r}function Jt(e,t=At,r=Date.now()){let n=Object.values(Yn(e).families).map(a=>yc(a,r)?Hm(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:jm,verdict:i,summary:rT(i,s,o),ceiling:t,breaching_families:o,disabled_families:s,families:n}}function Qn(e){Number.isFinite(e)&&e>0&&(fc+=e)}function Um(e){Number.isFinite(e)&&e>0&&(gc+=e)}function hc(){return{selfStateBytesRead:fc,childMs:gc}}function ZS(){fc=0,gc=0}function Le(){let e=process.hrtime.bigint(),t=!1;return()=>{t||(t=!0,Um(Number(process.hrtime.bigint()-e)/1e6))}}async function So(e){let t=await KS(e,"utf8");return Qn(Buffer.byteLength(t)),t}function eT(e){let t=Nm(e,"utf8");return Qn(Buffer.byteLength(t)),t}function tT(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 rT(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 yc(e,t){if(!e.disabled||!e.disabled_until)return!1;let r=Date.parse(e.disabled_until);return Number.isFinite(r)&&r<=t}function Hm(e){return{...e,disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,consecutive_breaches:0,breached:!1,reasons:[]}}function nT(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 qm(e,t){try{let r=pc(e);if(!qS(Fm(e,".red")))return;WS(zS(r),{recursive:!0});let n=`${r}.${process.pid}.tmp`;VS(n,`${$(t)}
41
- `,{encoding:"utf8",mode:384}),JS(n,r)}catch{}}function sT(e){try{return JSON.parse(e)}catch{return H(e)}}function oT(e){return!uc(e)||e.version!==1||!uc(e.families)?!1:Object.values(e.families).every(iT)}function iT(e){return uc(e)&&typeof e.family=="string"&&typeof e.consecutive_breaches=="number"&&typeof e.disabled=="boolean"}function uc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lc(e){return Number.isFinite(e)?Math.round(e*1e3)/1e3:0}var Mm,jm,bo,wo,_o,Eo,Ro,YS,At,fc,gc,ae=y(()=>{"use strict";Ge();J();Mm="overhead-budget.toon",jm="red.rsp.overhead.v1",bo=250,wo=1024*1024,_o=64*1024,Eo=3,Ro=6*60*60*1e3,YS=["git","gh","gh-api-json","vitest","cargo","cat","exec","proxy"],At={maxOverheadMs:bo,maxSelfStateBytes:wo,netLossFloorBytes:_o,consecutiveBreaches:Eo,cooldownMs:Ro};fc=0,gc=0});function Vm(e){return e.trimStart().startsWith("{")?"json":"toon"}function wc(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(lt)){Za(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:am(r,o,n+1);if(i!==void 0){Za(e,t,r.length,i.fields,o.delimiter),e.push(`
28
+ `);for(let a of r){Xr(e,n+1);let c=[];e.push(i.paths.map(u=>ac(oc(a,u.path),u,o.delimiter,o,c,n+2)).join(o.delimiter)),e.push(`
29
+ `),e.push(...c)}return}Za(e,t,r.length,void 0,o.delimiter),e.push(`
30
+ `);for(let a of r)Xr(e,n+1),wS(e,a,n+1,o)}function wS(e,t,r,n){if(dt(r,0,n),Array.isArray(t)){e.push("- "),rc(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("- "),ec(e,s[0][0],s[0][1],r+1,n);for(let[o,i]of s.slice(1))Xr(e,r+1),ec(e,o,i,r+1,n);return}e.push("- ",Ee(t,n.delimiter),`
32
+ `)}function Za(e,t,r,n,s){t!==void 0&&e.push(ie(t)),e.push("[",String(r),nc(s),"]"),n!==void 0&&e.push("{",n.map(o=>ic(o,s)).join(s),"}"),e.push(":")}function nc(e){return e===Q?"":e}function am(e,t,r){let n=ES(e,t);if(n!==void 0)return n;let s=tc(e.map(o=>({value:o})),t,r);return s===void 0?void 0:{fields:s,paths:sc(s)}}function _S(e,t,r){let n=Object.values(e);if(!(n.length<2))return am(n,t,r)}function tc(e,t,r){dt(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})=>lt(c)))continue;if(t.primitiveArrayColumns&&i.every(({value:c})=>Array.isArray(c)&&c.every(lt))){o.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:c})=>Array.isArray(c))){let c=cm(i.map(({value:l})=>l));if(c!==void 0){o.fixedLength=c.fixedLength,o.fixedDelimiter=t.delimiter;continue}let u=tc(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=tc(i,t,r+1);if(a===void 0)return;o.children=a}return s}}function ES(e,t){if(!t.objectArrayColumns)return;let r=cm(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function cm(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(lt)))return{fixedLength:t}}function sc(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}]:sc(r.children,n)})}function oc(e,t){let r=e;for(let n of t)r=r[n];return r}function ic(e,t){return e.listDelimiter!==void 0?`${ie(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ie(e.key)}[${e.fixedLength}${nc(t)}]`:e.children===void 0?ie(e.key):`${ie(e.key)}{${e.children.map(r=>ic(r,t)).join(t)}}`}function ac(e,t,r,n,s,o){return t.childFields!==void 0?(RS(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=>kS(i,r,t.listDelimiter)).join(t.listDelimiter)}function RS(e,t,r,n,s){for(let o of t){Xr(e,s);let i=[];e.push(sc(r).map(a=>ac(oc(o,a.path),a,n.delimiter,n,i,s+1)).join(n.delimiter)),e.push(`
33
+ `),e.push(...i)}}function kS(e,t,r){return typeof e!="string"?Ee(e,t):Ua(e,t)||e.includes(r)?ho(e):e}var um=y(()=>{xt();wr();Kr();qn();Ha();Va()});var zn=y(()=>{Kr();om();qn();um()});var lm=y(()=>{zn()});function xS(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw B(t,"invalid trailer count");return Number.parseInt(r,10)}function Em(e,t){if(!_m.test(e))throw B(t,"invalid tag")}function OS(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!_m.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw B(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function CS(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw B(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(!bm.includes(i)&&i!=="")throw B(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 B(t,"invalid tag");if(u=c.slice(1,p),Em(u,t),i!=="")throw B(t,"invalid header delimiter");c=c.slice(p+1)}if(!c.startsWith("{")||!c.endsWith("}:"))throw B(t,"invalid header");let l=c.slice(1,-2),d;try{d=Ye(l,a,t).map(p=>ze(p,t)[0])}catch(p){throw Vr(p)}if(d.length===0||d.some(p=>p===""))throw B(t,"invalid header fields");return{delimiter:a,fields:d,fieldText:l,continuation:o,tag:u}}function AS(e,t,r){if(e===null||e.delimiter===void 0)throw B(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw B(r,"continuation header mismatch")}function dm(e,t,r,n){let s;try{s=Ye(e,t,n)}catch(o){throw Vr(o)}if(s.length!==r)throw B(n,"row arity mismatch");for(let o of s)try{je(o,n)}catch(i){throw Vr(i)}return s}function PS(e,t,r){let n={};return e.forEach((s,o)=>{try{Qe(n,s,je(t[o],r))}catch(i){throw Vr(i)}}),n}function IS(e,t,r){if(e.startsWith("- "))throw B(t,"reserved line prefix");let n=xS(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw B(t,"trailer without header");if(r.rowCount!==n)throw B(t,"trailer count mismatch");return{kind:"trailer"}}let s=CS(e,t);if(s!==null)return s.continuation?(AS(r,s,t),{kind:"continuation"}):s.tag!==null?{kind:"tag-header",header:s}:{kind:"header",header:s};let o=OS(e,t);if(o!==null){let i=r?.taggedLanes?.get(o.tag);if(i===void 0)throw B(t,"unknown tag");return{kind:"tagged-row",tag:o.tag,cells:dm(o.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw B(t,"row before header");return{kind:"row",cells:dm(e,r.delimiter,r.fields.length,t)}}function LS(e,t={}){let r=[],n=new Map,s=[],o=[],i=null,a=!1,c=!1;function u(m,g){let R=o.at(-1);if(R!==void 0&&R.lane===m.lane&&R.delimiter===m.delimiter&&R.fieldText===m.fieldText){R.rows.push(g);return}o.push({lane:m.lane,delimiter:m.delimiter,fields:m.fields,fieldText:m.fieldText,rows:[g]})}function l(){i!==null&&s.push({delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,lane:i.lane,rows:i.rows})}function d(m,g,R){let b=n.get(m);if(b===void 0){if(n.size>=wm)throw B(R,"too many tagged lanes");b={segments:[],current:null},n.set(m,b),r.push(m)}else b.current!==null&&b.segments.push(b.current);b.current={lane:m,delimiter:g.delimiter,fields:g.fields,fieldText:g.fieldText,rows:[]},b.delimiter=g.delimiter,b.fields=g.fields,b.fieldText=g.fieldText}if(go(e).forEach((m,g)=>{let R=g+1;if(m==="")return;let b=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},h=IS(m,R,b);if(h.kind==="trailer"){l(),i=null;return}if(h.kind!=="continuation"){if(h.kind==="tag-header"){c=!0,d(h.header.tag,h.header,R);return}if(h.kind==="header"){l(),a||(r.push(null),a=!0),i={lane:null,delimiter:h.header.delimiter,fields:h.header.fields,fieldText:h.header.fieldText,rows:[]};return}if(h.kind==="tagged-row"){c=!0;let E=n.get(h.tag).current;E.rows.push(h.cells),u(E,h.cells);return}if(i===null)throw B(R,"row before header");i.rows.push(h.cells),u(i,h.cells)}}),!c)return l(),t.preserveInterleaving===!0,s;let p=[];l();for(let m of r){if(m===null){p.push(...s);continue}let g=n.get(m);p.push(...g.segments),g.current!==null&&p.push(g.current)}return t.preserveInterleaving===!0?o:p}function Le(e){return LS(e).flatMap(t=>t.rows.map(r=>PS(t.fields,r,0)))}function GS(e){if(!bm.includes(e))throw B(0,"invalid header delimiter")}function pm(e,t,r=!1){return`[${`${r?"~":""}${e===Q?"":e}`}]{${t}}:
34
+ `}function mm(e,t){return`[]<${e}>{${t}}:
35
+ `}function cc(e,t){return t.map(ie).join(e)}function DS(e){if(!Array.isArray(e)||e.length===0)throw B(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=ze(String(t),0)}catch(n){throw Vr(n)}if(r==="")throw B(0,"TOONL header requires fields");return r})}function fm(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function gm(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw B(0,"TOONL continuation cadence must be positive")}function $S(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function hm(e){if(e===null||typeof e!="object"||Array.isArray(e))throw B(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw B(0,"TOONL output requires object rows");if(t.some(r=>!lt(e[r])))throw B(0,"TOONL rows must be flat objects");return t}function NS(e){return JSON.stringify([...e].sort())}function ym(e,t){let r=NS(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function Ge({delimiter:e=Q,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){GS(e),gm(r),gm(n);let s=null,o="",i=new Map,a=0,c=0,u=0,l=new Map,d=!1,p={continuationEveryRows:r,continuationEveryBytes:n},m=()=>s===null||!t?"":`[=${a}]
36
+ `,g=()=>$S(p,c,u)?(c=0,u=0,pm(e,o,!0)):"",R=b=>{Em(b,0);let h=l.get(b);if(h===void 0){if(l.size>=wm)throw B(0,"too many tagged lanes");h={fields:null,fieldsByShape:new Map},l.set(b,h)}return h};return{push(b){if(d)throw B(0,"TOONL encoder is closed");let h=ym(hm(b),i),E="";(s===null||s.length!==h.length||s.some((L,F)=>L!==h[F]))&&(E+=m(),s=h,o=cc(e,s),a=0,c=0,u=0,E+=pm(e,o));let T=s.map(L=>Ee(b[L],e));E+=g();let O=`${T.join(e)}
37
+ `;return E+=O,a+=1,c+=1,u+=O.length,E},declareLane(b,h){if(d)throw B(0,"TOONL encoder is closed");let E=DS(h),T=cc(Q,E),O=R(b);return fm(O.fields,E)?"":(O.fields=E,mm(b,T))},pushTagged(b,h){if(d)throw B(0,"TOONL encoder is closed");let E=R(b),T=ym(hm(h),E.fieldsByShape),O=cc(Q,T),L=T.map(q=>Ee(h[q],Q)),F="";return fm(E.fields,T)||(E.fields=T,F+=mm(b,O)),`${F}${b}:${L.join(Q)}
38
+ `},end(){return d?"":(d=!0,m())}}}var bm,wm,_m,bM,wM,Rm=y(()=>{xt();zn();wr();bm=[Q,"|"," "],wm=8,_m=/^[A-Za-z0-9_-]+$/,bM=new TextEncoder,wM=new TextDecoder});var W=y(()=>{Gp();xt();zn();zn();lm();Rm()});function MS(e){return e==="no-op"?0:e==="usage"?2:1}function V(e){return Buffer.from(`${$(uc(e))}
39
+ `)}function uc(e){let t={command:e.command,category:e.category,exit_code:e.exitCode??MS(e.category),error:e.error,help:[e.help]};return e.validFlags&&e.validFlags.length>0&&(t.valid_flags=[...e.validFlags]),e.diagnostics&&(t.diagnostics=jS(e.diagnostics,3)),t}function Xe(e,t,r){let s=([r,t].find(i=>i.trim())??"").trim(),o=s.toLowerCase();return/\bgh\b/.test(e)&&Ip(s)?{command:e,category:"transient",error:Yn(s)||"GitHub API rate limit exceeded",help:Pp,diagnostics:s}:/\bgh\b/.test(e)&&(o.includes("gh_token")||o.includes("not logged in")||o.includes("authentication"))?{command:e,category:"real-error",error:Yn(s)||"GitHub authentication failed",help:"gh auth login",diagnostics:s}:o.includes("not a git repository")?{command:e,category:"real-error",error:Yn(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:Yn(s)||"repository is unavailable",help:e.startsWith("gh ")?"gh repo view":"git remote -v",diagnostics:s}:{command:e,category:"real-error",error:Yn(s)||"command failed",help:`${e} --help`,diagnostics:s}}function km(e,t,r,n){return V({command:e,category:"usage",error:`unknown flag: ${t}`,help:n,validFlags:r})}function Yn(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function jS(e,t){return e.split(/\r?\n/).slice(0,t).join(`
40
+ `).trim()}var pt=y(()=>{"use strict";Lp();W()});function So(e){let t={app:e,version:QS(en("__RED_BUILD_VERSION__",()=>"3.15.0")??"0.0.0-dev"),gitSha:en("__RED_BUILD_GIT_SHA__",()=>"0b9b48598365f6dffd996fa47ad06a3f8fc38edd")??"unknown",buildTime:en("__RED_BUILD_TIME__",()=>"2026-08-11T14:46:42-03:00")??"unknown",bundleAsset:en("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},r=en("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=en("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function QS(e){return e.startsWith("v")?e.slice(1):e}function Im(e){return`${e.app} ${e.version} ${e.gitSha}`}function en(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var dc=y(()=>{});import{isAbsolute as XS,join as Ot,resolve as pc}from"node:path";function tT(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}function Gm(e){return Ot(tT(e),Lm)}function Dm(e){return Ot(Gm(e),"state")}function $m(e){return Ot(Gm(e),"tmp")}function X(e){return Ot(Dm(e),"rsp")}function rT(e){return Ot(Dm(e),"red-skills.rdb")}function nT(e){return Ot($m(e),"red-skills.rdb")}function Mm(e,t){let r=rT(e);if(t(r))return r;let n=nT(e);if(t(n))throw sT();return r}function sT(){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 jm(e){return Ot($m(e),"waits")}function Bm(e){let t=e.overrideEnvVars??mc;for(let n of t){let s=e.env[n];if(s)return XS(s)?s:pc(e.startDir,s)}let r=pc(e.startDir);for(;;){if(e.exists(Ot(r,Lm)))return r;let n=Ot(r,".."),s=pc(n);if(s===r)break;r=s}return e.startDir}var Lm,ZS,eT,mc,Nm,Fm,De=y(()=>{Lm=".red",ZS="MEMORY_ROOT",eT="RED_BRAIN_ROOT",mc=[ZS,eT];Nm=".red/state/red-skills.rdb";Fm=".red/tmp/red-skills.rdb"});function ne(e){return $(e,{keyedMapCollapse:!0})}var oT,iT,tj,Ct=y(()=>{W();De();oT=[{id:"memory.config",plugin:"memory",legacyPath:".red/memory/config.json",toonPath:".red/memory/config.toon",kind:"toon"}],iT=[{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"}],tj=[...oT,...iT]});function Qn(e){let{values:t,rest:r}=hr(e,{query:Um.query},Hm);return{argv:r,query:t.query?.trim()||void 0}}function qm(e){let{values:t,rest:r}=hr(e,Um,Hm);return{argv:r,query:t.query?.trim()||void 0,full:t.full===!0}}function aT(e,t){if(!t)return!0;let r=fc(e).toLowerCase();return t.toLowerCase().split(/\s+/).filter(Boolean).every(n=>r.includes(n))}function Re(e,t){return t?e.filter(r=>aT(r,t)):[...e]}function At(e,t){return gc(e,t,{includeLegacyHelp:!0})}function gc(e,t,r={}){let n=t.filter(Boolean);return n.length===0?e:{...e,...r.includeLegacyHelp?{help:n}:{},next_steps:n}}function fc(e){return Array.isArray(e)?e.map(fc).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(fc).join(" "):String(e??"")}var Um,Hm,Xn=y(()=>{"use strict";Ba();Um={query:{kind:"value",coerce:e=>e},full:{kind:"boolean"}},Hm={stopAtSeparator:!1}});var Io={};K(Io,{DEFAULT_RSP_MAX_OVERHEAD_MS:()=>To,DEFAULT_RSP_MAX_SELF_STATE_BYTES:()=>vo,DEFAULT_RSP_OVERHEAD_CEILING:()=>Pt,DEFAULT_RSP_OVERHEAD_CONSECUTIVE_BREACHES:()=>Oo,DEFAULT_RSP_OVERHEAD_COOLDOWN_MS:()=>Co,DEFAULT_RSP_OVERHEAD_NET_LOSS_FLOOR_BYTES:()=>xo,RSP_OVERHEAD_FAMILIES:()=>fT,RSP_OVERHEAD_LEDGER_FILE:()=>Vm,RSP_OVERHEAD_SCHEMA_VERSION:()=>Km,classifyOverheadSample:()=>bc,noteChildProcessMs:()=>Ym,noteSelfStateBytesRead:()=>es,overheadCounters:()=>kc,overheadFamilyDisabled:()=>gT,overheadHealth:()=>Kt,overheadLedgerPath:()=>wc,overheadMsOf:()=>zm,overheadTelemetryFields:()=>Ao,readOverheadLedger:()=>Zn,readSelfStateFile:()=>Po,readSelfStateFileSync:()=>bT,recordOverheadSample:()=>_c,resetOverheadCounters:()=>yT,resetOverheadLedger:()=>hT,startChildProcessTimer:()=>$e});import{existsSync as cT,mkdirSync as uT,readFileSync as Wm,renameSync as lT,writeFileSync as dT}from"node:fs";import{readFile as pT}from"node:fs/promises";import{dirname as mT,join as Jm}from"node:path";function zm(e){let t=e.wrapperMs-e.childMs;return Number.isFinite(t)?Math.max(0,yc(t)):0}function bc(e,t=Pt){let r=zm(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 Ao(e,t=Pt){let r=bc(e,t);return{wrapper_ms:yc(e.wrapperMs),overhead_ms:r.overhead_ms,child_ms:yc(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 wc(e){return Jm(X(e),Vm)}function Zn(e){try{let t=Wm(wc(e),"utf8"),r=RT(t);if(kT(r))return r}catch{}return{version:1,families:{}}}function _c(e,t,r=Pt,n=Date.now()){let s=Zn(e),o=bc(t,r),i=s.families[t.family]??ET(t.family,n),a=Sc(i,n)?Qm(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=wT(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,Xm(e,s),u}function gT(e,t,r=Date.now()){let n=Zn(e).families[t];return!n?.disabled||Sc(n,r)?null:n}function hT(e,t){let r=Zn(e);return t?delete r.families[t]:r.families={},Xm(e,r),r}function Kt(e,t=Pt,r=Date.now()){let n=Object.values(Zn(e).families).map(a=>Sc(a,r)?Qm(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:Km,verdict:i,summary:_T(i,s,o),ceiling:t,breaching_families:o,disabled_families:s,families:n}}function es(e){Number.isFinite(e)&&e>0&&(Ec+=e)}function Ym(e){Number.isFinite(e)&&e>0&&(Rc+=e)}function kc(){return{selfStateBytesRead:Ec,childMs:Rc}}function yT(){Ec=0,Rc=0}function $e(){let e=process.hrtime.bigint(),t=!1;return()=>{t||(t=!0,Ym(Number(process.hrtime.bigint()-e)/1e6))}}async function Po(e){let t=await pT(e,"utf8");return es(Buffer.byteLength(t)),t}function bT(e){let t=Wm(e,"utf8");return es(Buffer.byteLength(t)),t}function wT(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 _T(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 Qm(e){return{...e,disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,consecutive_breaches:0,breached:!1,reasons:[]}}function ET(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 Xm(e,t){try{let r=wc(e);if(!cT(Jm(e,".red")))return;uT(mT(r),{recursive:!0});let n=`${r}.${process.pid}.tmp`;dT(n,`${$(t)}
41
+ `,{encoding:"utf8",mode:384}),lT(n,r)}catch{}}function RT(e){try{return JSON.parse(e)}catch{return H(e)}}function kT(e){return!hc(e)||e.version!==1||!hc(e.families)?!1:Object.values(e.families).every(ST)}function ST(e){return hc(e)&&typeof e.family=="string"&&typeof e.consecutive_breaches=="number"&&typeof e.disabled=="boolean"}function hc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yc(e){return Number.isFinite(e)?Math.round(e*1e3)/1e3:0}var Vm,Km,To,vo,xo,Oo,Co,fT,Pt,Ec,Rc,ae=y(()=>{"use strict";De();W();Vm="overhead-budget.toon",Km="red.rsp.overhead.v1",To=250,vo=1024*1024,xo=64*1024,Oo=3,Co=6*60*60*1e3,fT=["git","gh","gh-api-json","vitest","cargo","cat","exec","proxy"],Pt={maxOverheadMs:To,maxSelfStateBytes:vo,netLossFloorBytes:xo,consecutiveBreaches:Oo,cooldownMs:Co};Ec=0,Rc=0});function tf(e){return e.trimStart().startsWith("{")?"json":"toon"}function vc(e){let t=0;for(;e[t]===`
42
+ `||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=tf(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 _c(e){let t=Vm(e)==="json"?bc:Wm,r=t===bc?Wm:bc;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function bc(e){return JSON.parse(e)}function Wm(e){return H(e)}function Ec(e,t){if(t==="toon"){let r=cT(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 xc(e){let t=tf(e)==="json"?Tc:Zm,r=t===Tc?Zm:Tc;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function Tc(e){return JSON.parse(e)}function Zm(e){return H(e)}function Oc(e,t){if(t==="toon"){let r=vT(e);if(r!==null)return r.endsWith(`
46
46
  `)?`${r}
47
47
  `:`${r}
48
48
 
49
49
  `}return`${JSON.stringify(e)}
50
- `}function cT(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 Km(e,t){return!Jm(e)||!Jm(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Jm(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ym(e){return zm.has(e)?"json":aT}function Qm(e){zm.add(e)}var aT,zm,Xm=y(()=>{J();aT="toon";zm=new Set});import{createHash as uT}from"node:crypto";import{constants as Rc}from"node:fs";import{mkdir as ef,open as lT,readFile as dT,rm as tf,stat as pT}from"node:fs/promises";import{createConnection as mT}from"node:net";import{tmpdir as fT}from"node:os";import{dirname as rf,join as Xn}from"node:path";async function nf(e,t,r="resident server"){let n=e.wire,s=n??Ym(e.socketPath),o=await Zm(e,t,r,s);return n||s==="json"||!Km(t,o)?o:(Qm(e.socketPath),await Zm(e,t,r,"json"))}async function Zm(e,t,r,n){let s=e.timeoutMs??1e3;return await new Promise((o,i)=>{let a=mT(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(Ec(t,n))}),a.on("data",p=>{u+=p.toString("utf8");let g=wc(u);g&&(u=g.rest,d(()=>{try{o(_c(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 sf(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",s=>{n+=s;let o=wc(n);if(!o)return;n=o.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(Ec(a,o.dialect))}catch{}};(async()=>{let a;try{a=_c(o.frame),await t(a,i)}catch(c){r(c,a,i)}finally{e.end()}})()})}async function kc(e){await ef(rf(e),{recursive:!0,mode:448});try{return await lT(e,Rc.O_CREAT|Rc.O_EXCL|Rc.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}async function af(e,t={}){let r=t.maxAgeMs??hT,n=t.now??Date.now,s=t.pid??process.pid,o=t.isPidAlive??Vt;await ef(rf(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let c=await kc(e);if(c)return await c.writeFile(`${of} pid=${s} taken=${new Date(n()).toISOString()}
51
- `).catch(()=>{}),{acquired:!0,lockPath:e,handle:c,reaped:i};let u=await wT(e),l=await ET(e,u,n());if(a>=yT||l==null)return{acquired:!1,lockPath:e,holder:u,ageMs:l};let d=bT(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 tf(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function cf(e){await e.handle.close().catch(()=>{}),await tf(e.lockPath,{force:!0})}function bT(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function uf(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 wT(e){try{return _T(await dT(e,"utf8"))}catch{return null}}function _T(e){let t=e.split(`
52
- `,1)[0]?.trim()??"";if(!t.startsWith(of))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 ET(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 pT(e)).mtimeMs)}catch{return null}}function Vt(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function Sc(e,t=1e3){if(!Vt(e))return;try{process.kill(e,"SIGTERM")}catch{return}let r=Date.now()+t;for(;Date.now()<r;){if(!Vt(e))return;await new Promise(n=>setTimeout(n,50))}try{process.kill(e,"SIGKILL")}catch{}}function lf(e){let t=e.env??process.env,r=uT("sha256").update(e.key).digest("hex").slice(0,20),n=c=>Xn(c,e.socketFileName).length<gT,s=t.XDG_RUNTIME_DIR;if(s){let c=Xn(s,"red-skills",r);if(n(c))return c}let o=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Xn(`red-skills-${o}`,r),a=Xn(fT(),i);return n(a)||process.platform==="win32"?a:Xn(RT,i)}var gT,hT,of,yT,RT,vo=y(()=>{Xm();gT=108;hT=6e4,of="resident-spawn-lock v1",yT=3;RT="/tmp"});async function Xr(e,t){return await nf(e,t,"resident rsp server")}var Tc=y(()=>{vo()});var df=y(()=>{"use strict";Tc()});import{existsSync as kT,readdirSync as ST}from"node:fs";import{homedir as TT}from"node:os";import{basename as xc,dirname as vc,join as Me,resolve as xo}from"node:path";function vT(e){return"command"in e}function Co(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??kT,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(xo(i),"caller-entry");let c=[];for(let[u,l]of PT(i,t.rootDir,r,t.listDir??DT))if(c.push(u),n(u))return a(u,l);return{diagnostic:Pt,searched:c,...i?{callerEntry:xo(i)}:{}}}function mf(e={},t={}){let r=Co(e,t);if(vT(r))return r;throw new Zr(r)}function OT(e){let t=xc(e);return t===br||Cc.test(t)||t==="rsp"||t==="rsp.mjs"||t==="rsp.js"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:AT(xo(e))}function AT(e){let t=vc(e);for(let r=0;r<4;r++){if(xc(t)==="rsp")return!0;let n=vc(t);if(n===t)return!1;t=n}return!1}function*PT(e,t,r,n){if(e){let o=vc(xo(e));yield[Me(o,br),"caller-sibling-bundle"];let i=xT.exec(xc(e));i&&(yield[Me(o,`rsp-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Me(o,"..","dist",br),"caller-sibling-bundle"]}for(let o of CT){let i=r[o];i&&(yield[Me(i,"dist",br),"plugin-root-bundle"],yield[Me(i,"..","..","dist",br),"plugin-root-bundle"])}t&&(yield[Me(t,"dist",br),"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=IT(r);yield[Me(s,br),"bundle-cache"];for(let o of GT(s,n))yield[Me(s,o),"bundle-cache"]}function IT(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 GT(e,t){return t(e).filter(r=>Cc.test(r)).sort((r,n)=>LT(pf(n),pf(r)))}function pf(e){return Cc.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 ST(e)}catch{return[]}}var Pt,Zr,br,xT,Cc,CT,Oc=y(()=>{Pt="rsp-resident-entry-unresolved";Zr=class extends Error{code=Pt;searched;callerEntry;constructor(t){super(`${Pt}: no rsp entrypoint found for the resident auto-spawn${t.callerEntry?` (caller entry: ${t.callerEntry})`:""}
50
+ `}function vT(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 rf(e,t){return!ef(e)||!ef(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function ef(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function sf(e){return nf.has(e)?"json":TT}function of(e){nf.add(e)}var TT,nf,af=y(()=>{W();TT="toon";nf=new Set});import{createHash as xT}from"node:crypto";import{constants as Cc}from"node:fs";import{mkdir as uf,open as OT,readFile as CT,rm as lf,stat as AT}from"node:fs/promises";import{createConnection as PT}from"node:net";import{tmpdir as IT}from"node:os";import{dirname as df,join as ts}from"node:path";async function pf(e,t,r="resident server"){let n=e.wire,s=n??sf(e.socketPath),o=await cf(e,t,r,s);return n||s==="json"||!rf(t,o)?o:(of(e.socketPath),await cf(e,t,r,"json"))}async function cf(e,t,r,n){let s=e.timeoutMs??1e3;return await new Promise((o,i)=>{let a=PT(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(Oc(t,n))}),a.on("data",p=>{u+=p.toString("utf8");let m=vc(u);m&&(u=m.rest,d(()=>{try{o(xc(m.frame))}catch(g){i(g)}}),a.end())}),a.on("error",p=>d(()=>i(p))),a.on("close",()=>{c||d(()=>i(new Error(`${r} closed without response`)))})})}function mf(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",s=>{n+=s;let o=vc(n);if(!o)return;n=o.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(Oc(a,o.dialect))}catch{}};(async()=>{let a;try{a=xc(o.frame),await t(a,i)}catch(c){r(c,a,i)}finally{e.end()}})()})}async function Ac(e){await uf(df(e),{recursive:!0,mode:448});try{return await OT(e,Cc.O_CREAT|Cc.O_EXCL|Cc.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}async function gf(e,t={}){let r=t.maxAgeMs??GT,n=t.now??Date.now,s=t.pid??process.pid,o=t.isPidAlive??zt;await uf(df(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let c=await Ac(e);if(c)return await c.writeFile(`${ff} pid=${s} taken=${new Date(n()).toISOString()}
51
+ `).catch(()=>{}),{acquired:!0,lockPath:e,handle:c,reaped:i};let u=await NT(e),l=await MT(e,u,n());if(a>=DT||l==null)return{acquired:!1,lockPath:e,holder:u,ageMs:l};let d=$T(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 lf(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function hf(e){await e.handle.close().catch(()=>{}),await lf(e.lockPath,{force:!0})}function $T(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function yf(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 NT(e){try{return FT(await CT(e,"utf8"))}catch{return null}}function FT(e){let t=e.split(`
52
+ `,1)[0]?.trim()??"";if(!t.startsWith(ff))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 MT(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 AT(e)).mtimeMs)}catch{return null}}function zt(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function Pc(e,t=1e3){if(!zt(e))return;try{process.kill(e,"SIGTERM")}catch{return}let r=Date.now()+t;for(;Date.now()<r;){if(!zt(e))return;await new Promise(n=>setTimeout(n,50))}try{process.kill(e,"SIGKILL")}catch{}}function bf(e){let t=e.env??process.env,r=xT("sha256").update(e.key).digest("hex").slice(0,20),n=c=>ts(c,e.socketFileName).length<LT,s=t.XDG_RUNTIME_DIR;if(s){let c=ts(s,"red-skills",r);if(n(c))return c}let o=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=ts(`red-skills-${o}`,r),a=ts(IT(),i);return n(a)||process.platform==="win32"?a:ts(jT,i)}var LT,GT,ff,DT,jT,Lo=y(()=>{af();LT=108;GT=6e4,ff="resident-spawn-lock v1",DT=3;jT="/tmp"});async function tn(e,t){return await pf(e,t,"resident rsp server")}var Ic=y(()=>{Lo()});var wf=y(()=>{"use strict";Ic()});import{existsSync as BT,readdirSync as UT}from"node:fs";import{homedir as HT}from"node:os";import{basename as Gc,dirname as Lc,join as Be,resolve as Go}from"node:path";function qT(e){return"command"in e}function Do(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??BT,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&&VT(i))return a(Go(i),"caller-entry");let c=[];for(let[u,l]of zT(i,t.rootDir,r,t.listDir??ZT))if(c.push(u),n(u))return a(u,l);return{diagnostic:It,searched:c,...i?{callerEntry:Go(i)}:{}}}function Ef(e={},t={}){let r=Do(e,t);if(qT(r))return r;throw new rn(r)}function VT(e){let t=Gc(e);return t===_r||Dc.test(t)||t==="rsp"||t==="rsp.mjs"||t==="rsp.js"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:KT(Go(e))}function KT(e){let t=Lc(e);for(let r=0;r<4;r++){if(Gc(t)==="rsp")return!0;let n=Lc(t);if(n===t)return!1;t=n}return!1}function*zT(e,t,r,n){if(e){let o=Lc(Go(e));yield[Be(o,_r),"caller-sibling-bundle"];let i=WT.exec(Gc(e));i&&(yield[Be(o,`rsp-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Be(o,"..","dist",_r),"caller-sibling-bundle"]}for(let o of JT){let i=r[o];i&&(yield[Be(i,"dist",_r),"plugin-root-bundle"],yield[Be(i,"..","..","dist",_r),"plugin-root-bundle"])}t&&(yield[Be(t,"dist",_r),"repo-bundle"],yield[Be(t,"apps","rsp","dist","cli.js"),"workspace-entry"],yield[Be(t,"node_modules","@reddb-io","rsp","dist","cli.js"),"node-modules-entry"]);let s=YT(r);yield[Be(s,_r),"bundle-cache"];for(let o of QT(s,n))yield[Be(s,o),"bundle-cache"]}function YT(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Be(e.HOME||HT(),".cache");return Be(t,"red-skills","bundles")}function QT(e,t){return t(e).filter(r=>Dc.test(r)).sort((r,n)=>XT(_f(n),_f(r)))}function _f(e){return Dc.exec(e)?.[1]??""}function XT(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 ZT(e){try{return UT(e)}catch{return[]}}var It,rn,_r,WT,Dc,JT,$c=y(()=>{It="rsp-resident-entry-unresolved";rn=class extends Error{code=It;searched;callerEntry;constructor(t){super(`${It}: 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}},br="rsp.bundle.min.mjs",xT=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Cc=/^rsp-(.+)\.bundle\.min\.mjs$/,CT=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});import{randomUUID as bf}from"node:crypto";import{spawn as wf}from"node:child_process";import{readFileSync as $T}from"node:fs";import{mkdir as Ic,readFile as _f,rename as NT,rm as Gt,stat as FT,writeFile as MT}from"node:fs/promises";import{dirname as wr,join as It,resolve as Gc}from"node:path";import{fileURLToPath as jT}from"node:url";function ut(e){let t=XT(e)??Gc(e),r=QT(t),n=X(t);return{rootDir:t,socketPath:It(r,"rsp.sock"),pidPath:It(r,"rsp.pid"),lockPath:It(r,"rsp.lock"),wakeLockPath:It(t,".red","tmp","rsp","wake.lock"),summaryPath:It(n,"rsp-status-summary.json"),registryPath:It(n,"rsp-resident.pid.json")}}async function Oo(e,t){if(await Ic(wr(e.socketPath),{recursive:!0,mode:448}),await hf(e.socketPath,t))return;await gf(e,t);let r=await af(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 hf(e.socketPath,t))return;await gf(e,t),await HT(e.socketPath);let n=WT(e,t);await ff(e.socketPath,n);return}finally{await cf(r)}try{await ff(e.socketPath)}catch(n){throw new Error(`${n instanceof Error?n.message:String(n)}; ${uf(r)}`)}}async function _r(e,t=200){try{return await Rf(e,t)!=null}catch{return!1}}async function Rf(e,t=200){let r=await Xr({socketPath:e,timeoutMs:t},{id:bf(),op:"ping"});return r.ok?xf(r.value)?{version:rv(r.value.version)}:{}:null}async function Ao(e,t){if(await Ic(wr(e.socketPath),{recursive:!0,mode:448}),await _r(e.socketPath,50))return!1;let r=await qT(e.wakeLockPath);if(!r)return!1;await r.close();let[n,s]=Tf(e,t);return wf(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 kf(e,t){try{await Oo(e,t)}finally{await Gt(e.wakeLockPath,{force:!0})}}async function es(e){try{let t=KT(await _f(e,"utf8"));return nv(t)?t:null}catch{return null}}async function Po(e,t){let r={version:Ef,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 Ic(wr(e),{recursive:!0});let n=`${e}.${process.pid}.${Date.now()}.tmp`;await MT(n,`${$(r)}
57
- `,{encoding:"utf8",mode:384}),await NT(n,e)}async function Io(e,t=process.pid){try{let r=await es(e);if(r&&r.pid!==t)return;await Gt(e,{force:!0})}catch{}}async function Zn(e){let t=await es(e.registryPath);if(!t)try{return await _f(e.registryPath,"utf8"),{registry_path:e.registryPath,state:"invalid"}}catch{return{registry_path:e.registryPath,state:"missing"}}if(!Vt(t.pid))return{registry_path:e.registryPath,state:"registered-dead",entry:t};let r=await _r(t.socket_path,100);return r&&await YT(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 Sf(e){let t=await Zn(e);return t.state==="registered-dead"||t.state==="invalid"?(await Gt(e.registryPath,{force:!0}),await Zn(e)):(t.state==="registered-alive-socket-dead"||t.state==="registered-alive-store-missing")&&t.entry?(await Sc(t.entry.pid),await Gt(e.registryPath,{force:!0}),await Gt(t.entry.socket_path,{force:!0}),await Zn(e)):t}async function ff(e,t){let r=Date.now()+UT(),n;for(;Date.now()<r;){if(await _r(e))return;if(t){let s=t.spawnError();if(s)throw new Error(Ac("resident rsp server spawn failed",t,s));if(t.child.exitCode!=null||t.child.signalCode!=null)throw new Error(Ac("resident rsp server exited before ready",t))}await new Promise(s=>setTimeout(s,50))}throw n instanceof Error?n:new Error(t?Ac("resident rsp server did not start",t):"resident rsp server did not start")}function UT(){let e=Number(process.env.RSP_RESIDENT_READY_TIMEOUT_MS??"");return Number.isFinite(e)&&e>0?e:BT}async function HT(e){await Gt(e,{force:!0})}function WT(e,t){let[r,n]=Tf(e,t),s=process.env.RSP_DEBUG==="1",o,i="",a=wf(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=VT(`${i}${c}`,JT)})),a.unref(),{child:a,stderrTail:()=>i,spawnError:()=>o}}function Ac(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}},_r="rsp.bundle.min.mjs",WT=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Dc=/^rsp-(.+)\.bundle\.min\.mjs$/,JT=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});import{randomUUID as vf}from"node:crypto";import{spawn as xf}from"node:child_process";import{readFileSync as ev}from"node:fs";import{mkdir as Mc,readFile as Of,rename as tv,rm as Gt,stat as rv,writeFile as nv}from"node:fs/promises";import{dirname as Er,join as Lt,resolve as jc}from"node:path";import{fileURLToPath as sv}from"node:url";function mt(e){let t=hv(e)??jc(e),r=gv(t),n=X(t);return{rootDir:t,socketPath:Lt(r,"rsp.sock"),pidPath:Lt(r,"rsp.pid"),lockPath:Lt(r,"rsp.lock"),wakeLockPath:Lt(t,".red","tmp","rsp","wake.lock"),summaryPath:Lt(n,"rsp-status-summary.json"),registryPath:Lt(n,"rsp-resident.pid.json")}}async function $o(e,t){if(await Mc(Er(e.socketPath),{recursive:!0,mode:448}),await Sf(e.socketPath,t))return;await kf(e,t);let r=await gf(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 Sf(e.socketPath,t))return;await kf(e,t),await av(e.socketPath);let n=uv(e,t);await Rf(e.socketPath,n);return}finally{await hf(r)}try{await Rf(e.socketPath)}catch(n){throw new Error(`${n instanceof Error?n.message:String(n)}; ${yf(r)}`)}}async function Rr(e,t=200){try{return await Af(e,t)!=null}catch{return!1}}async function Af(e,t=200){let r=await tn({socketPath:e,timeoutMs:t},{id:vf(),op:"ping"});return r.ok?Df(r.value)?{version:_v(r.value.version)}:{}:null}async function No(e,t){if(await Mc(Er(e.socketPath),{recursive:!0,mode:448}),await Rr(e.socketPath,50))return!1;let r=await cv(e.wakeLockPath);if(!r)return!1;await r.close();let[n,s]=Lf(e,t);return xf(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 Pf(e,t){try{await $o(e,t)}finally{await Gt(e.wakeLockPath,{force:!0})}}async function ns(e){try{let t=pv(await Of(e,"utf8"));return Ev(t)?t:null}catch{return null}}async function Fo(e,t){let r={version:Cf,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 Mc(Er(e),{recursive:!0});let n=`${e}.${process.pid}.${Date.now()}.tmp`;await nv(n,`${$(r)}
57
+ `,{encoding:"utf8",mode:384}),await tv(n,e)}async function Mo(e,t=process.pid){try{let r=await ns(e);if(r&&r.pid!==t)return;await Gt(e,{force:!0})}catch{}}async function rs(e){let t=await ns(e.registryPath);if(!t)try{return await Of(e.registryPath,"utf8"),{registry_path:e.registryPath,state:"invalid"}}catch{return{registry_path:e.registryPath,state:"missing"}}if(!zt(t.pid))return{registry_path:e.registryPath,state:"registered-dead",entry:t};let r=await Rr(t.socket_path,100);return r&&await fv(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 If(e){let t=await rs(e);return t.state==="registered-dead"||t.state==="invalid"?(await Gt(e.registryPath,{force:!0}),await rs(e)):(t.state==="registered-alive-socket-dead"||t.state==="registered-alive-store-missing")&&t.entry?(await Pc(t.entry.pid),await Gt(e.registryPath,{force:!0}),await Gt(t.entry.socket_path,{force:!0}),await rs(e)):t}async function Rf(e,t){let r=Date.now()+iv(),n;for(;Date.now()<r;){if(await Rr(e))return;if(t){let s=t.spawnError();if(s)throw new Error(Nc("resident rsp server spawn failed",t,s));if(t.child.exitCode!=null||t.child.signalCode!=null)throw new Error(Nc("resident rsp server exited before ready",t))}await new Promise(s=>setTimeout(s,50))}throw n instanceof Error?n:new Error(t?Nc("resident rsp server did not start",t):"resident rsp server did not start")}function iv(){let e=Number(process.env.RSP_RESIDENT_READY_TIMEOUT_MS??"");return Number.isFinite(e)&&e>0?e:ov}async function av(e){await Gt(e,{force:!0})}function uv(e,t){let[r,n]=Lf(e,t),s=process.env.RSP_DEBUG==="1",o,i="",a=xf(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=dv(`${i}${c}`,lv)})),a.unref(),{child:a,stderrTail:()=>i,spawnError:()=>o}}function Nc(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 VT(e,t){let r=Buffer.byteLength(e,"utf8");return r<=t?e:Buffer.from(e,"utf8").subarray(r-t).toString("utf8").replace(/^\uFFFD+/,"")}function KT(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return H(t)}}async function gf(e,t){try{let r=await es(e.registryPath);if(!r||r.socket_path!==e.socketPath||r.store_uri!==t.storeUri)return;if(!Vt(r.pid)){await Gt(e.registryPath,{force:!0});return}if(await _r(r.socket_path,100))return;if(vf(t.clientVersion,r.resident_version)&&(await zT(r.pid,1500),!Vt(r.pid))){await Gt(e.registryPath,{force:!0});return}await Sc(r.pid),await Gt(e.registryPath,{force:!0})}catch{}}async function zT(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(!Vt(e))return;await new Promise(n=>setTimeout(n,50))}}async function YT(e){if(!e.startsWith("file://"))return!1;try{return await FT(jT(e)),!1}catch(t){return t.code==="ENOENT"}}function Tf(e,t){let r=mf(t,{rootDir:e.rootDir});return[r.command,r.args]}function QT(e){return lf({key:e,socketFileName:"rsp.sock"})}function XT(e){let t=Gc(e);for(let r=0;r<32;r++){try{let s=Pc(It(t,".git"));if(s!=null)return ZT(t,s)??t;if(Pc(It(t,".git","HEAD"))!=null||Pc(It(t,".red","config.yaml"))!=null)return t}catch{}let n=wr(t);if(n===t)return null;t=n}return null}function ZT(e,t){let r=/^gitdir:\s*(.+?)\s*$/m.exec(t);if(!r)return null;let n=Gc(e,r[1]);return/[/\\]worktrees[/\\][^/\\]+$/.test(n)?wr(wr(wr(n))):null}function Pc(e){try{return $T(e,"utf8")}catch{return null}}async function hf(e,t){let r=await Rf(e).catch(()=>null);return r?vf(t.clientVersion,r.version)?(await ev(e,t.clientVersion),await sv(e),!1):!0:!1}async function ev(e,t){try{await Xr({socketPath:e,timeoutMs:200},{id:bf(),op:"handover",clientVersion:t})}catch{}}function vf(e,t){return!e||!t?!1:tv(e,t)>0}function tv(e,t){let r=yf(e),n=yf(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}function yf(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 xf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function rv(e){return typeof e=="string"&&e.length>0?e:void 0}function nv(e){return xf(e)&&e.version===Ef&&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 sv(e){let t=Date.now()+1e3;for(;Date.now()<t;){if(!await _r(e,50))return;await new Promise(r=>setTimeout(r,50))}}var Ef,BT,qT,JT,Go=y(()=>{J();Ge();vo();Tc();Oc();Oc();Ef=1,BT=5e3;qT=kc;JT=8*1024});var Er={};K(Er,{RSP_ENTRY_UNRESOLVED:()=>Pt,ResidentRspElisionStore:()=>ts,RspResidentEntryError:()=>Zr,ensureResidentServer:()=>Oo,kickResidentServer:()=>Ao,pingResident:()=>_r,readResidentRegistry:()=>es,removeResidentRegistry:()=>Io,residentRegistryStatus:()=>Zn,resolveResidentPaths:()=>ut,resolveRspEntry:()=>Co,sweepResidentRegistry:()=>Sf,warmResidentServer:()=>kf,writeResidentRegistry:()=>Po});import{randomUUID as ov}from"node:crypto";function Cf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ts,lt=y(()=>{"use strict";df();Go();ts=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?Cf(r)&&r.status==="expired"?r:!Cf(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 Oo(this.paths,this.config);let r=await Xr(this.paths,{...t,id:ov()});if(!r.ok)throw new Error(r.error);return this.metrics={storeOpenCount:r.storeOpenCount,storeElapsedMs:r.storeElapsedMs},r.value}}});function Dc(e,t,r=Of){let n=Math.max(0,Math.floor(e)),s=r in Af?r:Of,o=Af[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:Lc(n,o),dollars_saved_low_usd:i==null?null:Lc(i,o),dollars_saved_high_usd:a==null?null:Lc(a,o),pricing_model_family:s,pricing_input_usd_per_million_tokens:o,pricing_note:iv}}function Lc(e,t){return av(Math.max(0,e)/1e6*t)}function rs(e){return`$${e.toFixed(6)}`}function av(e){return Math.round(e*1e6)/1e6}var Of,Af,iv,$c=y(()=>{"use strict";Of="gpt-5",Af={"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},iv="estimate derived from byte-based token estimate when token counts are estimated"});var ss={};K(ss,{isResidentEntryUnresolved:()=>Gf,reportResidentEntryDiagnostic:()=>Nc,residentConfigFor:()=>If,residentElisionStore:()=>ns});function If(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 ns(e,t,r={}){let n=r.paths??ut(e);return new ts(n,If(t,yo("rsp").version),{ensureResident:r.ensureResident})}function Nc(e){return Gf(e)?(Pf||(Pf=!0,process.stderr.write(`rsp: ${Pt} \u2014 elision is off until an rsp entry is installed
59
+ `)}function dv(e,t){let r=Buffer.byteLength(e,"utf8");return r<=t?e:Buffer.from(e,"utf8").subarray(r-t).toString("utf8").replace(/^\uFFFD+/,"")}function pv(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return H(t)}}async function kf(e,t){try{let r=await ns(e.registryPath);if(!r||r.socket_path!==e.socketPath||r.store_uri!==t.storeUri)return;if(!zt(r.pid)){await Gt(e.registryPath,{force:!0});return}if(await Rr(r.socket_path,100))return;if(Gf(t.clientVersion,r.resident_version)&&(await mv(r.pid,1500),!zt(r.pid))){await Gt(e.registryPath,{force:!0});return}await Pc(r.pid),await Gt(e.registryPath,{force:!0})}catch{}}async function mv(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(!zt(e))return;await new Promise(n=>setTimeout(n,50))}}async function fv(e){if(!e.startsWith("file://"))return!1;try{return await rv(sv(e)),!1}catch(t){return t.code==="ENOENT"}}function Lf(e,t){let r=Ef(t,{rootDir:e.rootDir});return[r.command,r.args]}function gv(e){return bf({key:e,socketFileName:"rsp.sock"})}function hv(e){let t=jc(e);for(let r=0;r<32;r++){try{let s=Fc(Lt(t,".git"));if(s!=null)return yv(t,s)??t;if(Fc(Lt(t,".git","HEAD"))!=null||Fc(Lt(t,".red","config.yaml"))!=null)return t}catch{}let n=Er(t);if(n===t)return null;t=n}return null}function yv(e,t){let r=/^gitdir:\s*(.+?)\s*$/m.exec(t);if(!r)return null;let n=jc(e,r[1]);return/[/\\]worktrees[/\\][^/\\]+$/.test(n)?Er(Er(Er(n))):null}function Fc(e){try{return ev(e,"utf8")}catch{return null}}async function Sf(e,t){let r=await Af(e).catch(()=>null);return r?Gf(t.clientVersion,r.version)?(await bv(e,t.clientVersion),await Rv(e),!1):!0:!1}async function bv(e,t){try{await tn({socketPath:e,timeoutMs:200},{id:vf(),op:"handover",clientVersion:t})}catch{}}function Gf(e,t){return!e||!t?!1:wv(e,t)>0}function wv(e,t){let r=Tf(e),n=Tf(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}function Tf(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 Df(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function _v(e){return typeof e=="string"&&e.length>0?e:void 0}function Ev(e){return Df(e)&&e.version===Cf&&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 Rv(e){let t=Date.now()+1e3;for(;Date.now()<t;){if(!await Rr(e,50))return;await new Promise(r=>setTimeout(r,50))}}var Cf,ov,cv,lv,jo=y(()=>{W();De();Lo();Ic();$c();$c();Cf=1,ov=5e3;cv=Ac;lv=8*1024});var kr={};K(kr,{RSP_ENTRY_UNRESOLVED:()=>It,ResidentRspElisionStore:()=>ss,RspResidentEntryError:()=>rn,ensureResidentServer:()=>$o,kickResidentServer:()=>No,pingResident:()=>Rr,readResidentRegistry:()=>ns,removeResidentRegistry:()=>Mo,residentRegistryStatus:()=>rs,resolveResidentPaths:()=>mt,resolveRspEntry:()=>Do,sweepResidentRegistry:()=>If,warmResidentServer:()=>Pf,writeResidentRegistry:()=>Fo});import{randomUUID as kv}from"node:crypto";function $f(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ss,ft=y(()=>{"use strict";wf();jo();ss=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?$f(r)&&r.status==="expired"?r:!$f(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 $o(this.paths,this.config);let r=await tn(this.paths,{...t,id:kv()});if(!r.ok)throw new Error(r.error);return this.metrics={storeOpenCount:r.storeOpenCount,storeElapsedMs:r.storeElapsedMs},r.value}}});function Uc(e,t,r=Nf){let n=Math.max(0,Math.floor(e)),s=r in Ff?r:Nf,o=Ff[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:Bc(n,o),dollars_saved_low_usd:i==null?null:Bc(i,o),dollars_saved_high_usd:a==null?null:Bc(a,o),pricing_model_family:s,pricing_input_usd_per_million_tokens:o,pricing_note:Sv}}function Bc(e,t){return Tv(Math.max(0,e)/1e6*t)}function os(e){return`$${e.toFixed(6)}`}function Tv(e){return Math.round(e*1e6)/1e6}var Nf,Ff,Sv,Hc=y(()=>{"use strict";Nf="gpt-5",Ff={"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},Sv="estimate derived from byte-based token estimate when token counts are estimated"});var as={};K(as,{isResidentEntryUnresolved:()=>Bf,reportResidentEntryDiagnostic:()=>qc,residentConfigFor:()=>jf,residentElisionStore:()=>is});function jf(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 is(e,t,r={}){let n=r.paths??mt(e);return new ss(n,jf(t,So("rsp").version),{ensureResident:r.ensureResident})}function qc(e){return Bf(e)?(Mf||(Mf=!0,process.stderr.write(`rsp: ${It} \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 Gf(e){return typeof e=="object"&&e!==null&&e.code===Pt}var Pf,Kt=y(()=>{"use strict";sc();lt();Pf=!1});function Jc(e){return e==="success"?0:e==="failure"?1:2}function Vc(e){return e==="cmd"||e==="pr"||e==="run"||e==="release"}function Lt(e,t,r){return{status:e,exitCode:Jc(e),summary:t,...r?{details:r}:{}}}function ge(e,t){return{status:"indeterminate",exitCode:2,summary:e,...t?{details:t}:{}}}function tn(e,t){return{status:"running",exitCode:2,summary:e,...t?{details:t}:{}}}var Ff,Mf,jf,qc,Bf,Uf,Hf,qf,Wc,Rr=y(()=>{"use strict";Ff="rsp.wait.result",Mf="rsp.wait.registry",jf="rsp.wait.list",qc={cmd:18e5,pr:27e5,run:27e5,release:72e5},Bf=16*1024,Uf=1e4,Hf=2e3,qf=6e4,Wc={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 mv,readFile as fv}from"node:fs/promises";async function rn(e,t){let r=e.pid;if(!r)return{cleaned:!0,escalation:"none",survivors:[]};let n=await $o(r),s=[r,...n];if(s.every(c=>!kr(c)))return{cleaned:!0,escalation:"none",survivors:[]};if(Wf(e,"SIGTERM"),Do(n,"SIGTERM"),await Jf(s,t))return{cleaned:!0,escalation:"term",survivors:[]};let o=[...new Set([...s,...await $o(r)])];Wf(e,"SIGKILL"),Do(o,"SIGKILL");let i=Math.max(1e3,t);await gv(e,i);let a=await Jf(o,i);return{cleaned:a,escalation:"kill",survivors:a?[]:o.filter(kr)}}function Wf(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 Do(e,t){for(let r of e)try{process.kill(r,t)}catch{}}async function gv(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 Jf(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(e.every(n=>!kr(n)))return!0;await hv(Math.min(25,Math.max(1,r-Date.now())))}return e.every(n=>!kr(n))}async function $o(e){if(process.platform!=="linux")return[];let t=new Map;for(let s of await mv("/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 os(e){return(await Vf(e))?.[19]}async function nn(e,t){if(!kr(e))return!1;if(!t)return!0;let r=await os(e);return r===void 0?process.platform!=="linux":r===t}function kr(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 fv(`/proc/${e}/stat`,"utf8"),r=t.lastIndexOf(")");return r<0?null:t.slice(r+2).trim().split(/\s+/)}catch{return null}}async function hv(e){await new Promise(t=>setTimeout(t,e))}var Dt=y(()=>{"use strict"});import{constants as yv}from"node:os";async function Kf(e){let t=e[1],r={timeoutMs:qc.cmd,reason:"",signal:"SIGUSR1",notifyTimeoutMs:Uf,terminateGraceMs:Hf,probeTimeoutMs:qf,format:"toon",captureBytes:Bf},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=qc[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=is(e[++i]??""):a==="--reason"?r.reason=e[++i]??"":a==="--signal-pid"?r.signalPid=Number(e[++i]):a==="--signal"?r.signal=_v(e[++i]??""):a==="--notify-cmd"?r.notifyCmd=e[++i]??"":a==="--notify-timeout"?r.notifyTimeoutMs=is(e[++i]??""):a==="--terminate-grace"?r.terminateGraceMs=is(e[++i]??""):a==="--probe-timeout"?r.probeTimeoutMs=is(e[++i]??""):a==="--result-file"?r.resultFile=e[++i]??"":a==="--json"?r.format="json":a==="--capture-bytes"?r.captureBytes=wv(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 bv(r),t==="cmd"&&(n.commandLine=s>=0?e.slice(s+1).join(" "):""),n}async function bv(e){if(!(e.signal in yv.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(!kr(e.signalPid))throw new Error(`signal pid is not running: ${e.signalPid}`);e.signalPidStartTime=await os(e.signalPid)}if(e.resultFile!==void 0&&!e.resultFile.trim())throw new Error("invalid result file: empty path")}function is(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 as(e,t,r=process.env){let n=r[e];if(!n)return t;try{return is(n)}catch{return t}}function wv(e,t){if(!/^[1-9][0-9]*$/.test(e))throw new Error(`invalid ${t}: ${e}`);return Number(e)}function _v(e){return e.startsWith("SIG")?e:`SIG${e}`}var zf=y(()=>{"use strict";Rr();Dt()});import{existsSync as Kc,readFileSync as Ev,statSync as Rv}from"node:fs";import{basename as Yf,dirname as No,isAbsolute as kv,join as Qf,resolve as cs}from"node:path";function Fo(e,t=process.env){let r=cs(e);if(ic.map(i=>t[i]).find(Boolean))return Gm({startDir:r,env:t,exists:Kc});let s=Tv(r),o=Sv(r,s);return o||(s??r)}function Sv(e,t){let r=e;for(;;){if(Kc(Qf(r,".red")))return r;if(t&&r===t)return null;let n=cs(r,"..");if(n===r)return null;r=n}}function Tv(e){let t=e;for(;;){let r=Qf(t,".git");if(Kc(r))return Cv(r)?t:vv(r)??t;let n=cs(t,"..");if(n===t)return null;t=n}}function vv(e){let t=xv(e);if(!t)return null;let r=No(t),n=No(r);return Yf(r)!=="worktrees"||Yf(n)!==".git"?null:No(n)}function xv(e){let t;try{t=Ev(e,"utf8")}catch{return null}let r=/^gitdir:\s*(.+)$/m.exec(t.trim());if(!r)return null;let n=r[1].trim();return kv(n)?cs(n):cs(No(e),n)}function Cv(e){try{return Rv(e).isDirectory()}catch{return!1}}var zc=y(()=>{Ge()});import{join as Ov}from"node:path";function Pv(e,t=process.env){return Fo(e,t)}function sn(e,t=process.env){return Im(Pv(e,t))}function Xf(e,t=process.env){return Ov(sn(e,t),Av)}var Av,Yc=y(()=>{"use strict";Ge();zc();Av="spool"});import{randomUUID as Iv}from"node:crypto";import{existsSync as Gv}from"node:fs";import{mkdir as Lv,readdir as Dv,readFile as $v,rename as Nv,rm as Qc,writeFile as Fv}from"node:fs/promises";import{dirname as Mv,join as eg}from"node:path";function tg(e,t,r=process.env){return eg(sn(e,r),`${t}${jv}`)}async function on(e,t){await Xc(e,`${ne(t)}
62
- `)}async function Mo(e,t,r){t.status=r,await on(e,t)}async function jo(e,t=process.env){let r=sn(e,t);if(!Gv(r))return[];let n=await Dv(r).catch(()=>[]),s=[];for(let o of n.filter(i=>Bv.some(a=>i.endsWith(a)))){let i=eg(r,o),a=await Uv(i);if(!a){await Qc(i,{force:!0});continue}if(!await Hv(a)){await Qc(i,{force:!0});continue}s.push(a)}return s}async function Uv(e){let t;try{t=await $v(e,"utf8")}catch{return null}let r=t.trim();if(!r)return null;let n=qv(r);return n&&Object.keys(n).length>0?n:null}async function Hv(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 nn(t,r)}function qv(e){try{let t=H(e);if(Zf(t))return t}catch{}try{let t=JSON.parse(e);if(Zf(t))return t}catch{}return null}async function Xc(e,t){await Lv(Mv(e),{recursive:!0});let r=`${e}.tmp-${process.pid}-${Iv()}`;try{await Fv(r,t,"utf8"),await Nv(r,e)}finally{await Qc(r,{force:!0})}}function Zc(e){return{schema:Mf,version:1,...e}}function Zf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var jv,Bv,ls=y(()=>{"use strict";J();Ct();Rr();Yc();Dt();jv=".toon",Bv=[".toon",".json"]});function an(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function dt(e){return an(e)?e:{}}function Sr(e){return Array.isArray(e)?e.filter(an):[]}function he(e,t){let r=e[t];return typeof r=="string"?r:""}function cn(e,t){let r=e[t];return typeof r=="number"?r:0}function eu(e){let t=JSON.parse(e);if(!an(t))throw new Error("expected JSON object");return t}function Bo(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}var Uo=y(()=>{"use strict"});import{spawn as Wv}from"node:child_process";import{resolve as Jv}from"node:path";async function rg(e,t,r){let n=[];if(e.signalPid){let s=await Vv(e);s&&n.push(s)}if(e.notifyCmd?.trim()){let s=await Kv(e,t,r);s&&n.push({hook:"notify-cmd",...s})}return n.length===0?{status:"success"}:{status:"failure",errors:n}}async function Vv(e){let t=e.signalPid;if(!await nn(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:ng(r),pid:t,signal:e.signal}}}async function Kv(e,t,r){let n=dt(t.wait),s=dt(t.verdict);return await zv(e.notifyCmd,r,e.notifyTimeoutMs,e.terminateGraceMs,{...process.env,RSP_WAIT_RESULT_JSON:JSON.stringify(t),RSP_WAIT_RESULT_FILE:e.resultFile?Jv(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 zv(e,t,r,n,s){return await new Promise(o=>{let i=!1,a=!1,c=d=>{i||(i=!0,o(d))},u=Wv(e,{cwd:t,shell:!0,stdio:"ignore",env:s,detached:process.platform!=="win32"}),l=setTimeout(()=>{a=!0,rn(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:ng(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 ng(e){return e instanceof Error?e.message:String(e)}var sg=y(()=>{"use strict";Uo();Dt()});import{resolve as Yv}from"node:path";async function og(e){let{kind:t,entry:r,options:n,cwd:s}=e,o=Qv(e.verdict,e.cleanupProven,e.survivors),i=new Date().toISOString(),a=ds(t,r,o,{status:"pending"},i);await ps(n.resultFile,a,n.format);let c=await rg(n,a,s),u=ds(t,r,o,c,i);return await ps(n.resultFile,u,n.format),{result:u,exitCode:ig(o,c)}}function ig(e,t){return t.status!=="success"||e.status==="running"?2:Jc(e.status)}function Qv(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 ds(e,t,r,n,s){return{schema:Ff,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:ig(r,n),target_exit_code:r.exitCode,summary:r.summary,delivery:n,...r.details?{details:r.details}:{}}}}async function ps(e,t,r){e&&await Xc(Yv(e),un(t,r))}function un(e,t){return t==="json"?`${JSON.stringify(e,null,2)}
61
+ `)),!0):!1}function Bf(e){return typeof e=="object"&&e!==null&&e.code===It}var Mf,Yt=y(()=>{"use strict";dc();ft();Mf=!1});function Zc(e){return e==="success"?0:e==="failure"?1:2}function eu(e){return e==="cmd"||e==="pr"||e==="run"||e==="release"}function Dt(e,t,r){return{status:e,exitCode:Zc(e),summary:t,...r?{details:r}:{}}}function ge(e,t){return{status:"indeterminate",exitCode:2,summary:e,...t?{details:t}:{}}}function sn(e,t){return{status:"running",exitCode:2,summary:e,...t?{details:t}:{}}}var Jf,Vf,Kf,Qc,zf,Yf,Qf,Xf,Xc,Sr=y(()=>{"use strict";Jf="rsp.wait.result",Vf="rsp.wait.registry",Kf="rsp.wait.list",Qc={cmd:18e5,pr:27e5,run:27e5,release:72e5},zf=16*1024,Yf=1e4,Qf=2e3,Xf=6e4,Xc={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 Pv,readFile as Iv}from"node:fs/promises";async function on(e,t){let r=e.pid;if(!r)return{cleaned:!0,escalation:"none",survivors:[]};let n=await Ho(r),s=[r,...n];if(s.every(c=>!Tr(c)))return{cleaned:!0,escalation:"none",survivors:[]};if(Zf(e,"SIGTERM"),Uo(n,"SIGTERM"),await eg(s,t))return{cleaned:!0,escalation:"term",survivors:[]};let o=[...new Set([...s,...await Ho(r)])];Zf(e,"SIGKILL"),Uo(o,"SIGKILL");let i=Math.max(1e3,t);await Lv(e,i);let a=await eg(o,i);return{cleaned:a,escalation:"kill",survivors:a?[]:o.filter(Tr)}}function Zf(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 Uo(e,t){for(let r of e)try{process.kill(r,t)}catch{}}async function Lv(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 eg(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(e.every(n=>!Tr(n)))return!0;await Gv(Math.min(25,Math.max(1,r-Date.now())))}return e.every(n=>!Tr(n))}async function Ho(e){if(process.platform!=="linux")return[];let t=new Map;for(let s of await Pv("/proc").catch(()=>[])){if(!/^[1-9][0-9]*$/.test(s))continue;let o=Number(s),i=await tg(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 cs(e){return(await tg(e))?.[19]}async function an(e,t){if(!Tr(e))return!1;if(!t)return!0;let r=await cs(e);return r===void 0?process.platform!=="linux":r===t}function Tr(e){try{return process.kill(e,0),!0}catch{return!1}}async function tg(e){if(process.platform!=="linux")return null;try{let t=await Iv(`/proc/${e}/stat`,"utf8"),r=t.lastIndexOf(")");return r<0?null:t.slice(r+2).trim().split(/\s+/)}catch{return null}}async function Gv(e){await new Promise(t=>setTimeout(t,e))}var $t=y(()=>{"use strict"});import{constants as Dv}from"node:os";async function rg(e){let t=e[1],r={timeoutMs:Qc.cmd,reason:"",signal:"SIGUSR1",notifyTimeoutMs:Yf,terminateGraceMs:Qf,probeTimeoutMs:Xf,format:"toon",captureBytes:zf},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=Qc[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=us(e[++i]??""):a==="--reason"?r.reason=e[++i]??"":a==="--signal-pid"?r.signalPid=Number(e[++i]):a==="--signal"?r.signal=Fv(e[++i]??""):a==="--notify-cmd"?r.notifyCmd=e[++i]??"":a==="--notify-timeout"?r.notifyTimeoutMs=us(e[++i]??""):a==="--terminate-grace"?r.terminateGraceMs=us(e[++i]??""):a==="--probe-timeout"?r.probeTimeoutMs=us(e[++i]??""):a==="--result-file"?r.resultFile=e[++i]??"":a==="--json"?r.format="json":a==="--capture-bytes"?r.captureBytes=Nv(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 $v(r),t==="cmd"&&(n.commandLine=s>=0?e.slice(s+1).join(" "):""),n}async function $v(e){if(!(e.signal in Dv.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(!Tr(e.signalPid))throw new Error(`signal pid is not running: ${e.signalPid}`);e.signalPidStartTime=await cs(e.signalPid)}if(e.resultFile!==void 0&&!e.resultFile.trim())throw new Error("invalid result file: empty path")}function us(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 ls(e,t,r=process.env){let n=r[e];if(!n)return t;try{return us(n)}catch{return t}}function Nv(e,t){if(!/^[1-9][0-9]*$/.test(e))throw new Error(`invalid ${t}: ${e}`);return Number(e)}function Fv(e){return e.startsWith("SIG")?e:`SIG${e}`}var ng=y(()=>{"use strict";Sr();$t()});import{existsSync as tu,readFileSync as Mv,statSync as jv}from"node:fs";import{basename as sg,dirname as qo,isAbsolute as Bv,join as og,resolve as ds}from"node:path";function Wo(e,t=process.env){let r=ds(e);if(mc.map(i=>t[i]).find(Boolean))return Bm({startDir:r,env:t,exists:tu});let s=Hv(r),o=Uv(r,s);return o||(s??r)}function Uv(e,t){let r=e;for(;;){if(tu(og(r,".red")))return r;if(t&&r===t)return null;let n=ds(r,"..");if(n===r)return null;r=n}}function Hv(e){let t=e;for(;;){let r=og(t,".git");if(tu(r))return Jv(r)?t:qv(r)??t;let n=ds(t,"..");if(n===t)return null;t=n}}function qv(e){let t=Wv(e);if(!t)return null;let r=qo(t),n=qo(r);return sg(r)!=="worktrees"||sg(n)!==".git"?null:qo(n)}function Wv(e){let t;try{t=Mv(e,"utf8")}catch{return null}let r=/^gitdir:\s*(.+)$/m.exec(t.trim());if(!r)return null;let n=r[1].trim();return Bv(n)?ds(n):ds(qo(e),n)}function Jv(e){try{return jv(e).isDirectory()}catch{return!1}}var ru=y(()=>{De()});import{join as Vv}from"node:path";function zv(e,t=process.env){return Wo(e,t)}function cn(e,t=process.env){return jm(zv(e,t))}function ig(e,t=process.env){return Vv(cn(e,t),Kv)}var Kv,nu=y(()=>{"use strict";De();ru();Kv="spool"});import{randomUUID as Yv}from"node:crypto";import{existsSync as Qv}from"node:fs";import{mkdir as Xv,readdir as Zv,readFile as ex,rename as tx,rm as su,writeFile as rx}from"node:fs/promises";import{dirname as nx,join as cg}from"node:path";function ug(e,t,r=process.env){return cg(cn(e,r),`${t}${sx}`)}async function un(e,t){await ou(e,`${ne(t)}
62
+ `)}async function Jo(e,t,r){t.status=r,await un(e,t)}async function Vo(e,t=process.env){let r=cn(e,t);if(!Qv(r))return[];let n=await Zv(r).catch(()=>[]),s=[];for(let o of n.filter(i=>ox.some(a=>i.endsWith(a)))){let i=cg(r,o),a=await ix(i);if(!a){await su(i,{force:!0});continue}if(!await ax(a)){await su(i,{force:!0});continue}s.push(a)}return s}async function ix(e){let t;try{t=await ex(e,"utf8")}catch{return null}let r=t.trim();if(!r)return null;let n=cx(r);return n&&Object.keys(n).length>0?n:null}async function ax(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 an(t,r)}function cx(e){try{let t=H(e);if(ag(t))return t}catch{}try{let t=JSON.parse(e);if(ag(t))return t}catch{}return null}async function ou(e,t){await Xv(nx(e),{recursive:!0});let r=`${e}.tmp-${process.pid}-${Yv()}`;try{await rx(r,t,"utf8"),await tx(r,e)}finally{await su(r,{force:!0})}}function iu(e){return{schema:Vf,version:1,...e}}function ag(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var sx,ox,ms=y(()=>{"use strict";W();Ct();Sr();nu();$t();sx=".toon",ox=[".toon",".json"]});function ln(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function gt(e){return ln(e)?e:{}}function vr(e){return Array.isArray(e)?e.filter(ln):[]}function he(e,t){let r=e[t];return typeof r=="string"?r:""}function dn(e,t){let r=e[t];return typeof r=="number"?r:0}function au(e){let t=JSON.parse(e);if(!ln(t))throw new Error("expected JSON object");return t}function Ko(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}var zo=y(()=>{"use strict"});import{spawn as ux}from"node:child_process";import{resolve as lx}from"node:path";async function lg(e,t,r){let n=[];if(e.signalPid){let s=await dx(e);s&&n.push(s)}if(e.notifyCmd?.trim()){let s=await px(e,t,r);s&&n.push({hook:"notify-cmd",...s})}return n.length===0?{status:"success"}:{status:"failure",errors:n}}async function dx(e){let t=e.signalPid;if(!await an(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:dg(r),pid:t,signal:e.signal}}}async function px(e,t,r){let n=gt(t.wait),s=gt(t.verdict);return await mx(e.notifyCmd,r,e.notifyTimeoutMs,e.terminateGraceMs,{...process.env,RSP_WAIT_RESULT_JSON:JSON.stringify(t),RSP_WAIT_RESULT_FILE:e.resultFile?lx(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 mx(e,t,r,n,s){return await new Promise(o=>{let i=!1,a=!1,c=d=>{i||(i=!0,o(d))},u=ux(e,{cwd:t,shell:!0,stdio:"ignore",env:s,detached:process.platform!=="win32"}),l=setTimeout(()=>{a=!0,on(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:dg(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 dg(e){return e instanceof Error?e.message:String(e)}var pg=y(()=>{"use strict";zo();$t()});import{resolve as fx}from"node:path";async function mg(e){let{kind:t,entry:r,options:n,cwd:s}=e,o=gx(e.verdict,e.cleanupProven,e.survivors),i=new Date().toISOString(),a=fs(t,r,o,{status:"pending"},i);await gs(n.resultFile,a,n.format);let c=await lg(n,a,s),u=fs(t,r,o,c,i);return await gs(n.resultFile,u,n.format),{result:u,exitCode:fg(o,c)}}function fg(e,t){return t.status!=="success"||e.status==="running"?2:Zc(e.status)}function gx(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 fs(e,t,r,n,s){return{schema:Jf,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:fg(r,n),target_exit_code:r.exitCode,summary:r.summary,delivery:n,...r.details?{details:r.details}:{}}}}async function gs(e,t,r){e&&await ou(fx(e),pn(t,r))}function pn(e,t){return t==="json"?`${JSON.stringify(e,null,2)}
63
63
  `:`${ne(e)}
64
- `}var ag=y(()=>{"use strict";Ct();Rr();ls();sg()});import{createWriteStream as Xv,mkdirSync as Zv}from"node:fs";import{readFile as ex,rm as tx}from"node:fs/promises";import{dirname as rx}from"node:path";import{join as cg}from"node:path";function ug(e,t,r){return{stdout:new Ho(r,cg(e,`${t}.stdout.bin`)),stderr:new Ho(r,cg(e,`${t}.stderr.bin`))}}function nx(e){let t=e.toString("utf8");return Buffer.from(t,"utf8").equals(e)&&!sx(e)?{inline:t}:{inline:e.toString("base64"),inline_encoding:"base64"}}function sx(e){for(let t of e)if(t<=8||t>=11&&t<=31&&t!==13||t===127)return!0;return!1}var Ho,lg=y(()=>{"use strict";Ho=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,...nx(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 ex(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{Zv(rx(this.spoolPath),{recursive:!0}),t=Xv(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 tx(this.spoolPath,{force:!0}).catch(()=>{})}}});import{existsSync as ox,readFileSync as oB}from"node:fs";import{dirname as ix,join as ax}from"node:path";function dg(e,t){let r=e;for(let n=0;n<16;n++){let s=ax(r,t);if(ox(s))return s;let o=ix(r);if(o===r)break;r=o}return null}function cx(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function qo(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 cx(u)}}var pg=y(()=>{});var Rg={};K(Rg,{DEFAULT_GH_ETAG_CACHE_MAX_BYTES:()=>dn,GH_ETAG_CACHE_DIR_NAME:()=>hg,LEGACY_GH_ETAG_CACHE_FILE:()=>yg,LEGACY_GH_ETAG_CACHE_JSON_FILE:()=>bg,enforceGhEtagCacheCeiling:()=>su,ghEtagCacheDir:()=>Wo,ghEtagEntryPath:()=>Jo,isCacheEntry:()=>Ko,legacyGhEtagCachePaths:()=>nu,migrateLegacyGhEtagCache:()=>iu,readGhEtagCache:()=>Vo,readGhEtagEntry:()=>gx,resetGhEtagCacheMigrationMemo:()=>yx,sweepGhEtagCache:()=>ou,writeGhEtagEntry:()=>hx});import{existsSync as ux}from"node:fs";import{mkdir as lx,readdir as dx,rename as px,rm as mg,stat as fg,unlink as gg,writeFile as mx}from"node:fs/promises";import{dirname as fx,join as ln}from"node:path";function Wo(e){return ln(X(e),hg)}function Jo(e,t){return ln(Wo(e),`${Ex(t)}.toon`)}function nu(e){let t=X(e);return[ln(t,yg),ln(t,bg)]}async function gx(e,t){await iu(e);try{let r=Eg(await So(Jo(e,t)));return Ko(r)?r:void 0}catch{return}}async function hx(e,t,r={}){return await _g(Jo(e,t.key),t),await su(e,r.maxBytes??dn)}async function su(e,t=dn){let r=await wx(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 gg(o.path),n-=o.bytes,s+=1}catch{}}return{evictedEntries:s,bytes:n}}async function ou(e,t={}){let r=await iu(e,{force:!0}),n=await bx(e);return{...await su(e,t.maxBytes??dn),reclaimedTmp:n,migratedEntries:r}}async function Vo(e){for(let t of nu(e))try{let r=Eg(await So(t));if(Rx(r))return r}catch{}return{version:1,entries:{}}}async function iu(e,t={}){if(!t.force&&tu.has(e))return 0;tu.add(e);let r=nu(e).filter(o=>ux(o));if(r.length===0)return 0;let n=await Vo(e),s=0;for(let[o,i]of Object.entries(n.entries)){if(!Ko(i))continue;let a=Jo(e,o);await _x(a)||(await _g(a,{...i,key:o}),s+=1)}for(let o of r)await mg(o,{force:!0});return s}function yx(){tu.clear()}async function bx(e){let t=0;for(let r of[X(e),Wo(e)])for(let n of await wg(r))if(n.endsWith(".tmp"))try{await gg(ln(r,n)),t+=1}catch{}return t}async function wx(e){let t=Wo(e),r=[];for(let n of await wg(t)){if(!n.endsWith(".toon"))continue;let s=ln(t,n);try{let o=await fg(s);o.isFile()&&r.push({path:s,bytes:o.size,mtimeMs:o.mtimeMs})}catch{}}return r}async function wg(e){try{return await dx(e)}catch{return[]}}async function _x(e){try{return await fg(e),!0}catch{return!1}}async function _g(e,t){await lx(fx(e),{recursive:!0});let r=`${e}.${process.pid}.${Date.now()}.tmp`;try{await mx(r,`${$(t)}
66
- `,{encoding:"utf8",mode:384}),await px(r,e)}catch(n){throw await mg(r,{force:!0}),n}}function Ex(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 Rx(e){return ru(e)&&e.version===1&&ru(e.entries)&&Object.values(e.entries).every(Ko)}function Ko(e){return ru(e)&&typeof e.key=="string"&&typeof e.request=="string"&&typeof e.etag=="string"&&typeof e.body=="string"&&typeof e.updated_at=="string"}function ru(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var hg,yg,bg,dn,tu,zo=y(()=>{"use strict";Ge();J();ae();hg="gh-etag",yg="gh-etag-cache.toon",bg="gh-etag-cache.json",dn=4*1024*1024;tu=new Set});var Cg={};K(Cg,{DEFAULT_RSP_BYTE_BUDGET:()=>Ze,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Xe,DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>$t,DEFAULT_RSP_IDLE_MS:()=>Xo,DEFAULT_RSP_MEASUREMENT_HOLDOUT_SHARE:()=>xg,DEFAULT_RSP_STORE_PATH:()=>au,DEFAULT_RSP_TELEMETRY_BYTE_BUDGET:()=>Qo,DEFAULT_RSP_TELEMETRY_DRAIN_INTERVAL_MS:()=>Sg,DEFAULT_RSP_TELEMETRY_DRAIN_TIMEOUT_MS:()=>Tg,DEFAULT_RSP_TELEMETRY_TTL_DAYS:()=>Yo,DEFAULT_RSP_TTL_DAYS:()=>Qe,MIN_RSP_IDLE_MS:()=>vg,resolveRspConfig:()=>De});import{existsSync as kx,readFileSync as Sx}from"node:fs";import{join as Tx,resolve as kg}from"node:path";function De(e,t,r){let n=dg(kg(e),Tx(".red","config.yaml")),s=n?Sx(n,"utf8"):"",o=qo(s,"rsp.enabled")==="true",i=qo(s,"rsp.proxy.enabled"),a=i===void 0?o:i==="true",c=ke(ce(s,"rsp.ttlDays"),Qe),u=ke(pt(t.RSP_EPHEMERAL_TTL_HOURS)??ce(s,"rsp.ephemeralTtlHours"),Xe),l=ke(ce(s,"rsp.byteBudget"),Ze),d=ke(ce(s,"rsp.telemetryTtlDays"),Yo),p=ke(ce(s,"rsp.telemetryByteBudget")??ce(s,"rsp.byteBudget"),Qo),g=ke(pt(t.RSP_TELEMETRY_DRAIN_INTERVAL_MS)??ce(s,"rsp.telemetryDrainIntervalMs"),Sg),f=ke(pt(t.RSP_TELEMETRY_DRAIN_TIMEOUT_MS)??ce(s,"rsp.telemetryDrainTimeoutMs"),Tg),R=vx(pt(t.RSP_IDLE_MS)??ce(s,"rsp.idleMs"),Xo,vg),b=ke(pt(t.RSP_HEAVY_GIT_BYTE_THRESHOLD)??ce(s,"rsp.heavyGitByteThreshold"),$t),h=xx(pt(t.RSP_MEASUREMENT_HOLDOUT_SHARE)??ce(s,"rsp.measurement.holdoutShare"),xg),E=ke(pt(t.RSP_GH_ETAG_CACHE_MAX_BYTES)??ce(s,"rsp.ghEtagCacheMaxBytes"),dn),T={maxOverheadMs:ke(pt(t.RSP_MAX_OVERHEAD_MS)??ce(s,"rsp.overhead.maxOverheadMs"),bo),maxSelfStateBytes:ke(pt(t.RSP_MAX_SELF_STATE_BYTES)??ce(s,"rsp.overhead.maxSelfStateBytes"),wo),netLossFloorBytes:ke(ce(s,"rsp.overhead.netLossFloorBytes"),_o),consecutiveBreaches:ke(pt(t.RSP_OVERHEAD_CONSECUTIVE_BREACHES)??ce(s,"rsp.overhead.consecutiveBreaches"),Eo),cooldownMs:ke(ce(s,"rsp.overhead.cooldownMs"),Ro)},C=ut(e).rootDir,G=r??t.RSP_STORE_URI??`file://${Pm(kg(C),kx)}`;return{enabled:o,proxyEnabled:a,storeUri:G,ttlDays:c,ephemeralTtlHours:u,byteBudget:l,telemetryTtlDays:d,telemetryByteBudget:p,telemetryDrainIntervalMs:g,telemetryDrainTimeoutMs:f,idleMs:R,heavyGitByteThreshold:b,measurementHoldoutShare:h,ghEtagCacheMaxBytes:E,overhead:T}}function ce(e,t){let r=qo(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 vx(e,t,r){let n=ke(e,t);return Math.max(n,r)}function xx(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e<=0?0:e>=1?1:e}function pt(e){if(e==null||e.trim()==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}var $t,au,Qe,Xe,Ze,Yo,Qo,Sg,Tg,Xo,vg,xg,je=y(()=>{"use strict";pg();Ge();Go();ae();zo();$t=8*1024,au=Om,Qe=7,Xe=6,Ze=64*1024*1024,Yo=90,Qo=4*1024*1024,Sg=3e4,Tg=2e3,Xo=5*6e4,vg=5e3,xg=0});function Og(e,t=process.env){return{async mint(r,n){let{residentElisionStore:s}=await Promise.resolve().then(()=>(Kt(),ss)),o=s(e,De(e,t));try{return await o.mint(r,n)}finally{await o.close()}}}}var Ag=y(()=>{"use strict";je()});import{spawn as Cx}from"node:child_process";async function Ig(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??Og(n),c=ug(e.spoolDir,o.id,r.captureBytes);return await new Promise(u=>{let l=!1,d=!1,p=async h=>{l||(l=!0,i.removeEventListener("abort",R),await Mo(s,o,h.verdict.status).catch(()=>{}),u(h))},g=Cx(t,{cwd:n,shell:!0,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"});g.stdout?.on("data",h=>c.stdout.write(Buffer.from(h))),g.stderr?.on("data",h=>c.stderr.write(Buffer.from(h)));let f=async(h,E)=>{if(l||d)return;d=!0,clearTimeout(b);let T=await rn(g,r.terminateGraceMs),C=await Pg(null,null,c,a,t);await p({verdict:{status:h,exitCode:2,summary:E,details:C},cleanupProven:T.cleaned,survivors:T.survivors})},R=()=>void f("indeterminate","command interrupted");i.addEventListener("abort",R,{once:!0});let b=setTimeout(()=>{f("timeout",`command timed out after ${Gg(r.timeoutMs)}`)},r.timeoutMs);g.once("error",h=>{clearTimeout(b),c.stdout.discard(),c.stderr.discard(),p({verdict:{status:"failure",exitCode:1,summary:h.message}})}),g.once("close",(h,E)=>{if(clearTimeout(b),l||d)return;let T=h===0;Pg(h,E,c,a,t).then(C=>p({verdict:{status:T?"success":"failure",exitCode:T?0:1,summary:T?"command exited successfully":`command exited with ${E??h??"unknown"}`,details:C}}))}),i.aborted&&R()})}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(R){l=ge(R instanceof Error?R.message:String(R))}if(u=l,o.attempts=++c,o.last_poll_at=new Date().toISOString(),o.last_observation=cu(l),await on(s,o).catch(()=>{}),l.status!=="running"&&l.status!=="indeterminate")return await Mo(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 Ax(g,i,f)}return await Mo(s,o,"timeout").catch(()=>{}),{verdict:{status:"timeout",exitCode:2,summary:`timed out after ${Gg(r)}`,details:u?{attempts:c,last_poll_at:o.last_poll_at??null,last_observation:cu(u)}:{attempts:c}}}}async function Pg(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 cu(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:cu(e)}:{}})}async function Ax(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 Gg(e){return e%36e5===0?`${e/36e5}h`:e%6e4===0?`${e/6e4}m`:e%1e3===0?`${e/1e3}s`:`${e}ms`}var Lg=y(()=>{"use strict";lg();Ag();Rr();Dt();ls()});var Dg={};K(Dg,{readGhConditionalJson:()=>xe,readGhEtagCache:()=>Vo,sweepGhEtagCache:()=>ou});import{execFileSync as Px}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??Gx(e.path),path:e.path,actor:Ix(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=ns(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 Ix(e){let t=(e.RED_AFK_GH_ACTOR??"").trim();return t===""?"session":`proxied-agent:${t}`}function Gx(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(Px("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 ei=y(()=>{"use strict";je();Kt();zo()});import{spawn as Dx}from"node:child_process";async function ms(e,t){return await $x(t,async r=>{let n=await Fx(e,t.cwd,r);return n||await Nx(e,t.cwd,r)})}async function $x(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 Nx(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&&$o(l).then(d=>Do(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 Mx(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=dt(JSON.parse(n.stdout));return{status:0,stderr:n.stderr,stdout:JSON.stringify({databaseId:cn(s,"database_id")||cn(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=Bo(e,"--branch"),s=Bo(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=Sr(dt(JSON.parse(o.stdout)).workflow_runs).map(a=>({databaseId:cn(a,"database_id")||cn(a,"id")}));return{status:0,stdout:JSON.stringify(i),stderr:o.stderr}}if(e[0]==="release"&&e[1]==="list"){let n=Bo(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=Sr(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 Mx(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=dt(JSON.parse(n.stdout));if(Array.isArray(s.statusCheckRollup))return{status:0,stdout:n.stdout,stderr:n.stderr};let o=he(dt(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?Sr(dt(JSON.parse(i.stdout)).statuses):[],u=a.status===0?Sr(dt(JSON.parse(a.stdout)).check_runs):[];return{status:0,stderr:[n.stderr,i.stderr,a.stderr].filter(Boolean).join(`
67
- `),stdout:JSON.stringify({number:cn(s,"number"),state:he(s,"state").toUpperCase(),mergeable:jx(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 jx(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 $g=y(()=>{"use strict";ei();Uo();Dt()});function Fg(e,t,r){let n=Date.now();return()=>Bx(e,t,r,n)}async function Bx(e,t,r,n){if(!/^[1-9][0-9]*$/.test(e))return ge("missing PR number");let s=await ms(["pr","view",e,"--json","number,state,mergeable,statusCheckRollup,url"],t);if(s.status!==0)return ge(s.stderr||"gh pr view failed");let o=eu(s.stdout),i=Array.isArray(o.statusCheckRollup)?o.statusCheckRollup:[],a=String(o.mergeable??""),c=i.map(Ux),u=c.filter(d=>d==="failure").length,l=c.filter(d=>d==="pending").length;if(String(o.state)!=="OPEN")return Lt("failure",`PR #${e} is ${String(o.state).toLowerCase()}`,{mergeable:a});if(a==="CONFLICTING")return Lt("failure",`PR #${e} has merge conflicts`,{failing:u,pending:l,mergeable:a});if(u>0)return Lt("failure",`PR #${e} has failing checks`,{failing:u,pending:l,mergeable:a});if(l>0)return tn(`PR #${e} has ${l} pending checks`);if(i.length===0){let d=Date.now()-n;return a==="UNKNOWN"||a==="BLOCKED"||d<r.emptyChecksGraceMs?tn(`PR #${e} has no registered checks yet`,{checks:0,mergeable:a,empty_checks_elapsed_ms:d}):Lt("success",`PR #${e} has no checks configured`,{checks:0,mergeable:a})}return a==="UNKNOWN"?tn(`PR #${e} mergeability is still unknown`,{checks:i.length,mergeable:a}):Lt("success",`PR #${e} checks passed`,{checks:i.length,mergeable:a})}async function Mg(e,t){if(!e)return ge("missing run id");let r=await ms(["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=eu(r.stdout),s=String(n.status??"").toLowerCase(),o=String(n.conclusion??"").toLowerCase();return s!=="completed"?tn(`run ${e} is ${s||"pending"}`):o==="success"?Lt("success",`run ${e} succeeded`,Ng(n)):Lt("failure",`run ${e} concluded ${o||"unknown"}`,Ng(n))}async function jg(e,t){let r=await ms(["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 an(s)&&s.databaseId!=null?String(s.databaseId):""}async function Bg(e,t,r){let n=await ms(["release","list","--limit","20","--json","tagName,publishedAt,isDraft"],r);if(n.status!==0)return ge(n.stderr||"gh release list failed");let o=Sr(JSON.parse(n.stdout)).find(i=>{let a=String(i.tagName??""),c=new Date(String(i.publishedAt??""));return i.isDraft!==!0&&(!e||Hx(e,a))&&c>=t});return o?Lt("success",`release ${String(o.tagName)} published`,{tag:String(o.tagName),published_at:String(o.publishedAt??"")}):tn("no matching release is published yet")}function Ux(e){let t=an(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 Ng(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 Hx(e,t){let r=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${r}$`).test(t)}var Ug=y(()=>{"use strict";Rr();$g();Uo()});function fs(){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 uu=y(()=>{"use strict"});var Hg=y(()=>{"use strict";J()});var qg=y(()=>{"use strict"});function qx(e){return Object.keys(e)}function pn(e){return{...e,fields:qx(e.fields)}}var Wg,Jg,Vg,Wx,Jx,Vx,Kg,lu=y(()=>{"use strict";Wg="red.castle.lane.v1",Jg="red.castle.state.v1",Vg="red.castle.history.v1",Wx="red.castle.validation.v2",Jx="red.castle.envelope.v1",Vx="red.castle.hitl-card.v1",Kg=[pn({schemaId:Wg,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}}),pn({schemaId:Jg,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}}),pn({schemaId:Vg,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}}),pn({schemaId:Wx,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}}),pn({schemaId:Jx,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}}),pn({schemaId:Vx,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 QB,ti=y(()=>{"use strict";J();lu();QB=new Map(Kg.map(e=>[e.schemaId,new Set(e.fields)]))});var zg=y(()=>{"use strict";qg();ti()});var Yg=y(()=>{"use strict"});var ri=y(()=>{"use strict"});var du=y(()=>{"use strict";ri()});var ni=y(()=>{"use strict"});import{appendFile as Yx,mkdir as Qx,readFile as Xx}from"node:fs/promises";import{dirname as Zx,join as eC}from"node:path";function pu(e,t){if(typeof e!="string"||e.length===0)throw new Error(`singleton event ${t} must be a non-empty string`);return e}function Qg(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:pu(t.at,"at"),singleton:pu(t.singleton,"singleton"),kind:pu(t.kind,"kind"),...t.payload===void 0?{}:{payload:t.payload}}}function tC(e){return{at:e.at,singleton:e.singleton,kind:e.kind,...e.payload===void 0?{}:{payload:JSON.stringify(e.payload)}}}function rC(e){if(e!==void 0&&(!Number.isSafeInteger(e)||e<0))throw new Error("singleton event tail must be a non-negative integer")}function nC(e){return eC(e.castleStateRoot,"singleton-events.toonl")}function mu(e,t={}){let r=t.fs??{appendFile:Yx,mkdir:Qx,readFile:Xx},n=t.clock??(()=>new Date().toISOString()),s=nC(e);return{path:s,async append(o){let i=Qg({at:o.at??n(),...o});return await r.mkdir(Zx(s),{recursive:!0}),await r.appendFile(s,vt().push(tC(i)),"utf8"),i},async read(o={}){rC(o.tail);let i;try{i=await r.readFile(s,"utf8")}catch(c){if(c.code==="ENOENT")return[];throw c}let a=Tt(i).map(Qg);return o.tail===void 0?a:o.tail===0?[]:a.slice(-o.tail)}}}var fu=y(()=>{"use strict";J()});var si=y(()=>{"use strict";J();ni();fu()});var Xg=y(()=>{"use strict";ri();du();si()});var Zg=y(()=>{"use strict"});var D1,eh=y(()=>{"use strict";J();D1=24*60*60*1e3});var th=y(()=>{"use strict";ti()});var M1,j1,rh=y(()=>{"use strict";M1=15*6e4,j1=30*6e4});var nh=y(()=>{"use strict"});var oC,iC,H1,q1,sh=y(()=>{"use strict";oC=["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"],iC={pre_worktree:["cargo","gradle"]},H1=Object.values(iC).flat(),q1=new Set(oC)});var oh=y(()=>{"use strict"});var ih=y(()=>{"use strict";si()});var ah=y(()=>{"use strict"});var ch=y(()=>{});var uh=y(()=>{"use strict";ch()});var lh=y(()=>{"use strict"});var dh=y(()=>{"use strict"});var gu=y(()=>{"use strict"});var ph=y(()=>{"use strict";J();gu()});var mh=y(()=>{"use strict";J()});var hu=y(()=>{"use strict"});var yu=y(()=>{"use strict"});import{resolve as ye}from"node:path";function fh(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,aC),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 aC,gh=y(()=>{"use strict";aC="default"});var hh=y(()=>{"use strict";ni()});var yh=y(()=>{"use strict"});var bh=y(()=>{"use strict";hu();yu()});import{mkdir as cC,readFile as uC,rename as lC,rm as dC,writeFile as pC}from"node:fs/promises";import{dirname as mC,join as fC}from"node:path";function hC(e){if(!gC.test(e)||e==="."||e==="..")throw new Error(`invalid singleton name ${JSON.stringify(e)}`)}function yC(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function bC(e){return e.code==="ENOENT"}function wC(e){return e.code==="EEXIST"}function _C(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 bu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function oi(e,t){return hC(t),fC(e.castleStateRoot,"singletons",t,"lease.toon")}function wh(e,t={}){let r=t.fs??{mkdir:cC,readFile:uC,rename:lC,rm:dC,writeFile:pC},n=t.clock??(()=>new Date().toISOString()),s=t.isPidAlive??yC;async function o(a){try{return _C(H(await r.readFile(a,"utf8")))}catch(c){if(bC(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(oi(e,a))},async acquire(a,c){let u=oi(e,a);await r.mkdir(mC(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(!wC(f))throw f}let g=await o(u);if(g){if(bu(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=oi(e,a),l=await o(u);if(!l||!bu(l,c))throw new ii(a);let d={...l,renewed_at:n()};return await i(u,d),d},async release(a,c){let u=oi(e,a),l=await o(u);if(!l)return!1;if(!bu(l,c))throw new ii(a);return await r.rm(u,{force:!0}),!0}}}var ii,gC,_h=y(()=>{"use strict";J();ii=class extends Error{constructor(t){super(`singleton lease ${JSON.stringify(t)} is held by another owner`),this.name="SingletonLeaseOwnershipError"}},gC=/^[a-z0-9][a-z0-9._-]{0,63}$/});var wu=y(()=>{"use strict"});var Eh=y(()=>{"use strict"});var EC,RC,kC,IU,Rh=y(()=>{"use strict";EC={refreshCadenceS:270,tolerance:3},RC=270,kC=2700,IU={...EC,claimGraceS:RC,recentCommitProtectionS:kC}});var kh=y(()=>{"use strict"});function Sh(e){return e==="single-object"?"rest":"graphql"}function Th(e,t){return e==="stable-poll"?"rest":Sh(t)}function Be(e){return{none:e}}function ee(e,t,r,n,s,o,i){let a=typeof s=="string"?{fallback:s}:{fallback:null,noFallbackBecause:s.none};return{key:e,kind:"read",cardinality:t,volatility:r,surface:i??Th(r,t),budget:n,...a,...i?{only:i}:{},why:o}}function Ce(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,fallback:null,noFallbackBecause:"a mutation has one observed GitHub API method",why:n}}function xh(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 _u(e){let t=xh(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 Ch(e){return SC.get(_u(e))??null}function Eu(e){let t=Ch(e);if(!t)throw new ai(e);return t}var vh,SC,ai,Oh=y(()=>{vh=[ee("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),ee("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),ee("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),ee("run view","single-object","stable-poll","rest",Be("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),ee("release view","single-object","stable-poll","rest",Be("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),ee("pr diff","single-object","one-shot","rest",Be("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),ee("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),ee("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),ee("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),ee("release list","multi-node","stable-poll","rest",Be("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),ee("run list","multi-node","stable-poll","rest",Be("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),ee("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),ee("issue list (search)","multi-node","stable-poll","search",Be("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),ee("pr list (search)","multi-node","stable-poll","search",Be("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),ee("search issues","multi-repository","one-shot","search",Be("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("search prs","multi-repository","one-shot","search",Be("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("search repos","multi-repository","one-shot","search",Be("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("api graphql","multi-node","one-shot","graphql",Be("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),ee("api rest","single-object","one-shot","rest",Be("the caller explicitly chose 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")],SC=new Map(vh.map(e=>[e.key,e]));ai=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=_u(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 vC,readFile as xC}from"node:fs/promises";import{dirname as CC}from"node:path";function ku(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=vt().push(PC(s));return r=r.then(async()=>{await vC(CC(e.path),{recursive:!0}),await TC(e.path,o,"utf8")}),r},async report(n){await r;let s=Ru(n.from,"report window start"),o=Ru(n.to,"report window end");if(o<=s)throw new Error("GitHub attribution report window end must be after its start");let i=await AC(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(Ru(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 AC(e){let t;try{t=await xC(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=Tt(`${i}
64
+ `}var gg=y(()=>{"use strict";Ct();Sr();ms();pg()});import{createWriteStream as hx,mkdirSync as yx}from"node:fs";import{readFile as bx,rm as wx}from"node:fs/promises";import{dirname as _x}from"node:path";import{join as hg}from"node:path";function yg(e,t,r){return{stdout:new Yo(r,hg(e,`${t}.stdout.bin`)),stderr:new Yo(r,hg(e,`${t}.stderr.bin`))}}function Ex(e){let t=e.toString("utf8");return Buffer.from(t,"utf8").equals(e)&&!Rx(e)?{inline:t}:{inline:e.toString("base64"),inline_encoding:"base64"}}function Rx(e){for(let t of e)if(t<=8||t>=11&&t<=31&&t!==13||t===127)return!0;return!1}var Yo,bg=y(()=>{"use strict";Yo=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,...Ex(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 bx(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{yx(_x(this.spoolPath),{recursive:!0}),t=hx(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 wx(this.spoolPath,{force:!0}).catch(()=>{})}}});import{existsSync as kx,readFileSync as UB}from"node:fs";import{dirname as Sx,join as Tx}from"node:path";function wg(e,t){let r=e;for(let n=0;n<16;n++){let s=Tx(r,t);if(kx(s))return s;let o=Sx(r);if(o===r)break;r=o}return null}function vx(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function Qo(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 vx(u)}}var _g=y(()=>{});var Ag={};K(Ag,{DEFAULT_GH_ETAG_CACHE_MAX_BYTES:()=>fn,GH_ETAG_CACHE_DIR_NAME:()=>Sg,LEGACY_GH_ETAG_CACHE_FILE:()=>Tg,LEGACY_GH_ETAG_CACHE_JSON_FILE:()=>vg,enforceGhEtagCacheCeiling:()=>du,ghEtagCacheDir:()=>Xo,ghEtagEntryPath:()=>Zo,isCacheEntry:()=>ti,legacyGhEtagCachePaths:()=>lu,migrateLegacyGhEtagCache:()=>mu,readGhEtagCache:()=>ei,readGhEtagEntry:()=>Lx,resetGhEtagCacheMigrationMemo:()=>Dx,sweepGhEtagCache:()=>pu,writeGhEtagEntry:()=>Gx});import{existsSync as xx}from"node:fs";import{mkdir as Ox,readdir as Cx,rename as Ax,rm as Eg,stat as Rg,unlink as kg,writeFile as Px}from"node:fs/promises";import{dirname as Ix,join as mn}from"node:path";function Xo(e){return mn(X(e),Sg)}function Zo(e,t){return mn(Xo(e),`${Mx(t)}.toon`)}function lu(e){let t=X(e);return[mn(t,Tg),mn(t,vg)]}async function Lx(e,t){await mu(e);try{let r=Cg(await Po(Zo(e,t)));return ti(r)?r:void 0}catch{return}}async function Gx(e,t,r={}){return await Og(Zo(e,t.key),t),await du(e,r.maxBytes??fn)}async function du(e,t=fn){let r=await Nx(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 kg(o.path),n-=o.bytes,s+=1}catch{}}return{evictedEntries:s,bytes:n}}async function pu(e,t={}){let r=await mu(e,{force:!0}),n=await $x(e);return{...await du(e,t.maxBytes??fn),reclaimedTmp:n,migratedEntries:r}}async function ei(e){for(let t of lu(e))try{let r=Cg(await Po(t));if(jx(r))return r}catch{}return{version:1,entries:{}}}async function mu(e,t={}){if(!t.force&&cu.has(e))return 0;cu.add(e);let r=lu(e).filter(o=>xx(o));if(r.length===0)return 0;let n=await ei(e),s=0;for(let[o,i]of Object.entries(n.entries)){if(!ti(i))continue;let a=Zo(e,o);await Fx(a)||(await Og(a,{...i,key:o}),s+=1)}for(let o of r)await Eg(o,{force:!0});return s}function Dx(){cu.clear()}async function $x(e){let t=0;for(let r of[X(e),Xo(e)])for(let n of await xg(r))if(n.endsWith(".tmp"))try{await kg(mn(r,n)),t+=1}catch{}return t}async function Nx(e){let t=Xo(e),r=[];for(let n of await xg(t)){if(!n.endsWith(".toon"))continue;let s=mn(t,n);try{let o=await Rg(s);o.isFile()&&r.push({path:s,bytes:o.size,mtimeMs:o.mtimeMs})}catch{}}return r}async function xg(e){try{return await Cx(e)}catch{return[]}}async function Fx(e){try{return await Rg(e),!0}catch{return!1}}async function Og(e,t){await Ox(Ix(e),{recursive:!0});let r=`${e}.${process.pid}.${Date.now()}.tmp`;try{await Px(r,`${$(t)}
66
+ `,{encoding:"utf8",mode:384}),await Ax(r,e)}catch(n){throw await Eg(r,{force:!0}),n}}function Mx(e){if(!/^[A-Za-z0-9_-]{1,128}$/.test(e))throw new Error(`unsafe gh etag cache key: ${e}`);return e}function Cg(e){try{return JSON.parse(e)}catch{return H(e)}}function jx(e){return uu(e)&&e.version===1&&uu(e.entries)&&Object.values(e.entries).every(ti)}function ti(e){return uu(e)&&typeof e.key=="string"&&typeof e.request=="string"&&typeof e.etag=="string"&&typeof e.body=="string"&&typeof e.updated_at=="string"}function uu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Sg,Tg,vg,fn,cu,ri=y(()=>{"use strict";De();W();ae();Sg="gh-etag",Tg="gh-etag-cache.toon",vg="gh-etag-cache.json",fn=4*1024*1024;cu=new Set});var $g={};K($g,{DEFAULT_RSP_BYTE_BUDGET:()=>tt,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>et,DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>Nt,DEFAULT_RSP_IDLE_MS:()=>oi,DEFAULT_RSP_MEASUREMENT_HOLDOUT_SHARE:()=>Dg,DEFAULT_RSP_STORE_PATH:()=>fu,DEFAULT_RSP_TELEMETRY_BYTE_BUDGET:()=>si,DEFAULT_RSP_TELEMETRY_DRAIN_INTERVAL_MS:()=>Ig,DEFAULT_RSP_TELEMETRY_DRAIN_TIMEOUT_MS:()=>Lg,DEFAULT_RSP_TELEMETRY_TTL_DAYS:()=>ni,DEFAULT_RSP_TTL_DAYS:()=>Ze,MIN_RSP_IDLE_MS:()=>Gg,resolveRspConfig:()=>Ne});import{existsSync as Bx,readFileSync as Ux}from"node:fs";import{join as Hx,resolve as Pg}from"node:path";function Ne(e,t,r){let n=wg(Pg(e),Hx(".red","config.yaml")),s=n?Ux(n,"utf8"):"",o=Qo(s,"rsp.enabled")==="true",i=Qo(s,"rsp.proxy.enabled"),a=i===void 0?o:i==="true",c=ke(ce(s,"rsp.ttlDays"),Ze),u=ke(ht(t.RSP_EPHEMERAL_TTL_HOURS)??ce(s,"rsp.ephemeralTtlHours"),et),l=ke(ce(s,"rsp.byteBudget"),tt),d=ke(ce(s,"rsp.telemetryTtlDays"),ni),p=ke(ce(s,"rsp.telemetryByteBudget")??ce(s,"rsp.byteBudget"),si),m=ke(ht(t.RSP_TELEMETRY_DRAIN_INTERVAL_MS)??ce(s,"rsp.telemetryDrainIntervalMs"),Ig),g=ke(ht(t.RSP_TELEMETRY_DRAIN_TIMEOUT_MS)??ce(s,"rsp.telemetryDrainTimeoutMs"),Lg),R=qx(ht(t.RSP_IDLE_MS)??ce(s,"rsp.idleMs"),oi,Gg),b=ke(ht(t.RSP_HEAVY_GIT_BYTE_THRESHOLD)??ce(s,"rsp.heavyGitByteThreshold"),Nt),h=Wx(ht(t.RSP_MEASUREMENT_HOLDOUT_SHARE)??ce(s,"rsp.measurement.holdoutShare"),Dg),E=ke(ht(t.RSP_GH_ETAG_CACHE_MAX_BYTES)??ce(s,"rsp.ghEtagCacheMaxBytes"),fn),T={maxOverheadMs:ke(ht(t.RSP_MAX_OVERHEAD_MS)??ce(s,"rsp.overhead.maxOverheadMs"),To),maxSelfStateBytes:ke(ht(t.RSP_MAX_SELF_STATE_BYTES)??ce(s,"rsp.overhead.maxSelfStateBytes"),vo),netLossFloorBytes:ke(ce(s,"rsp.overhead.netLossFloorBytes"),xo),consecutiveBreaches:ke(ht(t.RSP_OVERHEAD_CONSECUTIVE_BREACHES)??ce(s,"rsp.overhead.consecutiveBreaches"),Oo),cooldownMs:ke(ce(s,"rsp.overhead.cooldownMs"),Co)},O=mt(e).rootDir,L=r??t.RSP_STORE_URI??`file://${Mm(Pg(O),Bx)}`;return{enabled:o,proxyEnabled:a,storeUri:L,ttlDays:c,ephemeralTtlHours:u,byteBudget:l,telemetryTtlDays:d,telemetryByteBudget:p,telemetryDrainIntervalMs:m,telemetryDrainTimeoutMs:g,idleMs:R,heavyGitByteThreshold:b,measurementHoldoutShare:h,ghEtagCacheMaxBytes:E,overhead:T}}function ce(e,t){let r=Qo(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 qx(e,t,r){let n=ke(e,t);return Math.max(n,r)}function Wx(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e<=0?0:e>=1?1:e}function ht(e){if(e==null||e.trim()==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}var Nt,fu,Ze,et,tt,ni,si,Ig,Lg,oi,Gg,Dg,Ue=y(()=>{"use strict";_g();De();jo();ae();ri();Nt=8*1024,fu=Nm,Ze=7,et=6,tt=64*1024*1024,ni=90,si=4*1024*1024,Ig=3e4,Lg=2e3,oi=5*6e4,Gg=5e3,Dg=0});function Ng(e,t=process.env){return{async mint(r,n){let{residentElisionStore:s}=await Promise.resolve().then(()=>(Yt(),as)),o=s(e,Ne(e,t));try{return await o.mint(r,n)}finally{await o.close()}}}}var Fg=y(()=>{"use strict";Ue()});import{spawn as Jx}from"node:child_process";async function jg(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??Ng(n),c=yg(e.spoolDir,o.id,r.captureBytes);return await new Promise(u=>{let l=!1,d=!1,p=async h=>{l||(l=!0,i.removeEventListener("abort",R),await Jo(s,o,h.verdict.status).catch(()=>{}),u(h))},m=Jx(t,{cwd:n,shell:!0,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"});m.stdout?.on("data",h=>c.stdout.write(Buffer.from(h))),m.stderr?.on("data",h=>c.stderr.write(Buffer.from(h)));let g=async(h,E)=>{if(l||d)return;d=!0,clearTimeout(b);let T=await on(m,r.terminateGraceMs),O=await Mg(null,null,c,a,t);await p({verdict:{status:h,exitCode:2,summary:E,details:O},cleanupProven:T.cleaned,survivors:T.survivors})},R=()=>void g("indeterminate","command interrupted");i.addEventListener("abort",R,{once:!0});let b=setTimeout(()=>{g("timeout",`command timed out after ${Bg(r.timeoutMs)}`)},r.timeoutMs);m.once("error",h=>{clearTimeout(b),c.stdout.discard(),c.stderr.discard(),p({verdict:{status:"failure",exitCode:1,summary:h.message}})}),m.once("close",(h,E)=>{if(clearTimeout(b),l||d)return;let T=h===0;Mg(h,E,c,a,t).then(O=>p({verdict:{status:T?"success":"failure",exitCode:T?0:1,summary:T?"command exited successfully":`command exited with ${E??h??"unknown"}`,details:O}}))}),i.aborted&&R()})}async function ii(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:Vx(u,c,o.last_poll_at)};let l;try{l=await t()}catch(R){l=ge(R instanceof Error?R.message:String(R))}if(u=l,o.attempts=++c,o.last_poll_at=new Date().toISOString(),o.last_observation=gu(l),await un(s,o).catch(()=>{}),l.status!=="running"&&l.status!=="indeterminate")return await Jo(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),m=Math.min(d+p,Math.max(0,a-Date.now())),g=e.makeWakeSignal?.();await Kx(m,i,g)}return await Jo(s,o,"timeout").catch(()=>{}),{verdict:{status:"timeout",exitCode:2,summary:`timed out after ${Bg(r)}`,details:u?{attempts:c,last_poll_at:o.last_poll_at??null,last_observation:gu(u)}:{attempts:c}}}}async function Mg(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 gu(e){return{status:e.status,exit_code:e.exitCode,summary:e.summary,...e.details?{details:e.details}:{}}}function Vx(e,t,r){return ge("wait interrupted",{attempts:t,last_poll_at:r??null,...e?{last_observation:gu(e)}:{}})}async function Kx(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 Bg(e){return e%36e5===0?`${e/36e5}h`:e%6e4===0?`${e/6e4}m`:e%1e3===0?`${e/1e3}s`:`${e}ms`}var Ug=y(()=>{"use strict";bg();Fg();Sr();$t();ms()});var Hg={};K(Hg,{readGhConditionalJson:()=>xe,readGhEtagCache:()=>ei,sweepGhEtagCache:()=>pu});import{execFileSync as zx}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=Xx(t),s={...n?{owner:n.owner,repo:n.repo}:{},...e.params??{}},o={args:e.args??Qx(e.path),path:e.path,actor:Yx(r),...Object.keys(s).length>0?{params:s}:{}};try{let i;if(e.residentRead)i=await e.residentRead(o);else{let a=Ne(t,r),c=is(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 Yx(e){let t=(e.RED_AFK_GH_ACTOR??"").trim();return t===""?"session":`proxied-agent:${t}`}function Qx(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 Xx(e){let t="";try{t=String(zx("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 ai=y(()=>{"use strict";Ue();Yt();ri()});import{spawn as Zx}from"node:child_process";async function hs(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=Zx("gh",e,{cwd:t,stdio:["ignore","pipe","pipe"]});function a(){let l=i.pid;l&&Ho(l).then(d=>Uo(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 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 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=gt(JSON.parse(n.stdout));return{status:0,stderr:n.stderr,stdout:JSON.stringify({databaseId:dn(s,"database_id")||dn(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=Ko(e,"--branch"),s=Ko(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=vr(gt(JSON.parse(o.stdout)).workflow_runs).map(a=>({databaseId:dn(a,"database_id")||dn(a,"id")}));return{status:0,stdout:JSON.stringify(i),stderr:o.stderr}}if(e[0]==="release"&&e[1]==="list"){let n=Ko(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=vr(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 nO(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=gt(JSON.parse(n.stdout));if(Array.isArray(s.statusCheckRollup))return{status:0,stdout:n.stdout,stderr:n.stderr};let o=he(gt(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?vr(gt(JSON.parse(i.stdout)).statuses):[],u=a.status===0?vr(gt(JSON.parse(a.stdout)).check_runs):[];return{status:0,stderr:[n.stderr,i.stderr,a.stderr].filter(Boolean).join(`
67
+ `),stdout:JSON.stringify({number:dn(s,"number"),state:he(s,"state").toUpperCase(),mergeable:sO(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 sO(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 qg=y(()=>{"use strict";ai();zo();$t()});function Jg(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 ge("missing PR number");let s=await hs(["pr","view",e,"--json","number,state,mergeable,statusCheckRollup,url"],t);if(s.status!==0)return ge(s.stderr||"gh pr view failed");let o=au(s.stdout),i=Array.isArray(o.statusCheckRollup)?o.statusCheckRollup:[],a=String(o.mergeable??""),c=i.map(iO),u=c.filter(d=>d==="failure").length,l=c.filter(d=>d==="pending").length;if(String(o.state)!=="OPEN")return Dt("failure",`PR #${e} is ${String(o.state).toLowerCase()}`,{mergeable:a});if(a==="CONFLICTING")return Dt("failure",`PR #${e} has merge conflicts`,{failing:u,pending:l,mergeable:a});if(u>0)return Dt("failure",`PR #${e} has failing checks`,{failing:u,pending:l,mergeable:a});if(l>0)return sn(`PR #${e} has ${l} pending checks`);if(i.length===0){let d=Date.now()-n;return a==="UNKNOWN"||a==="BLOCKED"||d<r.emptyChecksGraceMs?sn(`PR #${e} has no registered checks yet`,{checks:0,mergeable:a,empty_checks_elapsed_ms:d}):Dt("success",`PR #${e} has no checks configured`,{checks:0,mergeable:a})}return a==="UNKNOWN"?sn(`PR #${e} mergeability is still unknown`,{checks:i.length,mergeable:a}):Dt("success",`PR #${e} checks passed`,{checks:i.length,mergeable:a})}async function Vg(e,t){if(!e)return ge("missing run id");let r=await hs(["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=au(r.stdout),s=String(n.status??"").toLowerCase(),o=String(n.conclusion??"").toLowerCase();return s!=="completed"?sn(`run ${e} is ${s||"pending"}`):o==="success"?Dt("success",`run ${e} succeeded`,Wg(n)):Dt("failure",`run ${e} concluded ${o||"unknown"}`,Wg(n))}async function Kg(e,t){let r=await hs(["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 ln(s)&&s.databaseId!=null?String(s.databaseId):""}async function zg(e,t,r){let n=await hs(["release","list","--limit","20","--json","tagName,publishedAt,isDraft"],r);if(n.status!==0)return ge(n.stderr||"gh release list failed");let o=vr(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?Dt("success",`release ${String(o.tagName)} published`,{tag:String(o.tagName),published_at:String(o.publishedAt??"")}):sn("no matching release is published yet")}function iO(e){let t=ln(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 Wg(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 Yg=y(()=>{"use strict";Sr();qg();zo()});function ys(){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 hu=y(()=>{"use strict"});var Qg=y(()=>{"use strict";W()});var Xg=y(()=>{"use strict"});import{execFile as cO}from"node:child_process";import{renameSync as uO,rmSync as lO,statSync as dO,writeFileSync as pO}from"node:fs";import{readdir as G1,readFile as mO,rename as fO,rm as gO,stat as hO,writeFile as yO}from"node:fs/promises";import{promisify as bO}from"node:util";function eh(e){let t=e.maxBytes;if(t!==void 0&&(!Number.isSafeInteger(t)||t<0))throw new Error("lane retention maxBytes must be a non-negative safe integer");return t}function th(e){return e.code==="ENOENT"}async function bs(e,t,r,n=hO){let s=eh(r);if(s===void 0)return!1;let o=0;try{o=(await n(e)).size}catch(i){if(!th(i))throw i}return o+t>s}function rh(e,t,r,n=dO){let s=eh(r);if(s===void 0)return!1;let o=0;try{o=n(e).size}catch(i){if(!th(i))throw i}return o+t>s}async function EO(e,t,r){try{return await wO("tq",["trim","--keep-last",String(t),"--in-place",e],{timeout:r,windowsHide:!0}),!0}catch{return!1}}function RO(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("lane retention keepLast must be a non-negative safe integer")}function kO(e){if(e.length===0)return"";let t=Ge({trailer:!1});return e.map(r=>t.push(r)).join("")}async function SO(e,t){let r=`${e}.retaining-${process.pid}`;try{await yO(r,t,{encoding:"utf8",mode:384}),await fO(r,e)}finally{await gO(r,{force:!0})}}function nh(e,t){let r=`${e}.retaining-${process.pid}`;try{pO(r,t,{encoding:"utf8",mode:384}),uO(r,e)}finally{lO(r,{force:!0})}}async function ws(e,t,r={}){RO(t);let n=r.timeoutMs??_O;if(await(r.runTq??EO)(e,t,n))return"tq";let o=await mO(e,"utf8"),i=o.endsWith(`
69
+ `)?o:o.slice(0,o.lastIndexOf(`
70
+ `)+1),a=i===""?[]:Le(i),c=t===0?[]:a.slice(-t);return await SO(e,kO(c)),"js"}var wO,rt,_O,xr,Zg,Ft,_s=y(()=>{W();wO=bO(cO),rt=.5,_O=5e3,xr=1024*1024,Zg=14*24*60*60*1e3,Ft={"process-deaths":{maxBytes:4*xr,maxAgeMs:Zg,targetRatio:rt},"github-spend":{maxBytes:8*xr,targetRatio:rt},"castle-singleton-events":{maxBytes:2*xr,targetRatio:rt},"rsp-telemetry-spool":{maxBytes:8*xr,targetRatio:rt},"rsp-telemetry-corrections":{maxBytes:xr,targetRatio:rt},"death-attributions":{maxBytes:xr,maxAgeMs:Zg,targetRatio:rt},"worker-log":{maxLines:5e4,targetRatio:rt},"worker-liveness":{maxBytes:xr,targetRatio:rt},"castle-history":{maxLines:1e4,targetRatio:rt}}});function TO(e){return Object.keys(e)}function gn(e){return{...e,fields:TO(e.fields)}}var sh,oh,ih,vO,xO,OO,ah,yu=y(()=>{"use strict";sh="red.castle.lane.v1",oh="red.castle.state.v1",ih="red.castle.history.v1",vO="red.castle.validation.v2",xO="red.castle.envelope.v1",OO="red.castle.hitl-card.v1",ah=[gn({schemaId:sh,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}}),gn({schemaId:oh,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}}),gn({schemaId:ih,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}}),gn({schemaId:vO,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}}),gn({schemaId:xO,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}}),gn({schemaId:OO,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 U1,ci=y(()=>{"use strict";_s();W();yu();U1=new Map(ah.map(e=>[e.schemaId,new Set(e.fields)]))});var ch=y(()=>{"use strict";Xg();ci()});var uh=y(()=>{"use strict"});var ui=y(()=>{"use strict"});var bu=y(()=>{"use strict";ui()});var li=y(()=>{"use strict"});import{appendFile as PO,mkdir as IO,readFile as LO}from"node:fs/promises";import{dirname as GO,join as DO}from"node:path";function wu(e,t){if(typeof e!="string"||e.length===0)throw new Error(`singleton event ${t} must be a non-empty string`);return e}function lh(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:wu(t.at,"at"),singleton:wu(t.singleton,"singleton"),kind:wu(t.kind,"kind"),...t.payload===void 0?{}:{payload:t.payload}}}function $O(e){return{at:e.at,singleton:e.singleton,kind:e.kind,...e.payload===void 0?{}:{payload:JSON.stringify(e.payload)}}}function NO(e){if(e!==void 0&&(!Number.isSafeInteger(e)||e<0))throw new Error("singleton event tail must be a non-negative integer")}function FO(e){if(e.length===0)return"";let t=Ge({trailer:!1});return e.map(r=>t.push(r)).join("")}function MO(e,t,r){let n=0,s=e.length;for(;n<s;){let o=Math.ceil((n+s)/2),i=e.slice(-o);Buffer.byteLength(FO(i))+t<=r?n=o:s=o-1}return n}function jO(e){return DO(e.castleStateRoot,"singleton-events.toonl")}function _u(e,t={}){let r=t.fs??{appendFile:PO,mkdir:IO,readFile:LO},n=t.clock??(()=>new Date().toISOString()),s=jO(e),o=Ft["castle-singleton-events"],i={...o,...t.maxBytes===void 0?{}:{maxBytes:t.maxBytes}};return{path:s,async append(a){let c=lh({at:a.at??n(),...a}),u=Ge().push($O(c)),l=Buffer.byteLength(u);if(await r.mkdir(GO(s),{recursive:!0}),await bs(s,l,i)){let d=i.maxBytes;if(l>d)throw new Error(`singleton event exceeds its ${d}-byte lane ceiling`);let p=await r.readFile(s,"utf8"),m=Le(p),g=Math.floor(d*o.targetRatio),R=Math.max(g,l),b=MO(m,l,R);await ws(s,b)}return await r.appendFile(s,u,"utf8"),c},async read(a={}){NO(a.tail);let c;try{c=await r.readFile(s,"utf8")}catch(l){if(l.code==="ENOENT")return[];throw l}let u=Le(c).map(lh);return a.tail===void 0?u:a.tail===0?[]:u.slice(-a.tail)}}}var Eu=y(()=>{"use strict";_s();W()});var di=y(()=>{"use strict";W();li();Eu()});var dh=y(()=>{"use strict";ui();bu();di()});var ph=y(()=>{"use strict"});var xU,mh=y(()=>{"use strict";W();xU=24*60*60*1e3});var fh=y(()=>{"use strict";ci()});var PU,IU,gh=y(()=>{"use strict";PU=15*6e4,IU=30*6e4});var hh=y(()=>{"use strict"});var UO,HO,DU,$U,yh=y(()=>{"use strict";UO=["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"],HO={pre_worktree:["cargo","gradle"]},DU=Object.values(HO).flat(),$U=new Set(UO)});var bh=y(()=>{"use strict"});var wh=y(()=>{"use strict";di()});var _h=y(()=>{"use strict"});var Eh=y(()=>{});var Rh=y(()=>{"use strict";Eh()});var kh=y(()=>{"use strict"});var Sh=y(()=>{"use strict"});var Ru=y(()=>{"use strict"});var Th=y(()=>{"use strict";W();Ru()});var vh=y(()=>{"use strict";W()});var ku=y(()=>{"use strict"});var Su=y(()=>{"use strict"});import{resolve as ye}from"node:path";function xh(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,qO),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 qO,Oh=y(()=>{"use strict";qO="default"});var Ch=y(()=>{"use strict";li()});var Ah=y(()=>{"use strict"});var Ph=y(()=>{"use strict";ku();Su()});import{mkdir as WO,readFile as JO,rename as VO,rm as KO,writeFile as zO}from"node:fs/promises";import{dirname as YO,join as QO}from"node:path";function ZO(e){if(!XO.test(e)||e==="."||e==="..")throw new Error(`invalid singleton name ${JSON.stringify(e)}`)}function eC(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function tC(e){return e.code==="ENOENT"}function rC(e){return e.code==="EEXIST"}function nC(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 Tu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function pi(e,t){return ZO(t),QO(e.castleStateRoot,"singletons",t,"lease.toon")}function Ih(e,t={}){let r=t.fs??{mkdir:WO,readFile:JO,rename:VO,rm:KO,writeFile:zO},n=t.clock??(()=>new Date().toISOString()),s=t.isPidAlive??eC;async function o(a){try{return nC(H(await r.readFile(a,"utf8")))}catch(c){if(tC(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(pi(e,a))},async acquire(a,c){let u=pi(e,a);await r.mkdir(YO(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(g){if(!rC(g))throw g}let m=await o(u);if(m){if(Tu(m,c))return{acquired:!0,reaped:l,lease:m};if(await s(m.pid))return{acquired:!1,lease:m};await r.rm(u,{force:!0}),l=!0}}},async renew(a,c){let u=pi(e,a),l=await o(u);if(!l||!Tu(l,c))throw new mi(a);let d={...l,renewed_at:n()};return await i(u,d),d},async release(a,c){let u=pi(e,a),l=await o(u);if(!l)return!1;if(!Tu(l,c))throw new mi(a);return await r.rm(u,{force:!0}),!0}}}var mi,XO,Lh=y(()=>{"use strict";W();mi=class extends Error{constructor(t){super(`singleton lease ${JSON.stringify(t)} is held by another owner`),this.name="SingletonLeaseOwnershipError"}},XO=/^[a-z0-9][a-z0-9._-]{0,63}$/});var vu=y(()=>{"use strict"});var Gh=y(()=>{"use strict"});var sC,oC,iC,SH,Dh=y(()=>{"use strict";sC={refreshCadenceS:270,tolerance:3},oC=270,iC=2700,SH={...sC,claimGraceS:oC,recentCommitProtectionS:iC}});var $h=y(()=>{"use strict"});function Nh(e){return e==="single-object"?"rest":"graphql"}function Fh(e,t){return e==="stable-poll"?"rest":Nh(t)}function He(e){return{none:e}}function ee(e,t,r,n,s,o,i){let a=typeof s=="string"?{fallback:s}:{fallback:null,noFallbackBecause:s.none};return{key:e,kind:"read",cardinality:t,volatility:r,surface:i??Fh(r,t),budget:n,...a,...i?{only:i}:{},why:o}}function Oe(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,fallback:null,noFallbackBecause:"a mutation has one observed GitHub API method",why:n}}function jh(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 xu(e){let t=jh(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 Bh(e){return aC.get(xu(e))??null}function Ou(e){let t=Bh(e);if(!t)throw new fi(e);return t}var Mh,aC,fi,Uh=y(()=>{Mh=[ee("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),ee("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),ee("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),ee("run view","single-object","stable-poll","rest",He("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),ee("release view","single-object","stable-poll","rest",He("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),ee("pr diff","single-object","one-shot","rest",He("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),ee("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),ee("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),ee("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),ee("release list","multi-node","stable-poll","rest",He("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),ee("run list","multi-node","stable-poll","rest",He("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),ee("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),ee("issue list (search)","multi-node","stable-poll","search",He("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),ee("pr list (search)","multi-node","stable-poll","search",He("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),ee("search issues","multi-repository","one-shot","search",He("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("search prs","multi-repository","one-shot","search",He("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("search repos","multi-repository","one-shot","search",He("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("api graphql","multi-node","one-shot","graphql",He("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),ee("api rest","single-object","one-shot","rest",He("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Oe("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Oe("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Oe("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Oe("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Oe("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Oe("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Oe("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Oe("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Oe("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Oe("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Oe("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Oe("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Oe("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Oe("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],aC=new Map(Mh.map(e=>[e.key,e]));fi=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=xu(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 cC,mkdir as uC,readFile as Hh}from"node:fs/promises";import{dirname as lC}from"node:path";function Au(e){let t=e.now??(()=>new Date().toISOString()),r=Ft["github-spend"],n={...r,...e.maxBytes===void 0?{}:{maxBytes:e.maxBytes}},s=Promise.resolve();return{record(o){let i=fC(o.operation,o.cost,o.observedAt??t(),o.actor),a=Ge().push(hC(i));return s=s.then(async()=>{await uC(lC(e.path),{recursive:!0});let c=Buffer.byteLength(a);if(await bs(e.path,c,n)){let u=n.maxBytes;if(c>u)throw new Error(`GitHub spend observation exceeds its ${u}-byte lane ceiling`);let l=await dC(e.path),d=Math.max(Math.floor(u*r.targetRatio),c);await ws(e.path,pC(l,c,d))}await cC(e.path,a,"utf8")}),s},async report(o){await s;let i=Cu(o.from,"report window start"),a=Cu(o.to,"report window end");if(a<=i)throw new Error("GitHub attribution report window end must be after its start");let c=await gC(e.path),u=new Map;for(let d of c.observations){let p=Date.parse(d.observed_at);if(p<i||p>=a||o.pool!==void 0&&d.pool!==o.pool)continue;let m=`${d.pool}\0${d.operation_key}\0${d.actor??""}`,g=u.get(m);u.set(m,{operation_key:d.operation_key,pool:d.pool,...d.actor===void 0?{}:{actor:d.actor},count:(g?.count??0)+1,cost:(g?.cost??0)+d.cost})}let l=[...u.values()].sort((d,p)=>p.cost-d.cost||p.count-d.count||d.operation_key.localeCompare(p.operation_key)||d.pool.localeCompare(p.pool)||(d.actor??"").localeCompare(p.actor??""));return{version:1,origin:"process-attribution",window:{from:o.from,to:o.to},pool:o.pool??null,total_count:l.reduce((d,p)=>d+p.count,0),total_cost:l.reduce((d,p)=>d+p.cost,0),operations:l,unreadable_records:c.unreadable}}}}async function dC(e){try{let t=await Hh(e,"utf8");return t.trim()===""?[]:Le(t)}catch(t){if(qh(t)&&t.code==="ENOENT")return[];throw t}}function pC(e,t,r){let n=0,s=e.length;for(;n<s;){let o=Math.ceil((n+s)/2),i=mC(e.slice(-o));Buffer.byteLength(i)+t<=r?n=o:s=o-1}return n}function mC(e){return e.map(t=>Ge({trailer:!1}).push(t)).join("")}function fC(e,t,r,n){if(Cu(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 gC(e){let t;try{t=await Hh(e,"utf8")}catch(o){if(qh(o)&&o.code==="ENOENT")return{observations:[],unreadable:0};throw o}let r=[],n=0,s=t.split(`
71
+ `);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=Le(`${i}
70
72
  ${a}
71
- `)[0]}catch{n+=1,o+=1;continue}if(!IC(c)){n+=1,o+=1;continue}r.push(c),o+=1}return{observations:r,unreadable:n}}function PC(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 IC(e){return GC(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 Ru(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 GC(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function LC(e){return e instanceof Error&&"code"in e}var Ah=y(()=>{J()});var vu=bp((Su,Tu)=>{(function(e,t){typeof Su=="object"&&typeof Tu<"u"?Tu.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(Su,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,w,m={}){var _,k,S;for(_ in w)S=w[_],m[_]=(k=I[_])!=null?k:S;return m},n=function(I,w,m={}){var _,k;for(_ in I)k=I[_],w[_]!==void 0&&(m[_]=k);return m},s={load:r,overwrite:n},o;o=class{constructor(w,m){this.incr=w,this.decr=m,this._first=null,this._last=null,this.length=0}push(w){var m;this.length++,typeof this.incr=="function"&&this.incr(),m={value:w,prev:this._last,next:null},this._last!=null?(this._last.next=m,this._last=m):this._first=this._last=m}shift(){var w;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),w=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,w}first(){if(this._first!=null)return this._first.value}getArray(){var w,m,_;for(w=this._first,_=[];w!=null;)_.push((m=w,w=w.next,m.value));return _}forEachShift(w){var m;for(m=this.shift();m!=null;)w(m),m=this.shift()}debug(){var w,m,_,k,S;for(w=this._first,S=[];w!=null;)S.push((m=w,w=w.next,{value:m.value,prev:(_=m.prev)!=null?_.value:void 0,next:(k=m.next)!=null?k.value:void 0}));return S}};var i=o,a;a=class{constructor(w){if(this.instance=w,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,_)=>this._addListener(m,"many",_),this.instance.once=(m,_)=>this._addListener(m,"once",_),this.instance.removeAllListeners=(m=null)=>m!=null?delete this._events[m]:this._events={}}_addListener(w,m,_){var k;return(k=this._events)[w]==null&&(k[w]=[]),this._events[w].push({cb:_,status:m}),this.instance}listenerCount(w){return this._events[w]!=null?this._events[w].length:0}async trigger(w,...m){var _,k;try{return w!=="debug"&&this.trigger("debug",`Event triggered: ${w}`,m),this._events[w]==null?void 0:(this._events[w]=this._events[w].filter(function(S){return S.status!=="none"}),k=this._events[w].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(k)).find(function(S){return S!=null}))}catch(S){return _=S,this.trigger("error",_),null}}};var c=a,u,l,d;u=i,l=c,d=class{constructor(w){var m;this.Events=new l(this),this._length=0,this._lists=function(){var _,k,S;for(S=[],m=_=1,k=w;1<=k?_<=k:_>=k;m=1<=k?++_:--_)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(w){return this._lists[w.options.priority].push(w)}queued(w){return w!=null?this._lists[w].length:this._length}shiftAll(w){return this._lists.forEach(function(m){return m.forEachShift(w)})}getFirst(w=this._lists){var m,_,k;for(m=0,_=w.length;m<_;m++)if(k=w[m],k.length>0)return k;return[]}shiftLastFrom(w){return this.getFirst(this._lists.slice(w).reverse()).shift()}};var p=d,g;g=class extends Error{};var f=g,R,b,h,E,T;E=10,b=5,T=s,R=f,h=class{constructor(w,m,_,k,S,x,A,U){this.task=w,this.args=m,this.rejectOnDrop=S,this.Events=x,this._states=A,this.Promise=U,this.options=T.load(_,k),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===k.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(w){var m;return m=~~w!==w?b:w,m<0?0:m>E-1?E-1:m}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:w,message:m="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(w??new R(m)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(w){var m;if(m=this._states.jobStatus(this.options.id),!(m===w||w==="DONE"&&m===null))throw new R(`Invalid job status ${m}, expected ${w}. 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(w,m){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:w,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(w,m,_,k){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(w!=null?w.schedule(this.options,this.task,...this.args):this.task(...this.args)),m())return this.doDone(x),await k(this.options,x),this._assertStatus("DONE"),this._resolve(A)}catch(U){return S=U,this._onFailure(S,x,m,_,k)}}doExpire(w,m,_){var k,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},k=new R(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(k,S,w,m,_)}async _onFailure(w,m,_,k,S){var x,A;if(_())return x=await this.Events.trigger("failed",w,m),x!=null?(A=~~x,this.Events.trigger("retry",`Retrying ${this.options.id} after ${A} ms`,m),this.retryCount++,k(A)):(this.doDone(m),await S(this.options,m),this._assertStatus("DONE"),this._reject(w))}doDone(w){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",w)}};var C=h,G,F,q;q=s,G=f,F=class{constructor(w,m,_){this.instance=w,this.storeOptions=m,this.clientId=this.instance._randomIndex(),q.load(_,_,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 w;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(w=this.heartbeat=setInterval(()=>{var m,_,k,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:k,reservoir:x}=this.storeOptions,this._lastReservoirIncrease=S,_=k!=null?Math.min(m,k-x):m,_>0))return this.storeOptions.reservoir+=_,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?w.unref():void 0:clearInterval(this.heartbeat)}async __publish__(w){return await this.yieldLoop(),this.instance.Events.trigger("message",w.toString())}async __disconnect__(w){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(w=0){return new this.Promise(function(m,_){return setTimeout(m,w)})}computePenalty(){var w;return(w=this.storeOptions.penalty)!=null?w:15*this.storeOptions.minTime||5e3}async __updateSettings__(w){return await this.yieldLoop(),q.overwrite(w,w,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__(w){return await this.yieldLoop(),this._nextRequest+this.timeout<w}computeCapacity(){var w,m;return{maxConcurrent:w,reservoir:m}=this.storeOptions,w!=null&&m!=null?Math.min(w-this._running,m):w!=null?w-this._running:m??null}conditionsCheck(w){var m;return m=this.computeCapacity(),m==null||w<=m}async __incrementReservoir__(w){var m;return await this.yieldLoop(),m=this.storeOptions.reservoir+=w,this.instance._drainAll(this.computeCapacity()),m}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(w){return this._unblockTime>=w}check(w,m){return this.conditionsCheck(w)&&this._nextRequest-m<=0}async __check__(w){var m;return await this.yieldLoop(),m=Date.now(),this.check(w,m)}async __register__(w,m,_){var k,S;return await this.yieldLoop(),k=Date.now(),this.conditionsCheck(m)?(this._running+=m,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=m),S=Math.max(this._nextRequest-k,0),this._nextRequest=k+S+this.storeOptions.minTime,{success:!0,wait:S,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(w,m){var _,k,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 k=Date.now(),S=this.storeOptions.highWater!=null&&w===this.storeOptions.highWater&&!this.check(m,k),_=this.strategyIsBlock()&&(S||this.isBlocked(k)),_&&(this._unblockTime=k+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:S,blocked:_,strategy:this.storeOptions.strategy}}async __free__(w,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(w){this.status=w,this._jobs={},this.counts=this.status.map(function(){return 0})}next(w){var m,_;if(m=this._jobs[w],_=m+1,m!=null&&_<this.status.length)return this.counts[m]--,this.counts[_]++,this._jobs[w]++;if(m!=null)return this.counts[m]--,delete this._jobs[w]}start(w){var m;return m=0,this._jobs[w]=m,this.counts[m]++}remove(w){var m;return m=this._jobs[w],m!=null&&(this.counts[m]--,delete this._jobs[w]),m!=null}jobStatus(w){var m;return(m=this.status[this._jobs[w]])!=null?m:null}statusJobs(w){var m,_,k,S,x;if(w!=null){if(_=this.status.indexOf(w),_<0)throw new re(`status must be one of ${this.status.join(", ")}`);k=this._jobs,S=[];for(m in k)x=k[m],x===_&&S.push(m);return S}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((w,m,_)=>(w[this.status[_]]=m,w),{})}};var pe=de,Bt,P;Bt=i,P=class{constructor(w,m){this.schedule=this.schedule.bind(this),this.name=w,this.Promise=m,this._running=0,this._queue=new Bt}isEmpty(){return this._queue.length===0}async _tryToRun(){var w,m,_,k,S,x,A;if(this._running<1&&this._queue.length>0)return this._running++,{task:A,args:w,resolve:S,reject:k}=this._queue.shift(),m=await async function(){try{return x=await A(...w),function(){return S(x)}}catch(U){return _=U,function(){return k(_)}}}(),this._running--,this._tryToRun(),m()}schedule(w,...m){var _,k,S;return S=k=null,_=new this.Promise(function(x,A){return S=x,k=A}),this._queue.push({task:w,args:m,resolve:S,reject:k}),this._tryToRun(),_}};var j=P,Ne="2.19.5",Et={version:Ne},Ut=Object.freeze({version:Ne,default:Et}),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."),Rt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),nt,Te,ve,kt,Br,Ht;Ht=s,nt=c,kt=O,ve=N,Br=Rt,Te=function(){class I{constructor(m={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=m,Ht.load(this.limiterOptions,this.defaults,this),this.Events=new nt(this),this.instances={},this.Bottleneck=hp,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new kt(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 _;return(_=this.instances[m])!=null?_:(()=>{var k;return k=this.instances[m]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${m}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",k,m),k})()}async deleteKey(m=""){var _,k;return k=this.instances[m],this.connection&&(_=await this.connection.__runCommand__(["del",...Br.allKeys(`${this.id}-${m}`)])),k!=null&&(delete this.instances[m],await k.disconnect()),k!=null||_>0}limiters(){var m,_,k,S;_=this.instances,k=[];for(m in _)S=_[m],k.push({key:m,limiter:S});return k}keys(){return Object.keys(this.instances)}async clusterKeys(){var m,_,k,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,_=9;m!==0;)for([oe,k]=await this.connection.__runCommand__(["scan",m??0,"match",`b_${this.id}-*_settings`,"count",1e4]),m=~~oe,S=0,U=k.length;S<U;S++)x=k[S],A.push(x.slice(me,-_));return A}_startAutoCleanup(){var m;return clearInterval(this.interval),typeof(m=this.interval=setInterval(async()=>{var _,k,S,x,A,U;A=Date.now(),S=this.instances,x=[];for(k in S){U=S[k];try{await U._store.__groupCheck__(A)?x.push(this.deleteKey(k)):x.push(void 0)}catch(oe){_=oe,x.push(U.Events.trigger("error",_))}}return x},this.timeout/2)).unref=="function"?m.unref():void 0}updateSettings(m={}){if(Ht.overwrite(m,this.defaults,this),Ht.overwrite(m,m,this.limiterOptions),m.timeout!=null)return this._startAutoCleanup()}disconnect(m=!0){var _;if(!this.sharedConnection)return(_=this.connection)!=null?_.disconnect(m):void 0}}return I.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},I}.call(e);var $n=Te,pr,Nn,cp;cp=s,Nn=c,pr=function(){class I{constructor(m={}){this.options=m,cp.load(this.options,this.defaults,this),this.Events=new Nn(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((m,_)=>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 _;return this._arr.push(m),_=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),_}}return I.prototype.defaults={maxTime:null,maxSize:null,Promise},I}.call(e);var IR=pr,GR=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),LR=t(Ut),up,lp,Ta,va,dp,xa,pp,mp,fp,Ca,st,gp=[].splice;xa=10,lp=5,st=s,pp=p,va=C,dp=se,mp=GR,Ta=c,fp=pe,Ca=j,up=function(){class I{constructor(m={},..._){var k,S;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(m,_),st.load(m,this.instanceDefaults,this),this._queues=new pp(xa),this._scheduled={},this._states=new fp(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new Ta(this),this._submitLock=new Ca("submit",this.Promise),this._registerLock=new Ca("register",this.Promise),S=st.load(m,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return k=st.load(m,this.redisStoreDefaults,{}),new mp(this,S,k);if(this.datastore==="local")return k=st.load(m,this.localStoreDefaults,{}),new dp(this,S,k);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,_){if(!(m!=null&&typeof m=="object"&&_.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,_,k,S){var x,A;try{if({running:A}=await this._store.__free__(m,k.weight),this.Events.trigger("debug",`Freed ${k.id}`,S),A===0&&this.empty())return this.Events.trigger("idle")}catch(U){return x=U,this.Events.trigger("error",x)}}_run(m,_,k){var S,x,A;return _.doRun(),S=this._clearGlobalState.bind(this,m),A=this._run.bind(this,m,_),x=this._free.bind(this,m,_),this._scheduled[m]={timeout:setTimeout(()=>_.doExecute(this._limiter,S,A,x),k),expiration:_.options.expiration!=null?setTimeout(function(){return _.doExpire(S,A,x)},k+_.options.expiration):void 0,job:_}}_drainOne(m){return this._registerLock.schedule(()=>{var _,k,S,x,A;return this.queued()===0?this.Promise.resolve(null):(A=this._queues.getFirst(),{options:x,args:_}=S=A.first(),m!=null&&x.weight>m?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${x.id}`,{args:_,options:x}),k=this._randomIndex(),this._store.__register__(k,x.weight,x.expiration).then(({success:U,wait:oe,reservoir:me})=>{var Fn;return this.Events.trigger("debug",`Drained ${x.id}`,{success:U,args:_,options:x}),U?(A.shift(),Fn=this.empty(),Fn&&this.Events.trigger("empty"),me===0&&this.Events.trigger("depleted",Fn),this._run(k,S,oe),this.Promise.resolve(x.weight)):this.Promise.resolve(null)})))})}_drainAll(m,_=0){return this._drainOne(m).then(k=>{var S;return k!=null?(S=m!=null?m-k:m,this._drainAll(S,_+k)):this.Promise.resolve(_)}).catch(k=>this.Events.trigger("error",k))}_dropAllQueued(m){return this._queues.shiftAll(function(_){return _.doDrop({message:m})})}stop(m={}){var _,k;return m=st.load(m,this.stopDefaults),k=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()}))},_=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),k(0)}))):this.schedule({priority:xa-1,weight:0},()=>k(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")),_}async _addToQueue(m){var _,k,S,x,A,U,oe;({args:_,options:x}=m);try{({reachedHWM:A,blocked:k,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:_,options:x,error:S}),m.doDrop({error:S}),!1}return k?(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,k),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 _,k,S,x,A,U,oe;return typeof m[0]=="function"?(A=m,[k,...m]=A,[_]=gp.call(m,-1),x=st.load({},this.jobDefaults)):(U=m,[x,k,...m]=U,[_]=gp.call(m,-1),x=st.load(x,this.jobDefaults)),oe=(...me)=>new this.Promise(function(Fn,$R){return k(...me,function(...yp){return(yp[0]!=null?$R:Fn)(yp)})}),S=new va(oe,m,x,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),S.promise.then(function(me){return typeof _=="function"?_(...me):void 0}).catch(function(me){return Array.isArray(me)?typeof _=="function"?_(...me):void 0:typeof _=="function"?_(me):void 0}),this._receive(S)}schedule(...m){var _,k,S;return typeof m[0]=="function"?([S,...m]=m,k={}):[k,S,...m]=m,_=new va(S,m,k,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(_),_.promise}wrap(m){var _,k;return _=this.schedule.bind(this),k=function(...S){return _(m.bind(this),...S)},k.withOptions=function(S,...x){return _(S,m,...x)},k}async updateSettings(m={}){return await this._store.__updateSettings__(st.overwrite(m,this.storeDefaults)),st.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=Ta,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=$n,I.RedisConnection=I.prototype.RedisConnection=O,I.IORedisConnection=I.prototype.IORedisConnection=N,I.Batcher=I.prototype.Batcher=IR,I.prototype.jobDefaults={priority:lp,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 hp=up,DR=hp;return DR})});var Nt,xu=y(()=>{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 $C(e){return e.request!==void 0}async function Ph(e,t,r,n){if(!$C(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 NC(e,t,r,n){let s=new Ih.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 Nt(s.data.errors[0].message,500,{request:n,response:s});return Ph(e,t,o,n)}return s}function Cu(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",Ph.bind(null,r,n)),e.hook.wrap("request",NC.bind(null,r,n))),n}var Ih,DC,Gh=y(()=>{Ih=Aa(vu(),1);xu();DC="0.0.0-development";Cu.VERSION=DC});function jC(e,t,r){return e.retryLimiter.schedule(BC,e,t,r)}async function BC(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),s=UC(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,Ou),o&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(u,Ou),i&&await e.search.key(e.id).schedule(u,Ou);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 UC(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 qC(e){let r=`^(?:${e.map(n=>n.split("/").map(s=>s.startsWith("{")?"(?:.+?)":s).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}function ci(e,t){let{enabled:r=!0,Bottleneck:n=Dh.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:$h,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:s},t.throttle);if(typeof c.onSecondaryRateLimit!="function"||typeof c.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
73
+ `)[0]}catch{n+=1,o+=1;continue}if(!yC(c)){n+=1,o+=1;continue}r.push(c),o+=1}return{observations:r,unreadable:n}}function hC(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 yC(e){return bC(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 Cu(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 bC(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function qh(e){return e instanceof Error&&"code"in e}var Wh=y(()=>{_s();W()});var Lu=vp((Pu,Iu)=>{(function(e,t){typeof Pu=="object"&&typeof Iu<"u"?Iu.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(Pu,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,w,f={}){var _,k,S;for(_ in w)S=w[_],f[_]=(k=I[_])!=null?k:S;return f},n=function(I,w,f={}){var _,k;for(_ in I)k=I[_],w[_]!==void 0&&(f[_]=k);return f},s={load:r,overwrite:n},o;o=class{constructor(w,f){this.incr=w,this.decr=f,this._first=null,this._last=null,this.length=0}push(w){var f;this.length++,typeof this.incr=="function"&&this.incr(),f={value:w,prev:this._last,next:null},this._last!=null?(this._last.next=f,this._last=f):this._first=this._last=f}shift(){var w;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),w=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,w}first(){if(this._first!=null)return this._first.value}getArray(){var w,f,_;for(w=this._first,_=[];w!=null;)_.push((f=w,w=w.next,f.value));return _}forEachShift(w){var f;for(f=this.shift();f!=null;)w(f),f=this.shift()}debug(){var w,f,_,k,S;for(w=this._first,S=[];w!=null;)S.push((f=w,w=w.next,{value:f.value,prev:(_=f.prev)!=null?_.value:void 0,next:(k=f.next)!=null?k.value:void 0}));return S}};var i=o,a;a=class{constructor(w){if(this.instance=w,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=(f,_)=>this._addListener(f,"many",_),this.instance.once=(f,_)=>this._addListener(f,"once",_),this.instance.removeAllListeners=(f=null)=>f!=null?delete this._events[f]:this._events={}}_addListener(w,f,_){var k;return(k=this._events)[w]==null&&(k[w]=[]),this._events[w].push({cb:_,status:f}),this.instance}listenerCount(w){return this._events[w]!=null?this._events[w].length:0}async trigger(w,...f){var _,k;try{return w!=="debug"&&this.trigger("debug",`Event triggered: ${w}`,f),this._events[w]==null?void 0:(this._events[w]=this._events[w].filter(function(S){return S.status!=="none"}),k=this._events[w].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(...f):void 0,typeof A?.then=="function"?await A:A}catch(U){return x=U,this.trigger("error",x),null}}}),(await Promise.all(k)).find(function(S){return S!=null}))}catch(S){return _=S,this.trigger("error",_),null}}};var c=a,u,l,d;u=i,l=c,d=class{constructor(w){var f;this.Events=new l(this),this._length=0,this._lists=function(){var _,k,S;for(S=[],f=_=1,k=w;1<=k?_<=k:_>=k;f=1<=k?++_:--_)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(w){return this._lists[w.options.priority].push(w)}queued(w){return w!=null?this._lists[w].length:this._length}shiftAll(w){return this._lists.forEach(function(f){return f.forEachShift(w)})}getFirst(w=this._lists){var f,_,k;for(f=0,_=w.length;f<_;f++)if(k=w[f],k.length>0)return k;return[]}shiftLastFrom(w){return this.getFirst(this._lists.slice(w).reverse()).shift()}};var p=d,m;m=class extends Error{};var g=m,R,b,h,E,T;E=10,b=5,T=s,R=g,h=class{constructor(w,f,_,k,S,x,A,U){this.task=w,this.args=f,this.rejectOnDrop=S,this.Events=x,this._states=A,this.Promise=U,this.options=T.load(_,k),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===k.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(w){var f;return f=~~w!==w?b:w,f<0?0:f>E-1?E-1:f}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:w,message:f="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(w??new R(f)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(w){var f;if(f=this._states.jobStatus(this.options.id),!(f===w||w==="DONE"&&f===null))throw new R(`Invalid job status ${f}, expected ${w}. 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(w,f){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:w,blocked:f})}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(w,f,_,k){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(w!=null?w.schedule(this.options,this.task,...this.args):this.task(...this.args)),f())return this.doDone(x),await k(this.options,x),this._assertStatus("DONE"),this._resolve(A)}catch(U){return S=U,this._onFailure(S,x,f,_,k)}}doExpire(w,f,_){var k,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},k=new R(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(k,S,w,f,_)}async _onFailure(w,f,_,k,S){var x,A;if(_())return x=await this.Events.trigger("failed",w,f),x!=null?(A=~~x,this.Events.trigger("retry",`Retrying ${this.options.id} after ${A} ms`,f),this.retryCount++,k(A)):(this.doDone(f),await S(this.options,f),this._assertStatus("DONE"),this._reject(w))}doDone(w){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",w)}};var O=h,L,F,q;q=s,L=g,F=class{constructor(w,f,_){this.instance=w,this.storeOptions=f,this.clientId=this.instance._randomIndex(),q.load(_,_,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 w;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(w=this.heartbeat=setInterval(()=>{var f,_,k,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:f,reservoirIncreaseMaximum:k,reservoir:x}=this.storeOptions,this._lastReservoirIncrease=S,_=k!=null?Math.min(f,k-x):f,_>0))return this.storeOptions.reservoir+=_,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?w.unref():void 0:clearInterval(this.heartbeat)}async __publish__(w){return await this.yieldLoop(),this.instance.Events.trigger("message",w.toString())}async __disconnect__(w){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(w=0){return new this.Promise(function(f,_){return setTimeout(f,w)})}computePenalty(){var w;return(w=this.storeOptions.penalty)!=null?w:15*this.storeOptions.minTime||5e3}async __updateSettings__(w){return await this.yieldLoop(),q.overwrite(w,w,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__(w){return await this.yieldLoop(),this._nextRequest+this.timeout<w}computeCapacity(){var w,f;return{maxConcurrent:w,reservoir:f}=this.storeOptions,w!=null&&f!=null?Math.min(w-this._running,f):w!=null?w-this._running:f??null}conditionsCheck(w){var f;return f=this.computeCapacity(),f==null||w<=f}async __incrementReservoir__(w){var f;return await this.yieldLoop(),f=this.storeOptions.reservoir+=w,this.instance._drainAll(this.computeCapacity()),f}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(w){return this._unblockTime>=w}check(w,f){return this.conditionsCheck(w)&&this._nextRequest-f<=0}async __check__(w){var f;return await this.yieldLoop(),f=Date.now(),this.check(w,f)}async __register__(w,f,_){var k,S;return await this.yieldLoop(),k=Date.now(),this.conditionsCheck(f)?(this._running+=f,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=f),S=Math.max(this._nextRequest-k,0),this._nextRequest=k+S+this.storeOptions.minTime,{success:!0,wait:S,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(w,f){var _,k,S;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&f>this.storeOptions.maxConcurrent)throw new L(`Impossible to add a job having a weight of ${f} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return k=Date.now(),S=this.storeOptions.highWater!=null&&w===this.storeOptions.highWater&&!this.check(f,k),_=this.strategyIsBlock()&&(S||this.isBlocked(k)),_&&(this._unblockTime=k+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:S,blocked:_,strategy:this.storeOptions.strategy}}async __free__(w,f){return await this.yieldLoop(),this._running-=f,this._done+=f,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var se=F,re,de;re=g,de=class{constructor(w){this.status=w,this._jobs={},this.counts=this.status.map(function(){return 0})}next(w){var f,_;if(f=this._jobs[w],_=f+1,f!=null&&_<this.status.length)return this.counts[f]--,this.counts[_]++,this._jobs[w]++;if(f!=null)return this.counts[f]--,delete this._jobs[w]}start(w){var f;return f=0,this._jobs[w]=f,this.counts[f]++}remove(w){var f;return f=this._jobs[w],f!=null&&(this.counts[f]--,delete this._jobs[w]),f!=null}jobStatus(w){var f;return(f=this.status[this._jobs[w]])!=null?f:null}statusJobs(w){var f,_,k,S,x;if(w!=null){if(_=this.status.indexOf(w),_<0)throw new re(`status must be one of ${this.status.join(", ")}`);k=this._jobs,S=[];for(f in k)x=k[f],x===_&&S.push(f);return S}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((w,f,_)=>(w[this.status[_]]=f,w),{})}};var pe=de,Ht,P;Ht=i,P=class{constructor(w,f){this.schedule=this.schedule.bind(this),this.name=w,this.Promise=f,this._running=0,this._queue=new Ht}isEmpty(){return this._queue.length===0}async _tryToRun(){var w,f,_,k,S,x,A;if(this._running<1&&this._queue.length>0)return this._running++,{task:A,args:w,resolve:S,reject:k}=this._queue.shift(),f=await async function(){try{return x=await A(...w),function(){return S(x)}}catch(U){return _=U,function(){return k(_)}}}(),this._running--,this._tryToRun(),f()}schedule(w,...f){var _,k,S;return S=k=null,_=new this.Promise(function(x,A){return S=x,k=A}),this._queue.push({task:w,args:f,resolve:S,reject:k}),this._tryToRun(),_}};var j=P,Me="2.19.5",St={version:Me},qt=Object.freeze({version:Me,default:St}),C=()=>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."),Tt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),at,Te,ve,vt,qr,Wt;Wt=s,at=c,vt=C,ve=N,qr=Tt,Te=function(){class I{constructor(f={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=f,Wt.load(this.limiterOptions,this.defaults,this),this.Events=new at(this),this.instances={},this.Bottleneck=Sp,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new vt(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new ve(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(f=""){var _;return(_=this.instances[f])!=null?_:(()=>{var k;return k=this.instances[f]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${f}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",k,f),k})()}async deleteKey(f=""){var _,k;return k=this.instances[f],this.connection&&(_=await this.connection.__runCommand__(["del",...qr.allKeys(`${this.id}-${f}`)])),k!=null&&(delete this.instances[f],await k.disconnect()),k!=null||_>0}limiters(){var f,_,k,S;_=this.instances,k=[];for(f in _)S=_[f],k.push({key:f,limiter:S});return k}keys(){return Object.keys(this.instances)}async clusterKeys(){var f,_,k,S,x,A,U,oe,me;if(this.connection==null)return this.Promise.resolve(this.keys());for(A=[],f=null,me=`b_${this.id}-`.length,_=9;f!==0;)for([oe,k]=await this.connection.__runCommand__(["scan",f??0,"match",`b_${this.id}-*_settings`,"count",1e4]),f=~~oe,S=0,U=k.length;S<U;S++)x=k[S],A.push(x.slice(me,-_));return A}_startAutoCleanup(){var f;return clearInterval(this.interval),typeof(f=this.interval=setInterval(async()=>{var _,k,S,x,A,U;A=Date.now(),S=this.instances,x=[];for(k in S){U=S[k];try{await U._store.__groupCheck__(A)?x.push(this.deleteKey(k)):x.push(void 0)}catch(oe){_=oe,x.push(U.Events.trigger("error",_))}}return x},this.timeout/2)).unref=="function"?f.unref():void 0}updateSettings(f={}){if(Wt.overwrite(f,this.defaults,this),Wt.overwrite(f,f,this.limiterOptions),f.timeout!=null)return this._startAutoCleanup()}disconnect(f=!0){var _;if(!this.sharedConnection)return(_=this.connection)!=null?_.disconnect(f):void 0}}return I.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},I}.call(e);var Mn=Te,fr,jn,hp;hp=s,jn=c,fr=function(){class I{constructor(f={}){this.options=f,hp.load(this.options,this.defaults,this),this.Events=new jn(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((f,_)=>this._resolve=f)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(f){var _;return this._arr.push(f),_=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),_}}return I.prototype.defaults={maxTime:null,maxSize:null,Promise},I}.call(e);var YR=fr,QR=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),XR=t(qt),yp,bp,Ia,La,wp,Ga,_p,Ep,Rp,Da,ct,kp=[].splice;Ga=10,bp=5,ct=s,_p=p,La=O,wp=se,Ep=QR,Ia=c,Rp=pe,Da=j,yp=function(){class I{constructor(f={},..._){var k,S;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(f,_),ct.load(f,this.instanceDefaults,this),this._queues=new _p(Ga),this._scheduled={},this._states=new Rp(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new Ia(this),this._submitLock=new Da("submit",this.Promise),this._registerLock=new Da("register",this.Promise),S=ct.load(f,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return k=ct.load(f,this.redisStoreDefaults,{}),new Ep(this,S,k);if(this.datastore==="local")return k=ct.load(f,this.localStoreDefaults,{}),new wp(this,S,k);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(f,_){if(!(f!=null&&typeof f=="object"&&_.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(f){return this._store.__publish__(f)}disconnect(f=!0){return this._store.__disconnect__(f)}chain(f){return this._limiter=f,this}queued(f){return this._queues.queued(f)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(f){return this._states.jobStatus(f)}jobs(f){return this._states.statusJobs(f)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(f=1){return this._store.__check__(f)}_clearGlobalState(f){return this._scheduled[f]!=null?(clearTimeout(this._scheduled[f].expiration),delete this._scheduled[f],!0):!1}async _free(f,_,k,S){var x,A;try{if({running:A}=await this._store.__free__(f,k.weight),this.Events.trigger("debug",`Freed ${k.id}`,S),A===0&&this.empty())return this.Events.trigger("idle")}catch(U){return x=U,this.Events.trigger("error",x)}}_run(f,_,k){var S,x,A;return _.doRun(),S=this._clearGlobalState.bind(this,f),A=this._run.bind(this,f,_),x=this._free.bind(this,f,_),this._scheduled[f]={timeout:setTimeout(()=>_.doExecute(this._limiter,S,A,x),k),expiration:_.options.expiration!=null?setTimeout(function(){return _.doExpire(S,A,x)},k+_.options.expiration):void 0,job:_}}_drainOne(f){return this._registerLock.schedule(()=>{var _,k,S,x,A;return this.queued()===0?this.Promise.resolve(null):(A=this._queues.getFirst(),{options:x,args:_}=S=A.first(),f!=null&&x.weight>f?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${x.id}`,{args:_,options:x}),k=this._randomIndex(),this._store.__register__(k,x.weight,x.expiration).then(({success:U,wait:oe,reservoir:me})=>{var Bn;return this.Events.trigger("debug",`Drained ${x.id}`,{success:U,args:_,options:x}),U?(A.shift(),Bn=this.empty(),Bn&&this.Events.trigger("empty"),me===0&&this.Events.trigger("depleted",Bn),this._run(k,S,oe),this.Promise.resolve(x.weight)):this.Promise.resolve(null)})))})}_drainAll(f,_=0){return this._drainOne(f).then(k=>{var S;return k!=null?(S=f!=null?f-k:f,this._drainAll(S,_+k)):this.Promise.resolve(_)}).catch(k=>this.Events.trigger("error",k))}_dropAllQueued(f){return this._queues.shiftAll(function(_){return _.doDrop({message:f})})}stop(f={}){var _,k;return f=ct.load(f,this.stopDefaults),k=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()}))},_=f.dropWaitingJobs?(this._run=function(S,x){return x.doDrop({message:f.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:f.dropErrorMessage}));return this._dropAllQueued(f.dropErrorMessage),k(0)}))):this.schedule({priority:Ga-1,weight:0},()=>k(1)),this._receive=function(S){return S._reject(new I.prototype.BottleneckError(f.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new I.prototype.BottleneckError("stop() has already been called")),_}async _addToQueue(f){var _,k,S,x,A,U,oe;({args:_,options:x}=f);try{({reachedHWM:A,blocked:k,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:_,options:x,error:S}),f.doDrop({error:S}),!1}return k?(f.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?f:void 0,U?.doDrop(),U==null||oe===I.prototype.strategy.OVERFLOW)?(U==null&&f.doDrop(),A):(f.doQueue(A,k),this._queues.push(f),await this._drainAll(),A)}_receive(f){return this._states.jobStatus(f.options.id)!=null?(f._reject(new I.prototype.BottleneckError(`A job with the same id already exists (id=${f.options.id})`)),!1):(f.doReceive(),this._submitLock.schedule(this._addToQueue,f))}submit(...f){var _,k,S,x,A,U,oe;return typeof f[0]=="function"?(A=f,[k,...f]=A,[_]=kp.call(f,-1),x=ct.load({},this.jobDefaults)):(U=f,[x,k,...f]=U,[_]=kp.call(f,-1),x=ct.load(x,this.jobDefaults)),oe=(...me)=>new this.Promise(function(Bn,ek){return k(...me,function(...Tp){return(Tp[0]!=null?ek:Bn)(Tp)})}),S=new La(oe,f,x,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),S.promise.then(function(me){return typeof _=="function"?_(...me):void 0}).catch(function(me){return Array.isArray(me)?typeof _=="function"?_(...me):void 0:typeof _=="function"?_(me):void 0}),this._receive(S)}schedule(...f){var _,k,S;return typeof f[0]=="function"?([S,...f]=f,k={}):[k,S,...f]=f,_=new La(S,f,k,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(_),_.promise}wrap(f){var _,k;return _=this.schedule.bind(this),k=function(...S){return _(f.bind(this),...S)},k.withOptions=function(S,...x){return _(S,f,...x)},k}async updateSettings(f={}){return await this._store.__updateSettings__(ct.overwrite(f,this.storeDefaults)),ct.overwrite(f,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(f=0){return this._store.__incrementReservoir__(f)}}return I.default=I,I.Events=Ia,I.version=I.prototype.version=XR.version,I.strategy=I.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},I.BottleneckError=I.prototype.BottleneckError=g,I.Group=I.prototype.Group=Mn,I.RedisConnection=I.prototype.RedisConnection=C,I.IORedisConnection=I.prototype.IORedisConnection=N,I.Batcher=I.prototype.Batcher=YR,I.prototype.jobDefaults={priority:bp,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 Sp=yp,ZR=Sp;return ZR})});var Mt,Gu=y(()=>{Mt=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 _C(e){return e.request!==void 0}async function Jh(e,t,r,n){if(!_C(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 EC(e,t,r,n){let s=new Vh.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(RC.bind(null,e,t,r),n)}async function RC(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 Mt(s.data.errors[0].message,500,{request:n,response:s});return Jh(e,t,o,n)}return s}function Du(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",Jh.bind(null,r,n)),e.hook.wrap("request",EC.bind(null,r,n))),n}var Vh,wC,Kh=y(()=>{Vh=Na(Lu(),1);Gu();wC="0.0.0-development";Du.VERSION=wC});function SC(e,t,r){return e.retryLimiter.schedule(TC,e,t,r)}async function TC(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),s=vC(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,$u),o&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(u,$u),i&&await e.search.key(e.id).schedule(u,$u);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 vC(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 OC(e){let r=`^(?:${e.map(n=>n.split("/").map(s=>s.startsWith("{")?"(?:.+?)":s).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}function gi(e,t){let{enabled:r=!0,Bottleneck:n=Yh.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:Qh,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:s},t.throttle);if(typeof c.onSecondaryRateLimit!="function"||typeof c.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
72
74
  You must pass the onSecondaryRateLimit and onRateLimit error handlers.
73
75
  See https://octokit.github.io/rest.js/#throttling
74
76
 
@@ -78,112 +80,112 @@ ${a}
78
80
  onRateLimit: (retryAfter, options) => {/* ... */}
79
81
  }
80
82
  })
81
- `);let u=!1,l=()=>{if(u)return;u=!0,et.global==null&&WC(n,a),c.global=c.global??et.global,c.auth=c.auth??et.auth,c.search=c.search??et.search,c.write=c.write??et.write,c.notifications=c.notifications??et.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[R,b,h]=f.args,{pathname:E}=new URL(h.url,"http://github.test");if(!(E.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let C=~~b.retryCount;b.retryCount=C,h.request.retryCount=C;let{wantRetry:G,retryAfter:F=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let q=Number(g.response.headers["retry-after"])||R.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",q,h,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,h,e,C),retryAfter:se}}return{}}();if(G)return b.retryCount++,F*R.retryAfterBaseValue})};return e.hook.wrap("request",(d,p)=>(l(),jC(c,d,p))),{}}var Dh,MC,Ou,HC,Lh,$h,et,WC,Nh=y(()=>{Dh=Aa(vu(),1),MC="0.0.0-development",Ou=()=>Promise.resolve();HC=["/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"];Lh=qC(HC),$h=Lh.test.bind(Lh),et={},WC=function(e,t){et.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),et.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),et.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),et.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),et.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};ci.VERSION=MC;ci.triggersNotification=$h});function zt(){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 gs=y(()=>{});function ui(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)=>ui.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 Fh=y(()=>{});function Mh(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 jh=y(()=>{});function Bh(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 Uh=y(()=>{});function Wh(e,t,r){let n=qh(Bh,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]=qh(Mh,null).apply(null,o)})}function JC(){let e=Symbol("Singular"),t={registry:{}},r=ui.bind(null,t,e);return Wh(r,t,e),r}function VC(){let e={registry:{}},t=ui.bind(null,e);return Wh(t,e),t}var Hh,qh,Jh,Vh=y(()=>{Fh();jh();Uh();Hh=Function.bind,qh=Hh.bind(Hh);Jh={Singular:JC,Collection:VC}});function QC(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function XC(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 Yh(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{XC(t[n])?n in e?r[n]=Yh(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Kh(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Pu(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=QC(r.headers),Kh(r),Kh(r.headers);let n=Yh(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 ZC(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 tO(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function rO(e){let t=e.match(eO);return t?t.map(tO).reduce((r,n)=>r.concat(n),[]):[]}function zh(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Qh(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 fn(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function hs(e,t,r){return t=e==="+"||e==="#"?Qh(t):fn(t),r?fn(r)+"="+t:t}function mn(e){return e!=null}function Au(e){return e===";"||e==="&"||e==="?"}function nO(e,t,r,n){var s=e[r],o=[];if(mn(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(hs(t,s,Au(t)?r:""));else if(n==="*")Array.isArray(s)?s.filter(mn).forEach(function(i){o.push(hs(t,i,Au(t)?r:""))}):Object.keys(s).forEach(function(i){mn(s[i])&&o.push(hs(t,s[i],i))});else{let i=[];Array.isArray(s)?s.filter(mn).forEach(function(a){i.push(hs(t,a))}):Object.keys(s).forEach(function(a){mn(s[a])&&(i.push(fn(a)),i.push(hs(t,s[a].toString())))}),Au(t)?o.push(fn(r)+"="+i.join(",")):i.length!==0&&o.push(i.join(","))}else t===";"?mn(s)&&o.push(fn(r)):s===""&&(t==="&"||t==="?")?o.push(fn(r)+"="):s===""&&o.push("");return o}function sO(e){return{expand:oO.bind(null,e)}}function oO(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(nO(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 Qh(o)}),e==="/"?e:e.replace(/\/$/,"")}function Xh(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),s,o=zh(e,["method","baseUrl","url","headers","request","mediaType"]),i=rO(r);r=sO(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=zh(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=ZC(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 iO(e,t,r){return Xh(Pu(e,t,r))}function Zh(e,t){let r=Pu(e,t),n=iO.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Zh.bind(null,r),merge:Pu.bind(null,r),parse:Xh})}var KC,zC,YC,eO,ey,ty=y(()=>{gs();KC="0.0.0-development",zC=`octokit-endpoint.js/${KC} ${zt()}`,YC={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":zC},mediaType:{format:""}};eO=/\{[^{}}]+\}/g;ey=Zh(null,YC)});var cy=bp(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.format=lO;li.parse=dO;var aO=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,ny=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,cO=/[\\"]/g,uO=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,sy=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function lO(e){let{type:t,parameters:r}=e;if(!t||!uO.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let s of Object.keys(r)){if(!ny.test(s))throw new TypeError(`Invalid parameter name: ${s}`);n+=`; ${s}=${gO(r[s])}`}return n}function dO(e,t){let r=e.length,n=Gu(e,0,r),s=n;n=Iu(e,n,r);let o=Lu(e,s,n),i=e.slice(s,o).toLowerCase(),a=t?.parameters===!1?new sy:fO(e,n,r);return{type:i,parameters:a}}var oy=32,iy=9,ay=59,pO=61,ry=34,mO=92;function fO(e,t,r){let n=new sy;e:for(;t<r;){t=Gu(e,t+1,r);let s=t;for(;t<r;){let o=e.charCodeAt(t);if(o===ay)continue e;if(o===pO){let i=Lu(e,s,t),a=e.slice(s,i).toLowerCase();if(t=Gu(e,t+1,r),t<r&&e.charCodeAt(t)===ry){t++;let u="";for(;t<r;){let l=e.charCodeAt(t++);if(l===ry){t=Iu(e,t,r),n[a]===void 0&&(n[a]=u);break}if(l===mO&&t<r){u+=e[t++];continue}u+=String.fromCharCode(l)}continue e}let c=t;if(t=Iu(e,t,r),n[a]===void 0){let u=Lu(e,c,t);n[a]=e.slice(c,u)}continue e}t++}}return n}function Iu(e,t,r){for(;t<r&&e.charCodeAt(t)!==ay;)t++;return t}function Gu(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==oy&&n!==iy)break;t++}return t}function Lu(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==oy&&n!==iy)break;r--}return r}function gO(e){if(ny.test(e))return e;if(aO.test(e))return`"${e.replace(cO,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});var hO,pi,Yt,Du,my,uy,ly,$u,Nu,yO,fy,di,bO,wO,_O,gy,dy,EO,RO,kO,py,hy,yy=y(()=>{hO=/^-?\d+$/,pi=/^-?\d+n+$/,Yt=JSON.stringify,Du=JSON.parse,my=/^-?\d+n$/,uy=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,ly=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,$u=e=>e===void 0||typeof e=="function"||typeof e=="symbol",Nu=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",yO=(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,R,b)=>(b!==null&&typeof b=="object"&&typeof b.toJSON=="function"&&(b=b.toJSON(R)),typeof b=="string"&&pi.test(b)?b+"n":typeof b=="bigint"?"rawJSON"in JSON?JSON.rawJSON(b.toString()):b.toString()+"n":(s&&(b=t.call(f,R,b)),b!==null&&typeof b=="object"&&(b instanceof Number||b instanceof String||b instanceof Boolean)&&(b=b.valueOf()),b)),a=i({"":e},"",e);if($u(a))return;let c=a===null||typeof a!="object",u=Nu(a);if(c||u)return Yt(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 R=!1;if(f.isArray)if(f.index<f.val.length){f.first||l.push(","),n&&l.push(`
82
- `+n.repeat(d));let b=f.val[f.index],h=i(f.val,String(f.index),b);if($u(h))l.push("null"),f.first=!1,f.index++;else{let E=h!==null&&typeof h=="object",T=Nu(h);if(E&&!T){if(g.has(h))throw new TypeError("Converting circular structure to JSON");g.add(h),p.push({parent:f.val,key:String(f.index),val:h,isArray:Array.isArray(h),keys:Array.isArray(h)?null:Object.keys(h),index:0,first:!0}),f.first=!1,f.index++}else l.push(Yt(h)),f.first=!1,f.index++}}else R=!0;else{for(;f.index<f.keys.length;){let h=f.keys[f.index++];if(o&&!o.has(h))continue;let T=f.val[h],C=i(f.val,h,T);if($u(C))continue;f.first||l.push(","),n?l.push(`
83
- `+n.repeat(d)+Yt(h)+": "):l.push(Yt(h)+":");let G=C!==null&&typeof C=="object",F=Nu(C);if(G&&!F){if(g.has(C))throw new TypeError("Converting circular structure to JSON");g.add(C),p.push({parent:f.val,key:h,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(Yt(C)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(R=!0)}R&&(d--,!f.first&&n&&l.push(`
84
- `+n.repeat(d)),l.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return l.join("")},fy=(e,t,r)=>{try{return"rawJSON"in JSON?Yt(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?Yt(e,(a,c)=>typeof c=="string"&&pi.test(c)||typeof c=="bigint"?c.toString()+"n":typeof t=="function"?t(a,c):(Array.isArray(t)&&t.includes(a),c),r).replace(uy,"$1$2$3").replace(ly,"$1$2$3"):Yt(e,t,r)}catch(n){if(n instanceof RangeError){let s=yO(e,t,r);return s===void 0?void 0:"rawJSON"in JSON?s:s.replace(uy,"$1$2$3").replace(ly,"$1$2$3")}throw n}},di=new Map,bO=()=>{let e=JSON.parse.toString();if(di.has(e))return di.get(e);try{let t=JSON.parse("1",(r,n,s)=>!!s?.source&&s.source==="1");return di.set(e,t),t}catch{return di.set(e,!1),!1}},wO=(e,t,r,n)=>typeof t=="string"&&my.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&pi.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,_O=(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&&hO.test(s.source);return a&&c?BigInt(s.source):typeof t=="function"?t(r,n,s):n}),gy=Number.MAX_SAFE_INTEGER.toString(),dy=gy.length,EO=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,RO=/^"-?\d+n+"$/,kO=(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"&&(my.test(a)?a=BigInt(a.slice(0,-1)):pi.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[""]},py=e=>e.replace(EO,(t,r,n,s)=>{let o=t[0]==='"';if(o&&RO.test(t))return t.substring(0,t.length-1)+'n"';let a=n||s,c=r&&(r.length<dy||r.length===dy&&r<=gy);return o||a||c?t:'"'+t+'n"'}),hy=(e,t)=>{if(!e)return Du(e,t);try{if(bO())return _O(e,t);let r=py(e);return Du(r,(n,s,o)=>wO(n,s,o,t))}catch(r){if(r instanceof RangeError){let n=py(e),s=Du(n);return kO(s,t)}throw r}}});function vO(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 wy(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=vO(e.body)||Array.isArray(e.body)?fy(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 Nt(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 Nt(i.statusText,a,{response:l,request:e})}if(a===304)throw l.data=await Fu(i),new Nt("Not modified",a,{response:l,request:e});if(a>=400)throw l.data=await Fu(i),new Nt(CO(l.data),a,{response:l,request:e});return l.data=n?await Fu(i):i.body,l}async function Fu(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(by);let r=(0,_y.parse)(t);if(xO(r)){let n="";try{return n=await e.text(),hy(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(by):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function xO(e){return e.type==="application/json"||e.type==="application/scim+json"}function CO(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 Mu(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 wy(r.parse(i));let a=(c,u)=>wy(r.parse(r.merge(c,u)));return Object.assign(a,{endpoint:r,defaults:Mu.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:Mu.bind(null,r)})}var _y,SO,TO,by,ys,ju=y(()=>{ty();gs();_y=Aa(cy(),1);yy();xu();SO="10.0.13",TO={headers:{"user-agent":`octokit-request.js/${SO} ${zt()}`}};by=()=>"";ys=Mu(ey,TO);});function AO(e){return`Request failed due to following response errors:
83
+ `);let u=!1,l=()=>{if(u)return;u=!0,nt.global==null&&CC(n,a),c.global=c.global??nt.global,c.auth=c.auth??nt.auth,c.search=c.search??nt.search,c.write=c.write??nt.write,c.notifications=c.notifications??nt.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",m=>e.log.warn("Error in throttling-plugin limit handler",m)),c.retryLimiter.on("failed",async function(m,g){let[R,b,h]=g.args,{pathname:E}=new URL(h.url,"http://github.test");if(!(E.startsWith("/graphql")&&m.status!==401||m.status===403||m.status===429))return;let O=~~b.retryCount;b.retryCount=O,h.request.retryCount=O;let{wantRetry:L,retryAfter:F=0}=await async function(){if(/\bsecondary rate\b/i.test(m.message)){let q=Number(m.response.headers["retry-after"])||R.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",q,h,e,O),retryAfter:q}}if(m.response.headers!=null&&m.response.headers["x-ratelimit-remaining"]==="0"||(m.response.data?.errors??[]).some(q=>q.type==="RATE_LIMITED")){let q=new Date(~~m.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,h,e,O),retryAfter:se}}return{}}();if(L)return b.retryCount++,F*R.retryAfterBaseValue})};return e.hook.wrap("request",(d,p)=>(l(),SC(c,d,p))),{}}var Yh,kC,$u,xC,zh,Qh,nt,CC,Xh=y(()=>{Yh=Na(Lu(),1),kC="0.0.0-development",$u=()=>Promise.resolve();xC=["/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"];zh=OC(xC),Qh=zh.test.bind(zh),nt={},CC=function(e,t){nt.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),nt.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),nt.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),nt.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),nt.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};gi.VERSION=kC;gi.triggersNotification=Qh});function Qt(){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 Es=y(()=>{});function hi(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)=>hi.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 Zh=y(()=>{});function ey(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 ty=y(()=>{});function ry(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 ny=y(()=>{});function iy(e,t,r){let n=oy(ry,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]=oy(ey,null).apply(null,o)})}function AC(){let e=Symbol("Singular"),t={registry:{}},r=hi.bind(null,t,e);return iy(r,t,e),r}function PC(){let e={registry:{}},t=hi.bind(null,e);return iy(t,e),t}var sy,oy,ay,cy=y(()=>{Zh();ty();ny();sy=Function.bind,oy=sy.bind(sy);ay={Singular:AC,Collection:PC}});function DC(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function $C(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 dy(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{$C(t[n])?n in e?r[n]=dy(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function uy(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Fu(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=DC(r.headers),uy(r),uy(r.headers);let n=dy(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 NC(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 MC(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function jC(e){let t=e.match(FC);return t?t.map(MC).reduce((r,n)=>r.concat(n),[]):[]}function ly(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function py(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 yn(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Rs(e,t,r){return t=e==="+"||e==="#"?py(t):yn(t),r?yn(r)+"="+t:t}function hn(e){return e!=null}function Nu(e){return e===";"||e==="&"||e==="?"}function BC(e,t,r,n){var s=e[r],o=[];if(hn(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(Rs(t,s,Nu(t)?r:""));else if(n==="*")Array.isArray(s)?s.filter(hn).forEach(function(i){o.push(Rs(t,i,Nu(t)?r:""))}):Object.keys(s).forEach(function(i){hn(s[i])&&o.push(Rs(t,s[i],i))});else{let i=[];Array.isArray(s)?s.filter(hn).forEach(function(a){i.push(Rs(t,a))}):Object.keys(s).forEach(function(a){hn(s[a])&&(i.push(yn(a)),i.push(Rs(t,s[a].toString())))}),Nu(t)?o.push(yn(r)+"="+i.join(",")):i.length!==0&&o.push(i.join(","))}else t===";"?hn(s)&&o.push(yn(r)):s===""&&(t==="&"||t==="?")?o.push(yn(r)+"="):s===""&&o.push("");return o}function UC(e){return{expand:HC.bind(null,e)}}function HC(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(BC(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 py(o)}),e==="/"?e:e.replace(/\/$/,"")}function my(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),s,o=ly(e,["method","baseUrl","url","headers","request","mediaType"]),i=jC(r);r=UC(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=ly(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=NC(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 qC(e,t,r){return my(Fu(e,t,r))}function fy(e,t){let r=Fu(e,t),n=qC.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:fy.bind(null,r),merge:Fu.bind(null,r),parse:my})}var IC,LC,GC,FC,gy,hy=y(()=>{Es();IC="0.0.0-development",LC=`octokit-endpoint.js/${IC} ${Qt()}`,GC={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":LC},mediaType:{format:""}};FC=/\{[^{}}]+\}/g;gy=fy(null,GC)});var ky=vp(yi=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.format=KC;yi.parse=zC;var WC=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,by=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,JC=/[\\"]/g,VC=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,wy=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function KC(e){let{type:t,parameters:r}=e;if(!t||!VC.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}=${ZC(r[s])}`}return n}function zC(e,t){let r=e.length,n=ju(e,0,r),s=n;n=Mu(e,n,r);let o=Bu(e,s,n),i=e.slice(s,o).toLowerCase(),a=t?.parameters===!1?new wy:XC(e,n,r);return{type:i,parameters:a}}var _y=32,Ey=9,Ry=59,YC=61,yy=34,QC=92;function XC(e,t,r){let n=new wy;e:for(;t<r;){t=ju(e,t+1,r);let s=t;for(;t<r;){let o=e.charCodeAt(t);if(o===Ry)continue e;if(o===YC){let i=Bu(e,s,t),a=e.slice(s,i).toLowerCase();if(t=ju(e,t+1,r),t<r&&e.charCodeAt(t)===yy){t++;let u="";for(;t<r;){let l=e.charCodeAt(t++);if(l===yy){t=Mu(e,t,r),n[a]===void 0&&(n[a]=u);break}if(l===QC&&t<r){u+=e[t++];continue}u+=String.fromCharCode(l)}continue e}let c=t;if(t=Mu(e,t,r),n[a]===void 0){let u=Bu(e,c,t);n[a]=e.slice(c,u)}continue e}t++}}return n}function Mu(e,t,r){for(;t<r&&e.charCodeAt(t)!==Ry;)t++;return t}function ju(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==_y&&n!==Ey)break;t++}return t}function Bu(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==_y&&n!==Ey)break;r--}return r}function ZC(e){if(by.test(e))return e;if(WC.test(e))return`"${e.replace(JC,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});var e0,wi,Xt,Uu,Oy,Sy,Ty,Hu,qu,t0,Cy,bi,r0,n0,s0,Ay,vy,o0,i0,a0,xy,Py,Iy=y(()=>{e0=/^-?\d+$/,wi=/^-?\d+n+$/,Xt=JSON.stringify,Uu=JSON.parse,Oy=/^-?\d+n$/,Sy=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Ty=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Hu=e=>e===void 0||typeof e=="function"||typeof e=="symbol",qu=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",t0=(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=(g,R,b)=>(b!==null&&typeof b=="object"&&typeof b.toJSON=="function"&&(b=b.toJSON(R)),typeof b=="string"&&wi.test(b)?b+"n":typeof b=="bigint"?"rawJSON"in JSON?JSON.rawJSON(b.toString()):b.toString()+"n":(s&&(b=t.call(g,R,b)),b!==null&&typeof b=="object"&&(b instanceof Number||b instanceof String||b instanceof Boolean)&&(b=b.valueOf()),b)),a=i({"":e},"",e);if(Hu(a))return;let c=a===null||typeof a!="object",u=qu(a);if(c||u)return Xt(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}],m=new WeakSet([a]);for(;p.length>0;){let g=p[p.length-1];g.index===0&&(l.push(g.isArray?"[":"{"),d++);let R=!1;if(g.isArray)if(g.index<g.val.length){g.first||l.push(","),n&&l.push(`
84
+ `+n.repeat(d));let b=g.val[g.index],h=i(g.val,String(g.index),b);if(Hu(h))l.push("null"),g.first=!1,g.index++;else{let E=h!==null&&typeof h=="object",T=qu(h);if(E&&!T){if(m.has(h))throw new TypeError("Converting circular structure to JSON");m.add(h),p.push({parent:g.val,key:String(g.index),val:h,isArray:Array.isArray(h),keys:Array.isArray(h)?null:Object.keys(h),index:0,first:!0}),g.first=!1,g.index++}else l.push(Xt(h)),g.first=!1,g.index++}}else R=!0;else{for(;g.index<g.keys.length;){let h=g.keys[g.index++];if(o&&!o.has(h))continue;let T=g.val[h],O=i(g.val,h,T);if(Hu(O))continue;g.first||l.push(","),n?l.push(`
85
+ `+n.repeat(d)+Xt(h)+": "):l.push(Xt(h)+":");let L=O!==null&&typeof O=="object",F=qu(O);if(L&&!F){if(m.has(O))throw new TypeError("Converting circular structure to JSON");m.add(O),p.push({parent:g.val,key:h,val:O,isArray:Array.isArray(O),keys:Array.isArray(O)?null:Object.keys(O),index:0,first:!0}),g.first=!1;break}else l.push(Xt(O)),g.first=!1}g.index>=g.keys.length&&p[p.length-1]===g&&(R=!0)}R&&(d--,!g.first&&n&&l.push(`
86
+ `+n.repeat(d)),l.push(g.isArray?"]":"}"),m.delete(g.val),p.pop())}return l.join("")},Cy=(e,t,r)=>{try{return"rawJSON"in JSON?Xt(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?Xt(e,(a,c)=>typeof c=="string"&&wi.test(c)||typeof c=="bigint"?c.toString()+"n":typeof t=="function"?t(a,c):(Array.isArray(t)&&t.includes(a),c),r).replace(Sy,"$1$2$3").replace(Ty,"$1$2$3"):Xt(e,t,r)}catch(n){if(n instanceof RangeError){let s=t0(e,t,r);return s===void 0?void 0:"rawJSON"in JSON?s:s.replace(Sy,"$1$2$3").replace(Ty,"$1$2$3")}throw n}},bi=new Map,r0=()=>{let e=JSON.parse.toString();if(bi.has(e))return bi.get(e);try{let t=JSON.parse("1",(r,n,s)=>!!s?.source&&s.source==="1");return bi.set(e,t),t}catch{return bi.set(e,!1),!1}},n0=(e,t,r,n)=>typeof t=="string"&&Oy.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&wi.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,s0=(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&&e0.test(s.source);return a&&c?BigInt(s.source):typeof t=="function"?t(r,n,s):n}),Ay=Number.MAX_SAFE_INTEGER.toString(),vy=Ay.length,o0=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,i0=/^"-?\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"&&(Oy.test(a)?a=BigInt(a.slice(0,-1)):wi.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[""]},xy=e=>e.replace(o0,(t,r,n,s)=>{let o=t[0]==='"';if(o&&i0.test(t))return t.substring(0,t.length-1)+'n"';let a=n||s,c=r&&(r.length<vy||r.length===vy&&r<=Ay);return o||a||c?t:'"'+t+'n"'}),Py=(e,t)=>{if(!e)return Uu(e,t);try{if(r0())return s0(e,t);let r=xy(e);return Uu(r,(n,s,o)=>n0(n,s,o,t))}catch(r){if(r instanceof RangeError){let n=xy(e),s=Uu(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 Gy(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)?Cy(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 m=new Mt(p,500,{request:e});throw m.cause=d,m}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 Mt(i.statusText,a,{response:l,request:e})}if(a===304)throw l.data=await Wu(i),new Mt("Not modified",a,{response:l,request:e});if(a>=400)throw l.data=await Wu(i),new Mt(p0(l.data),a,{response:l,request:e});return l.data=n?await Wu(i):i.body,l}async function Wu(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(Ly);let r=(0,Dy.parse)(t);if(d0(r)){let n="";try{return n=await e.text(),Py(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(Ly):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function d0(e){return e.type==="application/json"||e.type==="application/scim+json"}function p0(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 Ju(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 Gy(r.parse(i));let a=(c,u)=>Gy(r.parse(r.merge(c,u)));return Object.assign(a,{endpoint:r,defaults:Ju.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:Ju.bind(null,r)})}var Dy,c0,u0,Ly,ks,Vu=y(()=>{hy();Es();Dy=Na(ky(),1);Iy();Gu();c0="10.0.13",u0={headers:{"user-agent":`octokit-request.js/${c0} ${Qt()}`}};Ly=()=>"";ks=Ju(gy,u0);});function f0(e){return`Request failed due to following response errors:
85
87
  `+e.errors.map(t=>` - ${t.message}`).join(`
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(GO.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)=>IO.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 Ey.test(o)&&(s.url=o.replace(Ey,"/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 PO(s,a,i.data)}return i.data.data})}function Bu(e,t){let r=e.defaults(t);return Object.assign((s,o)=>LO(r,s,o),{defaults:Bu.bind(null,r),endpoint:r.endpoint})}function Ry(e){return Bu(e,{method:"POST",url:"/graphql"})}var OO,PO,IO,GO,Ey,hH,ky=y(()=>{ju();gs();OO="0.0.0-development";PO=class extends Error{constructor(e,t,r){super(AO(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},IO=["method","baseUrl","url","headers","request","query","mediaType","operationName"],GO=["query","method","url"],Ey=/\/api\/v3\/?$/;hH=Bu(ys,{headers:{"user-agent":`octokit-graphql.js/${OO} ${zt()}`},method:"POST",url:"/graphql"});});async function $O(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 NO(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=NO(e),t(s)}var Uu,Sy,Ty,DO,vy,xy=y(()=>{Uu="(?:[a-zA-Z0-9_-]+)",Sy="\\.",Ty=new RegExp(`^${Uu}${Sy}${Uu}${Sy}${Uu}$`),DO=Ty.test.bind(Ty);vy=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($O.bind(null,t),{hook:FO.bind(null,t)})}});var Hu,Cy=y(()=>{Hu="7.0.7"});function BO(e={}){return typeof e.debug!="function"&&(e.debug=Oy),typeof e.info!="function"&&(e.info=Oy),typeof e.warn!="function"&&(e.warn=MO),typeof e.error!="function"&&(e.error=jO),e}var Oy,MO,jO,Ay,mi,Py=y(()=>{gs();Vh();ju();ky();xy();Cy();Oy=()=>{},MO=console.warn.bind(console),jO=console.error.bind(console);Ay=`octokit-core.js/${Hu} ${zt()}`,mi=class{static VERSION=Hu;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 Jh.Collection,n={baseUrl:ys.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} ${Ay}`:Ay,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=ys.defaults(n),this.graphql=Ry(this.request).defaults(n),this.log=BO(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=vy(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 Iy,Gy=y(()=>{Iy="6.0.0"});function qu(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 Ly=y(()=>{Gy();qu.VERSION=Iy});function HO(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 Wu(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=HO(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 Dy(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),$y(e,[],Wu(e,t,r)[Symbol.asyncIterator](),n)}function $y(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:$y(e,t,r,n)})}function Ju(e){return{paginate:Object.assign(Dy.bind(null,e),{iterator:Wu.bind(null,e)})}}var UO,GH,Ny=y(()=>{UO="0.0.0-development";GH=Object.assign(Dy,{iterator:Wu});Ju.VERSION=UO});var Vu,Fy=y(()=>{Vu="17.0.0"});var qO,My,jy=y(()=>{qO={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"]}},My=qO});function Ku(e){let t={};for(let r of Tr.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},WO);return t}function JO(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 Tr,WO,By=y(()=>{jy();Tr=new Map;for(let[e,t]of Object.entries(My))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);Tr.has(e)||Tr.set(e,new Map),Tr.get(e).set(r,{scope:e,methodName:r,endpointDefaults:u,decorations:i})}WO={has({scope:e},t){return Tr.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[...Tr.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=Tr.get(t).get(n);if(!s)return;let{endpointDefaults:o,decorations:i}=s;return i?r[n]=JO(e,t,n,o,i):r[n]=e.request.defaults(o),r[n]}}});function VO(e){return{rest:Ku(e)}}function zu(e){let t=Ku(e);return{...t,rest:t}}var Uy=y(()=>{Fy();By();VO.VERSION=Vu;zu.VERSION=Vu});var Hy,qy=y(()=>{Hy="22.0.1"});var Wy,Jy=y(()=>{Py();Ly();Ny();Uy();qy();Wy=mi.plugin(qu,zu,Ju).defaults({userAgent:`octokit-rest.js/${Hy}`})});function KO(e){return`r${e}`}function Vy(e){if(e.length===0)throw new Error("an aliased single-object query needs at least one read");let t=e[0].kind;if(e.some(o=>o.kind!==t))throw new Error("an aliased single-object query may contain only one object kind");let r={},n=t==="pr"?"pullRequest":"issue";return{query:["query CoalescedSingleObjectReads {",...e.map((o,i)=>{if(!Number.isSafeInteger(o.number)||o.number<=0)throw new Error(`an aliased single-object read needs a positive number, got ${o.number}`);let a=o.selection.trim();if(a==="")throw new Error("an aliased single-object read needs a field selection");let c=KO(i);return r[c]=o,[` ${c}: repository(owner: ${JSON.stringify(o.owner)}, name: ${JSON.stringify(o.repo)}) {`,` object: ${n}(number: ${o.number}) { ${a} }`," }"].join(`
88
+ `)}function b0(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(y0.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)=>h0.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 $y.test(o)&&(s.url=o.replace($y,"/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 g0(s,a,i.data)}return i.data.data})}function Ku(e,t){let r=e.defaults(t);return Object.assign((s,o)=>b0(r,s,o),{defaults:Ku.bind(null,r),endpoint:r.endpoint})}function Ny(e){return Ku(e,{method:"POST",url:"/graphql"})}var m0,g0,h0,y0,$y,uq,Fy=y(()=>{Vu();Es();m0="0.0.0-development";g0=class extends Error{constructor(e,t,r){super(f0(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},h0=["method","baseUrl","url","headers","request","query","mediaType","operationName"],y0=["query","method","url"],$y=/\/api\/v3\/?$/;uq=Ku(ks,{headers:{"user-agent":`octokit-graphql.js/${m0} ${Qt()}`},method:"POST",url:"/graphql"});});async function _0(e){let t=w0(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 E0(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function R0(e,t,r,n){let s=t.endpoint.merge(r,n);return s.headers.authorization=E0(e),t(s)}var zu,My,jy,w0,By,Uy=y(()=>{zu="(?:[a-zA-Z0-9_-]+)",My="\\.",jy=new RegExp(`^${zu}${My}${zu}${My}${zu}$`),w0=jy.test.bind(jy);By=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(_0.bind(null,t),{hook:R0.bind(null,t)})}});var Yu,Hy=y(()=>{Yu="7.0.7"});function T0(e={}){return typeof e.debug!="function"&&(e.debug=qy),typeof e.info!="function"&&(e.info=qy),typeof e.warn!="function"&&(e.warn=k0),typeof e.error!="function"&&(e.error=S0),e}var qy,k0,S0,Wy,_i,Jy=y(()=>{Es();cy();Vu();Fy();Uy();Hy();qy=()=>{},k0=console.warn.bind(console),S0=console.error.bind(console);Wy=`octokit-core.js/${Yu} ${Qt()}`,_i=class{static VERSION=Yu;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 ay.Collection,n={baseUrl:ks.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=ks.defaults(n),this.graphql=Ny(this.request).defaults(n),this.log=T0(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=By(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 Vy,Ky=y(()=>{Vy="6.0.0"});function Qu(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 zy=y(()=>{Ky();Qu.VERSION=Vy});function x0(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 Xu(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=x0(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),m=parseInt(d.get("per_page")||"250",10);p*m<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 Yy(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),Qy(e,[],Xu(e,t,r)[Symbol.asyncIterator](),n)}function Qy(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:Qy(e,t,r,n)})}function Zu(e){return{paginate:Object.assign(Yy.bind(null,e),{iterator:Xu.bind(null,e)})}}var v0,vq,Xy=y(()=>{v0="0.0.0-development";vq=Object.assign(Yy,{iterator:Xu});Zu.VERSION=v0});var el,Zy=y(()=>{el="17.0.0"});var O0,eb,tb=y(()=>{O0={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"]}},eb=O0});function tl(e){let t={};for(let r of Or.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},C0);return t}function A0(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 Or,C0,rb=y(()=>{tb();Or=new Map;for(let[e,t]of Object.entries(eb))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})}C0={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]=A0(e,t,n,o,i):r[n]=e.request.defaults(o),r[n]}}});function P0(e){return{rest:tl(e)}}function rl(e){let t=tl(e);return{...t,rest:t}}var nb=y(()=>{Zy();rb();P0.VERSION=el;rl.VERSION=el});var sb,ob=y(()=>{sb="22.0.1"});var ib,ab=y(()=>{Jy();zy();Xy();nb();ob();ib=_i.plugin(Qu,rl,Zu).defaults({userAgent:`octokit-rest.js/${sb}`})});function I0(e){return`r${e}`}function cb(e){if(e.length===0)throw new Error("an aliased single-object query needs at least one read");let t=e[0].kind;if(e.some(o=>o.kind!==t))throw new Error("an aliased single-object query may contain only one object kind");let r={},n=t==="pr"?"pullRequest":"issue";return{query:["query CoalescedSingleObjectReads {",...e.map((o,i)=>{if(!Number.isSafeInteger(o.number)||o.number<=0)throw new Error(`an aliased single-object read needs a positive number, got ${o.number}`);let a=o.selection.trim();if(a==="")throw new Error("an aliased single-object read needs a field selection");let c=I0(i);return r[c]=o,[` ${c}: repository(owner: ${JSON.stringify(o.owner)}, name: ${JSON.stringify(o.repo)}) {`,` object: ${n}(number: ${o.number}) { ${a} }`," }"].join(`
87
89
  `)})," rateLimit { cost }","}"].join(`
88
- `),aliases:r}}function Ky(e,t){let r=t!==null&&typeof t=="object"?t:{},n=r.data??r,s=n!==null&&typeof n=="object"?n:{};return Object.entries(e.aliases).map(([o,i])=>{let a=s[o];if(a===null||typeof a!="object")return{read:i,value:null};let c=a.object;return{read:i,value:c!==null&&typeof c=="object"&&!Array.isArray(c)?c:null}})}var zy=y(()=>{});function Yy(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function Qy(e){if(e?.outcome!=="asked")return Number.POSITIVE_INFINITY;let t=e.pools.rest,r=e.pools.graphql;return t===null||r===null||r.remaining<=0||r.fraction<=0?Number.POSITIVE_INFINITY:t.remaining<=0||t.fraction<=0?1:!Number.isFinite(t.fraction)||!Number.isFinite(r.fraction)?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(t.fraction/r.fraction))}function Yu(e){let t=e.etags??Yy(),r=new zO({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 l=>{let d=t.get(l.cacheKey),p={...l.parameters??{}},g=Qt(p.headers)?p.headers:{};p.headers={...g,...d?{"if-none-match":d.etag}:{}};try{let f=await r.request(l.route,p),R=f.headers,b=fi(R,"etag");return b!==void 0&&t.set(l.cacheKey,{etag:b,data:f.data,headers:R}),await e.attribution?.record({operation:l.operation,cost:1,actor:l.actor}),{data:f.data,headers:R,quotaFree:!1}}catch(f){if(bs(f)===304){if(d===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(l.cacheKey)} without a held answer to reuse`,{cause:f});let R=Xy(f),b={...d.headers,...R},h=fi(b,"etag")??d.etag;return t.set(l.cacheKey,{etag:h,data:d.data,headers:b}),await e.attribution?.record({operation:l.operation,cost:0,actor:l.actor}),{data:d.data,headers:b,quotaFree:!0}}throw bs(f)===401?new gn({cause:f}):f}},s=new Map,o=!1,i=async l=>{let d=l.input,p=d.kind==="pr";try{let g=await n({cacheKey:d.cacheKey,route:p?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:d.owner,repo:d.repo,...p?{pull_number:d.number}:{issue_number:d.number}},operation:d.operation,actor:d.actor});l.resolve({data:d.project?d.project(g.data,"rest"):g.data,surface:"rest",quotaFree:g.quotaFree})}catch(g){l.reject(g)}},a=async l=>{try{let d=Vy(l.map(({input:b})=>b)),p=await r.graphql(d.query),g=Ky(d,p),f=QO(p),R=l[0].input;await e.attribution?.record({operation:{key:R.operation.key,budget:"graphql"},cost:f,actor:XO(l.map(({input:b})=>b.actor))}),g.forEach((b,h)=>{let E=l[h];b.value===null?E.reject(new Error(`GitHub returned no ${b.read.kind} #${b.read.number} from the coalesced query`)):E.resolve({data:E.input.project?E.input.project(b.value,"graphql"):b.value,surface:"graphql",quotaFree:!1})})}catch(d){let p=bs(d)===401?new gn({cause:d}):d;l.forEach(g=>g.reject(p))}},c=async()=>{let l=null;try{l=await e.balance?.()??null}catch{}let d=Qy(l);o=!1;let p=[...s.values()];s.clear(),await Promise.all(p.map(async g=>{g.length>d?await a(g):await Promise.all(g.map(i))}))};return{conditionalRest:n,singleObject:l=>t.get(l.cacheKey)!==void 0?new Promise((d,p)=>{i({input:l,resolve:d,reject:p})}):new Promise((d,p)=>{let g=s.get(l.kind)??[];g.push({input:l,resolve:d,reject:p}),s.set(l.kind,g),o||(o=!0,setTimeout(()=>void c(),0))}),async conditionalPaginate(l){let d=[],p={},g=0,f=!0,R=1;for(;;){let b=await n({...l,cacheKey:`${l.cacheKey}:page:${R}`,parameters:{...l.parameters??{},per_page:100,page:R}});if(g+=1,f=f&&b.quotaFree,!Array.isArray(b.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(l.cacheKey)} page ${R}`);if(d.push(...b.data),p=b.headers,!YO(b.headers))break;R+=1}return{data:d,headers:p,requestCount:g,quotaFree:f}},async graphql(l,d={},p){try{let g=await r.graphql(l,d);return p&&await e.attribution?.record({operation:p.operation,cost:1,actor:p.actor}),g}catch(g){throw bs(g)===401?new gn({cause:g}):g}}}}function YO(e){let t=fi(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Qu(e){let t=bs(e),r=Xy(e);return t===429||t===403&&fi(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function bs(e){if(Qt(e))return typeof e.status=="number"?e.status:void 0}function Xy(e){return!Qt(e)||!Qt(e.response)||!Qt(e.response.headers)?{}:e.response.headers}function fi(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function Qt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function QO(e){let t=Qt(e)?e:{},r=Qt(t.data)?t.data:t,s=(Qt(r.rateLimit)?r.rateLimit:{}).cost;if(!Number.isSafeInteger(s)||s<0)throw new Error("GitHub aliased query did not return a non-negative integer rateLimit.cost");return s}function XO(e){let t=[...new Set(e.filter(r=>r!==void 0))].sort();if(t.length!==0)return t.length===1?t[0]:`coalesced:${t.join("+")}`}var zO,gn,Zy=y(()=>{Gh();Nh();Jy();zy();zO=Wy.plugin(Cu,ci);gn=class extends Error{status=401;constructor(t){super("GitHub rejected the host credential; refresh the stored login with `gh auth login` or provide a current host token",t),this.name="GithubCredentialError"}}});function sb(e,t){return{version:1,origin:"asked",outcome:"unanswered",source:"GET /rate_limit",asked_at:e,request_count:0,pools:{rest:null,graphql:null,search:null},unreported_pools:[...hn],detail:t??"no balance has been asked for yet, so none is known"}}function ob(e,t){let r=tb(e),n=tb(r.resources),s={rest:null,graphql:null,search:null},o=[];for(let a of hn){let c=nb[a],u=n[c],l=ZO(a,c,u);s[a]=l,l==null&&o.push(a)}let i=hn.length-o.length;return{version:1,origin:"asked",outcome:i>0?"asked":"unanswered",source:"GET /rate_limit",asked_at:t.askedAt,request_count:1,pools:s,unreported_pools:o,detail:i>0?`the token's own answer for ${i} of ${hn.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function el(e){try{let t=await e.transport();return ob(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...sb(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function ib(e){let t=null;for(let r of hn){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function tl(e,t){let r=ib(e);if(r==null)return eb(Zu).every_ms;let n=eb(r.fraction);if(r.remaining>0)return n.every_ms;let s=e0(t.now,r.reset_at);return s==null?n.every_ms:Math.max(Xu,Math.min(n.every_ms,s))}function eb(e){for(let t of hi)if(e<=t.at_or_below_fraction)return t;return hi[hi.length-1]}function ZO(e,t,r){if(!ab(r))return null;let n=gi(r.limit),s=gi(r.remaining),o=gi(r.used),i=gi(r.reset);return n==null||n<=0||s==null?null:{pool:e,resource:t,limit:n,remaining:s,used:o??0,reset_at:i==null?"":new Date(i*1e3).toISOString(),fraction:s/n}}function rl(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${rb}`,{method:"GET",headers:{authorization:`bearer ${e.token}`,accept:"application/vnd.github+json"}});if(!n.ok)throw new Error(`the balance ask was refused with HTTP ${n.status}`);return await n.json()}}function e0(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function gi(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function tb(e){return ab(e)?e:{}}function ab(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var rb,nb,hn,Xu,Zu,hi,tq,cb=y(()=>{rb="rate_limit",nb={rest:"core",graphql:"graphql",search:"search"},hn=["rest","graphql","search"];Xu=15e3,Zu=.15,hi=[{at_or_below_fraction:0,every_ms:Xu,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:Zu,every_ms:3e4,why:"inside the reserved band: the posture can change between two calls"},{at_or_below_fraction:.5,every_ms:12e4,why:"below half: tightening, because the band is now reachable inside one window"},{at_or_below_fraction:1,every_ms:6e5,why:"above half: rare, because nothing this balance decides is anywhere close"}],tq=60*6e4});var ub=y(()=>{});var lb=y(()=>{});var yi=y(()=>{Oh();Ah();Zy();cb();ub();lb()});import{execFile as o0}from"node:child_process";import{promisify as i0}from"node:util";var Dq,db=y(()=>{"use strict";yi();wu();Dq=i0(o0)});var pb=y(()=>{"use strict";Hg();zg();Yg();ri();Xg();Zg();eh();th();ti();rh();nh();sh();oh();du();ih();ah();uh();lh();dh();si();ph();mh();lu();hu();yu();gh();hh();yh();bh();ni();gu();fu();_h();wu();Eh();Rh();kh();db()});import{EventEmitter as a0}from"node:events";import{spawn as c0}from"node:child_process";function wi(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 _i(e,t){return e.workflow_run!=null&&String(e.workflow_run.id)===t}var ws,nl,u0,l0,d0,p0,bi,sl=y(()=>{ws="github-webhook",nl="github.webhook.delivery";u0="pull_request,pull_request_review,check_run,check_suite,workflow_run",l0=3,d0=1e3,p0=/no extension matched|unknown command|command not found/i,bi=class extends a0{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,d0).then(()=>{}),await this.stopping)}makeWakeSignalFor(r,n){return()=>{if(this._mode!=="webhook"||this._dead)return;let s=new AbortController,o=c=>{(r==="pr"?wi(c,n):_i(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=c0(r,["webhook","forward",`--events=${u0}`],{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(`
89
- `))>=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");p0.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>=l0)return;let r=Math.min(500*Math.pow(2,this.restarts),5e3);this.restarts++,setTimeout(()=>this.spawnChild(),r).unref()}}});var Ei,mb=y(()=>{"use strict";sl();sl();Dt();Ei=class extends bi{constructor(t){super(t,rn)}}});import{EventEmitter as m0}from"node:events";import{join as f0}from"node:path";function il(e){let t=Fo(e.cwd),r=fh(f0(t,".red"));return new ol({...e,leases:e.leases??wh(r),lane:e.lane??mu(r),makeForwarder:e.makeForwarder??((n,s)=>new Ei({cwd:n,cancelSignal:s})),isLeaseHolderLive:e.isLeaseHolderLive??(n=>nn(n.pid,n.start_time))})}var ol,fb=y(()=>{"use strict";pb();mb();Dt();zc();ol=class extends m0{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(ws).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"?wi(a,n):_i(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===ws&&o.kind===nl&&o.payload&&this.emit("delivery",o.payload);let s=await this.options.leases.read(ws);(!s||!await this.options.isLeaseHolderLive(s))&&this.degradeToFallback()}finally{this.syncing=!1}}}}});var al={};K(al,{listWaits:()=>jo,renderWaitHelp:()=>fs,runWait:()=>y0});import{randomUUID as gb}from"node:crypto";import{mkdir as g0,rm as h0}from"node:fs/promises";async function y0(e,t=process.cwd()){let r;try{r=await Kf(e)}catch(n){return await R0(e,n)}if(r.kind==="help"||e.includes("--help")||e.includes("-h"))return process.stdout.write(fs()),0;if(r.kind==="ls"){let n={schema:jf,version:1,waits:await jo(t)};return process.stdout.write(un(n,r.options.format)),0}return Vc(r.kind)?await b0({...r,kind:r.kind},t):(process.stdout.write(fs()),2)}async function b0(e,t){let r=e.kind,n=Zc({id:gb(),kind:r,target:E0(e),reason:e.options.reason,pid:process.pid,pid_start_time:await os(process.pid),started_at:new Date().toISOString(),deadline_at:new Date(Date.now()+e.options.timeoutMs).toISOString(),timeout_ms:e.options.timeoutMs,poll_tier:Wc[r],status:"running",attempts:0}),s=tg(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 g0(sn(t),{recursive:!0}),await on(s,n);let l=await w0(e,t,s,n,o.signal);i&&(l={...l,verdict:ge(`wait interrupted by ${i}`,l.verdict.details)});let d=await og({kind:r,entry:n,verdict:l.verdict,options:e.options,cwd:t,cleanupProven:l.cleanupProven,survivors:l.survivors});return process.stdout.write(un(d.result,e.options.format)),d.exitCode}catch(l){let d=ge(l instanceof Error?l.message:String(l)),p=ds(r,n,d,{status:"success"},new Date().toISOString());return await ps(e.options.resultFile,p,e.options.format).catch(()=>{}),process.stdout.write(un(p,e.options.format)),2}finally{process.removeListener("SIGINT",c),process.removeListener("SIGTERM",u),await h0(s,{force:!0}).catch(()=>{})}}async function w0(e,t,r,n,s){let o={cwd:t,signal:s,timeoutMs:e.options.probeTimeoutMs};switch(e.kind){case"cmd":return await Ig({commandLine:e.commandLine??"",options:e.options,cwd:t,spoolDir:Xf(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=il({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await Zo({probe:Fg(i,o,{emptyChecksGraceMs:as("RSP_WAIT_PR_EMPTY_CHECKS_GRACE_MS",3e4)}),timeoutMs:e.options.timeoutMs,baseSleepMs:as("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 _0(e,o,r,n);if(!i.ok)return{verdict:ge(i.reason)};n.webhook_mode="polling";let a=il({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await Zo({probe:()=>Mg(i.value,o),timeoutMs:e.options.timeoutMs,baseSleepMs:as("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:()=>Bg(e.tagGlob,new Date(n.started_at),o),timeoutMs:e.options.timeoutMs,baseSleepMs:as("RSP_WAIT_RELEASE_POLL_MS",6e4),registryPath:r,entry:n,signal:s})}}async function _0(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 jg(e.branch,t);return s?(e.target=s,n.target=`run:${s}`,await on(r,n),{ok:!0,value:s}):{ok:!1,reason:`no run found for branch ${e.branch}`}}function E0(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 R0(e,t){let r=e.includes("--json")?"json":"toon",n=e.indexOf("--result-file"),s=n>=0?e[n+1]:void 0,o=Vc(e[1])?e[1]:"cmd",i=new Date().toISOString(),a=Zc({id:gb(),kind:o,target:`${o}:`,reason:"",pid:process.pid,started_at:i,deadline_at:i,timeout_ms:0,poll_tier:Wc[o],status:"indeterminate",attempts:0}),c=ds(o,a,ge(t instanceof Error?t.message:String(t)),{status:"success"},i);return await ps(s,c,r).catch(()=>{}),process.stdout.write(un(c,r)),2}var cl=y(()=>{"use strict";zf();ag();Lg();Rr();Yc();Ug();Dt();ls();uu();fb();ls();uu()});var ul,ll,dl,Oe,Ae,Ue,mt,_s,Ri=y(()=>{"use strict";ul="rsp-telemetry.spool.toonl",ll="rsp-telemetry.spool.jsonl",dl="rsp-telemetry.spool.corrections.toonl",Oe="rsp_accounting_events_v1",Ae="rsp_decisions_v1",Ue="rsp_telemetry_invocations_v1",mt="rsp_telemetry_degradations_v1",_s="rsp_telemetry_index_v1"});function yn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function He(e){return Xt(e)??0}function Xt(e){return typeof e=="number"&&Number.isFinite(e)?e:null}var pl=y(()=>{"use strict"});import{randomUUID as fl,createHash as x0}from"node:crypto";import{appendFileSync as Rb,existsSync as C0,mkdirSync as kb}from"node:fs";import{mkdir as Sb,readdir as O0,readFile as Tb,rename as A0,rm as vb,writeFile as gl}from"node:fs/promises";import{basename as ml,dirname as Es,join as bn,resolve as bb}from"node:path";function Si(e){if(!e)return null;let t=bb(e);for(;;){if(C0(bn(t,".red")))return t;let r=bb(bn(t,".."));if(r===t)break;t=r}return null}function Ft(e){return bn(X(e),ul)}function Ti(e){return bn(X(e),ll)}function yl(e){return bn(X(e),dl)}async function vr(e,t){Zt(e,t)}function Zt(e,t){try{let r=Si(e);if(!r)return;let n=Ft(r);kb(Es(n),{recursive:!0}),Rb(n,$0({spool_id:fl(),event:I0(t)}),{encoding:"utf8",mode:384})}catch{}}function I0(e){return wb(wb(e,"raw_text","raw_bytes"),"emitted_text","emitted_bytes")}function wb(e,t,r){let n=e[t];if(typeof n!="string")return e;let s=Buffer.byteLength(n,"utf8");if(s<=P0)return e;let o={...e};return delete o[t],He(o[r])===0&&(o[r]=s),o.estimated=!0,o}async function G0(e){let t=Si(e);if(!t)return[];let r=Ft(t);await Sb(Es(r),{recursive:!0}).catch(()=>{});let n=await Ob(t),s=[...await Ab(t),...await F0(n)];return await Promise.all(n.map(o=>vb(o,{force:!0}))),s.map(o=>JSON.stringify(o.event))}async function bl(e,t){let r=Si(e);if(!r)return;let n=Ft(r);await Sb(Es(n),{recursive:!0}).catch(()=>{}),await N0(r);for(let s of await L0(r))await _b(r,s,t);for(let s of await Ab(r))await xb(r,s,t,!0);for(let s of await Ob(r))await _b(r,s,t)}async function L0(e){let t=[Ft(e),Ti(e)],r=Es(t[0]);return(await O0(r).catch(()=>[])).filter(s=>t.some(o=>s.startsWith(`${ml(o)}.`)&&s.endsWith(".drain"))).filter(s=>{let o=t.find(c=>s.startsWith(`${ml(c)}.`));if(!o)return!1;let i=`${ml(o)}.`,a=Number(s.slice(i.length).split(".")[0]);return!(Number.isInteger(a)&&a!==process.pid&&D0(a))}).sort().map(s=>bn(r,s))}function D0(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function _b(e,t,r){try{let n=await Cb(t);for(let s of Pb(n))await xb(e,s,r,!1)}finally{await vb(t,{force:!0})}}async function xb(e,t,r,n){let s=t.event?JSON.stringify(t.event):t.raw_line??"";try{if(await r(s)){n&&Eb(e,{correction_id:fl(),target_spool_id:t.spool_id,action:"resolved",created_at:new Date().toISOString()});return}}catch{}Eb(e,{correction_id:fl(),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 Cb(e){let t="";for(let r=0;r<5;r++){let n=await Tb(e,"utf8").catch(()=>"");if(n===t)return n;t=n,await new Promise(s=>setTimeout(s,2))}return t}function wn(e){try{let t=JSON.parse(e);return!yn(t)||t.collection!==Oe&&t.collection!==Ae&&t.collection!==Ue&&t.collection!==mt?null:t}catch{return null}}function $0(e){return vt().push(B0(e))}function Eb(e,t){try{let r=Si(e);if(!r)return;let n=yl(r);kb(Es(n),{recursive:!0});let s=vt();Rb(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 Ob(e){let t=[Ft(e),Ti(e)],r=[];for(let n of t){let s=`${n}.${process.pid}.${Date.now()}.drain`;try{await A0(n,s),await gl(n,"",{flag:"wx"}).catch(()=>{}),r.push(s)}catch(o){if(o.code!=="ENOENT")continue}}return r}async function N0(e){await Promise.all([gl(Ft(e),"",{flag:"a"}),gl(Ti(e),"",{flag:"a"})]).catch(()=>{})}async function F0(e){let t=[];for(let r of e)t.push(...Pb(await Cb(r)));return t}async function Ab(e){let t=await Tb(yl(e),"utf8").catch(()=>""),r=new Map;for(let n of M0(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:wn(n.event_json)??void 0})).filter(n=>n.event!==void 0)}function Pb(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(yn(o)){let i=wn(JSON.stringify(o));t.push(i?{spool_id:ki(JSON.stringify(o)),event:i}:{spool_id:ki(s),raw_line:s})}continue}catch{}if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r){t.push({spool_id:ki(s),raw_line:s});continue}try{for(let o of Tt(`${r}
90
+ `),aliases:r}}function ub(e,t){let r=t!==null&&typeof t=="object"?t:{},n=r.data??r,s=n!==null&&typeof n=="object"?n:{};return Object.entries(e.aliases).map(([o,i])=>{let a=s[o];if(a===null||typeof a!="object")return{read:i,value:null};let c=a.object;return{read:i,value:c!==null&&typeof c=="object"&&!Array.isArray(c)?c:null}})}var lb=y(()=>{});function db(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function pb(e){if(e?.outcome!=="asked")return Number.POSITIVE_INFINITY;let t=e.pools.rest,r=e.pools.graphql;return t===null||r===null||r.remaining<=0||r.fraction<=0?Number.POSITIVE_INFINITY:t.remaining<=0||t.fraction<=0?1:!Number.isFinite(t.fraction)||!Number.isFinite(r.fraction)?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(t.fraction/r.fraction))}function nl(e){let t=e.etags??db(),r=new L0({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 l=>{let d=t.get(l.cacheKey),p={...l.parameters??{}},m=Zt(p.headers)?p.headers:{};p.headers={...m,...d?{"if-none-match":d.etag}:{}};try{let g=await r.request(l.route,p),R=g.headers,b=Ei(R,"etag");return b!==void 0&&t.set(l.cacheKey,{etag:b,data:g.data,headers:R}),await e.attribution?.record({operation:l.operation,cost:1,actor:l.actor}),{data:g.data,headers:R,quotaFree:!1}}catch(g){if(Ss(g)===304){if(d===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(l.cacheKey)} without a held answer to reuse`,{cause:g});let R=mb(g),b={...d.headers,...R},h=Ei(b,"etag")??d.etag;return t.set(l.cacheKey,{etag:h,data:d.data,headers:b}),await e.attribution?.record({operation:l.operation,cost:0,actor:l.actor}),{data:d.data,headers:b,quotaFree:!0}}throw Ss(g)===401?new bn({cause:g}):g}},s=new Map,o=!1,i=async l=>{let d=l.input,p=d.kind==="pr";try{let m=await n({cacheKey:d.cacheKey,route:p?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:d.owner,repo:d.repo,...p?{pull_number:d.number}:{issue_number:d.number}},operation:d.operation,actor:d.actor});l.resolve({data:d.project?d.project(m.data,"rest"):m.data,surface:"rest",quotaFree:m.quotaFree})}catch(m){l.reject(m)}},a=async l=>{try{let d=cb(l.map(({input:b})=>b)),p=await r.graphql(d.query),m=ub(d,p),g=D0(p),R=l[0].input;await e.attribution?.record({operation:{key:R.operation.key,budget:"graphql"},cost:g,actor:$0(l.map(({input:b})=>b.actor))}),m.forEach((b,h)=>{let E=l[h];b.value===null?E.reject(new Error(`GitHub returned no ${b.read.kind} #${b.read.number} from the coalesced query`)):E.resolve({data:E.input.project?E.input.project(b.value,"graphql"):b.value,surface:"graphql",quotaFree:!1})})}catch(d){let p=Ss(d)===401?new bn({cause:d}):d;l.forEach(m=>m.reject(p))}},c=async()=>{let l=null;try{l=await e.balance?.()??null}catch{}let d=pb(l);o=!1;let p=[...s.values()];s.clear(),await Promise.all(p.map(async m=>{m.length>d?await a(m):await Promise.all(m.map(i))}))};return{conditionalRest:n,singleObject:l=>t.get(l.cacheKey)!==void 0?new Promise((d,p)=>{i({input:l,resolve:d,reject:p})}):new Promise((d,p)=>{let m=s.get(l.kind)??[];m.push({input:l,resolve:d,reject:p}),s.set(l.kind,m),o||(o=!0,setTimeout(()=>void c(),0))}),async conditionalPaginate(l){let d=[],p={},m=0,g=!0,R=1;for(;;){let b=await n({...l,cacheKey:`${l.cacheKey}:page:${R}`,parameters:{...l.parameters??{},per_page:100,page:R}});if(m+=1,g=g&&b.quotaFree,!Array.isArray(b.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(l.cacheKey)} page ${R}`);if(d.push(...b.data),p=b.headers,!G0(b.headers))break;R+=1}return{data:d,headers:p,requestCount:m,quotaFree:g}},async graphql(l,d={},p){try{let m=await r.graphql(l,d);return p&&await e.attribution?.record({operation:p.operation,cost:1,actor:p.actor}),m}catch(m){throw Ss(m)===401?new bn({cause:m}):m}}}}function G0(e){let t=Ei(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function sl(e){let t=Ss(e),r=mb(e);return t===429||t===403&&Ei(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function Ss(e){if(Zt(e))return typeof e.status=="number"?e.status:void 0}function mb(e){return!Zt(e)||!Zt(e.response)||!Zt(e.response.headers)?{}:e.response.headers}function Ei(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function Zt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function D0(e){let t=Zt(e)?e:{},r=Zt(t.data)?t.data:t,s=(Zt(r.rateLimit)?r.rateLimit:{}).cost;if(!Number.isSafeInteger(s)||s<0)throw new Error("GitHub aliased query did not return a non-negative integer rateLimit.cost");return s}function $0(e){let t=[...new Set(e.filter(r=>r!==void 0))].sort();if(t.length!==0)return t.length===1?t[0]:`coalesced:${t.join("+")}`}var L0,bn,fb=y(()=>{Kh();Xh();ab();lb();L0=ib.plugin(Du,gi);bn=class extends Error{status=401;constructor(t){super("GitHub rejected the host credential; refresh the stored login with `gh auth login` or provide a current host token",t),this.name="GithubCredentialError"}}});function wb(e,t){return{version:1,origin:"asked",outcome:"unanswered",source:"GET /rate_limit",asked_at:e,request_count:0,pools:{rest:null,graphql:null,search:null},unreported_pools:[...wn],detail:t??"no balance has been asked for yet, so none is known"}}function _b(e,t){let r=hb(e),n=hb(r.resources),s={rest:null,graphql:null,search:null},o=[];for(let a of wn){let c=bb[a],u=n[c],l=N0(a,c,u);s[a]=l,l==null&&o.push(a)}let i=wn.length-o.length;return{version:1,origin:"asked",outcome:i>0?"asked":"unanswered",source:"GET /rate_limit",asked_at:t.askedAt,request_count:1,pools:s,unreported_pools:o,detail:i>0?`the token's own answer for ${i} of ${wn.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function al(e){try{let t=await e.transport();return _b(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...wb(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function Eb(e){let t=null;for(let r of wn){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function cl(e,t){let r=Eb(e);if(r==null)return gb(il).every_ms;let n=gb(r.fraction);if(r.remaining>0)return n.every_ms;let s=F0(t.now,r.reset_at);return s==null?n.every_ms:Math.max(ol,Math.min(n.every_ms,s))}function gb(e){for(let t of ki)if(e<=t.at_or_below_fraction)return t;return ki[ki.length-1]}function N0(e,t,r){if(!Rb(r))return null;let n=Ri(r.limit),s=Ri(r.remaining),o=Ri(r.used),i=Ri(r.reset);return n==null||n<=0||s==null?null:{pool:e,resource:t,limit:n,remaining:s,used:o??0,reset_at:i==null?"":new Date(i*1e3).toISOString(),fraction:s/n}}function ul(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${yb}`,{method:"GET",headers:{authorization:`bearer ${e.token}`,accept:"application/vnd.github+json"}});if(!n.ok)throw new Error(`the balance ask was refused with HTTP ${n.status}`);return await n.json()}}function F0(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function Ri(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function hb(e){return Rb(e)?e:{}}function Rb(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var yb,bb,wn,ol,il,ki,Kq,kb=y(()=>{yb="rate_limit",bb={rest:"core",graphql:"graphql",search:"search"},wn=["rest","graphql","search"];ol=15e3,il=.15,ki=[{at_or_below_fraction:0,every_ms:ol,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:il,every_ms:3e4,why:"inside the reserved band: the posture can change between two calls"},{at_or_below_fraction:.5,every_ms:12e4,why:"below half: tightening, because the band is now reachable inside one window"},{at_or_below_fraction:1,every_ms:6e5,why:"above half: rare, because nothing this balance decides is anywhere close"}],Kq=60*6e4});var Sb=y(()=>{});var Tb=y(()=>{});var Si=y(()=>{Uh();Wh();fb();kb();Sb();Tb()});import{execFile as H0}from"node:child_process";import{promisify as q0}from"node:util";var OW,vb=y(()=>{"use strict";Si();vu();OW=q0(H0)});var xb=y(()=>{"use strict";Qg();ch();uh();ui();dh();ph();mh();fh();ci();gh();hh();yh();bh();bu();wh();_h();Rh();kh();Sh();di();Th();vh();yu();ku();Su();Oh();Ch();Ah();Ph();li();Ru();Eu();Lh();vu();Gh();Dh();$h();vb()});import{EventEmitter as W0}from"node:events";import{spawn as J0}from"node:child_process";function vi(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 xi(e,t){return e.workflow_run!=null&&String(e.workflow_run.id)===t}var Ts,ll,V0,K0,z0,Y0,Ti,dl=y(()=>{Ts="github-webhook",ll="github.webhook.delivery";V0="pull_request,pull_request_review,check_run,check_suite,workflow_run",K0=3,z0=1e3,Y0=/no extension matched|unknown command|command not found/i,Ti=class extends W0{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,z0).then(()=>{}),await this.stopping)}makeWakeSignalFor(r,n){return()=>{if(this._mode!=="webhook"||this._dead)return;let s=new AbortController,o=c=>{(r==="pr"?vi(c,n):xi(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=J0(r,["webhook","forward",`--events=${V0}`],{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(`
91
+ `))>=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");Y0.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>=K0)return;let r=Math.min(500*Math.pow(2,this.restarts),5e3);this.restarts++,setTimeout(()=>this.spawnChild(),r).unref()}}});var Oi,Ob=y(()=>{"use strict";dl();dl();$t();Oi=class extends Ti{constructor(t){super(t,on)}}});import{EventEmitter as Q0}from"node:events";import{join as X0}from"node:path";function ml(e){let t=Wo(e.cwd),r=xh(X0(t,".red"));return new pl({...e,leases:e.leases??Ih(r),lane:e.lane??_u(r),makeForwarder:e.makeForwarder??((n,s)=>new Oi({cwd:n,cancelSignal:s})),isLeaseHolderLive:e.isLeaseHolderLive??(n=>an(n.pid,n.start_time))})}var pl,Cb=y(()=>{"use strict";xb();Ob();$t();ru();pl=class extends Q0{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(Ts).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"?vi(a,n):xi(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===Ts&&o.kind===ll&&o.payload&&this.emit("delivery",o.payload);let s=await this.options.leases.read(Ts);(!s||!await this.options.isLeaseHolderLive(s))&&this.degradeToFallback()}finally{this.syncing=!1}}}}});var fl={};K(fl,{listWaits:()=>Vo,renderWaitHelp:()=>ys,runWait:()=>tA});import{randomUUID as Ab}from"node:crypto";import{mkdir as Z0,rm as eA}from"node:fs/promises";async function tA(e,t=process.cwd()){let r;try{r=await rg(e)}catch(n){return await iA(e,n)}if(r.kind==="help"||e.includes("--help")||e.includes("-h"))return process.stdout.write(ys()),0;if(r.kind==="ls"){let n={schema:Kf,version:1,waits:await Vo(t)};return process.stdout.write(pn(n,r.options.format)),0}return eu(r.kind)?await rA({...r,kind:r.kind},t):(process.stdout.write(ys()),2)}async function rA(e,t){let r=e.kind,n=iu({id:Ab(),kind:r,target:oA(e),reason:e.options.reason,pid:process.pid,pid_start_time:await cs(process.pid),started_at:new Date().toISOString(),deadline_at:new Date(Date.now()+e.options.timeoutMs).toISOString(),timeout_ms:e.options.timeoutMs,poll_tier:Xc[r],status:"running",attempts:0}),s=ug(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 Z0(cn(t),{recursive:!0}),await un(s,n);let l=await nA(e,t,s,n,o.signal);i&&(l={...l,verdict:ge(`wait interrupted by ${i}`,l.verdict.details)});let d=await mg({kind:r,entry:n,verdict:l.verdict,options:e.options,cwd:t,cleanupProven:l.cleanupProven,survivors:l.survivors});return process.stdout.write(pn(d.result,e.options.format)),d.exitCode}catch(l){let d=ge(l instanceof Error?l.message:String(l)),p=fs(r,n,d,{status:"success"},new Date().toISOString());return await gs(e.options.resultFile,p,e.options.format).catch(()=>{}),process.stdout.write(pn(p,e.options.format)),2}finally{process.removeListener("SIGINT",c),process.removeListener("SIGTERM",u),await eA(s,{force:!0}).catch(()=>{})}}async function nA(e,t,r,n,s){let o={cwd:t,signal:s,timeoutMs:e.options.probeTimeoutMs};switch(e.kind){case"cmd":return await jg({commandLine:e.commandLine??"",options:e.options,cwd:t,spoolDir:ig(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=ml({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await ii({probe:Jg(i,o,{emptyChecksGraceMs:ls("RSP_WAIT_PR_EMPTY_CHECKS_GRACE_MS",3e4)}),timeoutMs:e.options.timeoutMs,baseSleepMs:ls("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 sA(e,o,r,n);if(!i.ok)return{verdict:ge(i.reason)};n.webhook_mode="polling";let a=ml({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await ii({probe:()=>Vg(i.value,o),timeoutMs:e.options.timeoutMs,baseSleepMs:ls("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 ii({probe:()=>zg(e.tagGlob,new Date(n.started_at),o),timeoutMs:e.options.timeoutMs,baseSleepMs:ls("RSP_WAIT_RELEASE_POLL_MS",6e4),registryPath:r,entry:n,signal:s})}}async function sA(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 Kg(e.branch,t);return s?(e.target=s,n.target=`run:${s}`,await un(r,n),{ok:!0,value:s}):{ok:!1,reason:`no run found for branch ${e.branch}`}}function oA(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 iA(e,t){let r=e.includes("--json")?"json":"toon",n=e.indexOf("--result-file"),s=n>=0?e[n+1]:void 0,o=eu(e[1])?e[1]:"cmd",i=new Date().toISOString(),a=iu({id:Ab(),kind:o,target:`${o}:`,reason:"",pid:process.pid,started_at:i,deadline_at:i,timeout_ms:0,poll_tier:Xc[o],status:"indeterminate",attempts:0}),c=fs(o,a,ge(t instanceof Error?t.message:String(t)),{status:"success"},i);return await gs(s,c,r).catch(()=>{}),process.stdout.write(pn(c,r)),2}var gl=y(()=>{"use strict";ng();gg();Ug();Sr();nu();Yg();$t();ms();hu();Cb();ms();hu()});var hl,yl,bl,Ce,Ae,qe,st,vs,Ci=y(()=>{"use strict";hl="rsp-telemetry.spool.toonl",yl="rsp-telemetry.spool.jsonl",bl="rsp-telemetry.spool.corrections.toonl",Ce="rsp_accounting_events_v1",Ae="rsp_decisions_v1",qe="rsp_telemetry_invocations_v1",st="rsp_telemetry_degradations_v1",vs="rsp_telemetry_index_v1"});function _n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){return er(e)??0}function er(e){return typeof e=="number"&&Number.isFinite(e)?e:null}var wl=y(()=>{"use strict"});import{randomUUID as xs,createHash as dA}from"node:crypto";import{appendFileSync as Fb,existsSync as pA,mkdirSync as Mb,readFileSync as mA}from"node:fs";import{mkdir as jb,readdir as fA,readFile as Bb,rename as gA,rm as Ub,writeFile as El}from"node:fs/promises";import{basename as _l,dirname as Os,join as En,resolve as Lb}from"node:path";function Pi(e){if(!e)return null;let t=Lb(e);for(;;){if(pA(En(t,".red")))return t;let r=Lb(En(t,".."));if(r===t)break;t=r}return null}function jt(e){return En(X(e),hl)}function Ii(e){return En(X(e),yl)}function Sl(e){return En(X(e),bl)}async function Cr(e,t,r=Ft["rsp-telemetry-spool"]){tr(e,t,r)}function tr(e,t,r=Ft["rsp-telemetry-spool"]){try{let n=Pi(e);if(!n)return;let s=jt(n);Mb(Os(s),{recursive:!0});let o=$b({spool_id:xs(),event:yA(t)}),i=Jb(s,o,r,vl,$b);Fb(s,o,{encoding:"utf8",mode:384}),i>0&&Wb(n,"telemetry spool retention",i)}catch{}}function yA(e){return Gb(Gb(e,"raw_text","raw_bytes"),"emitted_text","emitted_bytes")}function Gb(e,t,r){let n=e[t];if(typeof n!="string")return e;let s=Buffer.byteLength(n,"utf8");if(s<=hA)return e;let o={...e};return delete o[t],We(o[r])===0&&(o[r]=s),o.estimated=!0,o}async function bA(e){let t=Pi(e);if(!t)return[];let r=jt(t);await jb(Os(r),{recursive:!0}).catch(()=>{});let n=await Vb(t),s=[...await Kb(t),...await RA(n)];return await Promise.all(n.map(o=>Ub(o,{force:!0}))),s.map(o=>JSON.stringify(o.event))}async function Tl(e,t){let r=Pi(e);if(!r)return;let n=jt(r);await jb(Os(n),{recursive:!0}).catch(()=>{}),await EA(r);for(let s of await wA(r))await Db(r,s,t);for(let s of await Kb(r))await Hb(r,s,t,!0);for(let s of await Vb(r))await Db(r,s,t)}async function wA(e){let t=[jt(e),Ii(e)],r=Os(t[0]);return(await fA(r).catch(()=>[])).filter(s=>t.some(o=>s.startsWith(`${_l(o)}.`)&&s.endsWith(".drain"))).filter(s=>{let o=t.find(c=>s.startsWith(`${_l(c)}.`));if(!o)return!1;let i=`${_l(o)}.`,a=Number(s.slice(i.length).split(".")[0]);return!(Number.isInteger(a)&&a!==process.pid&&_A(a))}).sort().map(s=>En(r,s))}function _A(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function Db(e,t,r){try{let n=await qb(t);for(let s of vl(n))await Hb(e,s,r,!1)}finally{await Ub(t,{force:!0})}}async function Hb(e,t,r,n){let s=t.event?JSON.stringify(t.event):t.raw_line??"";try{if(await r(s)){n&&Rl(e,{correction_id:xs(),target_spool_id:t.spool_id,action:"resolved",created_at:new Date().toISOString()});return}}catch{}Rl(e,{correction_id:xs(),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 qb(e){let t="";for(let r=0;r<5;r++){let n=await Bb(e,"utf8").catch(()=>"");if(n===t)return n;t=n,await new Promise(s=>setTimeout(s,2))}return t}function Rn(e){try{let t=JSON.parse(e);return!_n(t)||t.collection!==Ce&&t.collection!==Ae&&t.collection!==qe&&t.collection!==st?null:t}catch{return null}}function $b(e){return Ge().push(SA(e))}function Rl(e,t,r=!0){try{let n=Pi(e);if(!n)return;let s=Sl(n);Mb(Os(s),{recursive:!0});let o=Nb(t),i=Jb(s,o,Ft["rsp-telemetry-corrections"],zb,Nb);Fb(s,o,{encoding:"utf8",mode:384}),r&&i>0&&Wb(n,"telemetry corrections retention",i,!1)}catch{}}function Wb(e,t,r,n=!0){let s=xs();Rl(e,{correction_id:xs(),target_spool_id:s,action:"retry",created_at:new Date().toISOString(),event_json:JSON.stringify({collection:st,id:s,created_at:new Date().toISOString(),reason:t,bytes:r})},n)}function Nb(e){return Ge().push({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??null})}function Jb(e,t,r,n,s){let o=Buffer.byteLength(t);if(!rh(e,o,r))return 0;let i;try{i=mA(e,"utf8")}catch(m){if(m.code==="ENOENT")return 0;throw m}let a=r.maxBytes;if(a===void 0)return 0;let c=Math.max(0,Math.floor(a*(r.targetRatio??rt))-o),u=n(i),l=[],d=0;for(let m=u.length-1;m>=0;m-=1){let g=s(u[m]),R=Buffer.byteLength(g);if(d+R>c)break;l.unshift(g),d+=R}let p=l.join("");return nh(e,p),Math.max(0,Buffer.byteLength(i)-Buffer.byteLength(p))}async function Vb(e){let t=[jt(e),Ii(e)],r=[];for(let n of t){let s=`${n}.${process.pid}.${Date.now()}.drain`;try{await gA(n,s),await El(n,"",{flag:"wx"}).catch(()=>{}),r.push(s)}catch(o){if(o.code!=="ENOENT")continue}}return r}async function EA(e){await Promise.all([El(jt(e),"",{flag:"a"}),El(Ii(e),"",{flag:"a"})]).catch(()=>{})}async function RA(e){let t=[];for(let r of e)t.push(...vl(await qb(r)));return t}async function Kb(e){let t=await Bb(Sl(e),"utf8").catch(()=>""),r=new Map;for(let n of zb(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:Rn(n.event_json)??void 0})).filter(n=>n.event!==void 0)}function vl(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(_n(o)){let i=Rn(JSON.stringify(o));t.push(i?{spool_id:Ai(JSON.stringify(o)),event:i}:{spool_id:Ai(s),raw_line:s})}continue}catch{}if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r){t.push({spool_id:Ai(s),raw_line:s});continue}try{for(let o of Le(`${r}
90
92
  ${s}
91
- `))hl(o)&&U0(o)&&t.push({spool_id:o.spool_id,event:Ib(o)})}catch{s.startsWith("{")&&t.push({spool_id:ki(s),raw_line:s})}}}return t}function M0(e){return j0(e).map(H0).filter(t=>t!==null)}function j0(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s)try{let o=JSON.parse(s);hl(o)&&t.push(o)}catch{if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r)continue;try{for(let o of Tt(`${r}
93
+ `))kl(o)&&TA(o)&&t.push({spool_id:o.spool_id,event:Yb(o)})}catch{s.startsWith("{")&&t.push({spool_id:Ai(s),raw_line:s})}}}return t}function zb(e){return kA(e).map(vA).filter(t=>t!==null)}function kA(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s)try{let o=JSON.parse(s);kl(o)&&t.push(o)}catch{if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r)continue;try{for(let o of Le(`${r}
92
94
  ${s}
93
- `))hl(o)&&t.push(o)}catch{}}}return t}function ki(e){return`legacy:${x0("sha256").update(e).digest("hex").slice(0,24)}`}function B0(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 Ib(e){let{spool_id:t,...r}=e;return wn(JSON.stringify(r))}function U0(e){return typeof e.spool_id=="string"&&Ib(e)!==null}function H0(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 hl(e){return yn(e)?Object.values(e).every(t=>typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null):!1}var P0,Gb=y(()=>{"use strict";Ge();J();Ri();pl();P0=64*1024});function vi(e){return e.trim().split(/\s+/).filter(Boolean)}function Rs(e){return e.split(/&&|[;|]/).map(t=>t.trim()).filter(Boolean)}function ks(e){return e.split(/[ \t]+/).filter(Boolean).map(t=>t.replace(/^env$/,""))}function qe(e){let t=vi(e);return t.length===0?"unknown":t[0]==="git"&&t[1]?`git ${t[1]}`:xr(t)&&t[1]&&t[2]?`gh ${t[1]} ${t[2]} json-jq`:xr(t)&&t[1]?`gh ${t[1]} json-jq`:xr(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 xr(e){return e[0]==="gh"&&e.some(q0)}function q0(e){return e==="--json"||e==="--jq"||e.startsWith("--json=")||e.startsWith("--jq=")}function _n(e){return/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(e)}var Ss=y(()=>{"use strict"});var ue,xi=y(()=>{"use strict";je();ue="rsp_elisions_v1"});import{spawnSync as xs}from"node:child_process";import{createHash as El}from"node:crypto";import{existsSync as W0}from"node:fs";import{mkdir as J0,readFile as V0,readdir as Lb,rename as K0,writeFile as z0}from"node:fs/promises";import{homedir as Y0}from"node:os";import{basename as Q0,dirname as X0,join as Ts}from"node:path";import{fileURLToPath as Z0}from"node:url";import{gunzipSync as eA,gzipSync as tA}from"node:zlib";function Cs(e,t){return`el:${El("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 er(e){return`record:${e.slice(3)}`}function Or(e){return`expired:${e.slice(3)}`}function Ai(){return"index:v1"}function rA(e){return`blob:${e}`}function Db(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid RedDB identifier: ${e}`);return e}function Mt(e){let t=vi(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":Pi(t)?"re-executable":"ephemeral"}return"ephemeral"}function Os(e){return Di(e.storage_class)?e.storage_class:Mt(e.command)}function $b(e){return Di(e.storage_class)?e.storage_class:Mt(e.command)}function Rl(e){let t=oA(),r={derivable:new Set,"re-executable":new Set,ephemeral:new Set};for(let n of e){let s=$b(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 kl(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:nA(o),storage_class:$b(s),recover:`rsp show ${s.handle}`}})}function nA(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 Sl(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 Ar(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 Tl(e,t){let r=process.cwd(),n=xs("git",["rev-parse","--is-inside-work-tree"],{cwd:r,encoding:"utf8"});if(n.status!==0||n.stdout.trim()!=="true")return null;let s=xs("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:sA(r),original_bytes:e.length}:null}function sA(e){let t=wl(e,["rev-parse","HEAD"])||"unborn",r=wl(e,["write-tree"])||"no-index",n=wl(e,["status","--porcelain=v1","-z"])||"";return El("sha256").update(t).update("\0").update(r).update("\0").update(n).digest("hex")}function wl(e,t){let r=xs("git",t,{cwd:e,encoding:"utf8"});return r.status===0?r.stdout.trim():null}function vl(e,t){let r=vi(t);if(!Pi(r))return null;let n=jb(process.cwd(),r,e.length);return!n||Cr(n)!==Cr(e)?null:{kind:"command",command:t,cwd:process.cwd(),argv:r,original_bytes:e.length,content_hash:Cr(e)}}function Pi(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 Cr(e){return El("sha256").update("rsp-reexecutable-content-v1\0").update(e).digest("hex")}function xl(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 Cl(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 Ol(e,t,r){let n=tA(e);return{key:rA(t),content_hash:t,encoding:"gzip+base64",bytes:n.toString("base64"),original_bytes:e.length,stored_bytes:n.length,created_at:r}}function Nb(e){try{let t=eA(Buffer.from(e.bytes,"base64"));return t.length===e.original_bytes?t:null}catch{return null}}function Fb(e){let t=e.object_ids[0];if(!t)return null;let r=xs("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 Mb(e){if(!Pi(e.argv))return null;let t=jb(e.cwd,e.argv,e.original_bytes);return t?Cr(t)===e.content_hash?t:Buffer.concat([Buffer.from(`reconstructed after state moved - current snapshot follows
94
- `,"utf8"),t]):null}function jb(e,t,r){let n=t[0];if(!n)return null;let s=xs(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 oA(){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 As(e){return/^el:[a-f0-9]{12}$/.test(e)}function Oi(e){return/^blob:[a-f0-9]{64}$/.test(e)}function Bb(e){if(!vs(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:vs(e.scope)?e.scope:void 0,ranking:vs(e.ranking)?e.ranking:void 0}}}function Ub(e){if(!vs(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 vs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Hb(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 Lb(i,{withFileTypes:!0}).catch(()=>[]);for(let c of a){if(n.length>=t)return;if(s.has(c.name))continue;let u=Ts(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 qb(e,t){let r=Number(e.red_entity_id??e.rid);if(!Number.isFinite(r))return null;let n=e.properties??e.PROPERTIES,s=vs(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 Ii(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function Ps(e){if(!We(e))return!1;let t=typeof e.original=="string"&&e.original_encoding==="base64",r=aA(e.derivation_recipe),n=cA(e.reexecution_recipe),s=e.blob_key,o=typeof s=="string"&&Oi(s);return e.collection===ue&&typeof e.handle=="string"&&As(e.handle)&&(t||r||n||o)&&typeof e.original_bytes=="number"&&(e.content_hash===void 0||Pl(e.content_hash))&&(e.stored_bytes===void 0||typeof e.stored_bytes=="number")&&(s===void 0||typeof s=="string"&&Oi(s))&&typeof e.command=="string"&&typeof e.created_at=="string"&&typeof e.expires_at=="string"&&iA(e.loss)&&(e.storage_class===void 0||Di(e.storage_class))}function Al(e){return!We(e)||e.version!==1||!Array.isArray(e.records)?!1:e.records.every(t=>{if(!We(t))return!1;let r=t.blob_key;return typeof t.handle=="string"&&As(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||Di(t.storage_class))&&(r===void 0||typeof r=="string"&&Oi(r))})}function Gi(e){return We(e)&&typeof e.key=="string"&&Oi(e.key)&&Pl(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 Li(e){return We(e)&&e.status==="expired"&&typeof e.expired_at=="string"&&typeof e.command=="string"}function iA(e){return We(e)&&typeof e.level=="string"&&typeof e.bytes_elided=="number"}function Di(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"}function aA(e){return We(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 cA(e){return We(e)&&e.kind==="command"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.argv)&&e.argv.every(t=>typeof t=="string")&&Pi(e.argv)&&typeof e.original_bytes=="number"&&Pl(e.content_hash)}function Pl(e){return typeof e=="string"&&/^[0-9a-f]{64}$/.test(e)}function We(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Wb(e){try{let n=(await V0(e,"utf8")).trim();if(n==="")return Ci();let s;try{s=JSON.parse(n)}catch{s=H(n)}if(uA(s))return{...s,blobs:s.blobs??{}}}catch(r){if(r.code==="ENOENT"){let s=Ci();return await En(e,s),s}let n=Ci();return await En(e,n),n}let t=Ci();return await En(e,t),t}async function Jb(e){try{return e}catch(t){if(t.code==="ENOENT")return e;throw t}}function Vb(e){return Q0(e)==="red-skills.rdb"}async function $i(){if(process.env.REDDB_BIN)return;let e=process.env.RED_SKILLS_CACHE_DIR??(process.env.XDG_CACHE_HOME?Ts(process.env.XDG_CACHE_HOME,"red-skills","bundles"):Ts(Y0(),".cache","red-skills","bundles")),t=Ts(e,"reddb"),r;try{r=await Lb(t)}catch{return}r.sort().reverse();for(let n of r){let s=Ts(t,n,process.platform==="win32"?"red.exe":"red");if(W0(s)){process.env.REDDB_BIN=s;return}}}async function En(e,t){await J0(X0(e),{recursive:!0});let r=`${e}.${process.pid}.tmp`;await z0(r,`${$(_l(t))}
95
- `,"utf8"),await K0(r,e)}function _l(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=>_l(t));if(typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))n!==void 0&&(t[r]=_l(n));return t}return String(e)}function Ci(){return{version:1,records:{},blobs:{},tombstones:{},index:{version:1,records:[]}}}function uA(e){return We(e)&&e.version===1&&We(e.records)&&Object.values(e.records).every(Ps)&&(e.blobs===void 0||We(e.blobs)&&Object.values(e.blobs).every(Gi))&&We(e.tombstones)&&Object.values(e.tombstones).every(Li)&&Al(e.index)}function Kb(e){if(!e.startsWith("file://"))throw new Error("rsp elision store requires a file:// URI");return Z0(e)}var Ni=y(()=>{"use strict";J();Ss();xi()});async function zb(e,t){return lA?mA(e,t):dA?gA(e,t):pA(e,t)}async function pA(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 mA(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:fA(r.stdout),kill(){r.kill()},wait(){return r.exited}}}async function*fA(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 gA(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:hA(n.stdout),kill(){try{n.kill("SIGTERM")}catch{}},async wait(){return(await n.status).code??0}}}async function*hA(e){let t=e.getReader();try{for(;;){let{value:r,done:n}=await t.read();if(n)return;yield r}}finally{t.releaseLock()}}var lA,dA,Yb=y(()=>{lA=typeof globalThis.Bun<"u"&&typeof globalThis.Bun.spawn=="function",dA=typeof globalThis.Deno<"u"&&typeof globalThis.Deno.Command=="function"});import{existsSync as yA}from"node:fs";import{join as bA}from"node:path";function Qb(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=bA(r,"bin",t);if(yA(o))return o;throw new Error(`reddb: binary "${t}" not found.
95
+ `))kl(o)&&t.push(o)}catch{}}}return t}function Ai(e){return`legacy:${dA("sha256").update(e).digest("hex").slice(0,24)}`}function SA(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 Yb(e){let{spool_id:t,...r}=e;return Rn(JSON.stringify(r))}function TA(e){return typeof e.spool_id=="string"&&Yb(e)!==null}function vA(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 kl(e){return _n(e)?Object.values(e).every(t=>typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null):!1}var hA,Qb=y(()=>{"use strict";De();_s();W();Ci();wl();hA=64*1024});function Li(e){return e.trim().split(/\s+/).filter(Boolean)}function Cs(e){return e.split(/&&|[;|]/).map(t=>t.trim()).filter(Boolean)}function As(e){return e.split(/[ \t]+/).filter(Boolean).map(t=>t.replace(/^env$/,""))}function Je(e){let t=Li(e);return t.length===0?"unknown":t[0]==="git"&&t[1]?`git ${t[1]}`:Ar(t)&&t[1]&&t[2]?`gh ${t[1]} ${t[2]} json-jq`:Ar(t)&&t[1]?`gh ${t[1]} json-jq`:Ar(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 Ar(e){return e[0]==="gh"&&e.some(xA)}function xA(e){return e==="--json"||e==="--jq"||e.startsWith("--json=")||e.startsWith("--jq=")}function kn(e){return/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(e)}var Ps=y(()=>{"use strict"});var ue,Gi=y(()=>{"use strict";Ue();ue="rsp_elisions_v1"});import{spawnSync as Gs}from"node:child_process";import{createHash as Cl}from"node:crypto";import{existsSync as OA}from"node:fs";import{mkdir as CA,readFile as AA,readdir as Xb,rename as PA,writeFile as IA}from"node:fs/promises";import{homedir as LA}from"node:os";import{basename as GA,dirname as DA,join as Is}from"node:path";import{fileURLToPath as $A}from"node:url";import{gunzipSync as NA,gzipSync as FA}from"node:zlib";function Ds(e,t){return`el:${Cl("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 rr(e){return`record:${e.slice(3)}`}function Ir(e){return`expired:${e.slice(3)}`}function Ni(){return"index:v1"}function MA(e){return`blob:${e}`}function Zb(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid RedDB identifier: ${e}`);return e}function Bt(e){let t=Li(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":Fi(t)?"re-executable":"ephemeral"}return"ephemeral"}function $s(e){return Ui(e.storage_class)?e.storage_class:Bt(e.command)}function ew(e){return Ui(e.storage_class)?e.storage_class:Bt(e.command)}function Al(e){let t=UA(),r={derivable:new Set,"re-executable":new Set,ephemeral:new Set};for(let n of e){let s=ew(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 Pl(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:jA(o),storage_class:ew(s),recover:`rsp show ${s.handle}`}})}function jA(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 Il(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 Lr(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 Ll(e,t){let r=process.cwd(),n=Gs("git",["rev-parse","--is-inside-work-tree"],{cwd:r,encoding:"utf8"});if(n.status!==0||n.stdout.trim()!=="true")return null;let s=Gs("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:BA(r),original_bytes:e.length}:null}function BA(e){let t=xl(e,["rev-parse","HEAD"])||"unborn",r=xl(e,["write-tree"])||"no-index",n=xl(e,["status","--porcelain=v1","-z"])||"";return Cl("sha256").update(t).update("\0").update(r).update("\0").update(n).digest("hex")}function xl(e,t){let r=Gs("git",t,{cwd:e,encoding:"utf8"});return r.status===0?r.stdout.trim():null}function Gl(e,t){let r=Li(t);if(!Fi(r))return null;let n=sw(process.cwd(),r,e.length);return!n||Pr(n)!==Pr(e)?null:{kind:"command",command:t,cwd:process.cwd(),argv:r,original_bytes:e.length,content_hash:Pr(e)}}function Fi(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 Pr(e){return Cl("sha256").update("rsp-reexecutable-content-v1\0").update(e).digest("hex")}function Dl(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 $l(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 Nl(e,t,r){let n=FA(e);return{key:MA(t),content_hash:t,encoding:"gzip+base64",bytes:n.toString("base64"),original_bytes:e.length,stored_bytes:n.length,created_at:r}}function tw(e){try{let t=NA(Buffer.from(e.bytes,"base64"));return t.length===e.original_bytes?t:null}catch{return null}}function rw(e){let t=e.object_ids[0];if(!t)return null;let r=Gs("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 nw(e){if(!Fi(e.argv))return null;let t=sw(e.cwd,e.argv,e.original_bytes);return t?Pr(t)===e.content_hash?t:Buffer.concat([Buffer.from(`reconstructed after state moved - current snapshot follows
96
+ `,"utf8"),t]):null}function sw(e,t,r){let n=t[0];if(!n)return null;let s=Gs(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 UA(){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 Ns(e){return/^el:[a-f0-9]{12}$/.test(e)}function $i(e){return/^blob:[a-f0-9]{64}$/.test(e)}function ow(e){if(!Ls(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:Ls(e.scope)?e.scope:void 0,ranking:Ls(e.ranking)?e.ranking:void 0}}}function iw(e){if(!Ls(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 Ls(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function aw(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 Xb(i,{withFileTypes:!0}).catch(()=>[]);for(let c of a){if(n.length>=t)return;if(s.has(c.name))continue;let u=Is(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 cw(e,t){let r=Number(e.red_entity_id??e.rid);if(!Number.isFinite(r))return null;let n=e.properties??e.PROPERTIES,s=Ls(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 Mi(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function Fs(e){if(!Ve(e))return!1;let t=typeof e.original=="string"&&e.original_encoding==="base64",r=qA(e.derivation_recipe),n=WA(e.reexecution_recipe),s=e.blob_key,o=typeof s=="string"&&$i(s);return e.collection===ue&&typeof e.handle=="string"&&Ns(e.handle)&&(t||r||n||o)&&typeof e.original_bytes=="number"&&(e.content_hash===void 0||Ml(e.content_hash))&&(e.stored_bytes===void 0||typeof e.stored_bytes=="number")&&(s===void 0||typeof s=="string"&&$i(s))&&typeof e.command=="string"&&typeof e.created_at=="string"&&typeof e.expires_at=="string"&&HA(e.loss)&&(e.storage_class===void 0||Ui(e.storage_class))}function Fl(e){return!Ve(e)||e.version!==1||!Array.isArray(e.records)?!1:e.records.every(t=>{if(!Ve(t))return!1;let r=t.blob_key;return typeof t.handle=="string"&&Ns(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||Ui(t.storage_class))&&(r===void 0||typeof r=="string"&&$i(r))})}function ji(e){return Ve(e)&&typeof e.key=="string"&&$i(e.key)&&Ml(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 Bi(e){return Ve(e)&&e.status==="expired"&&typeof e.expired_at=="string"&&typeof e.command=="string"}function HA(e){return Ve(e)&&typeof e.level=="string"&&typeof e.bytes_elided=="number"}function Ui(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"}function qA(e){return Ve(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 WA(e){return Ve(e)&&e.kind==="command"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.argv)&&e.argv.every(t=>typeof t=="string")&&Fi(e.argv)&&typeof e.original_bytes=="number"&&Ml(e.content_hash)}function Ml(e){return typeof e=="string"&&/^[0-9a-f]{64}$/.test(e)}function Ve(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function uw(e){try{let n=(await AA(e,"utf8")).trim();if(n==="")return Di();let s;try{s=JSON.parse(n)}catch{s=H(n)}if(JA(s))return{...s,blobs:s.blobs??{}}}catch(r){if(r.code==="ENOENT"){let s=Di();return await Sn(e,s),s}let n=Di();return await Sn(e,n),n}let t=Di();return await Sn(e,t),t}async function lw(e){try{return e}catch(t){if(t.code==="ENOENT")return e;throw t}}function dw(e){return GA(e)==="red-skills.rdb"}async function Hi(){if(process.env.REDDB_BIN)return;let e=process.env.RED_SKILLS_CACHE_DIR??(process.env.XDG_CACHE_HOME?Is(process.env.XDG_CACHE_HOME,"red-skills","bundles"):Is(LA(),".cache","red-skills","bundles")),t=Is(e,"reddb"),r;try{r=await Xb(t)}catch{return}r.sort().reverse();for(let n of r){let s=Is(t,n,process.platform==="win32"?"red.exe":"red");if(OA(s)){process.env.REDDB_BIN=s;return}}}async function Sn(e,t){await CA(DA(e),{recursive:!0});let r=`${e}.${process.pid}.tmp`;await IA(r,`${$(Ol(t))}
97
+ `,"utf8"),await PA(r,e)}function Ol(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=>Ol(t));if(typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))n!==void 0&&(t[r]=Ol(n));return t}return String(e)}function Di(){return{version:1,records:{},blobs:{},tombstones:{},index:{version:1,records:[]}}}function JA(e){return Ve(e)&&e.version===1&&Ve(e.records)&&Object.values(e.records).every(Fs)&&(e.blobs===void 0||Ve(e.blobs)&&Object.values(e.blobs).every(ji))&&Ve(e.tombstones)&&Object.values(e.tombstones).every(Bi)&&Fl(e.index)}function pw(e){if(!e.startsWith("file://"))throw new Error("rsp elision store requires a file:// URI");return $A(e)}var qi=y(()=>{"use strict";W();Ps();Gi()});async function mw(e,t){return VA?YA(e,t):KA?XA(e,t):zA(e,t)}async function zA(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 YA(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:QA(r.stdout),kill(){r.kill()},wait(){return r.exited}}}async function*QA(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 XA(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:ZA(n.stdout),kill(){try{n.kill("SIGTERM")}catch{}},async wait(){return(await n.status).code??0}}}async function*ZA(e){let t=e.getReader();try{for(;;){let{value:r,done:n}=await t.read();if(n)return;yield r}}finally{t.releaseLock()}}var VA,KA,fw=y(()=>{VA=typeof globalThis.Bun<"u"&&typeof globalThis.Bun.spawn=="function",KA=typeof globalThis.Deno<"u"&&typeof globalThis.Deno.Command=="function"});import{existsSync as eP}from"node:fs";import{join as tP}from"node:path";function gw(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=tP(r,"bin",t);if(eP(o))return o;throw new Error(`reddb: binary "${t}" not found.
96
98
  expected at: ${o}
97
99
  override: set ${n}=/path/to/${t}
98
100
  fix: re-run \`pnpm install\` (the postinstall script downloads it),
99
- or check the postinstall log for a download error.`)}var Xb=y(()=>{});import{fileURLToPath as wA}from"node:url";import{dirname as _A,resolve as EA,join as JJ}from"node:path";function SA(){return typeof process<"u"&&process.platform==="win32"?"red.exe":"red"}function Zb(){let e=process.env?.REDDB_BINARY_PATH;return typeof e=="string"&&e!==""&&!process.env?.REDDB_BIN?e:Qb({name:SA(),packageRoot:kA,envVar:"REDDB_BIN"})}var RA,kA,ew=y(()=>{Xb();RA=_A(wA(import.meta.url)),kA=EA(RA,"..")});var TA,vA,D,Fi,tr=y(()=>{TA=new TextEncoder,vA=new TextDecoder("utf-8"),D=class extends Error{constructor(t,r,n){super(r),this.name="RedDBError",this.code=t,this.data=n??null}},Fi=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(TA.encode(s+`
100
- `)).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(vA.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 Gl(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:/"?xA(e):CA(e)}function xA(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=OA(s),a=r.port?Number(r.port):Il(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 CA(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):Il(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):Il(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 OA(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 Il(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 Ll=y(()=>{tr()});function PA(e){if(typeof e=="string"){let t=new TextEncoder().encode(e);return tw(t)}if(e instanceof Uint8Array||typeof Buffer<"u"&&Buffer.isBuffer(e))return tw(e);throw new TypeError("cache value must be a string, Uint8Array, or Buffer")}function tw(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 IA(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 AA,Is,Dl=y(()=>{tr();AA=new Set(["embedded"]),Is=class{constructor(t,r){this._client=t,this._transport=r??null}_guard(t){if(this._transport&&AA.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:IA(n.value)}async put(t,r,n,s={}){this._guard("put");let o=PA(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 $l(e,t){return`${Nl(e)}.${GA(t)}`}function Nl(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 GA(e){let t=String(e);return/^[A-Za-z0-9_]+$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function LA(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 rw(e){return`'${String(e).replace(/'/g,"''")}'`}var Rn,Fl=y(()=>{tr();Rn=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(rw).join(", ")}]`:"",i=n.expireMs!=null?` EXPIRE ${Number(n.expireMs)} ms`:"";return this.client.call("query",{sql:`KV PUT ${$l(s,t)} = ${LA(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 ${$l(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 ${$l(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 ${Nl(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(rw).join(", ")}] FROM ${Nl(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(`
101
+ or check the postinstall log for a download error.`)}var hw=y(()=>{});import{fileURLToPath as rP}from"node:url";import{dirname as nP,resolve as sP,join as jV}from"node:path";function aP(){return typeof process<"u"&&process.platform==="win32"?"red.exe":"red"}function yw(){let e=process.env?.REDDB_BINARY_PATH;return typeof e=="string"&&e!==""&&!process.env?.REDDB_BIN?e:gw({name:aP(),packageRoot:iP,envVar:"REDDB_BIN"})}var oP,iP,bw=y(()=>{hw();oP=nP(rP(import.meta.url)),iP=sP(oP,"..")});var cP,uP,D,Wi,nr=y(()=>{cP=new TextEncoder,uP=new TextDecoder("utf-8"),D=class extends Error{constructor(t,r,n){super(r),this.name="RedDBError",this.code=t,this.data=n??null}},Wi=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(cP.encode(s+`
102
+ `)).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(uP.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 Bl(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:/"?lP(e):dP(e)}function lP(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=pP(s),a=r.port?Number(r.port):jl(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 dP(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):jl(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):jl(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 pP(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 jl(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 Ul=y(()=>{nr()});function fP(e){if(typeof e=="string"){let t=new TextEncoder().encode(e);return ww(t)}if(e instanceof Uint8Array||typeof Buffer<"u"&&Buffer.isBuffer(e))return ww(e);throw new TypeError("cache value must be a string, Uint8Array, or Buffer")}function ww(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 gP(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 mP,Ms,Hl=y(()=>{nr();mP=new Set(["embedded"]),Ms=class{constructor(t,r){this._client=t,this._transport=r??null}_guard(t){if(this._transport&&mP.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:gP(n.value)}async put(t,r,n,s={}){this._guard("put");let o=fP(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 ql(e,t){return`${Wl(e)}.${hP(t)}`}function Wl(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 hP(e){let t=String(e);return/^[A-Za-z0-9_]+$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function yP(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 _w(e){return`'${String(e).replace(/'/g,"''")}'`}var Tn,Jl=y(()=>{nr();Tn=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(_w).join(", ")}]`:"",i=n.expireMs!=null?` EXPIRE ${Number(n.expireMs)} ms`:"";return this.client.call("query",{sql:`KV PUT ${ql(s,t)} = ${yP(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 ${ql(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 ${ql(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 ${Wl(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(_w).join(", ")}] FROM ${Wl(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(`
101
103
 
102
104
  `)){let l=u.split(`
103
- `).find(d=>d.startsWith("data: "));l&&(yield JSON.parse(l.slice(6)))}}watchPrefix(t,r={}){return this.watch(`${t}.*`,r)}}});function DA(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=jt(e),a=jt(t),c=s!=null?` GROUP ${jt(s)}`:"",u=o!=null?jl(o):"";return`QUEUE READ ${i}${c} CONSUMER ${a}${u} WAIT ${n}ms`}function jt(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 jl(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 $A(e){if(!Number.isInteger(e))throw new D("INVALID_QUEUE_PRIORITY","queue priority must be an integer");return String(e)}function NA(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 ${$A(e.priority)}`),e.key!=null&&(t+=` KEY ${Bl(e.key)}`),e.dedup!=null&&(t+=` DEDUP ${Bl(e.dedup)}`),e.delay!=null&&(t+=` DELAY ${e.delay}`),e.at!=null&&(t+=` AVAILABLE AT ${e.at}`),t}function FA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="string"?Bl(e):JSON.stringify(e)}function Bl(e){return`'${String(e).replace(/'/g,"''")}'`}function Ml(e){return Array.isArray(e?.rows)?e.rows.map(t=>t.payload):[]}var Gs,Ul=y(()=>{tr();Gs=class{constructor(t){this.client=t}create(t){return this.client.call("query",{sql:`CREATE QUEUE IF NOT EXISTS ${jt(t)}`})}push(t,r,n={}){let s=NA(n);return this.client.call("query",{sql:`QUEUE PUSH ${jt(t)} ${FA(r)}${s}`})}async pop(t,r){let n=await this.client.call("query",{sql:`QUEUE POP ${jt(t)}${jl(r)}`});return Ml(n)}async peek(t,r){let n=await this.client.call("query",{sql:`QUEUE PEEK ${jt(t)}${jl(r)}`});return Ml(n)}async len(t){let r=await this.client.call("query",{sql:`QUEUE LEN ${jt(t)}`});return Number(r?.rows?.[0]?.len??0)}purge(t){return this.client.call("query",{sql:`QUEUE PURGE ${jt(t)}`})}async readWait(t,r,n={}){let s=DA(t,r,n),o=await this.client.call("query",{sql:s});return Ml(o)}}});function nw(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new D("INVALID_ARGUMENT",`${t} must be an object`)}function MA(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 Mi(e){return String(e).split(".").map(sw).join(".")}function sw(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 jA(e){return ow(JSON.stringify(e))}function BA(e){return JSON.stringify(e)}function UA(e){return e==null?"NULL":typeof e=="number"||typeof e=="boolean"?String(e):typeof e=="object"?jA(e):ow(e)}function ow(e){return`'${String(e).replace(/'/g,"''")}'`}var Ls,Hl=y(()=>{tr();Ls=class{constructor(t){this.db=t}async insert(t,r){nw(r,"documents.insert document"),await this.ensureCollection(t);let n=await this.db.query(`INSERT INTO ${Mi(t)} DOCUMENT VALUES (${BA(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=MA(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 ${Mi(t)}${o} ORDER BY ${s} LIMIT ${n}`)).rows??[]}}async patch(t,r,n){nw(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])=>`${sw(c)} = ${UA(u)}`).join(", "),a=(await this.db.query(`UPDATE ${Mi(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 ${Mi(t)}`)}catch(r){if(!String(r?.message??"").includes("already exists"))throw r}}}});function HA(e,t){if(t.secretRef){let{collection:r,key:n}=t.secretRef;return`SECRET_REF(vault, ${rr(r)}.${rr(n)})`}return WA(e)}function qA(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 rr(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 WA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):iw(e)}function iw(e){return`'${String(e).replace(/'/g,"''")}'`}var Ds,ql=y(()=>{Ds=class{constructor(t,r="red.config"){this.client=t,this.collection=r}put(t,r,n={}){qA(n,"config");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(iw).join(", ")}]`:"";return this.client.call("query",{sql:`PUT CONFIG ${rr(s)} ${rr(t)} = ${HA(r,n)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`GET CONFIG ${rr(n)} ${rr(t)}`})}resolve(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`RESOLVE CONFIG ${rr(n)} ${rr(t)}`})}}});function JA(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 kn(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 VA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):aw(e)}function aw(e){return`'${String(e).replace(/'/g,"''")}'`}var $s,Wl=y(()=>{$s=class{constructor(t,r="red.vault"){this.client=t,this.collection=r}put(t,r,n={}){JA(n,"vault");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(aw).join(", ")}]`:"";return this.client.call("query",{sql:`VAULT PUT ${kn(s)}.${kn(t)} = ${VA(r)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`VAULT GET ${kn(n)}.${kn(t)}`})}unseal(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`UNSEAL VAULT ${kn(n)}.${kn(t)}`})}}});async function uw(e){return((await e.query("SHOW COLLECTIONS")).rows??[]).map(KA)}async function lw(e,t){return((await e.query(`SHOW COLLECTIONS WHERE name = ${YA(t)}`)).rows??[]).some(n=>n.name===String(t))}function KA(e){return{...e,name:String(e.name),model:String(e.model),capabilities:Array.isArray(e.capabilities)?e.capabilities:[]}}function cw(e){return String(e).split(".").map(zA).join(".")}function zA(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 YA(e){return`'${String(e).replace(/'/g,"''")}'`}var Ns,Jl=y(()=>{tr();Ns=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(cw).join(", "),r=this.whereClauses.length>0?` WHERE ${this.whereClauses.map(i=>`(${i})`).join(" AND ")}`:"",n=`SELECT ${t} FROM ${cw(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 Ui(e,t={}){let r=Gl(e);if(iP(r),r.kind==="embedded"){let n=oP(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=sP(r),o=t.binary??Zb(),i=await zb(o,s),a=new Fi(i);return await a.call("version",{}),new Kl(a,{transport:"embedded"})}}function pw(e){return ZA(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:tP(e)}:typeof e=="number"&&!Number.isFinite(e)?Number.isNaN(e)?{$float:"NaN"}:{$float:e>0?"Infinity":"-Infinity"}:typeof e=="string"&&nP(e)?{$uuid:e}:e}function ZA(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 eP(e){return e.length===0?null:e.length===1&&Array.isArray(e[0])?e[0].map(pw):e.map(pw)}function tP(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 rP(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 nP(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}function ji(e){if(Array.isArray(e))return e.map(ji);if(e&&typeof e=="object"){if(Object.keys(e).length===1){if(typeof e.$bytes=="string")return rP(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]=ji(s);return r}return e}function sP(e){return e.path?["rpc","--stdio","--path",e.path]:["rpc","--stdio"]}function oP(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 iP(e){if(e.kind!=="embedded")throw new D("EMBEDDED_ONLY",QA)}function zl(){return new D(dw,`${dw}: nested transactions are not supported on one connection`)}function fw(e,t){if(e&&typeof e=="object")try{e.rollbackError=t}catch{}}function aP(e,t){if(!e||typeof e!="object"||e.rid==null&&e.id==null)throw new D("ENGINE_TOO_OLD",`${t}() requires RedDB engine >= ${mw} with insert id support`);return e.rid==null&&(e.rid=e.id),e.id==null&&(e.id=e.rid),e}function cP(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 >= ${mw} 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 QA,XA,mw,dw,Bi,Vl,Kl,gw=y(()=>{Yb();ew();tr();Ll();Dl();Fl();Ul();Hl();ql();Wl();Jl();Dl();Fl();Ul();Hl();ql();Wl();Jl();Ll();QA="remote URIs are not supported in @reddb-io/sdk; install @reddb-io/client for grpc/http/red transports",XA="1.0",mw="1.0.9",dw="NESTED_TX_NOT_SUPPORTED";Bi=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 zl()}},Vl=class{constructor(t){this.db=t,this.active=!1}async begin(){if(this.db.inTransaction)throw zl();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 Bi(this.db));return await this.commit(),r}catch(r){if(this.active)try{await this.rollback()}catch(n){fw(r,n)}throw r}}},Kl=class{constructor(t,r={}){this.client=t,this.transport=r.transport??null,this.helperSpecVersion=XA,this.cache=new Is(t,this.transport),this.queue=new Gs(t),this.queues=this.queue,this.documents=new Ls(this);let n=new Rn(t);this.kv=Object.assign((s="kv_default")=>new Rn(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 Ds(t,s),this.vault=(s="red.vault")=>new $s(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=eP(r);return n==null?this.client.call("query",{sql:t}).then(ji):this.client.call("query",{sql:t,params:n}).then(ji)}execute(t,...r){return this.query(t,...r)}async insert(t,r){let n=await this.client.call("insert",{collection:t,payload:r});return aP(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 cP(n,r.length)}tx(){return new Vl(this)}async transaction(t){if(this.inTransaction)throw zl();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 Bi(this));return await this.query("COMMIT"),n}catch(n){if(r)try{await this.query("ROLLBACK")}catch(s){fw(n,s)}throw n}finally{this.inTransaction=!1}}exists(t){return lw(this,t)}list(){return uw(this)}from(t){return new Ns(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 uP}from"node:crypto";import{existsSync as hw}from"node:fs";import{mkdir as lP,readFile as dP,rename as Yl,rm as Fs,stat as Ql}from"node:fs/promises";import{basename as pP,dirname as mP}from"node:path";async function yw(e){await(await Pr.open({...e,allowResidentOpen:!0})).close()}var Pr,bw=y(()=>{"use strict";gw();xi();Ni();Pr=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=Kb(t.uri),n=await Jb(r),s=new e(n,{uri:t.uri,ttlDays:Ii(t.ttlDays,Qe),ephemeralTtlHours:Ii(t.ephemeralTtlHours,Xe),byteBudget:Ii(t.byteBudget,Ze),now:t.now??(()=>new Date)});return Vb(n)?(await $i(),await lP(mP(n),{recursive:!0}),s.db=await Ui(`file://${n}`),await s.ensureRedDbCollections(),await s.ensureRedDbStore()):s.document=await Wb(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=Cs(n,r),a=er(i),c=Mt(r.command),u=c==="derivable"?Tl(n,r.command):null,l=c==="re-executable"?vl(n,r.command):null,d=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,p=Sl(s,d,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Cr(n),f=d==="ephemeral"?Ol(n,g,o):null,R=xl(n,u,l,f);f&&!this.document.blobs[f.key]&&(this.document.blobs[f.key]=f,this.dirty=!0);let b={collection:ue,handle:i,original_bytes:n.length,stored_bytes:R,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[Or(i)],this.document.records[a]=b,this.upsertIndex({handle:i,key:a,bytes:R,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(!As(t))return null;let r=this.tombstone(t);if(r)return r;let n=this.document.records[er(t)];if(!Ps(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:er(n.handle),bytes:Cl(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:Os(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:Os(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:Ar(r),oldest:r.reduce((n,s)=>n==null||s.created_at<n?s.created_at:n,null),budget:this.opts.byteBudget,storage_classes:Rl(r)}}async recoveryHandles(t=5){return this.db?await this.recoveryHandlesRedDb(t):(this.prune(),await this.flush(),kl(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=Ar(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=Ar(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[Or(t.handle)]={status:"expired",expired_at:r,command:t.command},this.dirty=!0}tombstone(t){let r=this.document.tombstones[Or(t)];return Li(r)?r:null}async readOriginal(t){if(t.original)return Buffer.from(t.original,"base64");if(t.derivation_recipe)return Fb(t.derivation_recipe);if(t.reexecution_recipe)return Mb(t.reexecution_recipe);if(t.blob_key){let r=this.db?await this.kvGet(t.blob_key):this.document.blobs[t.blob_key];return Gi(r)?Nb(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 En(this.path,this.document),this.dirty=!1),await this.rotateLocalGenerationIfOversized()}async rotateLocalGenerationIfOversized(){let t=await Ql(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)}
104
- `,"utf8");i>this.opts.byteBudget||i>=t||(this.document=o,await En(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=Cs(n,r),a=er(i),c=Mt(r.command),u=c==="derivable"?Tl(n,r.command):null,l=c==="re-executable"?vl(n,r.command):null,d=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,p=Sl(s,d,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Cr(n),f=d==="ephemeral"?Ol(n,g,o):null,R=xl(n,u,l,f);f&&!Gi(await this.kvGet(f.key))&&await this.kv().put(f.key,f);let b={collection:ue,handle:i,original_bytes:n.length,stored_bytes:R,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(Or(i)),await this.kv().put(a,b);let E=(await this.readRedDbIndex()).records.filter(T=>T.handle!==i);return E.push({handle:i,key:a,bytes:R,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:E},!0),await this.assertRedDbMintPersisted(i,R),i}async getRedDb(t){if(!As(t))return null;let r=await this.kvGet(Or(t));if(Li(r))return r;let n=await this.kvGet(er(t));if(!Ps(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:er(n.handle),bytes:Cl(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:Os(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:Os(n)}:null}async statsRedDb(){let t=await this.pruneRedDb(await this.readRedDbIndex());return{records:t.records.length,bytes:Ar(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:Rl(t.records)}}async recoveryHandlesRedDb(t){let r=await this.pruneRedDb(await this.readRedDbIndex());return kl(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=Ub(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 Hb(t.cwd,t.maxFiles??200,t.ignore??[]),n=0;for(let s of r){let i=(await dP(s,"utf8").catch(()=>"")).trim();if(!i)continue;let a=pP(s),c=uP("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=>qb(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(`
105
- `),diagnostics:{vector:{status:"unavailable",candidates:0,contributed:0,reason:"resident-basic-recall"}}}}async readRedDbIndex(){let t=await this.kvGet(Ai());return Al(t)?t:{version:1,records:[]}}async writeRedDbIndex(t){await this.kv().put(Ai(),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=Ar(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=Ar(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 Ql(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 Fs(o,{force:!0}),await Fs(i,{force:!0});let a=await Ui(`file://${o}`);try{for(let u of n){await a.query(`CREATE KV IF NOT EXISTS ${Db(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 Ql(o).then(u=>u.size,()=>0);if(c===0||c>this.opts.byteBudget||c>=r){await Fs(o,{force:!0});return}await this.db.close(),this.db=void 0;try{await Yl(this.path,i),await Yl(o,this.path),await Fs(i,{force:!0})}catch(u){throw!hw(this.path)&&hw(i)&&await Yl(i,this.path),await Fs(o,{force:!0}),u}finally{this.db=await Ui(`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:Ai(),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(Or(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(er(t));if(!Ps(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 ww={};K(ww,{DEFAULT_RSP_BYTE_BUDGET:()=>Ze,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Xe,DEFAULT_RSP_TTL_DAYS:()=>Qe,RSP_ELISION_COLLECTION:()=>ue,RspElisionStore:()=>Pr,contentHandle:()=>Cs,ensureReddbBinaryFromWarmCache:()=>$i,provisionElisionStore:()=>yw,storageClassForCommand:()=>Mt});var Hi=y(()=>{"use strict";xi();Ni();Ni();bw()});async function qi(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:30,s=r.getTime()-n*24*60*60*1e3,o=await Rw(e,s),i=(await Ms(e,Ae)).filter(P=>Tn(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,R=new Map,b=new Map,h=[],E=0,T=0,C=0;for(let P of a){P.elided===!0&&l++;let j=He(P.raw_bytes),Ne=He(P.emitted_bytes),Et=Math.max(0,j-Ne),Ut=vn(P,"raw"),O=vn(P,"emitted"),N=Math.max(0,Ut.tokens-O.tokens);f||=(P.estimated===!0||Ut.estimated||O.estimated)&&N>0,d+=j,p+=Ne,g+=N;let Rt=Ir(P).slice(0,10);Rt&&R.set(Rt,(R.get(Rt)??0)+N);let nt=M(P.command)||"unknown",Te=b.get(nt)??{command:nt,invocations:0,bytes_saved:0,tokens_saved:0};Te.invocations++,Te.bytes_saved+=Et,Te.tokens_saved+=N,b.set(nt,Te);let ve=Xt(P.wrapper_ms);ve!=null&&h.push(ve),E+=He(P.store_open_count);let kt=Xt(P.store_elapsed_ms);kt!=null&&(T+=kt,C++)}let G=new Map,F=new Map,q=[],se=null;for(let P of u){let j=M(P.degradation_reason)||M(P.reason)||"unknown",Ne=M(P.wrapper_family)||qe(M(P.command));G.set(j,(G.get(j)??0)+1),F.set(Ne,(F.get(Ne)??0)+1);let Et=Ir(P);q.push({timestamp:Et,family:Ne,command:M(P.command)||"unknown",reason:j,exit_code:Xt(P.wrapper_exit_code),stderr_head:M(P.stderr_head)||null}),(!se||Et>se.timestamp)&&(se={timestamp:Et,reason:j,command:M(P.command)||"unknown"})}let re=a.length+u.length,de=c.filter(P=>P.hit===!0).length,pe=Dc(g,f),Bt=fP(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:[...R.entries()].sort(([P],[j])=>P.localeCompare(j)).map(([P,j])=>({date:P,tokens_saved:j})),top_commands:[...b.values()].sort((P,j)=>j.bytes_saved-P.bytes_saved||j.tokens_saved-P.tokens_saved||P.command.localeCompare(j.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:[...G.entries()].sort((P,j)=>j[1]-P[1]||P[0].localeCompare(j[0])).map(([P,j])=>({reason:P,count:j})),by_family:[...F.entries()].sort((P,j)=>j[1]-P[1]||P[0].localeCompare(j[0])).map(([P,j])=>({family:P,count:j})),recent_failures:q.sort((P,j)=>j.timestamp.localeCompare(P.timestamp)).slice(0,20),most_recent:se},latency:{wrapper_ms_p50:Sn(h,.5),wrapper_ms_p95:Sn(h,.95),store_open_count_sum:E,store_elapsed_ms_sum:be(T),store_elapsed_ms_avg:C===0?null:be(T/C)},decisions:Bt}}function fP(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,He(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 Xl(e,t,r=new Date){let s=(await Ms(e,Oe)).filter(o=>Tn(o)<=r.getTime()||Ir(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=Ir(i);return a&&(o==null||a<o)?a:o},null),budget:t,storage_classes:kP(s)}}async function Zl(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 Rw(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(Tn).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)/IP()))),R=[],b=new Map,h=new Map,E=new Map,T=new Map,C=new Map,G=new Map,F=0,q=!1,se=0,re=null,de=0,pe=0;for(let O of c){let N=Ir(O),Rt=N.slice(0,10),nt=N.slice(0,16),Te=qe(M(O.command)),ve=Math.max(0,vn(O,"raw").tokens-vn(O,"emitted").tokens);F+=ve,q||=O.estimated===!0&&ve>0;let kt=Math.max(0,He(O.raw_bytes)-He(O.emitted_bytes)),Br=Xt(O.wrapper_ms);if(Br!=null){R.push(Br);let Nn=b.get(Te)??[];Nn.push(Br),b.set(Te,Nn)}Rt&&h.set(Rt,(h.get(Rt)??0)+1),nt&&E.set(nt,(E.get(nt)??0)+1);let Ht=xP(N);Ht&&T.set(Ht,(T.get(Ht)??0)+1);let $n=AP(N);$n&&C.set($n,(C.get($n)??0)+ve);let pr=G.get(Te)??{command_family:Te,invocations:0,tokens_saved:0,bytes_saved:0};pr.invocations++,pr.tokens_saved+=ve,pr.bytes_saved+=kt,G.set(Te,pr),O.elided===!0&&se++,(O.store_open_count!=null||O.store_elapsed_ms!=null)&&(de++,He(O.store_open_count)>0&&pe++),ve>0&&(!re||ve>re.tokens_saved||ve===re.tokens_saved&&kt>re.bytes_saved)&&(re={timestamp:N,command_family:Te,tokens_saved:ve,bytes_saved:kt})}let Bt=d.map(O=>({timestamp:Ir(O),command_family:qe(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 Bt)P.set(O.reason,(P.get(O.reason)??0)+1);let j=bP(Bt),Ne=yP(l),Et=_P([...G.values()],Ne,j),Ut=[...E.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:Ew(R),by_command_family:[...b.entries()].sort((O,N)=>N[1].length-O[1].length||O[0].localeCompare(N[0])).map(([O,N])=>({command_family:O,count:N.length,...Ew(N)}))},throughput:{requests_per_day:[...h.entries()].sort(([O],[N])=>O.localeCompare(N)).map(([O,N])=>({date:O,requests:N})),active_minute_avg:E.size===0?null:be([...E.values()].reduce((O,N)=>O+N,0)/E.size),peak_minute:Ut?{minute:Ut[0],requests:Ut[1]}:null,hour_weekday_heatmap:CP(T)},savings:{tokens:Dc(F,q),measured_control_holdout:gP(c,u),weekly_tokens_saved:PP(C),elision_rate:c.length===0?0:be(se/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:Bt,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:j,threshold_tuning_suggestions:Et}}}async function Rw(e,t){let r=(await Ms(e,Oe)).filter(i=>Tn(i)>=t),n=r.some(i=>M(i.event_type)!=="show"||M(i.degradation_reason)!==""),s=(await Ms(e,Ue)).filter(i=>Tn(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:M(i.event_type)||"invocation"})),o=(await Ms(e,mt)).filter(i=>Tn(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 vn(e,t){let r=Xt(e[t==="raw"?"tokens_raw":"tokens_emitted"]);if(r!=null)return{tokens:r,estimated:!1};let n=He(e[t==="raw"?"raw_bytes":"emitted_bytes"]);return{tokens:Math.ceil(n/4),estimated:n>0}}function gP(e,t){let r=RP(t.map(a=>Xt(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(_w).filter(a=>a!=null),s=t.map(_w).filter(a=>a!=null),o=n.length>0?n:s,i=o.length===0?null:be(EP(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:hP(o,i),note:"measured from opt-in uncompressed control holdout; report proposes, it does not tune automatically"}}function _w(e){let t=vn(e,"raw").tokens;if(t<=0)return null;let r=vn(e,"emitted").tokens;return Math.max(0,t-r)/t}function hP(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 yP(e){let t=new Map;for(let r of e){let n=qe(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 bP(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:wP(r)}))}function wP(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 _P(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 EP(e){return e.reduce((t,r)=>t+r,0)/e.length}function RP(e){let t=e.filter(r=>r!=null);return t.length===0?null:Math.max(...t)}function kP(e){let t=TP();for(let r of e){if(M(r.event_type)==="show"||M(r.degradation_reason)!==""||r.elided!==!0)continue;let n=SP(r.storage_class)??Mt(M(r.command));t[n].records+=1;let s=He(r.raw_bytes);t[n].bytes+=s,t[n].raw_bytes+=s}return t}function SP(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"?e:null}function TP(){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 Ms(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=>vP(n.value)).filter(n=>yn(n))}function vP(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function Tn(e){let t=Date.parse(Ir(e));return Number.isFinite(t)?t:0}function Ir(e){return M(e.created_at)||M(e.ts)||""}function M(e){return typeof e=="string"?e:""}function Sn(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 Ew(e){return{wrapper_ms_p50:Sn(e,.5),wrapper_ms_p90:Sn(e,.9),wrapper_ms_p95:Sn(e,.95),wrapper_ms_p99:Sn(e,.99)}}function be(e){return Math.round(e*100)/100}function xP(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${OP(t.getUTCDay())}:${t.getUTCHours()}`:null}function CP(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 OP(e){return["sun","mon","tue","wed","thu","fri","sat"][e]??"unknown"}function AP(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 PP(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 IP(){return 24*60*60*1e3}var kw=y(()=>{"use strict";Ss();Hi();$c();Ri();pl()});var js={};K(js,{RSP_ACCOUNTING_EVENTS_COLLECTION:()=>Oe,RSP_DECISIONS_COLLECTION:()=>Ae,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:()=>mt,RSP_TELEMETRY_INDEX_COLLECTION:()=>_s,RSP_TELEMETRY_INVOCATIONS_COLLECTION:()=>Ue,RSP_TELEMETRY_LEGACY_SPOOL_FILE:()=>ll,RSP_TELEMETRY_SPOOL_CORRECTIONS_FILE:()=>dl,RSP_TELEMETRY_SPOOL_FILE:()=>ul,appendTelemetryEvent:()=>vr,appendTelemetryEventSync:()=>Zt,drainTelemetrySpool:()=>bl,parseTelemetryEvent:()=>wn,readAccountingLaneStats:()=>Xl,readTelemetryGainsReport:()=>Zl,readTelemetryStats:()=>qi,takeTelemetrySpool:()=>G0,telemetryLegacySpoolPath:()=>Ti,telemetrySpoolCorrectionsPath:()=>yl,telemetrySpoolPath:()=>Ft});var ft=y(()=>{"use strict";Ri();Gb();kw()});import{existsSync as GP}from"node:fs";import{join as LP}from"node:path";function DP(){for(let e of(process.env.PATH??"").split(":"))if(e&&GP(LP(e,"rsp")))return!0;return!1}function Bs(){return DP()?["rsp"]:[process.execPath,process.argv[1]]}var ed=y(()=>{"use strict"});var Wi={};K(Wi,{parseProxyCommandLine:()=>vw,rewriteProxyCommandLine:()=>Tw,runProxy:()=>FP});import{spawn as $P}from"node:child_process";function NP(e){return/[^\w@%+=:,./-]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}async function FP(e,t){let r="",n="",s=[],o=process.hrtime.bigint();try{if(r=vw(e),process.env.RSP_PROXY_FAIL_INTERNAL==="1")throw new Error("forced proxy failure");let c=Tw(r,t.level??"lossless");n=c.commandLine,s=c.matches}catch(c){if(r)return await MP(t.telemetryRoot,r,c),await Sw(r);throw c}for(let c of s)await jP(t.telemetryRoot,c);let i=await Sw(n||r),a=Number(process.hrtime.bigint()-o)/1e6;return await vr(t.telemetryRoot,{collection:Ue,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 Tw(e,t="lossless",r=Bs()){let n=JP(e),s=[];return{commandLine:n.map((i,a)=>{if(i.kind==="operator"||WP(n,a)==="|")return i.text;let c=BP(i.text,t,r);return c?(s.push(c.match),c.text):i.text}).join(""),matches:s}}function vw(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 MP(e,t,r){await vr(e,{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t,command_family:qe(t),decision:"failed-open",reason:"proxy-internal-error",error:r instanceof Error?r.name:typeof r})}async function jP(e,t){await vr(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 Sw(e){let t=$P(e,{shell:!0,stdio:"inherit"}),r=Le();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)}
106
- `),n(127)}),t.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}function BP(e,t,r){let n=e.match(/^\s*/)?.[0]??"",s=e.match(/\s*$/)?.[0]??"",o=e.trim();if(!o)return null;let i=KP(o);if(!i)return null;let a=qP(i);if(a>=i.length)return null;let c=i.slice(a),u=c.map(f=>f.value);if(xr(u))return{text:e,match:{command:c.map(f=>f.raw).join(" "),commandFamily:qe(u.join(" ")),decision:"passed",reason:"lossless-gh-json-jq"}};let l=UP(c);if(!l)return null;let d=i.slice(0,a).map(f=>f.raw),p=t==="lossless"?[]:[`--${t}`],g=[...d,...r.map(NP),...p,...l.wrapperWords].join(" ");return{text:`${n}${g}${s}`,match:{command:c.map(f=>f.raw).join(" "),commandFamily:qe(u.join(" ")),decision:"contributed",reason:"proxy-segment",capabilityId:l.capabilityId}}}function UP(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}:HP(t,r)}function HP(e,t){return e[0]==="cat"&&e.length===2&&td(e[1])?{capabilityId:"cat:file",wrapperWords:["cat",t[1]]}:(e[0]==="head"||e[0]==="tail")&&e.length===2&&td(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])&&td(e[3])?{capabilityId:`cat:${e[0]}`,wrapperWords:["cat",`--${e[0]}`,e[2],t[3]]}:null}function td(e){return!!e&&!e.startsWith("-")}function qP(e){let t=0;for(;t<e.length&&_n(e[t].value);)t+=1;if(e[t]?.value!=="env")return t;for(t+=1;t<e.length&&_n(e[t].value);)t+=1;return t}function WP(e,t){for(let r=t+1;r<e.length;r+=1)if(e[r].kind==="operator")return e[r].text}function JP(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=VP(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 VP(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 KP(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 Ji=y(()=>{"use strict";ae();Ss();ed();ft()});function Ow(e,t={}){let r=zP(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=rd(o),u=rd(i),l=rd(a),d=t.excludedByteRanges??[];return r.filter(p=>p.text.trim().length>0).filter(p=>!d.some(g=>tI(p.start,p.end,g.start,g.end))).map(p=>({line:p,score:nd(p.length,c)+nd(p.tokens.length,u)+nd(p.numbers.length===0?0:Math.max(...p.numbers.map(Math.abs)),l)+ZP(p.tokens,n,r.length)+eI(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 zP(e){let t=[],r=0,n=0;for(let s of e.matchAll(/\n/g)){let o=s.index??e.length;t.push(xw(n++,r,o,e.slice(r,o).replace(/\r$/,""))),r=o+1}return(r<e.length||e.length===0)&&t.push(xw(n,r,e.length,e.slice(r).replace(/\r$/,""))),t}function xw(e,t,r,n){return{index:e,start:t,end:r,text:n,signature:YP(n),tokens:QP(n),numbers:XP(n),length:n.length}}function YP(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 QP(e){return e.toLowerCase().match(/[a-z0-9_.:/-]{3,}/g)??[]}function XP(e){return[...e.matchAll(/[-+]?\d+(?:\.\d+)?/g)].map(t=>Number(t[0])).filter(t=>Number.isFinite(t))}function ZP(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 eI(e,t,r){return Math.log2(r/Math.max(1,t.get(e)??r))}function rd(e){let t=Cw(e),r=Cw(e.map(n=>Math.abs(n-t)))||1;return{median:t,mad:r}}function nd(e,t){return Math.abs(e-t.median)/t.mad}function Cw(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 tI(e,t,r,n){return e<n&&r<t}var Aw=y(()=>{"use strict"});var sd={};K(sd,{DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>$t,GIT_LOG_MACHINE_FIELDS:()=>Iw,StructuredUsageError:()=>Vi,cleanStatusPayload:()=>$w,recoveryInstruction:()=>tt,renderGitContract:()=>Gw,runGitWrapper:()=>nI});import{spawn as rI}from"node:child_process";async function nI(e,t){let r=Lw(e),n=Dw(r.argv),s=await aI(n,r.argv.slice(1));return Gw(e,s,t)}async function Gw(e,t,r){let n=Lw(e);if((t.status??0)!==0||t.signal){let d=Ye(e.join(" "),t.stdout,t.stderr);return{stdout:V(d),stderr:Buffer.from(t.stderr),status:d.exitCode??1,signal:t.signal}}let s=Dw(n.argv),o;try{o=cI(s,n.argv,t.stdout,n.query)}catch(d){if(d instanceof Ki)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(sI(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=vI(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 ${tt(u)}
105
+ `).find(d=>d.startsWith("data: "));l&&(yield JSON.parse(l.slice(6)))}}watchPrefix(t,r={}){return this.watch(`${t}.*`,r)}}});function bP(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=Ut(e),a=Ut(t),c=s!=null?` GROUP ${Ut(s)}`:"",u=o!=null?Kl(o):"";return`QUEUE READ ${i}${c} CONSUMER ${a}${u} WAIT ${n}ms`}function Ut(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 Kl(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 wP(e){if(!Number.isInteger(e))throw new D("INVALID_QUEUE_PRIORITY","queue priority must be an integer");return String(e)}function _P(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 ${wP(e.priority)}`),e.key!=null&&(t+=` KEY ${zl(e.key)}`),e.dedup!=null&&(t+=` DEDUP ${zl(e.dedup)}`),e.delay!=null&&(t+=` DELAY ${e.delay}`),e.at!=null&&(t+=` AVAILABLE AT ${e.at}`),t}function EP(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="string"?zl(e):JSON.stringify(e)}function zl(e){return`'${String(e).replace(/'/g,"''")}'`}function Vl(e){return Array.isArray(e?.rows)?e.rows.map(t=>t.payload):[]}var js,Yl=y(()=>{nr();js=class{constructor(t){this.client=t}create(t){return this.client.call("query",{sql:`CREATE QUEUE IF NOT EXISTS ${Ut(t)}`})}push(t,r,n={}){let s=_P(n);return this.client.call("query",{sql:`QUEUE PUSH ${Ut(t)} ${EP(r)}${s}`})}async pop(t,r){let n=await this.client.call("query",{sql:`QUEUE POP ${Ut(t)}${Kl(r)}`});return Vl(n)}async peek(t,r){let n=await this.client.call("query",{sql:`QUEUE PEEK ${Ut(t)}${Kl(r)}`});return Vl(n)}async len(t){let r=await this.client.call("query",{sql:`QUEUE LEN ${Ut(t)}`});return Number(r?.rows?.[0]?.len??0)}purge(t){return this.client.call("query",{sql:`QUEUE PURGE ${Ut(t)}`})}async readWait(t,r,n={}){let s=bP(t,r,n),o=await this.client.call("query",{sql:s});return Vl(o)}}});function Ew(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new D("INVALID_ARGUMENT",`${t} must be an object`)}function RP(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 Ji(e){return String(e).split(".").map(Rw).join(".")}function Rw(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 kP(e){return kw(JSON.stringify(e))}function SP(e){return JSON.stringify(e)}function TP(e){return e==null?"NULL":typeof e=="number"||typeof e=="boolean"?String(e):typeof e=="object"?kP(e):kw(e)}function kw(e){return`'${String(e).replace(/'/g,"''")}'`}var Bs,Ql=y(()=>{nr();Bs=class{constructor(t){this.db=t}async insert(t,r){Ew(r,"documents.insert document"),await this.ensureCollection(t);let n=await this.db.query(`INSERT INTO ${Ji(t)} DOCUMENT VALUES (${SP(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=RP(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 ${Ji(t)}${o} ORDER BY ${s} LIMIT ${n}`)).rows??[]}}async patch(t,r,n){Ew(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])=>`${Rw(c)} = ${TP(u)}`).join(", "),a=(await this.db.query(`UPDATE ${Ji(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 ${Ji(t)}`)}catch(r){if(!String(r?.message??"").includes("already exists"))throw r}}}});function vP(e,t){if(t.secretRef){let{collection:r,key:n}=t.secretRef;return`SECRET_REF(vault, ${sr(r)}.${sr(n)})`}return OP(e)}function xP(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 sr(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 OP(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):Sw(e)}function Sw(e){return`'${String(e).replace(/'/g,"''")}'`}var Us,Xl=y(()=>{Us=class{constructor(t,r="red.config"){this.client=t,this.collection=r}put(t,r,n={}){xP(n,"config");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Sw).join(", ")}]`:"";return this.client.call("query",{sql:`PUT CONFIG ${sr(s)} ${sr(t)} = ${vP(r,n)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`GET CONFIG ${sr(n)} ${sr(t)}`})}resolve(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`RESOLVE CONFIG ${sr(n)} ${sr(t)}`})}}});function CP(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 vn(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 AP(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):Tw(e)}function Tw(e){return`'${String(e).replace(/'/g,"''")}'`}var Hs,Zl=y(()=>{Hs=class{constructor(t,r="red.vault"){this.client=t,this.collection=r}put(t,r,n={}){CP(n,"vault");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Tw).join(", ")}]`:"";return this.client.call("query",{sql:`VAULT PUT ${vn(s)}.${vn(t)} = ${AP(r)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`VAULT GET ${vn(n)}.${vn(t)}`})}unseal(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`UNSEAL VAULT ${vn(n)}.${vn(t)}`})}}});async function xw(e){return((await e.query("SHOW COLLECTIONS")).rows??[]).map(PP)}async function Ow(e,t){return((await e.query(`SHOW COLLECTIONS WHERE name = ${LP(t)}`)).rows??[]).some(n=>n.name===String(t))}function PP(e){return{...e,name:String(e.name),model:String(e.model),capabilities:Array.isArray(e.capabilities)?e.capabilities:[]}}function vw(e){return String(e).split(".").map(IP).join(".")}function IP(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 LP(e){return`'${String(e).replace(/'/g,"''")}'`}var qs,ed=y(()=>{nr();qs=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(vw).join(", "),r=this.whereClauses.length>0?` WHERE ${this.whereClauses.map(i=>`(${i})`).join(" AND ")}`:"",n=`SELECT ${t} FROM ${vw(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 zi(e,t={}){let r=Bl(e);if(HP(r),r.kind==="embedded"){let n=UP(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=BP(r),o=t.binary??yw(),i=await mw(o,s),a=new Wi(i);return await a.call("version",{}),new rd(a,{transport:"embedded"})}}function Aw(e){return $P(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:FP(e)}:typeof e=="number"&&!Number.isFinite(e)?Number.isNaN(e)?{$float:"NaN"}:{$float:e>0?"Infinity":"-Infinity"}:typeof e=="string"&&jP(e)?{$uuid:e}:e}function $P(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 NP(e){return e.length===0?null:e.length===1&&Array.isArray(e[0])?e[0].map(Aw):e.map(Aw)}function FP(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 MP(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 jP(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}function Vi(e){if(Array.isArray(e))return e.map(Vi);if(e&&typeof e=="object"){if(Object.keys(e).length===1){if(typeof e.$bytes=="string")return MP(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]=Vi(s);return r}return e}function BP(e){return e.path?["rpc","--stdio","--path",e.path]:["rpc","--stdio"]}function UP(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 HP(e){if(e.kind!=="embedded")throw new D("EMBEDDED_ONLY",GP)}function nd(){return new D(Cw,`${Cw}: nested transactions are not supported on one connection`)}function Iw(e,t){if(e&&typeof e=="object")try{e.rollbackError=t}catch{}}function qP(e,t){if(!e||typeof e!="object"||e.rid==null&&e.id==null)throw new D("ENGINE_TOO_OLD",`${t}() requires RedDB engine >= ${Pw} with insert id support`);return e.rid==null&&(e.rid=e.id),e.id==null&&(e.id=e.rid),e}function WP(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 >= ${Pw} 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 GP,DP,Pw,Cw,Ki,td,rd,Lw=y(()=>{fw();bw();nr();Ul();Hl();Jl();Yl();Ql();Xl();Zl();ed();Hl();Jl();Yl();Ql();Xl();Zl();ed();Ul();GP="remote URIs are not supported in @reddb-io/sdk; install @reddb-io/client for grpc/http/red transports",DP="1.0",Pw="1.0.9",Cw="NESTED_TX_NOT_SUPPORTED";Ki=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 nd()}},td=class{constructor(t){this.db=t,this.active=!1}async begin(){if(this.db.inTransaction)throw nd();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 Ki(this.db));return await this.commit(),r}catch(r){if(this.active)try{await this.rollback()}catch(n){Iw(r,n)}throw r}}},rd=class{constructor(t,r={}){this.client=t,this.transport=r.transport??null,this.helperSpecVersion=DP,this.cache=new Ms(t,this.transport),this.queue=new js(t),this.queues=this.queue,this.documents=new Bs(this);let n=new Tn(t);this.kv=Object.assign((s="kv_default")=>new Tn(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 Us(t,s),this.vault=(s="red.vault")=>new Hs(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=NP(r);return n==null?this.client.call("query",{sql:t}).then(Vi):this.client.call("query",{sql:t,params:n}).then(Vi)}execute(t,...r){return this.query(t,...r)}async insert(t,r){let n=await this.client.call("insert",{collection:t,payload:r});return qP(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 WP(n,r.length)}tx(){return new td(this)}async transaction(t){if(this.inTransaction)throw nd();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 Ki(this));return await this.query("COMMIT"),n}catch(n){if(r)try{await this.query("ROLLBACK")}catch(s){Iw(n,s)}throw n}finally{this.inTransaction=!1}}exists(t){return Ow(this,t)}list(){return xw(this)}from(t){return new qs(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 JP}from"node:crypto";import{existsSync as Gw}from"node:fs";import{mkdir as VP,readFile as KP,rename as sd,rm as Ws,stat as od}from"node:fs/promises";import{basename as zP,dirname as YP}from"node:path";async function Dw(e){await(await Gr.open({...e,allowResidentOpen:!0})).close()}var Gr,$w=y(()=>{"use strict";Lw();Gi();qi();Gr=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=pw(t.uri),n=await lw(r),s=new e(n,{uri:t.uri,ttlDays:Mi(t.ttlDays,Ze),ephemeralTtlHours:Mi(t.ephemeralTtlHours,et),byteBudget:Mi(t.byteBudget,tt),now:t.now??(()=>new Date)});return dw(n)?(await Hi(),await VP(YP(n),{recursive:!0}),s.db=await zi(`file://${n}`),await s.ensureRedDbCollections(),await s.ensureRedDbStore()):s.document=await uw(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=Ds(n,r),a=rr(i),c=Bt(r.command),u=c==="derivable"?Ll(n,r.command):null,l=c==="re-executable"?Gl(n,r.command):null,d=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,p=Il(s,d,this.opts.ttlDays,this.opts.ephemeralTtlHours),m=Pr(n),g=d==="ephemeral"?Nl(n,m,o):null,R=Dl(n,u,l,g);g&&!this.document.blobs[g.key]&&(this.document.blobs[g.key]=g,this.dirty=!0);let b={collection:ue,handle:i,original_bytes:n.length,stored_bytes:R,command:r.command,created_at:o,expires_at:p,loss:r.loss,storage_class:d,content_hash:m,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:g?.key}};return delete this.document.tombstones[Ir(i)],this.document.records[a]=b,this.upsertIndex({handle:i,key:a,bytes:R,raw_bytes:n.length,command:r.command,created_at:o,expires_at:p,storage_class:d,blob_key:g?.key}),this.prune(),await this.flush(),i}async get(t){if(this.db)return await this.getRedDb(t);if(!Ns(t))return null;let r=this.tombstone(t);if(r)return r;let n=this.document.records[rr(t)];if(!Fs(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:rr(n.handle),bytes:$l(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:$s(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:$s(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:Lr(r),oldest:r.reduce((n,s)=>n==null||s.created_at<n?s.created_at:n,null),budget:this.opts.byteBudget,storage_classes:Al(r)}}async recoveryHandles(t=5){return this.db?await this.recoveryHandlesRedDb(t):(this.prune(),await this.flush(),Pl(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=Lr(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=Lr(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[Ir(t.handle)]={status:"expired",expired_at:r,command:t.command},this.dirty=!0}tombstone(t){let r=this.document.tombstones[Ir(t)];return Bi(r)?r:null}async readOriginal(t){if(t.original)return Buffer.from(t.original,"base64");if(t.derivation_recipe)return rw(t.derivation_recipe);if(t.reexecution_recipe)return nw(t.reexecution_recipe);if(t.blob_key){let r=this.db?await this.kvGet(t.blob_key):this.document.blobs[t.blob_key];return ji(r)?tw(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 Sn(this.path,this.document),this.dirty=!1),await this.rotateLocalGenerationIfOversized()}async rotateLocalGenerationIfOversized(){let t=await od(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)}
106
+ `,"utf8");i>this.opts.byteBudget||i>=t||(this.document=o,await Sn(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=Ds(n,r),a=rr(i),c=Bt(r.command),u=c==="derivable"?Ll(n,r.command):null,l=c==="re-executable"?Gl(n,r.command):null,d=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,p=Il(s,d,this.opts.ttlDays,this.opts.ephemeralTtlHours),m=Pr(n),g=d==="ephemeral"?Nl(n,m,o):null,R=Dl(n,u,l,g);g&&!ji(await this.kvGet(g.key))&&await this.kv().put(g.key,g);let b={collection:ue,handle:i,original_bytes:n.length,stored_bytes:R,command:r.command,created_at:o,expires_at:p,loss:r.loss,storage_class:d,content_hash:m,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:g?.key}};await this.kv().delete(Ir(i)),await this.kv().put(a,b);let E=(await this.readRedDbIndex()).records.filter(T=>T.handle!==i);return E.push({handle:i,key:a,bytes:R,raw_bytes:n.length,command:r.command,created_at:o,expires_at:p,storage_class:d,blob_key:g?.key}),await this.pruneRedDb({version:1,records:E},!0),await this.assertRedDbMintPersisted(i,R),i}async getRedDb(t){if(!Ns(t))return null;let r=await this.kvGet(Ir(t));if(Bi(r))return r;let n=await this.kvGet(rr(t));if(!Fs(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:rr(n.handle),bytes:$l(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:$s(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:$s(n)}:null}async statsRedDb(){let t=await this.pruneRedDb(await this.readRedDbIndex());return{records:t.records.length,bytes:Lr(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:Al(t.records)}}async recoveryHandlesRedDb(t){let r=await this.pruneRedDb(await this.readRedDbIndex());return Pl(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=ow(r);return await this.memoryRecallRedDb(n.query,n.limit)}if(t==="ingest"){let n=iw(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 aw(t.cwd,t.maxFiles??200,t.ignore??[]),n=0;for(let s of r){let i=(await KP(s,"utf8").catch(()=>"")).trim();if(!i)continue;let a=zP(s),c=JP("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=>cw(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(`
107
+ `),diagnostics:{vector:{status:"unavailable",candidates:0,contributed:0,reason:"resident-basic-recall"}}}}async readRedDbIndex(){let t=await this.kvGet(Ni());return Fl(t)?t:{version:1,records:[]}}async writeRedDbIndex(t){await this.kv().put(Ni(),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=Lr(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=Lr(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 od(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 Ws(o,{force:!0}),await Ws(i,{force:!0});let a=await zi(`file://${o}`);try{for(let u of n){await a.query(`CREATE KV IF NOT EXISTS ${Zb(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 od(o).then(u=>u.size,()=>0);if(c===0||c>this.opts.byteBudget||c>=r){await Ws(o,{force:!0});return}await this.db.close(),this.db=void 0;try{await sd(this.path,i),await sd(o,this.path),await Ws(i,{force:!0})}catch(u){throw!Gw(this.path)&&Gw(i)&&await sd(i,this.path),await Ws(o,{force:!0}),u}finally{this.db=await zi(`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:Ni(),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(Ir(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(rr(t));if(!Fs(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 Nw={};K(Nw,{DEFAULT_RSP_BYTE_BUDGET:()=>tt,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>et,DEFAULT_RSP_TTL_DAYS:()=>Ze,RSP_ELISION_COLLECTION:()=>ue,RspElisionStore:()=>Gr,contentHandle:()=>Ds,ensureReddbBinaryFromWarmCache:()=>Hi,provisionElisionStore:()=>Dw,storageClassForCommand:()=>Bt});var Yi=y(()=>{"use strict";Gi();qi();qi();$w()});async function Qi(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:30,s=r.getTime()-n*24*60*60*1e3,o=await jw(e,s),i=(await Js(e,Ae)).filter(P=>On(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,m=0,g=!1,R=new Map,b=new Map,h=[],E=0,T=0,O=0;for(let P of a){P.elided===!0&&l++;let j=We(P.raw_bytes),Me=We(P.emitted_bytes),St=Math.max(0,j-Me),qt=Cn(P,"raw"),C=Cn(P,"emitted"),N=Math.max(0,qt.tokens-C.tokens);g||=(P.estimated===!0||qt.estimated||C.estimated)&&N>0,d+=j,p+=Me,m+=N;let Tt=Dr(P).slice(0,10);Tt&&R.set(Tt,(R.get(Tt)??0)+N);let at=M(P.command)||"unknown",Te=b.get(at)??{command:at,invocations:0,bytes_saved:0,tokens_saved:0};Te.invocations++,Te.bytes_saved+=St,Te.tokens_saved+=N,b.set(at,Te);let ve=er(P.wrapper_ms);ve!=null&&h.push(ve),E+=We(P.store_open_count);let vt=er(P.store_elapsed_ms);vt!=null&&(T+=vt,O++)}let L=new Map,F=new Map,q=[],se=null;for(let P of u){let j=M(P.degradation_reason)||M(P.reason)||"unknown",Me=M(P.wrapper_family)||Je(M(P.command));L.set(j,(L.get(j)??0)+1),F.set(Me,(F.get(Me)??0)+1);let St=Dr(P);q.push({timestamp:St,family:Me,command:M(P.command)||"unknown",reason:j,exit_code:er(P.wrapper_exit_code),stderr_head:M(P.stderr_head)||null}),(!se||St>se.timestamp)&&(se={timestamp:St,reason:j,command:M(P.command)||"unknown"})}let re=a.length+u.length,de=c.filter(P=>P.hit===!0).length,pe=Uc(m,g),Ht=QP(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:m,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:[...R.entries()].sort(([P],[j])=>P.localeCompare(j)).map(([P,j])=>({date:P,tokens_saved:j})),top_commands:[...b.values()].sort((P,j)=>j.bytes_saved-P.bytes_saved||j.tokens_saved-P.tokens_saved||P.command.localeCompare(j.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,j)=>j[1]-P[1]||P[0].localeCompare(j[0])).map(([P,j])=>({reason:P,count:j})),by_family:[...F.entries()].sort((P,j)=>j[1]-P[1]||P[0].localeCompare(j[0])).map(([P,j])=>({family:P,count:j})),recent_failures:q.sort((P,j)=>j.timestamp.localeCompare(P.timestamp)).slice(0,20),most_recent:se},latency:{wrapper_ms_p50:xn(h,.5),wrapper_ms_p95:xn(h,.95),store_open_count_sum:E,store_elapsed_ms_sum:be(T),store_elapsed_ms_avg:O===0?null:be(T/O)},decisions:Ht}}function QP(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,We(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 id(e,t,r=new Date){let s=(await Js(e,Ce)).filter(o=>On(o)<=r.getTime()||Dr(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=Dr(i);return a&&(o==null||a<o)?a:o},null),budget:t,storage_classes:iI(s)}}async function ad(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 jw(e,i),c=a.filter(C=>M(C.event_type)!=="show"&&M(C.event_type)!=="control_holdout"&&C.control_holdout!==!0&&M(C.degradation_reason)===""),u=a.filter(C=>M(C.event_type)==="control_holdout"||C.control_holdout===!0),l=a.filter(C=>M(C.event_type)==="show"),d=a.filter(C=>M(C.degradation_reason)!==""),p=[...c,...d].map(On).filter(C=>Number.isFinite(C)&&C>0),m=p.length===0?null:Math.min(...p),g=m==null?0:Math.max(1,Math.min(n,Math.ceil((r.getTime()-m)/gI()))),R=[],b=new Map,h=new Map,E=new Map,T=new Map,O=new Map,L=new Map,F=0,q=!1,se=0,re=null,de=0,pe=0;for(let C of c){let N=Dr(C),Tt=N.slice(0,10),at=N.slice(0,16),Te=Je(M(C.command)),ve=Math.max(0,Cn(C,"raw").tokens-Cn(C,"emitted").tokens);F+=ve,q||=C.estimated===!0&&ve>0;let vt=Math.max(0,We(C.raw_bytes)-We(C.emitted_bytes)),qr=er(C.wrapper_ms);if(qr!=null){R.push(qr);let jn=b.get(Te)??[];jn.push(qr),b.set(Te,jn)}Tt&&h.set(Tt,(h.get(Tt)??0)+1),at&&E.set(at,(E.get(at)??0)+1);let Wt=lI(N);Wt&&T.set(Wt,(T.get(Wt)??0)+1);let Mn=mI(N);Mn&&O.set(Mn,(O.get(Mn)??0)+ve);let fr=L.get(Te)??{command_family:Te,invocations:0,tokens_saved:0,bytes_saved:0};fr.invocations++,fr.tokens_saved+=ve,fr.bytes_saved+=vt,L.set(Te,fr),C.elided===!0&&se++,(C.store_open_count!=null||C.store_elapsed_ms!=null)&&(de++,We(C.store_open_count)>0&&pe++),ve>0&&(!re||ve>re.tokens_saved||ve===re.tokens_saved&&vt>re.bytes_saved)&&(re={timestamp:N,command_family:Te,tokens_saved:ve,bytes_saved:vt})}let Ht=d.map(C=>({timestamp:Dr(C),command_family:Je(M(C.command)),reason:M(C.degradation_reason)||M(C.reason)||"unknown"})).sort((C,N)=>C.timestamp.localeCompare(N.timestamp)),P=new Map;for(let C of Ht)P.set(C.reason,(P.get(C.reason)??0)+1);let j=tI(Ht),Me=eI(l),St=nI([...L.values()],Me,j),qt=[...E.entries()].sort((C,N)=>N[1]-C[1]||C[0].localeCompare(N[0]))[0];return{schema_version:"red.rsp.gains.v1",window:{requested_days:n,data_days:g,since:o,until:s,label:`window: ${n}d, data: ${g}d`,empty:c.length===0&&d.length===0,invocations:c.length,degradations:d.length},latency:{global:Mw(R),by_command_family:[...b.entries()].sort((C,N)=>N[1].length-C[1].length||C[0].localeCompare(N[0])).map(([C,N])=>({command_family:C,count:N.length,...Mw(N)}))},throughput:{requests_per_day:[...h.entries()].sort(([C],[N])=>C.localeCompare(N)).map(([C,N])=>({date:C,requests:N})),active_minute_avg:E.size===0?null:be([...E.values()].reduce((C,N)=>C+N,0)/E.size),peak_minute:qt?{minute:qt[0],requests:qt[1]}:null,hour_weekday_heatmap:dI(T)},savings:{tokens:Uc(F,q),measured_control_holdout:XP(c,u),weekly_tokens_saved:fI(O),elision_rate:c.length===0?0:be(se/c.length),top_commands_by_tokens_saved:[...L.values()].sort((C,N)=>N.tokens_saved-C.tokens_saved||N.bytes_saved-C.bytes_saved||C.command_family.localeCompare(N.command_family)).slice(0,10),top_commands_by_invocation_count:[...L.values()].sort((C,N)=>N.invocations-C.invocations||N.tokens_saved-C.tokens_saved||C.command_family.localeCompare(N.command_family)).slice(0,10),single_biggest_elision:re},health:{degradation_timeline:Ht,degradations_by_reason:[...P.entries()].sort((C,N)=>N[1]-C[1]||C[0].localeCompare(N[0])).map(([C,N])=>({reason:C,count:N})),cold_boots:de===0?null:pe,warm_hits:de===0?null:Math.max(0,de-pe)},mining:{recovery_usage_by_family:Me,degradation_clusters:j,threshold_tuning_suggestions:St}}}async function jw(e,t){let r=(await Js(e,Ce)).filter(i=>On(i)>=t),n=r.some(i=>M(i.event_type)!=="show"||M(i.degradation_reason)!==""),s=(await Js(e,qe)).filter(i=>On(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:M(i.event_type)||"invocation"})),o=(await Js(e,st)).filter(i=>On(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 Cn(e,t){let r=er(e[t==="raw"?"tokens_raw":"tokens_emitted"]);if(r!=null)return{tokens:r,estimated:!1};let n=We(e[t==="raw"?"raw_bytes":"emitted_bytes"]);return{tokens:Math.ceil(n/4),estimated:n>0}}function XP(e,t){let r=oI(t.map(a=>er(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(Fw).filter(a=>a!=null),s=t.map(Fw).filter(a=>a!=null),o=n.length>0?n:s,i=o.length===0?null:be(sI(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:ZP(o,i),note:"measured from opt-in uncompressed control holdout; report proposes, it does not tune automatically"}}function Fw(e){let t=Cn(e,"raw").tokens;if(t<=0)return null;let r=Cn(e,"emitted").tokens;return Math.max(0,t-r)/t}function ZP(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 eI(e){let t=new Map;for(let r of e){let n=Je(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 tI(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:rI(r)}))}function rI(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 nI(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 sI(e){return e.reduce((t,r)=>t+r,0)/e.length}function oI(e){let t=e.filter(r=>r!=null);return t.length===0?null:Math.max(...t)}function iI(e){let t=cI();for(let r of e){if(M(r.event_type)==="show"||M(r.degradation_reason)!==""||r.elided!==!0)continue;let n=aI(r.storage_class)??Bt(M(r.command));t[n].records+=1;let s=We(r.raw_bytes);t[n].bytes+=s,t[n].raw_bytes+=s}return t}function aI(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"?e:null}function cI(){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 Js(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=>uI(n.value)).filter(n=>_n(n))}function uI(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function On(e){let t=Date.parse(Dr(e));return Number.isFinite(t)?t:0}function Dr(e){return M(e.created_at)||M(e.ts)||""}function M(e){return typeof e=="string"?e:""}function xn(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 Mw(e){return{wrapper_ms_p50:xn(e,.5),wrapper_ms_p90:xn(e,.9),wrapper_ms_p95:xn(e,.95),wrapper_ms_p99:xn(e,.99)}}function be(e){return Math.round(e*100)/100}function lI(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${pI(t.getUTCDay())}:${t.getUTCHours()}`:null}function dI(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 pI(e){return["sun","mon","tue","wed","thu","fri","sat"][e]??"unknown"}function mI(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 fI(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 gI(){return 24*60*60*1e3}var Bw=y(()=>{"use strict";Ps();Yi();Hc();Ci();wl()});var Vs={};K(Vs,{RSP_ACCOUNTING_EVENTS_COLLECTION:()=>Ce,RSP_DECISIONS_COLLECTION:()=>Ae,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:()=>st,RSP_TELEMETRY_INDEX_COLLECTION:()=>vs,RSP_TELEMETRY_INVOCATIONS_COLLECTION:()=>qe,RSP_TELEMETRY_LEGACY_SPOOL_FILE:()=>yl,RSP_TELEMETRY_SPOOL_CORRECTIONS_FILE:()=>bl,RSP_TELEMETRY_SPOOL_FILE:()=>hl,appendTelemetryEvent:()=>Cr,appendTelemetryEventSync:()=>tr,drainTelemetrySpool:()=>Tl,parseTelemetryEvent:()=>Rn,readAccountingLaneStats:()=>id,readTelemetryGainsReport:()=>ad,readTelemetryStats:()=>Qi,takeTelemetrySpool:()=>bA,telemetryLegacySpoolPath:()=>Ii,telemetrySpoolCorrectionsPath:()=>Sl,telemetrySpoolPath:()=>jt});var yt=y(()=>{"use strict";Ci();Qb();Bw()});import{existsSync as hI}from"node:fs";import{join as yI}from"node:path";function bI(){for(let e of(process.env.PATH??"").split(":"))if(e&&hI(yI(e,"rsp")))return!0;return!1}function Ks(){return bI()?["rsp"]:[process.execPath,process.argv[1]]}var cd=y(()=>{"use strict"});var Xi={};K(Xi,{parseProxyCommandLine:()=>qw,rewriteProxyCommandLine:()=>Hw,runProxy:()=>EI});import{spawn as wI}from"node:child_process";function _I(e){return/[^\w@%+=:,./-]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}async function EI(e,t){let r="",n="",s=[],o=process.hrtime.bigint();try{if(r=qw(e),process.env.RSP_PROXY_FAIL_INTERNAL==="1")throw new Error("forced proxy failure");let c=Hw(r,t.level??"lossless");n=c.commandLine,s=c.matches}catch(c){if(r)return await RI(t.telemetryRoot,r,c),await Uw(r);throw c}for(let c of s)await kI(t.telemetryRoot,c);let i=await Uw(n||r),a=Number(process.hrtime.bigint()-o)/1e6;return await Cr(t.telemetryRoot,{collection:qe,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 Hw(e,t="lossless",r=Ks()){let n=CI(e),s=[];return{commandLine:n.map((i,a)=>{if(i.kind==="operator"||OI(n,a)==="|")return i.text;let c=SI(i.text,t,r);return c?(s.push(c.match),c.text):i.text}).join(""),matches:s}}function qw(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 RI(e,t,r){await Cr(e,{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t,command_family:Je(t),decision:"failed-open",reason:"proxy-internal-error",error:r instanceof Error?r.name:typeof r})}async function kI(e,t){await Cr(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 Uw(e){let t=wI(e,{shell:!0,stdio:"inherit"}),r=$e();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)}
108
+ `),n(127)}),t.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}function SI(e,t,r){let n=e.match(/^\s*/)?.[0]??"",s=e.match(/\s*$/)?.[0]??"",o=e.trim();if(!o)return null;let i=PI(o);if(!i)return null;let a=xI(i);if(a>=i.length)return null;let c=i.slice(a),u=c.map(g=>g.value);if(Ar(u))return{text:e,match:{command:c.map(g=>g.raw).join(" "),commandFamily:Je(u.join(" ")),decision:"passed",reason:"lossless-gh-json-jq"}};let l=TI(c);if(!l)return null;let d=i.slice(0,a).map(g=>g.raw),p=t==="lossless"?[]:[`--${t}`],m=[...d,...r.map(_I),...p,...l.wrapperWords].join(" ");return{text:`${n}${m}${s}`,match:{command:c.map(g=>g.raw).join(" "),commandFamily:Je(u.join(" ")),decision:"contributed",reason:"proxy-segment",capabilityId:l.capabilityId}}}function TI(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}:vI(t,r)}function vI(e,t){return e[0]==="cat"&&e.length===2&&ud(e[1])?{capabilityId:"cat:file",wrapperWords:["cat",t[1]]}:(e[0]==="head"||e[0]==="tail")&&e.length===2&&ud(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])&&ud(e[3])?{capabilityId:`cat:${e[0]}`,wrapperWords:["cat",`--${e[0]}`,e[2],t[3]]}:null}function ud(e){return!!e&&!e.startsWith("-")}function xI(e){let t=0;for(;t<e.length&&kn(e[t].value);)t+=1;if(e[t]?.value!=="env")return t;for(t+=1;t<e.length&&kn(e[t].value);)t+=1;return t}function OI(e,t){for(let r=t+1;r<e.length;r+=1)if(e[r].kind==="operator")return e[r].text}function CI(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=AI(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 AI(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 PI(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 Zi=y(()=>{"use strict";ae();Ps();cd();yt()});function Vw(e,t={}){let r=II(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 m of new Set(p.tokens))n.set(m,(n.get(m)??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=ld(o),u=ld(i),l=ld(a),d=t.excludedByteRanges??[];return r.filter(p=>p.text.trim().length>0).filter(p=>!d.some(m=>FI(p.start,p.end,m.start,m.end))).map(p=>({line:p,score:dd(p.length,c)+dd(p.tokens.length,u)+dd(p.numbers.length===0?0:Math.max(...p.numbers.map(Math.abs)),l)+$I(p.tokens,n,r.length)+NI(p.signature,s,r.length)})).filter(p=>p.score>=(t.minScore??7)).sort((p,m)=>m.score-p.score||p.line.index-m.line.index).slice(0,t.maxOutliers??3).sort((p,m)=>p.line.index-m.line.index).map(p=>({lineNumber:p.line.index+1,score:Math.round(p.score*100)/100,text:p.line.text}))}function II(e){let t=[],r=0,n=0;for(let s of e.matchAll(/\n/g)){let o=s.index??e.length;t.push(Ww(n++,r,o,e.slice(r,o).replace(/\r$/,""))),r=o+1}return(r<e.length||e.length===0)&&t.push(Ww(n,r,e.length,e.slice(r).replace(/\r$/,""))),t}function Ww(e,t,r,n){return{index:e,start:t,end:r,text:n,signature:LI(n),tokens:GI(n),numbers:DI(n),length:n.length}}function LI(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 GI(e){return e.toLowerCase().match(/[a-z0-9_.:/-]{3,}/g)??[]}function DI(e){return[...e.matchAll(/[-+]?\d+(?:\.\d+)?/g)].map(t=>Number(t[0])).filter(t=>Number.isFinite(t))}function $I(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 NI(e,t,r){return Math.log2(r/Math.max(1,t.get(e)??r))}function ld(e){let t=Jw(e),r=Jw(e.map(n=>Math.abs(n-t)))||1;return{median:t,mad:r}}function dd(e,t){return Math.abs(e-t.median)/t.mad}function Jw(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 FI(e,t,r,n){return e<n&&r<t}var Kw=y(()=>{"use strict"});var pd={};K(pd,{DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>Nt,GIT_LOG_MACHINE_FIELDS:()=>Yw,StructuredUsageError:()=>ea,cleanStatusPayload:()=>e_,recoveryInstruction:()=>ot,renderGitContract:()=>Qw,runGitWrapper:()=>jI});import{spawn as MI}from"node:child_process";async function jI(e,t){let r=Xw(e),n=Zw(r.argv),s=await qI(n,r.argv.slice(1));return Qw(e,s,t)}async function Qw(e,t,r){let n=Xw(e);if((t.status??0)!==0||t.signal){let d=Xe(e.join(" "),t.stdout,t.stderr);return{stdout:V(d),stderr:Buffer.from(t.stderr),status:d.exitCode??1,signal:t.signal}}let s=Zw(n.argv),o;try{o=WI(s,n.argv,t.stdout,n.query)}catch(d){if(d instanceof ta)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(BI(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=uL(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 ${ot(u)}
107
109
  `;return{stdout:Buffer.from(`${$(a.payload)}
108
- ${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 tt(e){return e.startsWith("el:")?`rsp show ${e}`:e}function Lw(e){let{argv:t,query:r,full:n}=$m(e),s=t.slice(2).find(o=>o.startsWith("--rsp-"));if(s)throw new Vi(e.join(" "),s,["--full","--brief","--terse","--query"]);return{argv:t,query:r,full:n}}function sI(e,t,r,n){if(n.level==="terse")return!1;if(r||n.level==="full"||!oI(e)||n.level!=="lossless")return!0;let s=TI(n.heavyGitByteThreshold,$t);return Buffer.byteLength(t)<=s}function oI(e){return e==="diff"||e==="log"||e==="blame"||e==="show"}function Dw(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 iI(e,t){let r=t.slice(1);switch(e){case"status":return["status","--porcelain=v2","-z","-b",...r];case"log":return["log",`--format=%x1e${Iw.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 aI(e,t){let r=rI("git",iI(e,t),{stdio:["ignore","pipe","pipe"]}),n=Le();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 cI(e,t,r,n){switch(e){case"status":return uI(t,r,n);case"log":return yI(t,r,n);case"diff":return bI(t,r,n);case"commit":return nr(wI(t,r),n,["rsp git status --query <path-or-state>"]);case"push":return nr(_I(t,r),n,["rsp gh pr list --query <branch>"]);case"blame":return EI(t,r,n);case"branch":return RI(t,r,n);case"show":return kI(t,r,n)}}function uI(e,t,r){let n="",s=[],o=!1,i=!1;for(let u of lI(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=mI(u),o=!0;continue}let l=dI(u);if(l){o=!0,s.push(l);continue}let d=pI(u);d&&(o=!0,s.push(d))}if(s.length===0){if(!i||o)return $w(e.join(" "),n);throw new Ki("git-status-unparseable")}let a=Re(s,r),c=Nw(a,"state");return nr({command:e.join(" "),branch:n,rows:a,summary:hI(a.length,s.length,c,r)},r,["rsp git diff --query <path>","rsp git log --query <subject>"])}function lI(e){return e.includes("\0")?e.split("\0"):e.split(/\r?\n/)}function dI(e){if(e.startsWith("1 ")){let t=e.split(" "),r=t[1]??"..",n=t.slice(8).join(" ");return Us(n,r)}if(e.startsWith("2 ")){let t=e.split(" "),r=t[1]??"..";return Us(t.slice(9).join(" "),r)}if(e.startsWith("u ")){let t=e.split(" "),r=t[1]??"..";return Us(t.slice(10).join(" "),r)}return e.startsWith("? ")?Us(e.slice(2),"??"):null}function pI(e){if(e.length<4||e[2]!==" ")return null;let t=e.slice(0,2);return/^[ MADRCU?!][ MADRCU?!?]$/.test(t)?Us(fI(e.slice(3),t),t):null}function Us(e,t){let r=Pw(t[0]??"."),n=Pw(t[1]??".");return{path:gI(e),index:r,worktree:n,state:SI(`${r}${n}`)}}function Pw(e){return e===" "?".":e}function mI(e){let t=e.slice(3).split("...")[0]?.trim()??"";return t==="HEAD (no branch)"?"HEAD":t}function fI(e,t){if(!t.includes("R")&&!t.includes("C"))return e;let r=e.lastIndexOf(" -> ");return r>=0?e.slice(r+4):e}function gI(e){let t=e.trim();if(!t.startsWith('"')||!t.endsWith('"'))return t;try{return JSON.parse(t)}catch{return t.slice(1,-1)}}function hI(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 $w(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 yI(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 nr({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 bI(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 nr({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 wI(e,t){let r=t.split(`
109
- `)[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 _I(e,t){let r=t.split(`
110
- `).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 EI(e,t,r){let n=t.split(`
111
- `),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=Nw(i,"author");return nr({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 RI(e,t,r){let n=t.split(`
112
- `).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 nr({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 kI(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 E of i.split(`
113
- `)){let T=/^\s*(.+?)\s+\|\s+(\d+)\s+([+\-]+|Bin.*)$/.exec(E);if(!T)continue;let C=T[3]??"";g.push({path:(T[1]??"").trim(),changed:Number(T[2]??0),added:[...C].filter(G=>G==="+").length,deleted:[...C].filter(G=>G==="-").length,binary:C.startsWith("Bin")})}let f=Re(g,r),R=0,b=0,h=0;for(let E of f)R+=typeof E.changed=="number"?E.changed:0,b+=typeof E.added=="number"?E.added:0,h+=typeof E.deleted=="number"?E.deleted:0;return nr({command:e.join(" "),commit:a??"",short:c??"",author:u??"",date:l??"",subject:d??"",body_lines:p.trim()?p.trim().split(`
114
- `).length:0,files:f,summary:`${r?`${f.length}/${g.length}`:f.length} files, ${R} changed, +${b} -${h}`},r,["rsp git blame --query <author-or-path>","rsp git diff --query <path>"])}function nr(e,t,r){return t?Ot(e,r):e}function SI(e){return e==="??"?"untracked":e.includes("A")?"added":e.includes("D")?"deleted":e.includes("R")?"renamed":e.includes("M")?"modified":"changed"}function Nw(e,t){let r={};for(let n of e){let s=String(n[t]??"");r[s]=(r[s]??0)+1}return r}function TI(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function vI(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 Iw,Vi,Ki,Gr=y(()=>{"use strict";ae();J();je();zn();ct();je();Iw=["%h","%an","%as","%s"];Vi=class extends Error{constructor(r,n,s){super(`unknown flag: ${n}`);this.command=r;this.flag=n;this.validFlags=s}render(){return gm(this.command,this.flag,this.validFlags,`${this.command} --help`)}},Ki=class extends Error{constructor(r){super("git status output was not recognized; passing raw stdout through");this.reason=r}}});var cd={};K(cd,{NORMALIZATION_ALLOWLIST:()=>qw,NORMALIZE_ANSI:()=>Yi,NORMALIZE_BLANK_LINES:()=>Zi,NORMALIZE_CR_PROGRESS:()=>Qi,NORMALIZE_JSON_TOON:()=>Hw,NORMALIZE_TRAILING_WHITESPACE:()=>Xi,crushJsonArrayItems:()=>Hs,formatCodexNormalizeDecision:()=>zw,formatNormalizeDecision:()=>Kw,hookDecisionFromClaudePostExecJson:()=>Ww,hookDecisionFromCodexPostExecJson:()=>Jw,normalizeOutput:()=>ea,renderGenericJsonLane:()=>id,runClaudePostExecHook:()=>OI,runCodexPostExecHook:()=>AI,transcodeJsonToToon:()=>Uw});import{readFileSync as zi}from"node:fs";function Uw(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 od(o,a)?i.trimEnd():e}async function id(e,t={}){let r=LI(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,xI),i=Bw(t.maxItems,CI);if(!(s>i&&MI(e)>=o))return{output:$(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s};let c;try{c=(t.crusher??Hs)(n,i)}catch(R){return{output:$(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s,degradation:{reason:"json-array-crusher-failed",family:"json",stderrHead:jI(R)}}}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(`
115
- `),detected:!0,lossy:!0,totalItems:s,keptItems:u.length,handle:p}}function Hs(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=DI(e),s=new Set;n&&e.forEach((a,c)=>{ad(a)!==n&&s.add(c)});let o=$I(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 ea(e){let t=e;for(let r of qw)t=r.apply(t);return t}async function Ww(e,t){return await Vw(e,t)}async function Jw(e,t){return await Vw(e,t)}async function Vw(e,t){let r=GI(e),n=BI(r,["cwd"])||t.cwd;if(!await(t.isEnabled??II)(n))return{kind:"passthrough",reason:"disabled"};let o=UI(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??ea)(i);return c===i?{kind:"passthrough",reason:"no-change"}:{kind:"normalized",output:c}}function Kw(e){return e.kind==="normalized"?{stdout:JSON.stringify({tool_response:{output:e.output}}),status:0}:{stdout:"",status:0}}function zw(e){return{stdout:"",status:0}}async function OI(e){let t=e?zi(e,"utf8"):zi(0,"utf8"),r=await Ww(t,{cwd:process.cwd()}),n=Kw(r);return n.stdout&&process.stdout.write(n.stdout),n.status}async function AI(e){let t=e?zi(e,"utf8"):zi(0,"utf8"),r=await Jw(t,{cwd:process.cwd()}),n=zw(r);return n.stdout&&process.stdout.write(n.stdout),n.status}function PI(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&&Fw(e.charCodeAt(r));)r++;r<e.length&&r++;continue}r+=s>=32?2:1;continue}if(n===155){for(r++;r<e.length&&Fw(e.charCodeAt(r));)r++;r<e.length&&r++;continue}t+=e[r++]}return t}function Fw(e){return e>=32&&e<=63}function II(e){return De(e,process.env).enabled}function GI(e){try{let t=JSON.parse(e);return xn(t)?t:{}}catch{return{}}}function LI(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return xn(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 DI(e){let t=new Map;for(let s of e){let o=ad(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 ad(e){return Array.isArray(e)?"array":xn(e)?Object.keys(e).sort().map(t=>`${t}:${Mw(e[t])}`).join("|"):Mw(e)}function $I(e,t){let r=new Set,n=new Map;e.forEach((s,o)=>{if(!(t&&ad(s)!==t))for(let[i,a]of Yw(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 NI(s))r.add(o);for(let o of FI(s))r.add(o)}return r}function NI(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=jw(r),s=r.map(a=>Math.abs(a-n)).sort((a,c)=>a-c),o=jw(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 FI(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 Yw(e,t=""){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"?[[t||"$",e]]:Array.isArray(e)?[]:xn(e)?Object.entries(e).flatMap(([r,n])=>Yw(n,t?`${t}.${r}`:r)):[]}function Mw(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function jw(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 MI(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 jI(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 BI(e,t){let r=e;for(let n of t){if(!xn(r))return"";r=r[n]}return typeof r=="string"?r:""}function UI(e,t){let r=e[t];return xn(r)?r:null}function xn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function od(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)=>od(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)&&od(r[i],n[i]))}var Yi,Qi,Xi,Zi,Hw,xI,CI,qw,qs=y(()=>{"use strict";J();je();Yi={id:"ansi",apply:PI},Qi={id:"cr-progress",apply:e=>e.split(`
110
+ ${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 ot(e){return e.startsWith("el:")?`rsp show ${e}`:e}function Xw(e){let{argv:t,query:r,full:n}=qm(e),s=t.slice(2).find(o=>o.startsWith("--rsp-"));if(s)throw new ea(e.join(" "),s,["--full","--brief","--terse","--query"]);return{argv:t,query:r,full:n}}function BI(e,t,r,n){if(n.level==="terse")return!1;if(r||n.level==="full"||!UI(e)||n.level!=="lossless")return!0;let s=cL(n.heavyGitByteThreshold,Nt);return Buffer.byteLength(t)<=s}function UI(e){return e==="diff"||e==="log"||e==="blame"||e==="show"}function Zw(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 HI(e,t){let r=t.slice(1);switch(e){case"status":return["status","--porcelain=v2","-z","-b",...r];case"log":return["log",`--format=%x1e${Yw.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 qI(e,t){let r=MI("git",HI(e,t),{stdio:["ignore","pipe","pipe"]}),n=$e();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 WI(e,t,r,n){switch(e){case"status":return JI(t,r,n);case"log":return eL(t,r,n);case"diff":return tL(t,r,n);case"commit":return or(rL(t,r),n,["rsp git status --query <path-or-state>"]);case"push":return or(nL(t,r),n,["rsp gh pr list --query <branch>"]);case"blame":return sL(t,r,n);case"branch":return oL(t,r,n);case"show":return iL(t,r,n)}}function JI(e,t,r){let n="",s=[],o=!1,i=!1;for(let u of VI(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=YI(u),o=!0;continue}let l=KI(u);if(l){o=!0,s.push(l);continue}let d=zI(u);d&&(o=!0,s.push(d))}if(s.length===0){if(!i||o)return e_(e.join(" "),n);throw new ta("git-status-unparseable")}let a=Re(s,r),c=t_(a,"state");return or({command:e.join(" "),branch:n,rows:a,summary:ZI(a.length,s.length,c,r)},r,["rsp git diff --query <path>","rsp git log --query <subject>"])}function VI(e){return e.includes("\0")?e.split("\0"):e.split(/\r?\n/)}function KI(e){if(e.startsWith("1 ")){let t=e.split(" "),r=t[1]??"..",n=t.slice(8).join(" ");return zs(n,r)}if(e.startsWith("2 ")){let t=e.split(" "),r=t[1]??"..";return zs(t.slice(9).join(" "),r)}if(e.startsWith("u ")){let t=e.split(" "),r=t[1]??"..";return zs(t.slice(10).join(" "),r)}return e.startsWith("? ")?zs(e.slice(2),"??"):null}function zI(e){if(e.length<4||e[2]!==" ")return null;let t=e.slice(0,2);return/^[ MADRCU?!][ MADRCU?!?]$/.test(t)?zs(QI(e.slice(3),t),t):null}function zs(e,t){let r=zw(t[0]??"."),n=zw(t[1]??".");return{path:XI(e),index:r,worktree:n,state:aL(`${r}${n}`)}}function zw(e){return e===" "?".":e}function YI(e){let t=e.slice(3).split("...")[0]?.trim()??"";return t==="HEAD (no branch)"?"HEAD":t}function QI(e,t){if(!t.includes("R")&&!t.includes("C"))return e;let r=e.lastIndexOf(" -> ");return r>=0?e.slice(r+4):e}function XI(e){let t=e.trim();if(!t.startsWith('"')||!t.endsWith('"'))return t;try{return JSON.parse(t)}catch{return t.slice(1,-1)}}function ZI(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 e_(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 eL(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 or({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 tL(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 or({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 rL(e,t){let r=t.split(`
111
+ `)[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 nL(e,t){let r=t.split(`
112
+ `).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,m]=(l??"").split(":");return{flag:u??"",from:p??"",to:m??"",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 sL(e,t,r){let n=t.split(`
113
+ `),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=t_(i,"author");return or({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 oL(e,t,r){let n=t.split(`
114
+ `).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 or({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 iL(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(""),m=[];for(let E of i.split(`
115
+ `)){let T=/^\s*(.+?)\s+\|\s+(\d+)\s+([+\-]+|Bin.*)$/.exec(E);if(!T)continue;let O=T[3]??"";m.push({path:(T[1]??"").trim(),changed:Number(T[2]??0),added:[...O].filter(L=>L==="+").length,deleted:[...O].filter(L=>L==="-").length,binary:O.startsWith("Bin")})}let g=Re(m,r),R=0,b=0,h=0;for(let E of g)R+=typeof E.changed=="number"?E.changed:0,b+=typeof E.added=="number"?E.added:0,h+=typeof E.deleted=="number"?E.deleted:0;return or({command:e.join(" "),commit:a??"",short:c??"",author:u??"",date:l??"",subject:d??"",body_lines:p.trim()?p.trim().split(`
116
+ `).length:0,files:g,summary:`${r?`${g.length}/${m.length}`:g.length} files, ${R} changed, +${b} -${h}`},r,["rsp git blame --query <author-or-path>","rsp git diff --query <path>"])}function or(e,t,r){return t?At(e,r):e}function aL(e){return e==="??"?"untracked":e.includes("A")?"added":e.includes("D")?"deleted":e.includes("R")?"renamed":e.includes("M")?"modified":"changed"}function t_(e,t){let r={};for(let n of e){let s=String(n[t]??"");r[s]=(r[s]??0)+1}return r}function cL(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function uL(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 Yw,ea,ta,$r=y(()=>{"use strict";ae();W();Ue();Xn();pt();Ue();Yw=["%h","%an","%as","%s"];ea=class extends Error{constructor(r,n,s){super(`unknown flag: ${n}`);this.command=r;this.flag=n;this.validFlags=s}render(){return km(this.command,this.flag,this.validFlags,`${this.command} --help`)}},ta=class extends Error{constructor(r){super("git status output was not recognized; passing raw stdout through");this.reason=r}}});var hd={};K(hd,{NORMALIZATION_ALLOWLIST:()=>c_,NORMALIZE_ANSI:()=>na,NORMALIZE_BLANK_LINES:()=>ia,NORMALIZE_CR_PROGRESS:()=>sa,NORMALIZE_JSON_TOON:()=>a_,NORMALIZE_TRAILING_WHITESPACE:()=>oa,crushJsonArrayItems:()=>Ys,formatCodexNormalizeDecision:()=>m_,formatNormalizeDecision:()=>p_,hookDecisionFromClaudePostExecJson:()=>u_,hookDecisionFromCodexPostExecJson:()=>l_,normalizeOutput:()=>aa,renderGenericJsonLane:()=>fd,runClaudePostExecHook:()=>pL,runCodexPostExecHook:()=>mL,transcodeJsonToToon:()=>i_});import{readFileSync as ra}from"node:fs";function i_(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 md(o,a)?i.trimEnd():e}async function fd(e,t={}){let r=yL(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=o_(t.minTokens,lL),i=o_(t.maxItems,dL);if(!(s>i&&RL(e)>=o))return{output:$(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s};let c;try{c=(t.crusher??Ys)(n,i)}catch(R){return{output:$(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s,degradation:{reason:"json-array-crusher-failed",family:"json",stderrHead:kL(R)}}}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 m=p?`original: rsp show ${p}`:`original: unavailable - re-run: ${t.command??"command"}`,g=$(l).trimEnd();return{output:[d,m,g].filter(Boolean).join(`
117
+ `),detected:!0,lossy:!0,totalItems:s,keptItems:u.length,handle:p}}function Ys(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=bL(e),s=new Set;n&&e.forEach((a,c)=>{gd(a)!==n&&s.add(c)});let o=wL(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 aa(e){let t=e;for(let r of c_)t=r.apply(t);return t}async function u_(e,t){return await d_(e,t)}async function l_(e,t){return await d_(e,t)}async function d_(e,t){let r=hL(e),n=SL(r,["cwd"])||t.cwd;if(!await(t.isEnabled??gL)(n))return{kind:"passthrough",reason:"disabled"};let o=TL(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??aa)(i);return c===i?{kind:"passthrough",reason:"no-change"}:{kind:"normalized",output:c}}function p_(e){return e.kind==="normalized"?{stdout:JSON.stringify({tool_response:{output:e.output}}),status:0}:{stdout:"",status:0}}function m_(e){return{stdout:"",status:0}}async function pL(e){let t=e?ra(e,"utf8"):ra(0,"utf8"),r=await u_(t,{cwd:process.cwd()}),n=p_(r);return n.stdout&&process.stdout.write(n.stdout),n.status}async function mL(e){let t=e?ra(e,"utf8"):ra(0,"utf8"),r=await l_(t,{cwd:process.cwd()}),n=m_(r);return n.stdout&&process.stdout.write(n.stdout),n.status}function fL(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&&r_(e.charCodeAt(r));)r++;r<e.length&&r++;continue}r+=s>=32?2:1;continue}if(n===155){for(r++;r<e.length&&r_(e.charCodeAt(r));)r++;r<e.length&&r++;continue}t+=e[r++]}return t}function r_(e){return e>=32&&e<=63}function gL(e){return Ne(e,process.env).enabled}function hL(e){try{let t=JSON.parse(e);return An(t)?t:{}}catch{return{}}}function yL(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return An(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 bL(e){let t=new Map;for(let s of e){let o=gd(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 gd(e){return Array.isArray(e)?"array":An(e)?Object.keys(e).sort().map(t=>`${t}:${n_(e[t])}`).join("|"):n_(e)}function wL(e,t){let r=new Set,n=new Map;e.forEach((s,o)=>{if(!(t&&gd(s)!==t))for(let[i,a]of f_(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 _L(s))r.add(o);for(let o of EL(s))r.add(o)}return r}function _L(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=s_(r),s=r.map(a=>Math.abs(a-n)).sort((a,c)=>a-c),o=s_(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 EL(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 f_(e,t=""){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"?[[t||"$",e]]:Array.isArray(e)?[]:An(e)?Object.entries(e).flatMap(([r,n])=>f_(n,t?`${t}.${r}`:r)):[]}function n_(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function s_(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 RL(e){return Math.ceil(e.length/4)}function o_(e,t){return e==null?t:Number.isFinite(e)&&e>0?Math.floor(e):t}function kL(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 SL(e,t){let r=e;for(let n of t){if(!An(r))return"";r=r[n]}return typeof r=="string"?r:""}function TL(e,t){let r=e[t];return An(r)?r:null}function An(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function md(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)=>md(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)&&md(r[i],n[i]))}var na,sa,oa,ia,a_,lL,dL,c_,Qs=y(()=>{"use strict";W();Ue();na={id:"ansi",apply:fL},sa={id:"cr-progress",apply:e=>e.split(`
116
118
  `).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(`
117
- `)},Xi={id:"trailing-whitespace",apply:e=>e.split(`
119
+ `)},oa={id:"trailing-whitespace",apply:e=>e.split(`
118
120
  `).map(t=>t.replace(/[ \t]+$/,"")).join(`
119
- `)},Zi={id:"blank-lines",apply:e=>e.replace(/\n{3,}/g,`
121
+ `)},ia={id:"blank-lines",apply:e=>e.replace(/\n{3,}/g,`
120
122
 
121
- `)};Hw={id:"json-to-toon",apply:e=>Uw(e)},xI=200,CI=15;qw=[Yi,Qi,Xi,Zi,Hw]});var Vs={};K(Vs,{parseExecCommandLine:()=>r_,renderExecContract:()=>t_,runExecWrapper:()=>VI});import{isUtf8 as HI}from"node:buffer";import{spawn as qI}from"node:child_process";async function VI(e,t){let r=r_(e),n=await KI(r);return await t_(r,n,t)}async function t_(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=Ye(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=zI(n),i=o.kind==="text"?Buffer.from(o.text):n,a=gG(r.heavyByteThreshold,WI);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"?QI(o.text,n.length,l,r.level,e,r.anomalyScorer,r.jsonArrayCrusher):XI(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 r_(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 KI(e){let t=qI(e,{shell:!0,stdio:["inherit","pipe","pipe"]}),r=Le();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 zI(e){return HI(e)?{kind:"text",text:YI(e.toString("utf8"))}:{kind:"bytes"}}function YI(e){let t=e;for(let r of[Yi,Qi,Xi,Zi])t=r.apply(t);return t}function QI(e,t,r,n,s,o=cG,i=Hs){let c=Math.max(1,Math.floor((n==="terse"?e_:JI)/2)),u=Buffer.from(e),l=Math.max(0,u.length-c),d=aG(e,c,l,o),p=ZI(e),g=eG(p,e,u,c,l,d.kind==="ok"?d.lines:[],i),f=n_(s,p,t,fG(u),r,g.summary),R=d.kind==="failed"?{reason:"exec-anomaly-scorer-failed",family:"exec",stderrHead:u_(d.error)}:g.degradation;return{text:c_(f),degradation:R}}function XI(e,t,r,n){let s=Math.max(1,Math.floor(e_/2)),o={head_hex:e.subarray(0,s).toString("hex"),tail_hex:e.subarray(Math.max(0,e.length-s)).toString("hex")};return{text:c_(n_(n,"bytes",t,0,r,o))}}function n_(e,t,r,n,s,o){return{family:"exec",command:e,content:t,bytes:r,lines:n,summary:o,recovery:{original:tt(s)}}}function ZI(e){let t=e.trim();return t?o_(t)?"json":i_(e)?"jsonl":uG(e)?"unified-diff":a_(e)?"tabular":lG(e)?"log-like":dG(e)?"prose":"untyped":"untyped"}function eG(e,t,r,n,s,o,i=Hs){switch(e){case"json":return tG(t,i);case"jsonl":return{summary:rG(t)};case"unified-diff":return{summary:nG(t)};case"tabular":return{summary:sG(t)};case"log-like":return{summary:oG(t,o)};case"prose":return{summary:iG(t)};case"bytes":return{summary:{}};case"untyped":return{summary:s_(r,n,s,o)}}}function tG(e,t){let r=o_(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(sr),item_keys:ld(r)}}}catch(n){return{summary:Xw(r),degradation:{reason:"exec-json-array-crusher-failed",family:"exec",stderrHead:u_(n)}}}return{summary:Xw(r)}}if(Js(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,sr(o)]))}}}return{summary:{root_type:typeof r,value:sr(r)}}}function Xw(e){return{root_type:"array",items:e.length,sample:e.slice(0,5).map(sr),item_keys:ld(e)}}function rG(e){let t=i_(e)??[],r=pG(t,"level");return{records:t.length,keys:ld(t),levels:r,first:sr(t[0]),last:sr(t.at(-1))}}function nG(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 sG(e){let t=a_(e);return t?{columns:t.columns,rows:t.rows.length,sample:t.rows.slice(0,5)}:s_(Buffer.from(e),512,Math.max(0,Buffer.byteLength(e)-512),[])}function oG(e,t){let r=Ws(e);return{entries:r.length,levels:mG(r),first:Lr(r[0]??""),last:Lr(r.at(-1)??""),outliers:t.map(n=>({line:n.lineNumber,score:Number(n.score.toFixed(2)),text:Lr(n.text)}))}}function iG(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:Lr(t[0]??""),closing:Lr(t.at(-1)??"")}}function s_(e,t,r,n){let s=Zw(e.subarray(0,t)),o=Zw(e.subarray(r));return{head:s,tail:o,outliers:n.map(i=>({line:i.lineNumber,score:Number(i.score.toFixed(2)),text:Lr(i.text)}))}}function aG(e,t,r,n){try{return{kind:"ok",lines:n(e,{headBytes:t,tailStart:r})}}catch(s){return{kind:"failed",error:s}}}function cG(e,t){return Ow(e,{excludedByteRanges:[{start:0,end:t.headBytes},{start:t.tailStart,end:Buffer.byteLength(e,"utf8")}]})}function o_(e){let t=e.trim();if(!t||!/^[\[{]/.test(t))return null;try{let r=JSON.parse(t);return Js(r)||Array.isArray(r)?r:null}catch{return null}}function i_(e){let t=Ws(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 uG(e){let t=Ws(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 a_(e){let t=Ws(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 lG(e){let t=Ws(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 dG(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 Ws(e){return e.split(/\r?\n/).filter(t=>t.trim()!=="")}function ld(e){let t=new Map;for(let r of e)if(Js(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 pG(e,t){let r=new Map;for(let n of e){if(!Js(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 mG(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 sr(e){return typeof e=="string"?Lr(e):typeof e=="number"||typeof e=="boolean"||e===null?e:Array.isArray(e)?e.slice(0,5).map(sr):Js(e)?Object.fromEntries(Object.entries(e).slice(0,8).map(([t,r])=>[t,sr(r)])):String(e)}function Lr(e){let t=e.replace(/\s+/g," ").trim();return t.length<=Qw?t:`${t.slice(0,Qw-1)}\u2026`}function c_(e){let t=$(e).trimEnd(),r=H(t);if(!ud(e,r))throw new Error("exec TOON round-trip guard failed");return`${t}
122
- `}function ud(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)=>ud(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)&&ud(r[i],n[i]))}function Js(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function u_(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 Zw(e){return e.toString("utf8").replace(/�$/g,"")}function fG(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 gG(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}var WI,JI,e_,Qw,Ks=y(()=>{"use strict";ae();J();Aw();Gr();qs();ct();WI=8*1024,JI=2*1024,e_=1024,Qw=240});var la={};K(la,{RSP_WRAPPER_CAPABILITIES:()=>Qs,_testOnlyResetBinaryState:()=>vG,formatCodexHookDecision:()=>R_,formatHookDecision:()=>E_,hookDecisionFromClaudePreExecJson:()=>IG,hookDecisionFromCodexPreExecJson:()=>GG,rewriteCommand:()=>w_,rewriteTableFromCapabilities:()=>b_,runClaudePreExecHook:()=>LG,runCodexPreExecHook:()=>DG});import{accessSync as RG,constants as kG,existsSync as SG,readFileSync as ca}from"node:fs";import{fileURLToPath as TG}from"node:url";function vG(){aa=void 0,dd=!1}function xG(){let e=(process.env.PATH??"").split(":");for(let t of e)if(t)try{return RG(`${t}/rsp`,kG.X_OK),!0}catch{}return!1}function CG(e){return aa===void 0&&(aa=e()),aa}function OG(){dd||(dd=!0,process.stderr.write("rsp: entrypoint not found on PATH; run `rsp setup` to provision. See apps/rsp/docs/TROUBLESHOOTING.md\n"))}function b_(e){let t=new Map;for(let r of e)t.set(ZG(r.command),["rsp",...r.wrapper]);return t}function w_(e,t=Bs()){let r=qG(e);if(r)return r;let n=UG(e);if(!n)return ia(e,t);let s=n.tokens.map(u=>u.text);if(s.length>0&&_n(s[0]))return ia(e,t);let o=PG(n,t);if(o)return o;if(n.tokens.some(u=>u.quoted))return ia(e,t);let i=[...Qs].sort((u,l)=>l.command.length-u.command.length).find(u=>HG(s,u.command));if(!i)return ia(e,t);let a=[...t,...i.wrapper,...s.slice(i.command.length)],c=x_(n.redirectSuffix);return{kind:"rewrite",command:[...a.map(or),...c].join(" "),capabilityId:i.id}}function PG(e,t){let r=e.tokens.map(i=>i.text),n=r[0],s=x_(e.redirectSuffix),o=t.map(or);return n==="cat"&&r.length===2&&oa(r[1])?{kind:"rewrite",command:[...o,"cat",or(r[1]),...s].join(" "),capabilityId:"cat:file"}:(n==="head"||n==="tail")&&r.length===2&&oa(r[1])?{kind:"rewrite",command:[...o,"cat",`--${n}`,"10",or(r[1]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===4&&r[1]==="-n"&&/^[1-9][0-9]*$/.test(r[2])&&oa(r[3])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[2],or(r[3]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===3&&/^-[1-9][0-9]*$/.test(r[1])&&oa(r[2])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[1].slice(1),or(r[2]),...s].join(" "),capabilityId:`cat:${n}`}:null}function oa(e){return!!e&&!e.startsWith("-")}async function IG(e,t){return await __(e,t)}async function GG(e,t){return await __(e,t)}async function __(e,t){return(await md(e,t,"pre-exec")).decision}async function md(e,t,r){let n=P_(e);if(!n.ok){let f={kind:"passthrough",reason:n.reason};return{decision:f,telemetryRoot:t.cwd,event:Cn({hook:r,command:"",decision:f,reason:n.reason})}}let s=n.payload,o=rt(s,["cwd"])||rt(s,["tool_input","cwd"])||t.cwd;if(!await(t.isEnabled??$G)(o)){let f={kind:"passthrough",reason:"disabled"};return{decision:f,telemetryRoot:o,event:Cn({hook:r,command:pd(s),decision:f,reason:"disabled"})}}let a=pd(s);if(!a){let f={kind:"passthrough",reason:"missing-command"};return{decision:f,telemetryRoot:o,event:Cn({hook:r,command:a,decision:f,reason:"missing-command"})}}let c=t.rspInvocationPrefix??Bs();if(!CG(t.resolveBinary??(()=>t.rspInvocationPrefix!==void 0||c[0]!=="rsp"||xG()))){OG();let f={kind:"passthrough",reason:"binary-unresolved"};return{decision:f,telemetryRoot:o,event:Cn({hook:r,command:a,decision:f,reason:"binary-unresolved"})}}let l=process.hrtime.bigint(),p=De(o,process.env).proxyEnabled?WG(a,c):(t.rewrite??(f=>w_(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:Cn({hook:r,command:a,decision:f,reason:f.reason??"unsupported-command",decisionMs:g})}}return await FG(o,t.wakeResident??NG),{decision:p,telemetryRoot:o,event:Cn({hook:r,command:a,decision:p,reason:p.capabilityId==="proxy:universal"?"universal-proxy":"matched-capability",decisionMs:g})}}function E_(e){return e.kind==="rewrite"?k_(e.command):{stdout:"",status:0}}function R_(e){return e.kind==="rewrite"?k_(e.command):{stdout:"",status:0}}function k_(e){return{stdout:`${JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{command:e}}})}
123
- `,status:0}}async function LG(e){let t="";try{t=e?ca(e,"utf8"):ca(0,"utf8");let r=await md(t,{cwd:process.cwd()},"claude-pre-exec");ua(r.telemetryRoot,r.event);let n=r.decision;T_("claude-pre-exec",n);let s=E_(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return ua(process.cwd(),S_("claude-pre-exec",t,r)),v_("claude-pre-exec",r),0}}async function DG(e){let t="";try{t=e?ca(e,"utf8"):ca(0,"utf8");let r=await md(t,{cwd:process.cwd()},"codex-pre-exec");ua(r.telemetryRoot,r.event);let n=r.decision;T_("codex-pre-exec",n);let s=R_(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return ua(process.cwd(),S_("codex-pre-exec",t,r)),v_("codex-pre-exec",r),0}}function ua(e,t){vr(e,t).catch(()=>{})}function Cn(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:qe(t),decision:r?"contributed":"passed",reason:e.reason,capability_id:r,decision_ms:e.decisionMs}}function S_(e,t,r){let n=P_(t),s=n.ok?pd(n.payload):"";return{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:e,command:s||"unknown",command_family:qe(s),decision:"failed-open",reason:"hook-exception",error:fd(r)}}function $G(e){return De(e,process.env).enabled}async function NG(e){let t=De(e,process.env);if(!t.enabled||!BG(t))return;let r=ut(e);await Ao(r,jG(t))}async function FG(e,t){try{await Promise.resolve(t(e))}catch(r){MG(r)}}function T_(e,t){if(process.env.RSP_DEBUG==="1"){if(t.kind==="rewrite"){process.stderr.write(`rsp hook ${e}: rewrite ${t.capabilityId}
123
+ `)};a_={id:"json-to-toon",apply:e=>i_(e)},lL=200,dL=15;c_=[na,sa,oa,ia,a_]});var eo={};K(eo,{parseExecCommandLine:()=>__,renderExecContract:()=>w_,runExecWrapper:()=>AL});import{isUtf8 as vL}from"node:buffer";import{spawn as xL}from"node:child_process";async function AL(e,t){let r=__(e),n=await PL(r);return await w_(r,n,t)}async function w_(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=Xe(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=IL(n),i=o.kind==="text"?Buffer.from(o.text):n,a=XL(r.heavyByteThreshold,OL);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"?GL(o.text,n.length,l,r.level,e,r.anomalyScorer,r.jsonArrayCrusher):DL(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 __(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 PL(e){let t=xL(e,{shell:!0,stdio:["inherit","pipe","pipe"]}),r=$e();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 IL(e){return vL(e)?{kind:"text",text:LL(e.toString("utf8"))}:{kind:"bytes"}}function LL(e){let t=e;for(let r of[na,sa,oa,ia])t=r.apply(t);return t}function GL(e,t,r,n,s,o=WL,i=Ys){let c=Math.max(1,Math.floor((n==="terse"?b_:CL)/2)),u=Buffer.from(e),l=Math.max(0,u.length-c),d=qL(e,c,l,o),p=$L(e),m=NL(p,e,u,c,l,d.kind==="ok"?d.lines:[],i),g=E_(s,p,t,QL(u),r,m.summary),R=d.kind==="failed"?{reason:"exec-anomaly-scorer-failed",family:"exec",stderrHead:x_(d.error)}:m.degradation;return{text:v_(g),degradation:R}}function DL(e,t,r,n){let s=Math.max(1,Math.floor(b_/2)),o={head_hex:e.subarray(0,s).toString("hex"),tail_hex:e.subarray(Math.max(0,e.length-s)).toString("hex")};return{text:v_(E_(n,"bytes",t,0,r,o))}}function E_(e,t,r,n,s,o){return{family:"exec",command:e,content:t,bytes:r,lines:n,summary:o,recovery:{original:ot(s)}}}function $L(e){let t=e.trim();return t?k_(t)?"json":S_(e)?"jsonl":JL(e)?"unified-diff":T_(e)?"tabular":VL(e)?"log-like":KL(e)?"prose":"untyped":"untyped"}function NL(e,t,r,n,s,o,i=Ys){switch(e){case"json":return FL(t,i);case"jsonl":return{summary:ML(t)};case"unified-diff":return{summary:jL(t)};case"tabular":return{summary:BL(t)};case"log-like":return{summary:UL(t,o)};case"prose":return{summary:HL(t)};case"bytes":return{summary:{}};case"untyped":return{summary:R_(r,n,s,o)}}}function FL(e,t){let r=k_(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(ir),item_keys:bd(r)}}}catch(n){return{summary:h_(r),degradation:{reason:"exec-json-array-crusher-failed",family:"exec",stderrHead:x_(n)}}}return{summary:h_(r)}}if(Zs(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,ir(o)]))}}}return{summary:{root_type:typeof r,value:ir(r)}}}function h_(e){return{root_type:"array",items:e.length,sample:e.slice(0,5).map(ir),item_keys:bd(e)}}function ML(e){let t=S_(e)??[],r=zL(t,"level");return{records:t.length,keys:bd(t),levels:r,first:ir(t[0]),last:ir(t.at(-1))}}function jL(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 BL(e){let t=T_(e);return t?{columns:t.columns,rows:t.rows.length,sample:t.rows.slice(0,5)}:R_(Buffer.from(e),512,Math.max(0,Buffer.byteLength(e)-512),[])}function UL(e,t){let r=Xs(e);return{entries:r.length,levels:YL(r),first:Nr(r[0]??""),last:Nr(r.at(-1)??""),outliers:t.map(n=>({line:n.lineNumber,score:Number(n.score.toFixed(2)),text:Nr(n.text)}))}}function HL(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:Nr(t[0]??""),closing:Nr(t.at(-1)??"")}}function R_(e,t,r,n){let s=y_(e.subarray(0,t)),o=y_(e.subarray(r));return{head:s,tail:o,outliers:n.map(i=>({line:i.lineNumber,score:Number(i.score.toFixed(2)),text:Nr(i.text)}))}}function qL(e,t,r,n){try{return{kind:"ok",lines:n(e,{headBytes:t,tailStart:r})}}catch(s){return{kind:"failed",error:s}}}function WL(e,t){return Vw(e,{excludedByteRanges:[{start:0,end:t.headBytes},{start:t.tailStart,end:Buffer.byteLength(e,"utf8")}]})}function k_(e){let t=e.trim();if(!t||!/^[\[{]/.test(t))return null;try{let r=JSON.parse(t);return Zs(r)||Array.isArray(r)?r:null}catch{return null}}function S_(e){let t=Xs(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 JL(e){let t=Xs(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 T_(e){let t=Xs(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 VL(e){let t=Xs(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 KL(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 Xs(e){return e.split(/\r?\n/).filter(t=>t.trim()!=="")}function bd(e){let t=new Map;for(let r of e)if(Zs(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 zL(e,t){let r=new Map;for(let n of e){if(!Zs(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 YL(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 ir(e){return typeof e=="string"?Nr(e):typeof e=="number"||typeof e=="boolean"||e===null?e:Array.isArray(e)?e.slice(0,5).map(ir):Zs(e)?Object.fromEntries(Object.entries(e).slice(0,8).map(([t,r])=>[t,ir(r)])):String(e)}function Nr(e){let t=e.replace(/\s+/g," ").trim();return t.length<=g_?t:`${t.slice(0,g_-1)}\u2026`}function v_(e){let t=$(e).trimEnd(),r=H(t);if(!yd(e,r))throw new Error("exec TOON round-trip guard failed");return`${t}
124
+ `}function yd(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)=>yd(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)&&yd(r[i],n[i]))}function Zs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function x_(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 y_(e){return e.toString("utf8").replace(/�$/g,"")}function QL(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 XL(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}var OL,CL,b_,g_,to=y(()=>{"use strict";ae();W();Kw();$r();Qs();pt();OL=8*1024,CL=2*1024,b_=1024,g_=240});var ya={};K(ya,{RSP_WRAPPER_CAPABILITIES:()=>so,_testOnlyResetBinaryState:()=>uG,formatCodexHookDecision:()=>j_,formatHookDecision:()=>M_,hookDecisionFromClaudePreExecJson:()=>gG,hookDecisionFromCodexPreExecJson:()=>hG,rewriteCommand:()=>N_,rewriteTableFromCapabilities:()=>$_,runClaudePreExecHook:()=>yG,runCodexPreExecHook:()=>bG});import{accessSync as oG,constants as iG,existsSync as aG,readFileSync as ga}from"node:fs";import{fileURLToPath as cG}from"node:url";function uG(){fa=void 0,wd=!1}function lG(){let e=(process.env.PATH??"").split(":");for(let t of e)if(t)try{return oG(`${t}/rsp`,iG.X_OK),!0}catch{}return!1}function dG(e){return fa===void 0&&(fa=e()),fa}function pG(){wd||(wd=!0,process.stderr.write("rsp: entrypoint not found on PATH; run `rsp setup` to provision. See apps/rsp/docs/TROUBLESHOOTING.md\n"))}function $_(e){let t=new Map;for(let r of e)t.set($G(r.command),["rsp",...r.wrapper]);return t}function N_(e,t=Ks()){let r=xG(e);if(r)return r;let n=TG(e);if(!n)return ma(e,t);let s=n.tokens.map(u=>u.text);if(s.length>0&&kn(s[0]))return ma(e,t);let o=fG(n,t);if(o)return o;if(n.tokens.some(u=>u.quoted))return ma(e,t);let i=[...so].sort((u,l)=>l.command.length-u.command.length).find(u=>vG(s,u.command));if(!i)return ma(e,t);let a=[...t,...i.wrapper,...s.slice(i.command.length)],c=W_(n.redirectSuffix);return{kind:"rewrite",command:[...a.map(ar),...c].join(" "),capabilityId:i.id}}function fG(e,t){let r=e.tokens.map(i=>i.text),n=r[0],s=W_(e.redirectSuffix),o=t.map(ar);return n==="cat"&&r.length===2&&pa(r[1])?{kind:"rewrite",command:[...o,"cat",ar(r[1]),...s].join(" "),capabilityId:"cat:file"}:(n==="head"||n==="tail")&&r.length===2&&pa(r[1])?{kind:"rewrite",command:[...o,"cat",`--${n}`,"10",ar(r[1]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===4&&r[1]==="-n"&&/^[1-9][0-9]*$/.test(r[2])&&pa(r[3])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[2],ar(r[3]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===3&&/^-[1-9][0-9]*$/.test(r[1])&&pa(r[2])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[1].slice(1),ar(r[2]),...s].join(" "),capabilityId:`cat:${n}`}:null}function pa(e){return!!e&&!e.startsWith("-")}async function gG(e,t){return await F_(e,t)}async function hG(e,t){return await F_(e,t)}async function F_(e,t){return(await Ed(e,t,"pre-exec")).decision}async function Ed(e,t,r){let n=z_(e);if(!n.ok){let g={kind:"passthrough",reason:n.reason};return{decision:g,telemetryRoot:t.cwd,event:Pn({hook:r,command:"",decision:g,reason:n.reason})}}let s=n.payload,o=it(s,["cwd"])||it(s,["tool_input","cwd"])||t.cwd;if(!await(t.isEnabled??wG)(o)){let g={kind:"passthrough",reason:"disabled"};return{decision:g,telemetryRoot:o,event:Pn({hook:r,command:_d(s),decision:g,reason:"disabled"})}}let a=_d(s);if(!a){let g={kind:"passthrough",reason:"missing-command"};return{decision:g,telemetryRoot:o,event:Pn({hook:r,command:a,decision:g,reason:"missing-command"})}}let c=t.rspInvocationPrefix??Ks();if(!dG(t.resolveBinary??(()=>t.rspInvocationPrefix!==void 0||c[0]!=="rsp"||lG()))){pG();let g={kind:"passthrough",reason:"binary-unresolved"};return{decision:g,telemetryRoot:o,event:Pn({hook:r,command:a,decision:g,reason:"binary-unresolved"})}}let l=process.hrtime.bigint(),p=Ne(o,process.env).proxyEnabled?OG(a,c):(t.rewrite??(g=>N_(g,c)))(a),m=Number(process.hrtime.bigint()-l)/1e6;if(p.kind!=="rewrite"){let g=p.reason?p:{...p,reason:"unsupported-command"};return{decision:g,telemetryRoot:o,event:Pn({hook:r,command:a,decision:g,reason:g.reason??"unsupported-command",decisionMs:m})}}return await EG(o,t.wakeResident??_G),{decision:p,telemetryRoot:o,event:Pn({hook:r,command:a,decision:p,reason:p.capabilityId==="proxy:universal"?"universal-proxy":"matched-capability",decisionMs:m})}}function M_(e){return e.kind==="rewrite"?B_(e.command):{stdout:"",status:0}}function j_(e){return e.kind==="rewrite"?B_(e.command):{stdout:"",status:0}}function B_(e){return{stdout:`${JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{command:e}}})}
125
+ `,status:0}}async function yG(e){let t="";try{t=e?ga(e,"utf8"):ga(0,"utf8");let r=await Ed(t,{cwd:process.cwd()},"claude-pre-exec");ha(r.telemetryRoot,r.event);let n=r.decision;H_("claude-pre-exec",n);let s=M_(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return ha(process.cwd(),U_("claude-pre-exec",t,r)),q_("claude-pre-exec",r),0}}async function bG(e){let t="";try{t=e?ga(e,"utf8"):ga(0,"utf8");let r=await Ed(t,{cwd:process.cwd()},"codex-pre-exec");ha(r.telemetryRoot,r.event);let n=r.decision;H_("codex-pre-exec",n);let s=j_(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return ha(process.cwd(),U_("codex-pre-exec",t,r)),q_("codex-pre-exec",r),0}}function ha(e,t){Cr(e,t).catch(()=>{})}function Pn(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:Je(t),decision:r?"contributed":"passed",reason:e.reason,capability_id:r,decision_ms:e.decisionMs}}function U_(e,t,r){let n=z_(t),s=n.ok?_d(n.payload):"";return{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:e,command:s||"unknown",command_family:Je(s),decision:"failed-open",reason:"hook-exception",error:Rd(r)}}function wG(e){return Ne(e,process.env).enabled}async function _G(e){let t=Ne(e,process.env);if(!t.enabled||!SG(t))return;let r=mt(e);await No(r,kG(t))}async function EG(e,t){try{await Promise.resolve(t(e))}catch(r){RG(r)}}function H_(e,t){if(process.env.RSP_DEBUG==="1"){if(t.kind==="rewrite"){process.stderr.write(`rsp hook ${e}: rewrite ${t.capabilityId}
124
126
  `);return}process.stderr.write(`rsp hook ${e}: passthrough ${t.reason??"unsupported-command"}
125
- `)}}function v_(e,t){process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook ${e}: exception ${fd(t)}
126
- `)}function MG(e){Nc(e)||process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook pre-exec: resident-wake-failed ${fd(e)}
127
- `)}function fd(e){return e instanceof Error?e.name||"Error":typeof e}function jG(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 BG(e){if(!e.storeUri.startsWith("file://"))return!0;try{return SG(TG(e.storeUri))}catch{return!1}}function pd(e){return rt(e,["tool_input","command"])||rt(e,["tool_input","cmd"])||rt(e,["tool_input","args","command"])||rt(e,["input","command"])||rt(e,["input","cmd"])||rt(e,["arguments","command"])||rt(e,["arguments","cmd"])||rt(e,["command"])||rt(e,["cmd"])}function UG(e){let t=e.trim();if(!t||/[\n\r|;()$`]/.test(t))return null;let r=gd(t);if(r.length===0||r[0]?.quoted||r.some(o=>/[()$`]/.test(o.text))||r.some(o=>o.text.includes("=")&&_n(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 gd(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 HG(e,t){return e.length<t.length?!1:t.every((r,n)=>e[n]===r)}function qG(e){let t=gd(e.trim()).map(r=>r.text);return xr(t)?{kind:"passthrough",reason:AG}:null}function x_(e){return e.map(t=>t.text)}function or(e){return/[^\w@%+=:,./-]/.test(e)?hd(e):e}function WG(e,t){let r=VG(e);return r?{kind:"passthrough",reason:r}:{kind:"rewrite",command:`${t.map(or).join(" ")} proxy -- ${hd(e.trim())}`,capabilityId:"proxy:universal"}}function JG(e){if(!process.argv[1])return!1;let t=gd(e);return t[0]?.text===process.execPath&&t[1]?.text===process.argv[1]}function VG(e){let t=e.trim();if(!t)return"missing-command";if(O_(t))return"background";if(/\b(?:RSP_NO_PROXY|RED_SKILLS_RSP_NO_PROXY)=1\b/.test(t))return"opt-out";let r=ks(Rs(t)[0]??"")[0];if(r==="rsp"||JG(t))return"opt-out";if(r&&C_.has(r))return"interactive"}function ia(e,t){let r=e.trim();return KG(r)?{kind:"rewrite",command:`${t.map(or).join(" ")} exec -- ${hd(r)}`,capabilityId:"exec:compound"}:{kind:"passthrough"}}function KG(e){return!(!e||!zG(e)||!YG(e)||O_(e)||/<<-?/.test(e)||/\$\(|`/.test(e)||/[<>]/.test(e)||QG(e,"rsp")||A_(e,C_)||XG(e))}function zG(e){return/&&|[;|]/.test(e)}function O_(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 YG(e){return Rs(e).some(t=>{let r=ks(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 Rs(e).some(r=>{let n=ks(r)[0];return n?t.has(n):!1})}function QG(e,t){return A_(e,new Set([t]))}function XG(e){return Rs(e).some(t=>{let r=ks(t);return r[0]==="grep"&&r.includes("-q")})}function hd(e){return`'${e.replace(/'/g,"'\\''")}'`}function ZG(e){return e.join("\0")}function P_(e){try{let t=JSON.parse(e);return I_(t)?{ok:!0,payload:t}:{ok:!1,reason:"payload-not-object"}}catch{return{ok:!1,reason:"payload-parse-error"}}}function rt(e,t){let r=e;for(let n of t){if(!I_(r))return"";r=r[n]}return typeof r=="string"?r:""}function I_(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var aa,dd,Qs,$2,AG,C_,Xs=y(()=>{"use strict";Ss();je();lt();Kt();ed();ft();dd=!1;Qs=[{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"]}],$2=b_(Qs),AG="lossless-gh-json-jq";C_=new Set(["bash","fish","htop","less","more","nano","node","python","python3","ssh","top","vi","vim","zsh"])});var M_={};K(M_,{fastTelemetryRoot:()=>bd,isFastGitStatus:()=>da,runFastGitStatus:()=>pa});import{spawnSync as N_}from"node:child_process";import{existsSync as F_,readdirSync as cL}from"node:fs";function da(e){return e.length===2&&e[0]==="git"&&e[1]==="status"}async function pa(){if(uL(process.cwd()))return{stdout:yd(),stderr:Buffer.alloc(0),status:0,signal:null};if(N_("git",["diff-index","--quiet","HEAD","--"],{stdio:"ignore"}).status===0)return{stdout:yd(),stderr:Buffer.alloc(0),status:0,signal:null};let t=N_("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?yd():t.stdout;return{stdout:r,stderr:t.stderr,status:0,signal:t.signal,rawOutput:r}}async function bd(e){try{let{resolveResidentPaths:t}=await Promise.resolve().then(()=>(lt(),Er));return t(e).rootDir}catch{return e}}function yd(){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"})}
128
- `)}function uL(e){try{return!F_(`${e}/.git`)||F_(`${e}/.git/index`)?!1:cL(e).every(t=>t===".git")}catch{return!1}}var wd=y(()=>{"use strict";Ct()});async function An(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 U_(e,t,r,n={}){vL(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=>CL(TL[p],6)).join(`
129
- `),u=o.map(({alias:p,number:g})=>[` ${p}: ${e}(number: ${g}) {`,c," }"].join(`
130
- `)),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(`
131
- `);return{kind:e,query:d,aliases:o,labelAliases:i}}function H_(e,t){let r=On(t),n=On(r.data),s=On(n.repository),o=Array.isArray(r.errors)?r.errors.map(On):[];return e.aliases.map(({alias:i,number:a})=>{let c=s[i];if(J_(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:V_(u?.message)||"not found"}})}function q_(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: ${ar(o.nodeId)}, labelIds: ${B_(t)}, clientMutationId: ${ar(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: ${ar(o.nodeId)}, labelIds: ${B_(r)}, clientMutationId: ${ar(String(o.number))} }) { clientMutationId }`)}}),{aliases:n,query:["mutation RspEditLabels {",...s,"}"].join(`
132
- `)}}function W_(e,t){let r=t.map((s,o)=>({alias:`link${o}`,number:s.number})),n=t.map((s,o)=>` link${o}: addSubIssue(input: { issueId: ${ar(e.nodeId)}, subIssueId: ${ar(s.nodeId)}, clientMutationId: ${ar(String(s.number))} }) { clientMutationId }`);return{aliases:r,query:["mutation RspLinkSubIssues {",...n,"}"].join(`
133
- `)}}function _d(e,t){let r=On(t),n=Array.isArray(r.errors)?r.errors.map(On):[],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,V_(i.message)||"mutation failed")}return s}function vL(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 CL(e,t){let r=" ".repeat(t);return e.split(`
127
+ `)}}function q_(e,t){process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook ${e}: exception ${Rd(t)}
128
+ `)}function RG(e){qc(e)||process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook pre-exec: resident-wake-failed ${Rd(e)}
129
+ `)}function Rd(e){return e instanceof Error?e.name||"Error":typeof e}function kG(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 SG(e){if(!e.storeUri.startsWith("file://"))return!0;try{return aG(cG(e.storeUri))}catch{return!1}}function _d(e){return it(e,["tool_input","command"])||it(e,["tool_input","cmd"])||it(e,["tool_input","args","command"])||it(e,["input","command"])||it(e,["input","cmd"])||it(e,["arguments","command"])||it(e,["arguments","cmd"])||it(e,["command"])||it(e,["cmd"])}function TG(e){let t=e.trim();if(!t||/[\n\r|;()$`]/.test(t))return null;let r=kd(t);if(r.length===0||r[0]?.quoted||r.some(o=>/[()$`]/.test(o.text))||r.some(o=>o.text.includes("=")&&kn(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 kd(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 vG(e,t){return e.length<t.length?!1:t.every((r,n)=>e[n]===r)}function xG(e){let t=kd(e.trim()).map(r=>r.text);return Ar(t)?{kind:"passthrough",reason:mG}:null}function W_(e){return e.map(t=>t.text)}function ar(e){return/[^\w@%+=:,./-]/.test(e)?Sd(e):e}function OG(e,t){let r=AG(e);return r?{kind:"passthrough",reason:r}:{kind:"rewrite",command:`${t.map(ar).join(" ")} proxy -- ${Sd(e.trim())}`,capabilityId:"proxy:universal"}}function CG(e){if(!process.argv[1])return!1;let t=kd(e);return t[0]?.text===process.execPath&&t[1]?.text===process.argv[1]}function AG(e){let t=e.trim();if(!t)return"missing-command";if(V_(t))return"background";if(/\b(?:RSP_NO_PROXY|RED_SKILLS_RSP_NO_PROXY)=1\b/.test(t))return"opt-out";let r=As(Cs(t)[0]??"")[0];if(r==="rsp"||CG(t))return"opt-out";if(r&&J_.has(r))return"interactive"}function ma(e,t){let r=e.trim();return PG(r)?{kind:"rewrite",command:`${t.map(ar).join(" ")} exec -- ${Sd(r)}`,capabilityId:"exec:compound"}:{kind:"passthrough"}}function PG(e){return!(!e||!IG(e)||!LG(e)||V_(e)||/<<-?/.test(e)||/\$\(|`/.test(e)||/[<>]/.test(e)||GG(e,"rsp")||K_(e,J_)||DG(e))}function IG(e){return/&&|[;|]/.test(e)}function V_(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 LG(e){return Cs(e).some(t=>{let r=As(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 K_(e,t){return Cs(e).some(r=>{let n=As(r)[0];return n?t.has(n):!1})}function GG(e,t){return K_(e,new Set([t]))}function DG(e){return Cs(e).some(t=>{let r=As(t);return r[0]==="grep"&&r.includes("-q")})}function Sd(e){return`'${e.replace(/'/g,"'\\''")}'`}function $G(e){return e.join("\0")}function z_(e){try{let t=JSON.parse(e);return Y_(t)?{ok:!0,payload:t}:{ok:!1,reason:"payload-not-object"}}catch{return{ok:!1,reason:"payload-parse-error"}}}function it(e,t){let r=e;for(let n of t){if(!Y_(r))return"";r=r[n]}return typeof r=="string"?r:""}function Y_(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var fa,wd,so,AK,mG,J_,oo=y(()=>{"use strict";Ps();Ue();ft();Yt();cd();yt();wd=!1;so=[{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"]}],AK=$_(so),mG="lossless-gh-json-jq";J_=new Set(["bash","fish","htop","less","more","nano","node","python","python3","ssh","top","vi","vim","zsh"])});var nE={};K(nE,{fastTelemetryRoot:()=>vd,isFastGitStatus:()=>ba,runFastGitStatus:()=>wa});import{spawnSync as tE}from"node:child_process";import{existsSync as rE,readdirSync as WG}from"node:fs";function ba(e){return e.length===2&&e[0]==="git"&&e[1]==="status"}async function wa(){if(JG(process.cwd()))return{stdout:Td(),stderr:Buffer.alloc(0),status:0,signal:null};if(tE("git",["diff-index","--quiet","HEAD","--"],{stdio:"ignore"}).status===0)return{stdout:Td(),stderr:Buffer.alloc(0),status:0,signal:null};let t=tE("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?Td():t.stdout;return{stdout:r,stderr:t.stderr,status:0,signal:t.signal,rawOutput:r}}async function vd(e){try{let{resolveResidentPaths:t}=await Promise.resolve().then(()=>(ft(),kr));return t(e).rootDir}catch{return e}}function Td(){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"})}
130
+ `)}function JG(e){try{return!rE(`${e}/.git`)||rE(`${e}/.git/index`)?!1:WG(e).every(t=>t===".git")}catch{return!1}}var xd=y(()=>{"use strict";Ct()});async function Ln(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 iE(e,t,r,n={}){uD(t);let s=e==="issue"?"i":"p",o=t.map((p,m)=>({alias:`${s}${m}`,number:p})),i=(n.labelNames??[]).map((p,m)=>({alias:`l${m}`,name:p})),c=lD(["id","number",...r]).map(p=>dD(cD[p],6)).join(`
131
+ `),u=o.map(({alias:p,number:m})=>[` ${p}: ${e}(number: ${m}) {`,c," }"].join(`
132
+ `)),l=i.map(({alias:p,name:m})=>` ${p}: label(name: ${JSON.stringify(m)}) { id name }`),d=["query RspGitHubBatch($owner: String!, $repo: String!) {"," repository(owner: $owner, name: $repo) {",...u,...l," }","}"].join(`
133
+ `);return{kind:e,query:d,aliases:o,labelAliases:i}}function aE(e,t){let r=In(t),n=In(r.data),s=In(n.repository),o=Array.isArray(r.errors)?r.errors.map(In):[];return e.aliases.map(({alias:i,number:a})=>{let c=s[i];if(lE(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:dE(u?.message)||"not found"}})}function cE(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: ${ur(o.nodeId)}, labelIds: ${oE(t)}, clientMutationId: ${ur(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: ${ur(o.nodeId)}, labelIds: ${oE(r)}, clientMutationId: ${ur(String(o.number))} }) { clientMutationId }`)}}),{aliases:n,query:["mutation RspEditLabels {",...s,"}"].join(`
134
+ `)}}function uE(e,t){let r=t.map((s,o)=>({alias:`link${o}`,number:s.number})),n=t.map((s,o)=>` link${o}: addSubIssue(input: { issueId: ${ur(e.nodeId)}, subIssueId: ${ur(s.nodeId)}, clientMutationId: ${ur(String(s.number))} }) { clientMutationId }`);return{aliases:r,query:["mutation RspLinkSubIssues {",...n,"}"].join(`
135
+ `)}}function Od(e,t){let r=In(t),n=Array.isArray(r.errors)?r.errors.map(In):[],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,dE(i.message)||"mutation failed")}return s}function uD(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 lD(e){return[...new Set(e)]}function dD(e,t){let r=" ".repeat(t);return e.split(`
134
136
  `).map(n=>`${r}${n}`).join(`
135
- `)}function ar(e){return JSON.stringify(e)}function B_(e){return`[${e.map(ar).join(", ")}]`}function On(e){return J_(e)?e:{}}function J_(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function V_(e){return typeof e=="string"?e:""}var TL,K_=y(()=>{TL={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(`
136
- `),subIssues:"subIssues(first: 100) { nodes { number } }"}});import{spawn as AL,spawnSync as PL}from"node:child_process";function kd(e){return e[0]==="gh"&&["issues","prs","edit-labels","link-sub-issues"].includes(e[1]??"")}async function Q_(e,t={}){let r=WL(e),n=r.repo??t.repo??process.env.GH_REPO??VL();if(!n||!n.includes("/"))return vd(e,"repository is required; pass --repo owner/repo");let s=t.exec??KL,o=Math.max(1,Math.floor(t.restConcurrency??Y_));return r.verb==="issues"||r.verb==="prs"?await LL(r,n,s,o,e):r.verb==="edit-labels"?await $L(r,n,s,o,e):await FL(r,n,s,o,e)}async function LL(e,t,r,n,s){let o=e.verb==="issues"?"issue":"pullRequest",i=X_(e),a=[],c=[];for(let l of Td(e.numbers,100)){let d=U_(o,l,i.query),p=await Sd(r,t,d.query);if(Cd(p))return await DL(e,t,r,n,s);if(p.code!==0){c.push(p.stderr),a.push(...l.map(g=>({number:g,value:{error:Je(p)||`failed to read ${g}`},failed:!0})));continue}a.push(...H_(d,cr(p.stdout)).map(g=>({number:g.number,value:g.error?{error:g.error}:jL(e.verb,g.value??{},i.output),failed:!!g.error})))}let u=a.filter(l=>l.failed).length;return fa({command:ga(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(`
137
- `))}async function DL(e,t,r,n,s){let o=X_(e),i=e.verb==="issues"?"issues":"pulls",a=await An(e.numbers,n,async u=>{let l=await r(["api",`repos/${t}/${i}/${u}`]);if(l.code!==0)return{number:u,value:{error:Je(l)||"REST fallback failed"}};let d=ht(cr(l.stdout));if(e.verb==="prs"&&o.output.some(Z_)){let p=te(ht(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:Je(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:Je(f)||"REST commit-status fallback failed"}};d={...d,restCheckRollup:UL(ht(cr(g.stdout)),ht(cr(f.stdout)))}}return{number:u,value:BL(e.verb,d,o.output)}}),c=a.filter(u=>"error"in u.value).length;return fa({command:ga(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 $L(e,t,r,n,s){if(e.add.length===0&&e.remove.length===0)return vd(s,"pass --add and/or --remove");let o=[...new Set([...e.add,...e.remove])],[i,a]=await Promise.all([eE(e.numbers,t,r,n),An(o,n,async p=>{let g=await r(["api",`repos/${t}/labels/${encodeURIComponent(p)}`]);return{name:p,nodeId:te(ht(cr(g.stdout)).node_id),error:g.code===0?"":Je(g)}})]),c=new Map(a.map(p=>[p.name,p.nodeId])),u=o.filter(p=>!c.get(p));if(u.length>0)return In(s,e.numbers,xd(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 Td(d,100)){let g=q_(p,e.add.map(b=>c.get(b)),e.remove.map(b=>c.get(b))),f=await Sd(r,t,g.query);if(Cd(f))return await NL(e,t,r,n,s);if(f.code!==0){for(let b of p)l.set(b.number,{error:Je(f)||"label mutation failed"});continue}let R=_d(g.aliases,cr(f.stdout));for(let b of p){let E=g.aliases.filter(T=>T.number===b.number).map(T=>R.get(T.alias)).find(Boolean);l.set(b.number,E?{error:E}:{ok:!0})}}return In(s,e.numbers,tE(e.numbers,l),"graphql")}async function NL(e,t,r,n,s){let o=await An(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:Je(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:Je(c)||"failed to add labels"}}}return{number:i,value:{ok:!0}}});return In(s,e.numbers,Zs(o),"rest-fallback",n)}async function FL(e,t,r,n,s){if(e.numbers.length<2)return vd(s,"pass a parent and at least one child issue");let[o,...i]=e.numbers,a=await eE(e.numbers,t,r,n),c=a[0],u=c?.nodeId;if(!u)return In(s,i,xd(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 Td(d,100)){let g=W_({number:o,nodeId:u},p),f=await Sd(r,t,g.query);if(Cd(f))return await ML(o,i,t,r,n,s);if(f.code!==0){for(let b of p)l.set(b.number,{error:Je(f)||"sub-issue mutation failed"});continue}let R=_d(g.aliases,cr(f.stdout));for(let b of g.aliases){let h=R.get(b.alias);l.set(b.number,h?{error:h}:{ok:!0})}}return In(s,i,tE(i,l),"graphql")}async function ML(e,t,r,n,s,o){let i=await An(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:Je(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:Je(l)||"REST link failed"}}});return In(o,t,Zs(i),"rest-fallback",s)}function In(e,t,r,n,s){let o=Object.values(r).filter(i=>Gn(i)&&"error"in i).length;return fa({command:ga(e),transport:n,...n==="rest-fallback"?{degraded:"graphql-quota",concurrency:s??Y_}:{},order:[...t],issues:r,summary:`${t.length-o}/${t.length} mutated`})}function X_(e){if(e.verb==="issues"){let r=e.fields.length>0?e.fields:["title","state","labels","body"];return z_(r,IL),{output:r,query:r}}let t=e.fields.length>0?e.fields:["title","state","mergeable","checks"];return z_(t,GL),{output:t,query:t.map(r=>["checkRollup","statusCheckRollup"].includes(r)?"checks":r)}}function z_(e,t){let r=e.find(n=>!t.has(n));if(r)throw new Error(`unknown GitHub batch field: ${r}`)}function jL(e,t,r){let n={};for(let s of r)s==="labels"?n.labels=Ed(t.labels).map(o=>te(o.name)).filter(Boolean):["checks","checkRollup","statusCheckRollup"].includes(s)?n[s]=qL(t.commits):s==="state"||s==="mergeable"?n[s]=te(t[s]).toLowerCase():s!=="id"&&s!=="subIssues"&&(n[s]=rE(t[s]));return"number"in n||(n.number=Od(t.number)),n}function BL(e,t,r){let n={};for(let s of r)if(s==="labels"){let o=Array.isArray(t.labels)?t.labels.filter(Gn):[];n.labels=o.map(i=>te(i.name)).filter(Boolean)}else if(Z_(s))n[s]=ht(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]=rE(t[s]);return"number"in n||(n.number=Od(t.number)),n}function UL(e,t){let r=Array.isArray(e.check_runs)?e.check_runs.filter(Gn):[],n=Array.isArray(t.statuses)?t.statuses.filter(Gn):[],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()||HL(s.map(o=>o.state)),contexts:s}}function HL(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 Z_(e){return["checks","checkRollup","statusCheckRollup"].includes(e)}function qL(e){let t=Ed(e).at(-1),r=ht(ht(t?.commit).statusCheckRollup);return{state:te(r.state).toLowerCase(),contexts:Ed(r.contexts).map(n=>({name:te(n.name)||te(n.context),state:(te(n.conclusion)||te(n.status)||te(n.state)).toLowerCase()}))}}async function Sd(e,t,r){let[n,s]=JL(t);return await e(["api","graphql","-f",`query=${r}`,"-F",`owner=${n}`,"-F",`repo=${s}`])}async function eE(e,t,r,n){return await An(e,n,async s=>{let o=await r(["api",`repos/${t}/issues/${s}`]),i=ht(cr(o.stdout)),a=te(i.node_id),c=Od(i.id);return o.code!==0||!a?{number:s,error:Je(o)||"REST issue lookup failed"}:{number:s,nodeId:a,databaseId:c>0?c:void 0}})}function Td(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function WL(e){if(!kd(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(...Pn(e[++a]??""));else if(c.startsWith("--json="))n.push(...Pn(c.slice(7)));else if(c==="--add")s.push(...Pn(e[++a]??""));else if(c.startsWith("--add="))s.push(...Pn(c.slice(6)));else if(c==="--remove")o.push(...Pn(e[++a]??""));else if(c.startsWith("--remove="))o.push(...Pn(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 fa(e,t=0,r=""){return{stdout:Buffer.from(`${$(e)}
138
- `),stderr:Buffer.from(r),status:t,signal:null,payload:e}}function vd(e,t){return fa({command:ga(e),category:"usage",error:t,help:"rsp gh --help",exit_code:2},2)}function xd(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 tE(e,t){return xd(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}
139
- ${e.stdout}`)}function Je(e){return(e.stderr||e.stdout).trim().split(`
140
- `)[0]?.slice(0,240)??""}function cr(e){try{return e.trim()?JSON.parse(e):{}}catch{return{}}}function Ed(e){let t=ht(e).nodes;return Array.isArray(t)?t.filter(Gn):[]}function rE(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||e===null?e:""}function Od(e){let t=Number(e);return Number.isFinite(t)?t:0}function Pn(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function JL(e){let t=e.indexOf("/");return[e.slice(0,t),e.slice(t+1)]}function ga(e){return`rsp ${e.join(" ")}`}function VL(){let e=PL("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 KL(e){let t=AL("gh",e,{stdio:["ignore","pipe","pipe"]}),r=Le();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 Gn(e)?e:{}}function Gn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function te(e){return typeof e=="string"?e:""}var Y_,IL,GL,nE=y(()=>{"use strict";ae();J();K_();Y_=4,IL=new Set(["number","title","state","labels","body"]),GL=new Set(["number","title","state","mergeable","checks","checkRollup","statusCheckRollup","body"])});var Nd={};K(Nd,{renderGhContract:()=>uE,runGhWrapper:()=>eD});import{spawn as zL}from"node:child_process";async function eD(e,t){if(kd(e))return await Q_(e);let r=lE(e),n=await rD(r);return uE(e,n,t)}async function uE(e,t,r){if((t.status??0)!==0||t.signal){let g=Ye(e.join(" "),t.stdout,t.stderr);return{stdout:V(g),stderr:Buffer.from(t.stderr),status:g.exitCode??1,signal:t.signal}}let n=lE(e),s=eo(t.stdout),o=lD(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=bD(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=wD(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 ${tt(d)}
137
+ `)}function ur(e){return JSON.stringify(e)}function oE(e){return`[${e.map(ur).join(", ")}]`}function In(e){return lE(e)?e:{}}function lE(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function dE(e){return typeof e=="string"?e:""}var cD,pE=y(()=>{cD={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(`
138
+ `),subIssues:"subIssues(first: 100) { nodes { number } }"}});import{spawn as mD,spawnSync as fD}from"node:child_process";function Pd(e){return e[0]==="gh"&&["issues","prs","edit-labels","link-sub-issues"].includes(e[1]??"")}async function gE(e,t={}){let r=OD(e),n=r.repo??t.repo??process.env.GH_REPO??AD();if(!n||!n.includes("/"))return Gd(e,"repository is required; pass --repo owner/repo");let s=t.exec??PD,o=Math.max(1,Math.floor(t.restConcurrency??fE));return r.verb==="issues"||r.verb==="prs"?await yD(r,n,s,o,e):r.verb==="edit-labels"?await wD(r,n,s,o,e):await ED(r,n,s,o,e)}async function yD(e,t,r,n,s){let o=e.verb==="issues"?"issue":"pullRequest",i=hE(e),a=[],c=[];for(let l of Ld(e.numbers,100)){let d=iE(o,l,i.query),p=await Id(r,t,d.query);if($d(p))return await bD(e,t,r,n,s);if(p.code!==0){c.push(p.stderr),a.push(...l.map(m=>({number:m,value:{error:Ke(p)||`failed to read ${m}`},failed:!0})));continue}a.push(...aE(d,lr(p.stdout)).map(m=>({number:m.number,value:m.error?{error:m.error}:kD(e.verb,m.value??{},i.output),failed:!!m.error})))}let u=a.filter(l=>l.failed).length;return Ea({command:Ra(s),transport:"graphql",order:e.numbers,[e.verb]:io(a),summary:`${a.length-u}/${a.length} read`},c.length>0?1:0,c.filter(Boolean).join(`
139
+ `))}async function bD(e,t,r,n,s){let o=hE(e),i=e.verb==="issues"?"issues":"pulls",a=await Ln(e.numbers,n,async u=>{let l=await r(["api",`repos/${t}/${i}/${u}`]);if(l.code!==0)return{number:u,value:{error:Ke(l)||"REST fallback failed"}};let d=wt(lr(l.stdout));if(e.verb==="prs"&&o.output.some(yE)){let p=te(wt(d.head).sha);if(!p)return{number:u,value:{error:"REST fallback pull response omitted head SHA"}};let m=await r(["api",`repos/${t}/commits/${p}/check-runs`]);if(m.code!==0)return{number:u,value:{error:Ke(m)||"REST check-runs fallback failed"}};let g=await r(["api",`repos/${t}/commits/${p}/status`]);if(g.code!==0)return{number:u,value:{error:Ke(g)||"REST commit-status fallback failed"}};d={...d,restCheckRollup:TD(wt(lr(m.stdout)),wt(lr(g.stdout)))}}return{number:u,value:SD(e.verb,d,o.output)}}),c=a.filter(u=>"error"in u.value).length;return Ea({command:Ra(s),transport:"rest-fallback",degraded:"graphql-quota",concurrency:n,order:e.numbers,[e.verb]:io(a),summary:`${a.length-c}/${a.length} read via REST fallback`})}async function wD(e,t,r,n,s){if(e.add.length===0&&e.remove.length===0)return Gd(s,"pass --add and/or --remove");let o=[...new Set([...e.add,...e.remove])],[i,a]=await Promise.all([bE(e.numbers,t,r,n),Ln(o,n,async p=>{let m=await r(["api",`repos/${t}/labels/${encodeURIComponent(p)}`]);return{name:p,nodeId:te(wt(lr(m.stdout)).node_id),error:m.code===0?"":Ke(m)}})]),c=new Map(a.map(p=>[p.name,p.nodeId])),u=o.filter(p=>!c.get(p));if(u.length>0)return Dn(s,e.numbers,Dd(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 Ld(d,100)){let m=cE(p,e.add.map(b=>c.get(b)),e.remove.map(b=>c.get(b))),g=await Id(r,t,m.query);if($d(g))return await _D(e,t,r,n,s);if(g.code!==0){for(let b of p)l.set(b.number,{error:Ke(g)||"label mutation failed"});continue}let R=Od(m.aliases,lr(g.stdout));for(let b of p){let E=m.aliases.filter(T=>T.number===b.number).map(T=>R.get(T.alias)).find(Boolean);l.set(b.number,E?{error:E}:{ok:!0})}}return Dn(s,e.numbers,wE(e.numbers,l),"graphql")}async function _D(e,t,r,n,s){let o=await Ln(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:Ke(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:Ke(c)||"failed to add labels"}}}return{number:i,value:{ok:!0}}});return Dn(s,e.numbers,io(o),"rest-fallback",n)}async function ED(e,t,r,n,s){if(e.numbers.length<2)return Gd(s,"pass a parent and at least one child issue");let[o,...i]=e.numbers,a=await bE(e.numbers,t,r,n),c=a[0],u=c?.nodeId;if(!u)return Dn(s,i,Dd(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 Ld(d,100)){let m=uE({number:o,nodeId:u},p),g=await Id(r,t,m.query);if($d(g))return await RD(o,i,t,r,n,s);if(g.code!==0){for(let b of p)l.set(b.number,{error:Ke(g)||"sub-issue mutation failed"});continue}let R=Od(m.aliases,lr(g.stdout));for(let b of m.aliases){let h=R.get(b.alias);l.set(b.number,h?{error:h}:{ok:!0})}}return Dn(s,i,wE(i,l),"graphql")}async function RD(e,t,r,n,s,o){let i=await Ln(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:Ke(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:Ke(l)||"REST link failed"}}});return Dn(o,t,io(i),"rest-fallback",s)}function Dn(e,t,r,n,s){let o=Object.values(r).filter(i=>$n(i)&&"error"in i).length;return Ea({command:Ra(e),transport:n,...n==="rest-fallback"?{degraded:"graphql-quota",concurrency:s??fE}:{},order:[...t],issues:r,summary:`${t.length-o}/${t.length} mutated`})}function hE(e){if(e.verb==="issues"){let r=e.fields.length>0?e.fields:["title","state","labels","body"];return mE(r,gD),{output:r,query:r}}let t=e.fields.length>0?e.fields:["title","state","mergeable","checks"];return mE(t,hD),{output:t,query:t.map(r=>["checkRollup","statusCheckRollup"].includes(r)?"checks":r)}}function mE(e,t){let r=e.find(n=>!t.has(n));if(r)throw new Error(`unknown GitHub batch field: ${r}`)}function kD(e,t,r){let n={};for(let s of r)s==="labels"?n.labels=Cd(t.labels).map(o=>te(o.name)).filter(Boolean):["checks","checkRollup","statusCheckRollup"].includes(s)?n[s]=xD(t.commits):s==="state"||s==="mergeable"?n[s]=te(t[s]).toLowerCase():s!=="id"&&s!=="subIssues"&&(n[s]=_E(t[s]));return"number"in n||(n.number=Nd(t.number)),n}function SD(e,t,r){let n={};for(let s of r)if(s==="labels"){let o=Array.isArray(t.labels)?t.labels.filter($n):[];n.labels=o.map(i=>te(i.name)).filter(Boolean)}else if(yE(s))n[s]=wt(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]=_E(t[s]);return"number"in n||(n.number=Nd(t.number)),n}function TD(e,t){let r=Array.isArray(e.check_runs)?e.check_runs.filter($n):[],n=Array.isArray(t.statuses)?t.statuses.filter($n):[],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()||vD(s.map(o=>o.state)),contexts:s}}function vD(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 yE(e){return["checks","checkRollup","statusCheckRollup"].includes(e)}function xD(e){let t=Cd(e).at(-1),r=wt(wt(t?.commit).statusCheckRollup);return{state:te(r.state).toLowerCase(),contexts:Cd(r.contexts).map(n=>({name:te(n.name)||te(n.context),state:(te(n.conclusion)||te(n.status)||te(n.state)).toLowerCase()}))}}async function Id(e,t,r){let[n,s]=CD(t);return await e(["api","graphql","-f",`query=${r}`,"-F",`owner=${n}`,"-F",`repo=${s}`])}async function bE(e,t,r,n){return await Ln(e,n,async s=>{let o=await r(["api",`repos/${t}/issues/${s}`]),i=wt(lr(o.stdout)),a=te(i.node_id),c=Nd(i.id);return o.code!==0||!a?{number:s,error:Ke(o)||"REST issue lookup failed"}:{number:s,nodeId:a,databaseId:c>0?c:void 0}})}function Ld(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function OD(e){if(!Pd(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(...Gn(e[++a]??""));else if(c.startsWith("--json="))n.push(...Gn(c.slice(7)));else if(c==="--add")s.push(...Gn(e[++a]??""));else if(c.startsWith("--add="))s.push(...Gn(c.slice(6)));else if(c==="--remove")o.push(...Gn(e[++a]??""));else if(c.startsWith("--remove="))o.push(...Gn(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 Ea(e,t=0,r=""){return{stdout:Buffer.from(`${$(e)}
140
+ `),stderr:Buffer.from(r),status:t,signal:null,payload:e}}function Gd(e,t){return Ea({command:Ra(e),category:"usage",error:t,help:"rsp gh --help",exit_code:2},2)}function Dd(e,t){return io(e.map(r=>({number:r,value:t(r)})))}function io(e){return Object.fromEntries(e.map(t=>[String(t.number),t.value]))}function wE(e,t){return Dd(e,r=>t.get(r)??{error:"mutation skipped"})}function $d(e){return e.code!==0&&/rate.?limit|rate_limit|RATE_LIMITED|quota/i.test(`${e.stderr}
141
+ ${e.stdout}`)}function Ke(e){return(e.stderr||e.stdout).trim().split(`
142
+ `)[0]?.slice(0,240)??""}function lr(e){try{return e.trim()?JSON.parse(e):{}}catch{return{}}}function Cd(e){let t=wt(e).nodes;return Array.isArray(t)?t.filter($n):[]}function _E(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||e===null?e:""}function Nd(e){let t=Number(e);return Number.isFinite(t)?t:0}function Gn(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function CD(e){let t=e.indexOf("/");return[e.slice(0,t),e.slice(t+1)]}function Ra(e){return`rsp ${e.join(" ")}`}function AD(){let e=fD("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 PD(e){let t=mD("gh",e,{stdio:["ignore","pipe","pipe"]}),r=$e();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 wt(e){return $n(e)?e:{}}function $n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function te(e){return typeof e=="string"?e:""}var fE,gD,hD,EE=y(()=>{"use strict";ae();W();pE();fE=4,gD=new Set(["number","title","state","labels","body"]),hD=new Set(["number","title","state","mergeable","checks","checkRollup","statusCheckRollup","body"])});var Wd={};K(Wd,{renderGhContract:()=>xE,runGhWrapper:()=>ND});import{spawn as ID}from"node:child_process";async function ND(e,t){if(Pd(e))return await gE(e);let r=OE(e),n=await MD(r);return xE(e,n,t)}async function xE(e,t,r){if((t.status??0)!==0||t.signal){let m=Xe(e.join(" "),t.stdout,t.stderr);return{stdout:V(m),stderr:Buffer.from(t.stderr),status:m.exitCode??1,signal:t.signal}}let n=OE(e),s=ao(t.stdout),o=VD(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=t$(o);if(i){if(!r.store)throw new Error("truncated gh output requires an elision store");let m=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=m}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=r$(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 ${ot(d)}
141
143
  `;return{stdout:Buffer.from(`${$(u.payload)}
142
- ${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 lE(e){let t=Kn(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=oE(l[++g]??""):f.startsWith("--fields=")?u=oE(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 tD(p),p}function sE(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?QL[t]:YL[t];return[e.kind,e.action,...e.passthrough,"--json",r.join(",")]}function oE(e){return new Set(e.split(",").map(t=>t.trim()).filter(Boolean))}function tD(e){if(e.fields.size===0)return;if(e.action!=="list")throw new ha(e,"--fields is supported for list outputs");let t=`${e.kind}:list`,r=ZL[t];for(let n of e.fields)if(!r.includes(n))throw new ha(e,`unknown field: ${n}`,r)}async function rD(e){if(e.action==="combined")return await nD(e);let t=sD(e);if(!t)return await uD(sE(e));let r=await xe({...t,command:["gh",...sE(e)].join(" ")});return r.status!==0?{stdout:r.stdout,stderr:r.stderr,status:r.status,signal:null}:{stdout:JSON.stringify(await oD(e,r.stdout)),stderr:r.stderr,status:0,signal:null}}async function nD(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=pE(eo(r.stdout));return{stdout:JSON.stringify({view:i,checks:[],comments:{comments:$e(eo(s.stdout)).map(aD)}}),stderr:[r.stderr,n.stderr,s.stderr].filter(Boolean).join(""),status:0,signal:null}}function sD(e){let t=mE(e.passthrough),r=cD(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 oD(e,t){let r=eo(t);switch(`${e.kind}:${e.action}`){case"pr:list":return $e(r).map(dE);case"pr:view":return pE(r);case"issue:list":return $e(r).filter(n=>!Nr(n.pull_request)).map(iE);case"issue:view":return iE(r);case"run:list":return{items:$e(Y(r).workflow_runs).map(aE),total:Pe(Y(r),"total_count")};case"run:view":{let n=aE(r),s=mE(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(eo(o.stdout)).jobs).map(iD):[]}}default:return r}}function dE(e){let t=Y(e);return{number:Pe(t,"number"),title:L(t,"title"),state:L(t,"state").toUpperCase(),isDraft:!!t.draft,author:Dd(t.user),labels:$e(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 pE(e){return dE(e)}function iE(e){let t=Y(e);return{number:Pe(t,"number"),title:L(t,"title"),state:L(t,"state").toUpperCase(),labels:$e(t.labels).map(r=>({name:L(r,"name")})),author:Dd(t.user),url:L(t,"html_url"),updatedAt:L(t,"updated_at"),body:L(t,"body")}}function aE(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 iD(e){let t=Y(e);return{name:L(t,"name"),status:L(t,"status").toUpperCase(),conclusion:L(t,"conclusion").toUpperCase(),log:""}}function aD(e){let t=Y(e);return{author:Dd(t.user),body:L(t,"body"),createdAt:L(t,"created_at")}}function Dd(e){let t=Y(e);return{login:L(t,"login")}}function mE(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 cD(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 uD(e){let t=zL("gh",e,{stdio:["ignore","pipe","pipe"]}),r=Le();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 lD(e,t,r){let n={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let s=Ad(r,"prs"),o=s.rows.map(c=>fE(c,e)),i=Re(o,e.query),a=Pd(i.length,o.length,s.total,e.query);return i.length===0?Id(n,e,"prs",a,["rsp gh issue list","rsp gh pr list --query <title-or-label>"]):Ln({...n,prs:i,aggregate:a,summary:`${Gd(i.length,o.length,e.query)} ${cE(i,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return Ln({...n,pr:gE(Y(r),e),summary:`PR #${Pe(Y(r),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return dD(e,t,Y(r));case"issue:list":{let s=Ad(r,"issues"),o=s.rows.map(c=>hE(c,e)),i=Re(o,e.query),a=Pd(i.length,o.length,s.total,e.query);return i.length===0?Id(n,e,"issues",a,["rsp gh issue list --state all","rsp gh issue list --query <label-or-title>"]):Ln({...n,issues:i,aggregate:a,summary:`${Gd(i.length,o.length,e.query)} ${cE(i,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return Ln({...n,issue:hD(Y(r),e),summary:`issue #${Pe(Y(r),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let s=Ad(r,"runs"),o=s.rows.map(c=>yE(c,e)),i=Re(o,e.query),a=Pd(i.length,o.length,s.total,e.query);return i.length===0?Id(n,e,"runs",a,["rsp gh run list --limit 20","rsp gh run list --query <workflow-or-status>"]):Ln({...n,runs:i,aggregate:a,summary:`${Gd(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 Ln({...n,run:yD(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 dD(e,t,r){let n=gE(Y(r.view),{...e,action:"view",wide:!0}),s=Re($e(r.checks).map(pD),e.query),o=Y(r.comments).comments,i=Re($e(o).map(mD).slice(-3),e.query);return Ot({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 pD(e){return{name:L(e,"name"),state:to(e),bucket:L(e,"bucket"),conclusion:L(e,"conclusion"),workflow:L(e,"workflow"),link:L(e,"link")}}function mD(e){return{author:wE(e.author),body:ya(e,"body",Ld,!1),created:L(e,"createdAt")}}function Ad(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 Pd(e,t,r,n){let s={returned:e};return typeof r=="number"&&r>0&&(s.total=r),n&&(s.unfiltered=t),s}function Id(e,t,r,n,s){return Ot({...e,empty:!0,scope:fD(t),[r]:[],aggregate:n,summary:`0 ${gD(t)}`},s)}function fD(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 gD(e){let t=yt(e.passthrough,"--state")??"open";return e.kind==="pr"?`${t} PRs`:e.kind==="issue"?`${t} issues`:"runs"}function fE(e,t){let r={number:Pe(e,"number"),title:L(e,"title"),state:to(e),draft:!!e.isDraft};return $d(r,e,t,["author","labels","url","updated"]),r}function gE(e,t){let r=fE(e,t);return r.body=ya(e,"body",Ld,t.full),t.wide&&(r.base=L(e,"baseRefName"),r.head=L(e,"headRefName")),r}function hE(e,t){let r={number:Pe(e,"number"),title:L(e,"title"),state:to(e),labels:bE(e.labels)};return $d(r,e,t,["author","url","updated"]),r}function hD(e,t){let r=hE(e,t);return r.body=ya(e,"body",Ld,t.full),r}function yE(e,t){let r={id:Pe(e,"databaseId"),name:L(e,"name"),status:to(e),conclusion:L(e,"conclusion")};return $d(r,e,t,["event","branch","workflow","created"]),r}function yD(e,t){let r=yE(e,t),n=$e(e.jobs).map(s=>({name:L(s,"name"),status:to(s),conclusion:L(s,"conclusion"),log:ya(s,"log",XL,t.full)}));return r.jobs=n,r}function ya(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 bD(e){let t=[e];for(;t.length>0;){let r=t.pop();if(Array.isArray(r))t.push(...r);else if(Nr(r)){if(Nr(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 wD(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 cE(e,t){return e.every(r=>r.state===t)?t:"returned"}function Gd(e,t,r){return r?`${e}/${t}`:String(e)}function Ln(e,t,r){return t.query?Ot(e,r):e}function to(e){return(L(e,"state")||L(e,"status")).toLowerCase()}function $d(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=wE(t.author):s==="labels"?e.labels=bE(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 bE(e){return Array.isArray(e)?e.map(t=>Nr(t)?L(t,"name"):String(t)).filter(Boolean):[]}function wE(e){return Nr(e)?L(e,"login"):""}function eo(e){return e.trim()?JSON.parse(e):null}function $e(e){return Array.isArray(e)?e.filter(Nr):[]}function Y(e){return Nr(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 Nr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var YL,QL,Ld,XL,ZL,ha,Fd=y(()=>{"use strict";ae();J();ei();nE();Gr();zn();ct();YL={"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"]},QL={"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"]},Ld=160,XL=160,ZL={"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"]};ha=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 Bd={};K(Bd,{renderTestContract:()=>_E,runTestWrapper:()=>SD});import{spawn as _D}from"node:child_process";async function SD(e,t){let r=Kn(e),n=await OD(r.argv);return await _E(e,n,t)}async function _E(e,t,r){let n=Kn(e),o=EE(n.argv)==="vitest"?AD(t.stdout):PD(t.stdout),i=t.status;if(!o||(i??0)!==0&&o.failed===0){let f=Ye(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 ${LD(o.durationSeconds)}`,c=Re(o.failures,n.query);if(r.level==="terse")return await TD(n.argv,t,{...o,failures:c},i,a,r,n.query);let u=[],l,d=0;for(let f of c){let R=await ID(f.excerpt,n.argv.join(" "),r.store);u.push({suite:f.suite,name:f.name,excerpt:R.text}),l??=R.handle,d+=R.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?Ot(p,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):p;return{stdout:Buffer.from($(g)),stderr:Buffer.from(t.stderr),status:jd(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 TD(e,t,r,n,s,o,i){let a=vD(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?Ot(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:jd(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),R=Buffer.byteLength(f),b=await o.store?.mint(Buffer.from(f),{command:e.join(" "),loss:{level:"terse",bytes_elided:R}});if(!b)throw new Error("terse test output requires an elision store");let E=`\u2026 elided ${d>0?`${d} failures`:"full detail"} (+${R}) \u2014 ${tt(b)}`;return{stdout:Buffer.from(`${l}
143
- ${E}`),stderr:Buffer.from(t.stderr),status:jd(t.status),signal:t.signal,payload:u,mintedHandle:b,bytesElided:R,rowsElided:d,rawOutput:Buffer.from(f)}}function jd(e){return e===0||e===null?0:1}function vD(e){let t=[],r=RD;for(let n of e.slice(0,kD)){let s=xD(n.excerpt,Math.min(ED,r));r=Math.max(0,r-Buffer.byteLength(s)),t.push({suite:n.suite,name:n.name,excerpt:s})}return t}function xD(e,t){if(t<=0)return"";let r=e.split(`
144
+ ${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 OE(e){let t=Qn(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 m=0;m<l.length;m+=1){let g=l[m]??"";g==="--full"?a=!0:g==="--wide"?c=!0:g==="--fields"?u=kE(l[++m]??""):g.startsWith("--fields=")?u=kE(g.slice(9)):i.push(g)}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 FD(p),p}function RE(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?GD[t]:LD[t];return[e.kind,e.action,...e.passthrough,"--json",r.join(",")]}function kE(e){return new Set(e.split(",").map(t=>t.trim()).filter(Boolean))}function FD(e){if(e.fields.size===0)return;if(e.action!=="list")throw new ka(e,"--fields is supported for list outputs");let t=`${e.kind}:list`,r=$D[t];for(let n of e.fields)if(!r.includes(n))throw new ka(e,`unknown field: ${n}`,r)}async function MD(e){if(e.action==="combined")return await jD(e);let t=BD(e);if(!t)return await JD(RE(e));let r=await xe({...t,command:["gh",...RE(e)].join(" ")});return r.status!==0?{stdout:r.stdout,stderr:r.stderr,status:r.status,signal:null}:{stdout:JSON.stringify(await UD(e,r.stdout)),stderr:r.stderr,status:0,signal:null}}async function jD(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=AE(ao(r.stdout));return{stdout:JSON.stringify({view:i,checks:[],comments:{comments:Fe(ao(s.stdout)).map(qD)}}),stderr:[r.stderr,n.stderr,s.stderr].filter(Boolean).join(""),status:0,signal:null}}function BD(e){let t=PE(e.passthrough),r=WD(e.passthrough,"--limit")??30,n=_t(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:_t(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 UD(e,t){let r=ao(t);switch(`${e.kind}:${e.action}`){case"pr:list":return Fe(r).map(CE);case"pr:view":return AE(r);case"issue:list":return Fe(r).filter(n=>!jr(n.pull_request)).map(SE);case"issue:view":return SE(r);case"run:list":return{items:Fe(Y(r).workflow_runs).map(TE),total:Pe(Y(r),"total_count")};case"run:view":{let n=TE(r),s=PE(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?Fe(Y(ao(o.stdout)).jobs).map(HD):[]}}default:return r}}function CE(e){let t=Y(e);return{number:Pe(t,"number"),title:G(t,"title"),state:G(t,"state").toUpperCase(),isDraft:!!t.draft,author:Hd(t.user),labels:Fe(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 AE(e){return CE(e)}function SE(e){let t=Y(e);return{number:Pe(t,"number"),title:G(t,"title"),state:G(t,"state").toUpperCase(),labels:Fe(t.labels).map(r=>({name:G(r,"name")})),author:Hd(t.user),url:G(t,"html_url"),updatedAt:G(t,"updated_at"),body:G(t,"body")}}function TE(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 HD(e){let t=Y(e);return{name:G(t,"name"),status:G(t,"status").toUpperCase(),conclusion:G(t,"conclusion").toUpperCase(),log:""}}function qD(e){let t=Y(e);return{author:Hd(t.user),body:G(t,"body"),createdAt:G(t,"created_at")}}function Hd(e){let t=Y(e);return{login:G(t,"login")}}function PE(e){return e.find(t=>!t.startsWith("-"))}function _t(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}function WD(e,t){let r=_t(e,t);if(!r)return;let n=Number(r);return Number.isFinite(n)&&n>0?n:void 0}async function JD(e){let t=ID("gh",e,{stdio:["ignore","pipe","pipe"]}),r=$e();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 VD(e,t,r){let n={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let s=Fd(r,"prs"),o=s.rows.map(c=>IE(c,e)),i=Re(o,e.query),a=Md(i.length,o.length,s.total,e.query);return i.length===0?jd(n,e,"prs",a,["rsp gh issue list","rsp gh pr list --query <title-or-label>"]):Nn({...n,prs:i,aggregate:a,summary:`${Bd(i.length,o.length,e.query)} ${vE(i,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return Nn({...n,pr:LE(Y(r),e),summary:`PR #${Pe(Y(r),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return KD(e,t,Y(r));case"issue:list":{let s=Fd(r,"issues"),o=s.rows.map(c=>GE(c,e)),i=Re(o,e.query),a=Md(i.length,o.length,s.total,e.query);return i.length===0?jd(n,e,"issues",a,["rsp gh issue list --state all","rsp gh issue list --query <label-or-title>"]):Nn({...n,issues:i,aggregate:a,summary:`${Bd(i.length,o.length,e.query)} ${vE(i,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return Nn({...n,issue:ZD(Y(r),e),summary:`issue #${Pe(Y(r),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let s=Fd(r,"runs"),o=s.rows.map(c=>DE(c,e)),i=Re(o,e.query),a=Md(i.length,o.length,s.total,e.query);return i.length===0?jd(n,e,"runs",a,["rsp gh run list --limit 20","rsp gh run list --query <workflow-or-status>"]):Nn({...n,runs:i,aggregate:a,summary:`${Bd(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 Nn({...n,run:e$(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 KD(e,t,r){let n=LE(Y(r.view),{...e,action:"view",wide:!0}),s=Re(Fe(r.checks).map(zD),e.query),o=Y(r.comments).comments,i=Re(Fe(o).map(YD).slice(-3),e.query);return At({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 zD(e){return{name:G(e,"name"),state:co(e),bucket:G(e,"bucket"),conclusion:G(e,"conclusion"),workflow:G(e,"workflow"),link:G(e,"link")}}function YD(e){return{author:NE(e.author),body:Sa(e,"body",Ud,!1),created:G(e,"createdAt")}}function Fd(e,t){if(Array.isArray(e))return{rows:Fe(e)};let r=Y(e),n=Pe(r,"total")||Pe(r,"total_count")||void 0;return Array.isArray(r.items)?{rows:Fe(r.items),total:n}:t==="runs"&&Array.isArray(r.workflow_runs)?{rows:Fe(r.workflow_runs),total:n}:{rows:[]}}function Md(e,t,r,n){let s={returned:e};return typeof r=="number"&&r>0&&(s.total=r),n&&(s.unfiltered=t),s}function jd(e,t,r,n,s){return At({...e,empty:!0,scope:QD(t),[r]:[],aggregate:n,summary:`0 ${XD(t)}`},s)}function QD(e){let t=_t(e.passthrough,"--state")??"open",r=e.query?` query=${e.query}`:"";if(e.kind==="pr")return`${t} PRs${r}`;if(e.kind==="issue"){let o=_t(e.passthrough,"--label");return`${t} issues${o?` label=${o}`:""}${r}`}let n=_t(e.passthrough,"--branch")??_t(e.passthrough,"-b"),s=_t(e.passthrough,"--workflow")??_t(e.passthrough,"-w");return`workflow runs${n?` branch=${n}`:""}${s?` workflow=${s}`:""}${r}`}function XD(e){let t=_t(e.passthrough,"--state")??"open";return e.kind==="pr"?`${t} PRs`:e.kind==="issue"?`${t} issues`:"runs"}function IE(e,t){let r={number:Pe(e,"number"),title:G(e,"title"),state:co(e),draft:!!e.isDraft};return qd(r,e,t,["author","labels","url","updated"]),r}function LE(e,t){let r=IE(e,t);return r.body=Sa(e,"body",Ud,t.full),t.wide&&(r.base=G(e,"baseRefName"),r.head=G(e,"headRefName")),r}function GE(e,t){let r={number:Pe(e,"number"),title:G(e,"title"),state:co(e),labels:$E(e.labels)};return qd(r,e,t,["author","url","updated"]),r}function ZD(e,t){let r=GE(e,t);return r.body=Sa(e,"body",Ud,t.full),r}function DE(e,t){let r={id:Pe(e,"databaseId"),name:G(e,"name"),status:co(e),conclusion:G(e,"conclusion")};return qd(r,e,t,["event","branch","workflow","created"]),r}function e$(e,t){let r=DE(e,t),n=Fe(e.jobs).map(s=>({name:G(s,"name"),status:co(s),conclusion:G(s,"conclusion"),log:Sa(s,"log",DD,t.full)}));return r.jobs=n,r}function Sa(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 t$(e){let t=[e];for(;t.length>0;){let r=t.pop();if(Array.isArray(r))t.push(...r);else if(jr(r)){if(jr(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 r$(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 vE(e,t){return e.every(r=>r.state===t)?t:"returned"}function Bd(e,t,r){return r?`${e}/${t}`:String(e)}function Nn(e,t,r){return t.query?At(e,r):e}function co(e){return(G(e,"state")||G(e,"status")).toLowerCase()}function qd(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=NE(t.author):s==="labels"?e.labels=$E(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 $E(e){return Array.isArray(e)?e.map(t=>jr(t)?G(t,"name"):String(t)).filter(Boolean):[]}function NE(e){return jr(e)?G(e,"login"):""}function ao(e){return e.trim()?JSON.parse(e):null}function Fe(e){return Array.isArray(e)?e.filter(jr):[]}function Y(e){return jr(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 jr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var LD,GD,Ud,DD,$D,ka,Jd=y(()=>{"use strict";ae();W();ai();EE();$r();Xn();pt();LD={"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"]},GD={"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"]},Ud=160,DD=160,$D={"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"]};ka=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 zd={};K(zd,{renderTestContract:()=>FE,runTestWrapper:()=>a$});import{spawn as n$}from"node:child_process";async function a$(e,t){let r=Qn(e),n=await p$(r.argv);return await FE(e,n,t)}async function FE(e,t,r){let n=Qn(e),o=ME(n.argv)==="vitest"?m$(t.stdout):f$(t.stdout),i=t.status;if(!o||(i??0)!==0&&o.failed===0){let g=Xe(e.join(" "),t.stdout,t.stderr);return{stdout:V(g),stderr:Buffer.from(t.stderr),status:g.exitCode??1,signal:t.signal}}let a=`${o.failed}/${o.total} failed \xB7 ${o.suites} suites \xB7 ${y$(o.durationSeconds)}`,c=Re(o.failures,n.query);if(r.level==="terse")return await c$(n.argv,t,{...o,failures:c},i,a,r,n.query);let u=[],l,d=0;for(let g of c){let R=await g$(g.excerpt,n.argv.join(" "),r.store);u.push({suite:g.suite,name:g.name,excerpt:R.text}),l??=R.handle,d+=R.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 m=n.query?At(p,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):p;return{stdout:Buffer.from($(m)),stderr:Buffer.from(t.stderr),status:Kd(t.status),signal:t.signal,payload:m,mintedHandle:l,bytesElided:d>0?d:void 0,rowsElided:u.length>0?Math.max(0,o.total-u.length):void 0}}async function c$(e,t,r,n,s,o,i){let a=u$(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?At(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,O)=>T.excerpt!==r.failures[O].excerpt);if(d===0&&!p)return{stdout:Buffer.from(l),stderr:Buffer.from(t.stderr),status:Kd(t.status),signal:t.signal,payload:u};let m={exit_code:n,summary:s};r.failures.length>0&&(m.failures=r.failures.map(T=>({suite:T.suite,name:T.name,excerpt:T.excerpt})));let g=$(m),R=Buffer.byteLength(g),b=await o.store?.mint(Buffer.from(g),{command:e.join(" "),loss:{level:"terse",bytes_elided:R}});if(!b)throw new Error("terse test output requires an elision store");let E=`\u2026 elided ${d>0?`${d} failures`:"full detail"} (+${R}) \u2014 ${ot(b)}`;return{stdout:Buffer.from(`${l}
145
+ ${E}`),stderr:Buffer.from(t.stderr),status:Kd(t.status),signal:t.signal,payload:u,mintedHandle:b,bytesElided:R,rowsElided:d,rawOutput:Buffer.from(g)}}function Kd(e){return e===0||e===null?0:1}function u$(e){let t=[],r=o$;for(let n of e.slice(0,i$)){let s=l$(n.excerpt,Math.min(s$,r));r=Math.max(0,r-Buffer.byteLength(s)),t.push({suite:n.suite,name:n.name,excerpt:s})}return t}function l$(e,t){if(t<=0)return"";let r=e.split(`
144
146
  `),n=r.length<=2?e:`${r[0]}
145
147
  \u2026
146
- ${r[r.length-1]}`,s=Buffer.from(n);return s.length<=t?n:s.subarray(0,t).toString("utf8").replace(/�$/,"")}function EE(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 CD(e){if(EE(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 OD(e){let t=CD(e),r=_D(t.executable,t.args,{stdio:["ignore","pipe","pipe"]}),n=Le();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 AD(e){let t=RE(e);if(!ur(t))return null;let r=Array.isArray(t.testResults)?t.testResults:[],n=[],s=lr(t.numTotalTests),o=lr(t.numFailedTests),i=DD(lr(t.startTime),lr(t.endTime));for(let a of r){if(!ur(a))continue;let c=bt(a.name)||bt(a.file)||"",u=Array.isArray(a.assertionResults)?a.assertionResults:[];for(let l of u)ur(l)&&l.status==="failed"&&n.push({suite:c,name:bt(l.fullName)||bt(l.title)||bt(l.name),excerpt:GD(l.failureMessages)||bt(l.failureMessage)})}return s||=r.reduce((a,c)=>!ur(c)||!Array.isArray(c.assertionResults)?a:a+c.assertionResults.length,0),o||=n.length,i||=r.reduce((a,c)=>ur(c)?a+lr(c.perfStats&&ur(c.perfStats)?c.perfStats.runtime:c.duration)/1e3:a,0),{failed:o,total:s,suites:r.length||1,durationSeconds:i,failures:n}}function PD(e){let t=e.split(`
147
- `).filter(Boolean).map(c=>RE(c)).filter(ur);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+=lr(c.test_count)),(c.event==="failed"||c.event==="ok")&&(s+=lr(c.failed),i+=lr(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"&&ur(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(`
148
- `)}),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 ID(e,t,r){let n=Buffer.from(e);if(n.length<=Md)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,Md).toString("utf8").replace(/\uFFFD$/,""),i=n.length-Buffer.byteLength(o);return{text:`${o}
149
- \u2026 elided ${i} bytes (+${n.length}) \u2014 ${tt(s)}`,handle:s,bytesElided:n.length}}function RE(e){try{return JSON.parse(e)}catch{return null}}function GD(e){return Array.isArray(e)?e.map(t=>String(t)).filter(Boolean).join(`
150
- `):""}function LD(e){return`${Number(e.toFixed(1))}s`}function DD(e,t){return e>0&&t>e?(t-e)/1e3:0}function lr(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function bt(e){return typeof e=="string"?e:""}function ur(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Md,ED,RD,kD,Ud=y(()=>{"use strict";ae();J();Gr();zn();ct();Md=320,ED=160,RD=Md,kD=3});var Wd={};K(Wd,{parseCatCommand:()=>qd,renderCatContract:()=>HD,runCatWrapper:()=>UD});import{isUtf8 as $D}from"node:buffer";import{readFile as ND}from"node:fs/promises";import{extname as FD}from"node:path";async function UD(e,t){let r=qd(e),n;try{n=await ND(r.file)}catch(s){let o=s instanceof Error?s.message:String(s),i=Ye(e.join(" "),"",o);return{stdout:V({...i,help:`ls ${r.file}`}),stderr:Buffer.from(`${o}
151
- `),status:1,signal:null}}return CE(n)?{stdout:n,stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:n}:await xE(e,r,n,t)}async function HD(e,t,r){if((t.status??0)!==0||t.signal){let i=Ye(e.join(" "),t.stdout,t.stderr);return{stdout:V(i),stderr:Buffer.from(t.stderr),status:i.exitCode??1,signal:t.signal}}let n=qd(e),s=Buffer.from(t.stdout,"utf8");return CE(s)?{stdout:s,stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,rawOutput:s}:{...await xE(e,n,s,r),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal}}function qd(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=vE(t[++i],Hd);continue}if(a.startsWith("--head=")||a.startsWith("--tail=")){let[c,u]=a.split("=",2);r=c.slice(2),n=vE(u,Hd);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 xE(e,t,r,n){let s=r.toString("utf8"),o=JD(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>TE(n.heavyByteThreshold,kE)||o.truncated;if(!SE(t.file)&&!i)return{stdout:Buffer.from(o.text),stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:r};let a=SE(t.file)?qD(e,t.file,r,s,n.level,o):WD(e,t.file,r,s,o),c=`${$(a)}
152
- `;if(!i&&Buffer.byteLength(c)<=TE(n.heavyByteThreshold,kE))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 ${tt(u)}
153
- `;return{stdout:Buffer.from(`${c}${l}`),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,mintedHandle:u,bytesElided:r.length,rawOutput:r}}function qD(e,t,r,n,s,o){let i=ba(n),a=s==="terse"?jD:MD,c=ba(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:VD(i),content:{head:u,tail:l,truncated:o.truncated||u.length+l.length<i.length}}}function WD(e,t,r,n,s){return{command:e.join(" "),file:t,kind:"text",bytes:r.length,lines:ba(n).length,content:ba(s.text),truncated:s.truncated}}function JD(e,t){if(t.mode==="full")return{text:e,truncated:!1};let r=e.split(`
154
- `),n=r.at(-1)==="",s=n?r.slice(0,-1):r,o=t.limit??Hd,i=t.mode==="head"?s.slice(0,o):s.slice(Math.max(0,s.length-o));return{text:`${i.join(`
148
+ ${r[r.length-1]}`,s=Buffer.from(n);return s.length<=t?n:s.subarray(0,t).toString("utf8").replace(/�$/,"")}function ME(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 d$(e){if(ME(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 p$(e){let t=d$(e),r=n$(t.executable,t.args,{stdio:["ignore","pipe","pipe"]}),n=$e();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 m$(e){let t=jE(e);if(!dr(t))return null;let r=Array.isArray(t.testResults)?t.testResults:[],n=[],s=pr(t.numTotalTests),o=pr(t.numFailedTests),i=b$(pr(t.startTime),pr(t.endTime));for(let a of r){if(!dr(a))continue;let c=Et(a.name)||Et(a.file)||"",u=Array.isArray(a.assertionResults)?a.assertionResults:[];for(let l of u)dr(l)&&l.status==="failed"&&n.push({suite:c,name:Et(l.fullName)||Et(l.title)||Et(l.name),excerpt:h$(l.failureMessages)||Et(l.failureMessage)})}return s||=r.reduce((a,c)=>!dr(c)||!Array.isArray(c.assertionResults)?a:a+c.assertionResults.length,0),o||=n.length,i||=r.reduce((a,c)=>dr(c)?a+pr(c.perfStats&&dr(c.perfStats)?c.perfStats.runtime:c.duration)/1e3:a,0),{failed:o,total:s,suites:r.length||1,durationSeconds:i,failures:n}}function f$(e){let t=e.split(`
149
+ `).filter(Boolean).map(c=>jE(c)).filter(dr);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+=pr(c.test_count)),(c.event==="failed"||c.event==="ok")&&(s+=pr(c.failed),i+=pr(c.exec_time));continue}if(c.type==="test"&&c.event==="failed"){r.push({suite:Et(c.name).split("::").slice(0,-1).join("::"),name:Et(c.name),excerpt:Et(c.stdout)});continue}if(c.reason==="compiler-message"&&dr(c.message)){let u=Et(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(`
150
+ `)}),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 g$(e,t,r){let n=Buffer.from(e);if(n.length<=Vd)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,Vd).toString("utf8").replace(/\uFFFD$/,""),i=n.length-Buffer.byteLength(o);return{text:`${o}
151
+ \u2026 elided ${i} bytes (+${n.length}) \u2014 ${ot(s)}`,handle:s,bytesElided:n.length}}function jE(e){try{return JSON.parse(e)}catch{return null}}function h$(e){return Array.isArray(e)?e.map(t=>String(t)).filter(Boolean).join(`
152
+ `):""}function y$(e){return`${Number(e.toFixed(1))}s`}function b$(e,t){return e>0&&t>e?(t-e)/1e3:0}function pr(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function Et(e){return typeof e=="string"?e:""}function dr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Vd,s$,o$,i$,Yd=y(()=>{"use strict";ae();W();$r();Xn();pt();Vd=320,s$=160,o$=Vd,i$=3});var Zd={};K(Zd,{parseCatCommand:()=>Xd,renderCatContract:()=>v$,runCatWrapper:()=>T$});import{isUtf8 as w$}from"node:buffer";import{readFile as _$}from"node:fs/promises";import{extname as E$}from"node:path";async function T$(e,t){let r=Xd(e),n;try{n=await _$(r.file)}catch(s){let o=s instanceof Error?s.message:String(s),i=Xe(e.join(" "),"",o);return{stdout:V({...i,help:`ls ${r.file}`}),stderr:Buffer.from(`${o}
153
+ `),status:1,signal:null}}return JE(n)?{stdout:n,stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:n}:await WE(e,r,n,t)}async function v$(e,t,r){if((t.status??0)!==0||t.signal){let i=Xe(e.join(" "),t.stdout,t.stderr);return{stdout:V(i),stderr:Buffer.from(t.stderr),status:i.exitCode??1,signal:t.signal}}let n=Xd(e),s=Buffer.from(t.stdout,"utf8");return JE(s)?{stdout:s,stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,rawOutput:s}:{...await WE(e,n,s,r),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal}}function Xd(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=qE(t[++i],Qd);continue}if(a.startsWith("--head=")||a.startsWith("--tail=")){let[c,u]=a.split("=",2);r=c.slice(2),n=qE(u,Qd);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 WE(e,t,r,n){let s=r.toString("utf8"),o=C$(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>HE(n.heavyByteThreshold,BE)||o.truncated;if(!UE(t.file)&&!i)return{stdout:Buffer.from(o.text),stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:r};let a=UE(t.file)?x$(e,t.file,r,s,n.level,o):O$(e,t.file,r,s,o),c=`${$(a)}
154
+ `;if(!i&&Buffer.byteLength(c)<=HE(n.heavyByteThreshold,BE))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 ${ot(u)}
155
+ `;return{stdout:Buffer.from(`${c}${l}`),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,mintedHandle:u,bytesElided:r.length,rawOutput:r}}function x$(e,t,r,n,s,o){let i=Ta(n),a=s==="terse"?k$:R$,c=Ta(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:A$(i),content:{head:u,tail:l,truncated:o.truncated||u.length+l.length<i.length}}}function O$(e,t,r,n,s){return{command:e.join(" "),file:t,kind:"text",bytes:r.length,lines:Ta(n).length,content:Ta(s.text),truncated:s.truncated}}function C$(e,t){if(t.mode==="full")return{text:e,truncated:!1};let r=e.split(`
156
+ `),n=r.at(-1)==="",s=n?r.slice(0,-1):r,o=t.limit??Qd,i=t.mode==="head"?s.slice(0,o):s.slice(Math.max(0,s.length-o));return{text:`${i.join(`
155
157
  `)}${n&&i.length>0?`
156
- `:""}`,truncated:i.length<s.length}}function VD(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&&!KD(a[1])&&t.push({kind:"method",name:a[1],line:r+1,signature:s})}return t}function ba(e){let t=e.split(`
157
- `);return t.at(-1)===""?t.slice(0,-1):t}function CE(e){return e.includes(0)||!$D(e)}function SE(e){return BD.has(FD(e).toLowerCase())}function KD(e){return["for","if","switch","while"].includes(e)}function TE(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function vE(e,t){let r=Number(e);return Number.isInteger(r)&&r>0?r:t}var kE,Hd,MD,jD,BD,Jd=y(()=>{"use strict";J();Gr();ct();kE=8*1024,Hd=10,MD=8,jD=2,BD=new Set([".c",".cc",".cpp",".cs",".go",".java",".js",".jsx",".mjs",".py",".rs",".ts",".tsx"])});var $E={};K($E,{REPO_STORE_PATH:()=>zd,mergeRspBlock:()=>GE,provisionRspRepoStore:()=>s$});import{constants as zD}from"node:fs";import{access as YD,copyFile as QD,mkdir as AE,readFile as XD,rename as ZD,writeFile as PE}from"node:fs/promises";import{dirname as e$,join as ro,resolve as t$}from"node:path";async function s$(e,t={}){let r=t$(e),n=ro(r,".red"),s=ro(n,"config.yaml"),o=ro(r,zd);await AE(n,{recursive:!0}),await AE(e$(o),{recursive:!0});let i="";try{i=await XD(s,"utf8")}catch(g){if(g.code!=="ENOENT")throw g}let a=GE(i,{enabled:!0,ttlDays:t.ttlDays??Qe,ephemeralTtlHours:t.ephemeralTtlHours??Xe,byteBudget:t.byteBudget??Ze,heavyGitByteThreshold:t.heavyGitByteThreshold??$t}),c=a!==i;c&&await PE(s,a,"utf8");let u=!await Kd(o),l=!1,d=!1;if(u){let g=ro(r,r$),f=ro(r,n$);if(await Kd(g))await ZD(g,o),d=!0;else if(await Kd(f))await QD(f,o),l=!0;else{let{provisionElisionStore:R}=await Promise.resolve().then(()=>(Hi(),ww)),b=process.env.REDDB_BIN;try{await R({uri:`file://${o}`,ttlDays:t.ttlDays??Qe,ephemeralTtlHours:t.ephemeralTtlHours??Xe,byteBudget:t.byteBudget??Ze})}finally{b===void 0?delete process.env.REDDB_BIN:process.env.REDDB_BIN=b}}}let p=o$(a,zd);return p!==a&&await PE(s,p,"utf8"),{configPath:s,storePath:o,configChanged:c||p!==a,storeCreated:u,memoryStoreMigrated:l,legacyStoreMigrated:d}}function GE(e,t){let r=["rsp:",` enabled: ${t.enabled?"true":"false"}`,` ttlDays: ${wa(t.ttlDays,Qe)}`,` ephemeralTtlHours: ${wa(t.ephemeralTtlHours,Xe)}`,` byteBudget: ${wa(t.byteBudget,Ze)}`,` heavyGitByteThreshold: ${wa(t.heavyGitByteThreshold,$t)}`],n=e===""?[]:e.replace(/\n+$/,"").split(`
158
- `),s=LE(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
+ `:""}`,truncated:i.length<s.length}}function A$(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&&!P$(a[1])&&t.push({kind:"method",name:a[1],line:r+1,signature:s})}return t}function Ta(e){let t=e.split(`
159
+ `);return t.at(-1)===""?t.slice(0,-1):t}function JE(e){return e.includes(0)||!w$(e)}function UE(e){return S$.has(E$(e).toLowerCase())}function P$(e){return["for","if","switch","while"].includes(e)}function HE(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function qE(e,t){let r=Number(e);return Number.isInteger(r)&&r>0?r:t}var BE,Qd,R$,k$,S$,ep=y(()=>{"use strict";W();$r();pt();BE=8*1024,Qd=10,R$=8,k$=2,S$=new Set([".c",".cc",".cpp",".cs",".go",".java",".js",".jsx",".mjs",".py",".rs",".ts",".tsx"])});var eR={};K(eR,{REPO_STORE_PATH:()=>np,mergeRspBlock:()=>QE,provisionRspRepoStore:()=>B$});import{constants as I$}from"node:fs";import{access as L$,copyFile as G$,mkdir as KE,readFile as D$,rename as $$,writeFile as zE}from"node:fs/promises";import{dirname as N$,join as uo,resolve as F$}from"node:path";async function B$(e,t={}){let r=F$(e),n=uo(r,".red"),s=uo(n,"config.yaml"),o=uo(r,np);await KE(n,{recursive:!0}),await KE(N$(o),{recursive:!0});let i="";try{i=await D$(s,"utf8")}catch(m){if(m.code!=="ENOENT")throw m}let a=QE(i,{enabled:!0,ttlDays:t.ttlDays??Ze,ephemeralTtlHours:t.ephemeralTtlHours??et,byteBudget:t.byteBudget??tt,heavyGitByteThreshold:t.heavyGitByteThreshold??Nt}),c=a!==i;c&&await zE(s,a,"utf8");let u=!await rp(o),l=!1,d=!1;if(u){let m=uo(r,M$),g=uo(r,j$);if(await rp(m))await $$(m,o),d=!0;else if(await rp(g))await G$(g,o),l=!0;else{let{provisionElisionStore:R}=await Promise.resolve().then(()=>(Yi(),Nw)),b=process.env.REDDB_BIN;try{await R({uri:`file://${o}`,ttlDays:t.ttlDays??Ze,ephemeralTtlHours:t.ephemeralTtlHours??et,byteBudget:t.byteBudget??tt})}finally{b===void 0?delete process.env.REDDB_BIN:process.env.REDDB_BIN=b}}}let p=U$(a,np);return p!==a&&await zE(s,p,"utf8"),{configPath:s,storePath:o,configChanged:c||p!==a,storeCreated:u,memoryStoreMigrated:l,legacyStoreMigrated:d}}function QE(e,t){let r=["rsp:",` enabled: ${t.enabled?"true":"false"}`,` ttlDays: ${va(t.ttlDays,Ze)}`,` ephemeralTtlHours: ${va(t.ephemeralTtlHours,et)}`,` byteBudget: ${va(t.byteBudget,tt)}`,` heavyGitByteThreshold: ${va(t.heavyGitByteThreshold,Nt)}`],n=e===""?[]:e.replace(/\n+$/,"").split(`
160
+ `),s=XE(n,"rsp");if(s===-1){let a=[...n];return a.length>0&&a[a.length-1].trim()!==""&&a.push(""),a.push(...r),`${a.join(`
159
161
  `)}
160
- `}let o=Yd(n,s,0);return`${[...n.slice(0,s),...r,...n.slice(o)].join(`
162
+ `}let o=sp(n,s,0);return`${[...n.slice(0,s),...r,...n.slice(o)].join(`
161
163
  `)}
162
- `}function LE(e,t){for(let r=0;r<e.length;r++){let n=e[r];if(Xd(n)&&Qd(n)===0&&DE(n)===t)return r}return-1}function Yd(e,t,r){let n=e.length;for(let s=t+1;s<e.length;s++)if(Xd(e[s])&&Qd(e[s])<=r){n=s;break}for(;n-1>t&&e[n-1].trim()==="";)n--;return n}function Qd(e){return(e.match(/^ */)?.[0]??"").length}function Xd(e){let t=e.trim();return t!==""&&!t.startsWith("#")}function DE(e){return e.replace(/^ */,"").replace(/:.*$/,"").trim()}function wa(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function o$(e,t){let r=e===""?[]:e.replace(/\n+$/,"").split(`
163
- `),n=LE(r,"plugins");if(n===-1)return e;let s=Yd(r,n,0),o=IE(r,"memory",n+1,s,2);if(o===-1)return e;let i=Yd(r,o,2),a=[...r],c=IE(a,"storePath",o+1,i,4);return c!==-1?a[c]=` storePath: ${t}`:a.splice(i,0,` storePath: ${t}`),`${a.join(`
164
+ `}function XE(e,t){for(let r=0;r<e.length;r++){let n=e[r];if(ip(n)&&op(n)===0&&ZE(n)===t)return r}return-1}function sp(e,t,r){let n=e.length;for(let s=t+1;s<e.length;s++)if(ip(e[s])&&op(e[s])<=r){n=s;break}for(;n-1>t&&e[n-1].trim()==="";)n--;return n}function op(e){return(e.match(/^ */)?.[0]??"").length}function ip(e){let t=e.trim();return t!==""&&!t.startsWith("#")}function ZE(e){return e.replace(/^ */,"").replace(/:.*$/,"").trim()}function va(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function U$(e,t){let r=e===""?[]:e.replace(/\n+$/,"").split(`
165
+ `),n=XE(r,"plugins");if(n===-1)return e;let s=sp(r,n,0),o=YE(r,"memory",n+1,s,2);if(o===-1)return e;let i=sp(r,o,2),a=[...r],c=YE(a,"storePath",o+1,i,4);return c!==-1?a[c]=` storePath: ${t}`:a.splice(i,0,` storePath: ${t}`),`${a.join(`
164
166
  `)}
165
- `}function IE(e,t,r,n,s){for(let o=r;o<n;o++){let i=e[o];if(Xd(i)&&Qd(i)===s&&DE(i)===t)return o}return-1}async function Kd(e){try{return await YD(e,zD.F_OK),!0}catch{return!1}}var zd,r$,n$,NE=y(()=>{"use strict";Ge();je();zd=au,r$=Am,n$=".red/memory/graph.rdb"});var HE={};K(HE,{runRspMcpServer:()=>a$});import{createInterface as i$}from"node:readline";async function a$(){let e=De(process.cwd(),process.env),t=i$({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 c$(n,e);jE({jsonrpc:"2.0",id:n.id??null,result:s})}catch(s){jE({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 c$(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:ME(t)}]};if(!t.enabled)return{content:[{type:"text",text:ME(t)}],isError:!0};let n=h$(t);if(r?.name==="rsp_stats")return{content:[{type:"text",text:Fr({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:Fr({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:Fr({tool:"rsp_show",handle:s,found:!0,bytes:o.original.length,text:o.original.toString("utf8")})}]}:{content:[{type:"text",text:Fr(u$(s,"not found"))}],isError:!0}}if(r?.name==="rsp_compress")return{content:[{type:"text",text:await l$(r.arguments,n)}]}}return{}}function Fr(e){return`${ne(e)}
166
- `}function u$(e,t){return{tool:"rsp_show",handle:e,found:!1,category:"real-error",error:t,help:["rsp show el:<id>"]}}async function l$(e,t){let r=p$(e?.payload);try{return await d$(r,e,t)}catch(n){if(process.env.RSP_DEBUG==="1")throw n;return UE(r)}}async function d$(e,t,r){let n=m$(t?.level),s=await id(e,{level:n,command:"rsp mcp compress",store:r});if(s.detected)return UE(s.output);let o=ea(e);if(n==="brief"&&Buffer.byteLength(o)<=2*1024)return Fr({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 f$(o,i.length,a,n)}function p$(e){return typeof e=="string"?e:e==null?"":JSON.stringify(e)}function m$(e){return e==="terse"?"terse":"brief"}function f$(e,t,r,n){let s=n==="terse"?1024:2048,o=Buffer.from(e),i=Math.max(1,Math.floor(s/2)),a=FE(o.subarray(0,i)),c=FE(o.subarray(Math.max(0,o.length-i)));return Fr({tool:"rsp_compress",level:n,detected:"text",bytes:t,lines:g$(o),head:a,tail:c&&c!==a?c:null,handle:r,help:[`rsp show ${r}`]})}function UE(e){return e.endsWith(`
167
+ `}function YE(e,t,r,n,s){for(let o=r;o<n;o++){let i=e[o];if(ip(i)&&op(i)===s&&ZE(i)===t)return o}return-1}async function rp(e){try{return await L$(e,I$.F_OK),!0}catch{return!1}}var np,M$,j$,tR=y(()=>{"use strict";De();Ue();np=fu,M$=Fm,j$=".red/memory/graph.rdb"});var aR={};K(aR,{runRspMcpServer:()=>q$});import{createInterface as H$}from"node:readline";async function q$(){let e=Ne(process.cwd(),process.env),t=H$({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 W$(n,e);sR({jsonrpc:"2.0",id:n.id??null,result:s})}catch(s){sR({jsonrpc:"2.0",id:typeof oR(r)?.id>"u"?null:oR(r)?.id,error:{code:-32e3,message:s instanceof Error?s.message:String(s)}})}}}async function W$(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:nR(t)}]};if(!t.enabled)return{content:[{type:"text",text:nR(t)}],isError:!0};let n=Z$(t);if(r?.name==="rsp_stats")return{content:[{type:"text",text:Br({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:Br({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:Br({tool:"rsp_show",handle:s,found:!0,bytes:o.original.length,text:o.original.toString("utf8")})}]}:{content:[{type:"text",text:Br(J$(s,"not found"))}],isError:!0}}if(r?.name==="rsp_compress")return{content:[{type:"text",text:await V$(r.arguments,n)}]}}return{}}function Br(e){return`${ne(e)}
168
+ `}function J$(e,t){return{tool:"rsp_show",handle:e,found:!1,category:"real-error",error:t,help:["rsp show el:<id>"]}}async function V$(e,t){let r=z$(e?.payload);try{return await K$(r,e,t)}catch(n){if(process.env.RSP_DEBUG==="1")throw n;return iR(r)}}async function K$(e,t,r){let n=Y$(t?.level),s=await fd(e,{level:n,command:"rsp mcp compress",store:r});if(s.detected)return iR(s.output);let o=aa(e);if(n==="brief"&&Buffer.byteLength(o)<=2*1024)return Br({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 Q$(o,i.length,a,n)}function z$(e){return typeof e=="string"?e:e==null?"":JSON.stringify(e)}function Y$(e){return e==="terse"?"terse":"brief"}function Q$(e,t,r,n){let s=n==="terse"?1024:2048,o=Buffer.from(e),i=Math.max(1,Math.floor(s/2)),a=rR(o.subarray(0,i)),c=rR(o.subarray(Math.max(0,o.length-i)));return Br({tool:"rsp_compress",level:n,detected:"text",bytes:t,lines:X$(o),head:a,tail:c&&c!==a?c:null,handle:r,help:[`rsp show ${r}`]})}function iR(e){return e.endsWith(`
167
169
  `)?e:`${e}
168
- `}function FE(e){return e.toString("utf8").replace(/�$/g,"")}function g$(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 h$(e){return ns(process.cwd(),e)}function ME(e){let t=e.enabled?Jt(process.cwd(),e.overhead):null;return Fr({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 jE(e){process.stdout.write(`${JSON.stringify(e)}
169
- `)}function BE(e){try{return JSON.parse(e)}catch{return null}}var qE=y(()=>{"use strict";Ct();je();ae();qs();Kt()});var JE={};K(JE,{renderShellInit:()=>y$});function y$(e,t=Qs){if(e==="fish")return b$(t);if(e==="bash"||e==="zsh")return w$(e,t);throw new Error(`unsupported shell: ${e}`)}function b$(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(Ea))].map(r=>` abbr --add --position command -- ${r} '${k$(`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(`
170
- `)}function w$(e,t){let r=E$(t);return[`# rsp shell-init ${e}`,`# Opt-in only: source this output from ${e} startup files; remove that line to restore raw commands.`,..._a("git",r.get("git")??[]),..._a("gh",r.get("gh")??[]),..._a("vitest",r.get("vitest")??[]),..._a("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(`
171
- `)}function _a(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(Ea),n=t.map(o=>o.command.slice(1)).filter(o=>o.length>1&&o.every(Ea)),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=>WE(i)).join("|");s.push(` ${o}) command rsp ${e} "$@" ;;`)}for(let[o,i]of _$(n)){let a=i.map(c=>c.map((u,l)=>`[ "$${l+2}" = '${R$(u)}' ]`).join(" && ")).join(" || ");s.push(` ${WE(o)}) if ${a}; then command rsp ${e} "$@"; else command ${e} "$@"; fi ;;`)}return s.push(` *) command ${e} "$@" ;;`," esac","}"),s}function _$(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 E$(e){let t=new Map;for(let r of e){let n=r.command[0];if(!n||!Ea(n))continue;let s=t.get(n)??[];s.push(r),t.set(n,s)}return t}function Ea(e){return!!(e&&/^[A-Za-z0-9_./:-]+$/.test(e))}function WE(e){return e.replace(/[\\|)&;]/g,"\\$&")}function R$(e){return e.replace(/'/g,"'\\''")}function k$(e){return e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}var VE=y(()=>{"use strict";Xs()});function Zd(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"&&S$(t.chosenOption)&&T$(t.outcome)&&v$(t.cost)}function S$(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.kind=="string"&&t.kind.length>0}function T$(e){return e==="success"||e==="failure"||e==="escalated"}function v$(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 KE=y(()=>{});import{createHash as x$}from"node:crypto";function iR(e,t){return new tp(e,t)}function zE(e){let t=Number(e.red_entity_id??e.rid),r=rp(e.properties??e.PROPERTIES),n=aR(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 YE(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=cR(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:rp(e.properties??e.PROPERTIES)}}function A$(e){let t=Number(e.red_entity_id??e.rid),r=rp(e.properties??e.PROPERTIES);return!Number.isFinite(t)||!Zd(r)?null:{rid:t,event:r}}function rp(e){return e==null?{}:typeof e=="string"?JSON.parse(e):Ra(e)?e:{}}function aR(e){let t=e==="contact"?"person":e;if(C$.has(t))return t;throw new Error(`invalid Brain artifact kind: ${e}`)}function cR(e){if(O$.has(e))return e;throw new Error(`invalid Brain connection kind: ${e}`)}function P$(e){return e==="hour"||e==="week"||e==="month"?e:"day"}function QE(e){if(typeof e=="number")return e;let t=String(e??"");return/^\d+$/.test(t)?Number(t):t}function jr(e){return Ra(e)?e:{}}function XE(e,t){return jr(e)[t]}function ZE(e,t){let r=e[t];if(typeof r!="string")throw new Error(`brain ${t} must be a string`);return r}function eR(e,t){let r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function tR(e){let t=jr(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 Ra(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ep(e){return e!=null}function I$(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean))).sort()}function G$(e){return x$("sha256").update(JSON.stringify(e)).digest("hex")}function L$(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"artifact"}function rR(e){return`artifact-hash:${e}`}function nR(e,t,r){return`connection:${e}:${t}:${r}`}function sR(){return"model-tier-bandit:v1"}function D$(e){return e.toLowerCase().split(/[^a-z0-9_]+/).map(t=>t.trim()).filter(t=>t.length>1)}function oR(e,t){let r=0,n=e.indexOf(t);for(;n>=0;)r++,n=e.indexOf(t,n+t.length);return r}function uR(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+oR(r,a)*3+oR(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 $$(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=lR({...uR(a,t),connections:0,vector:0}).total;c>0&&(s+=Math.min(c,12)*.35)}return Mr(s)}function lR(e){return{...e,lexical:Mr(e.lexical),tags:Mr(e.tags),kind:Mr(e.kind),connections:Mr(e.connections),vector:Mr(e.vector),total:Mr(e.lexical+e.tags+e.kind+e.connections+e.vector)}}function Mr(e){return Math.round(e*1e3)/1e3}function N$(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 F$(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 M$(e){let t={};for(let r of e)t[r]=(t[r]??0)+1;return t}var wt,C$,O$,tp,dR=y(()=>{"use strict";KE();wt={artifacts:"brain_artifacts",connections:"brain_connections",outcomeEvents:"brain_outcome_events",kv:"brain_kv"},C$=new Set(["pillar","decision","concept","question","playbook","task","event","pattern","hypothesis","fact","source","bookmark","note","reference","custom","project","idea","meeting","claim","organization","person"]),O$=new Set(["supports","contradicts","depends_on","derived_from","related_to","part_of","preceded_by","followed_by","authored","tagged"]),tp=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(jr(r));if(t==="getArtifact")return await this.getArtifact(XE(r,"ridOrId"));if(t==="listArtifacts")return await this.listArtifacts();if(t==="search"){let n=jr(r);return await this.search(ZE(n,"query"),eR(n,"limit")??10,tR(n.options))}if(t==="think"){let n=jr(r);return await this.think(ZE(n,"query"),eR(n,"limit")??8,tR(n.options))}if(t==="link")return await this.link(jr(r));if(t==="backlinks")return await this.backlinks(XE(r,"target"));if(t==="listConnections")return await this.listConnections();if(t==="eventKpis")return await this.eventKpis(jr(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:M$(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=aR(Ie(t.kind)||"note"),o=I$(Array.isArray(t.tags)?t.tags.map(String):[]),i=Date.now(),a=G$([s,r,n,o,Ie(t.sourcePath),Ie(t.sourceSession)]),c=await this.kv().get(rR(a));if(c!=null){let f=await this.getArtifact(Number(c));if(f)return f}let u=`${L$(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:Ra(t.metadata)?t.metadata:void 0},p=(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(!p)throw new Error("INSERT artifact returned no row");let g=zE(p);if(!g)throw new Error("INSERT artifact returned invalid row");return await this.kv().put(rR(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(zE).filter(ep)}async search(t,r,n={}){let s=D$(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=uR(u,s),d=lR({...l,connections:$$(u,s,a,c),vector:0});return{artifact:u,score:d.total,score_breakdown:d,excerpt:N$(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 F$(t,s)}async link(t){let r=await this.getArtifact(QE(t.from)),n=await this.getArtifact(QE(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=cR(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:Ra(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=YE(c);if(!u)throw new Error("INSERT connection returned invalid row");return await this.kv().put(nR(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(YE).filter(ep)}async eventKpis(t){let r=(await this.listArtifacts()).filter(o=>o.kind==="event"),n=P$(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(!Zd(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(A$).filter(ep).sort((r,n)=>r.rid-n.rid).map(({event:r})=>r)}async loadModelTierBanditDocument(){let t=await this.kv().get(sR());return typeof t=="string"?JSON.parse(t):t}async saveModelTierBanditDocument(t){return await this.kv().put(sR(),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(nR(t,r,n));return s!=null?Number(s):null}kv(){return this.db.kv(wt.kv)}}});import{join as j$}from"node:path";function fR(e){let t=ku({path:j$(X(e.rootDir),"github","spend.toonl")}),r=Yu({token:e.token,attribution:t,...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.balance?{balance:e.balance}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}});return B$(r)}function B$(e){return{async read(t){let r=Eu(t.args);if(r.kind!=="read")return no(r,"github-write-passthrough","writes are executed by the original gh command unchanged");if(t.actor.trim()==="")return no(r,"github-actor-missing","retry through rsp so the caller can be attributed");if(r.budget==="search")return no(r,"github-search-not-routable","search reads are never a fallback; narrow the read to a classified object");try{let n=U$(r,t);if(n){let o=await e.singleObject({cacheKey:mR(t.path,t.params),kind:n.kind,owner:n.owner,repo:n.repo,number:n.number,selection:n.selection,operation:r,actor:t.actor,project:n.project});return{status:0,stdout:JSON.stringify(o.data),stderr:"",surface:o.surface,pool:o.surface==="graphql"?"graphql":"rest",quotaFree:o.quotaFree}}if(r.surface==="graphql"){let o=q$(r,t);if(!o)return no(r,"github-graphql-read-not-realized","use a classified rsp summary whose GraphQL projection is declared");let i=await e.graphql(o.query,o.variables,{operation:r,actor:t.actor});return{status:0,stdout:JSON.stringify(o.decode(i)),stderr:"",surface:r.surface,pool:r.budget,quotaFree:!1}}let s=await e.conditionalRest({cacheKey:mR(t.path,t.params),route:`GET /${t.path.replace(/^\/+/,"")}`,parameters:V$(t.params),operation:r,actor:t.actor});return{status:0,stdout:JSON.stringify(s.data),stderr:"",surface:r.surface,pool:r.budget,quotaFree:s.quotaFree}}catch(n){return Qu(n)?no(r,"github-budget-refused","wait for the reported GitHub rate-limit reset, then retry"):{status:K$(n),stdout:"",stderr:n instanceof Error?n.message:String(n),surface:r.surface,pool:r.budget,quotaFree:!1}}}}}function U$(e,t){if(e.key!=="issue view"&&e.key!=="pr view")return null;let r=/^repos\/([^/]+)\/([^/]+)\/(issues|pulls)\/(\d+)\/?$/.exec(t.path.replace(/^\/+/,""));if(!r)return null;let n=so(t.params,"owner")||r[1],s=so(t.params,"repo")||r[2],o=Number(r[4]);return!Number.isSafeInteger(o)||o<=0||n.includes("{")||s.includes("{")?null:e.key==="issue view"?{kind:"issue",owner:n,repo:s,number:o,selection:"number title state body url updatedAt author { login } labels(first: 100) { nodes { name } }",project:(i,a)=>a==="rest"?_t(i)??{}:gR(i)}:{kind:"pr",owner:n,repo:s,number:o,selection:"number title state body url updatedAt isDraft baseRefName headRefName author { login } labels(first: 100) { nodes { name } }",project:(i,a)=>a==="rest"?_t(i)??{}:H$(i)}}function gR(e){let t=_t(e)??{};return{number:t.number,title:t.title,state:String(t.state??"").toLowerCase(),body:t.body,html_url:t.url,updated_at:t.updatedAt,user:_t(t.author)??{},labels:np(t.labels).map(r=>({name:r.name}))}}function H$(e){let t=_t(e)??{};return{...gR(t),draft:t.isDraft===!0,base:{ref:t.baseRefName},head:{ref:t.headRefName}}}function q$(e,t){let r=so(t.params,"owner"),n=so(t.params,"repo");if(!r||!n)return null;let s=W$(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
+ `}function rR(e){return e.toString("utf8").replace(/�$/g,"")}function X$(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 Z$(e){return is(process.cwd(),e)}function nR(e){let t=e.enabled?Kt(process.cwd(),e.overhead):null;return Br({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 sR(e){process.stdout.write(`${JSON.stringify(e)}
171
+ `)}function oR(e){try{return JSON.parse(e)}catch{return null}}var cR=y(()=>{"use strict";Ct();Ue();ae();Qs();Yt()});var lR={};K(lR,{renderShellInit:()=>eN});function eN(e,t=so){if(e==="fish")return tN(t);if(e==="bash"||e==="zsh")return rN(e,t);throw new Error(`unsupported shell: ${e}`)}function tN(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(Oa))].map(r=>` abbr --add --position command -- ${r} '${iN(`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(`
172
+ `)}function rN(e,t){let r=sN(t);return[`# rsp shell-init ${e}`,`# Opt-in only: source this output from ${e} startup files; remove that line to restore raw commands.`,...xa("git",r.get("git")??[]),...xa("gh",r.get("gh")??[]),...xa("vitest",r.get("vitest")??[]),...xa("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(`
173
+ `)}function xa(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(Oa),n=t.map(o=>o.command.slice(1)).filter(o=>o.length>1&&o.every(Oa)),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=>uR(i)).join("|");s.push(` ${o}) command rsp ${e} "$@" ;;`)}for(let[o,i]of nN(n)){let a=i.map(c=>c.map((u,l)=>`[ "$${l+2}" = '${oN(u)}' ]`).join(" && ")).join(" || ");s.push(` ${uR(o)}) if ${a}; then command rsp ${e} "$@"; else command ${e} "$@"; fi ;;`)}return s.push(` *) command ${e} "$@" ;;`," esac","}"),s}function nN(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 sN(e){let t=new Map;for(let r of e){let n=r.command[0];if(!n||!Oa(n))continue;let s=t.get(n)??[];s.push(r),t.set(n,s)}return t}function Oa(e){return!!(e&&/^[A-Za-z0-9_./:-]+$/.test(e))}function uR(e){return e.replace(/[\\|)&;]/g,"\\$&")}function oN(e){return e.replace(/'/g,"'\\''")}function iN(e){return e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}var dR=y(()=>{"use strict";oo()});function ap(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"&&aN(t.chosenOption)&&cN(t.outcome)&&uN(t.cost)}function aN(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.kind=="string"&&t.kind.length>0}function cN(e){return e==="success"||e==="failure"||e==="escalated"}function uN(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 pR=y(()=>{});import{createHash as lN}from"node:crypto";function SR(e,t){return new up(e,t)}function mR(e){let t=Number(e.red_entity_id??e.rid),r=lp(e.properties??e.PROPERTIES),n=TR(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 fR(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=vR(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:lp(e.properties??e.PROPERTIES)}}function mN(e){let t=Number(e.red_entity_id??e.rid),r=lp(e.properties??e.PROPERTIES);return!Number.isFinite(t)||!ap(r)?null:{rid:t,event:r}}function lp(e){return e==null?{}:typeof e=="string"?JSON.parse(e):Ca(e)?e:{}}function TR(e){let t=e==="contact"?"person":e;if(dN.has(t))return t;throw new Error(`invalid Brain artifact kind: ${e}`)}function vR(e){if(pN.has(e))return e;throw new Error(`invalid Brain connection kind: ${e}`)}function fN(e){return e==="hour"||e==="week"||e==="month"?e:"day"}function gR(e){if(typeof e=="number")return e;let t=String(e??"");return/^\d+$/.test(t)?Number(t):t}function Hr(e){return Ca(e)?e:{}}function hR(e,t){return Hr(e)[t]}function yR(e,t){let r=e[t];if(typeof r!="string")throw new Error(`brain ${t} must be a string`);return r}function bR(e,t){let r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function wR(e){let t=Hr(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 Ca(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function cp(e){return e!=null}function gN(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean))).sort()}function hN(e){return lN("sha256").update(JSON.stringify(e)).digest("hex")}function yN(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"artifact"}function _R(e){return`artifact-hash:${e}`}function ER(e,t,r){return`connection:${e}:${t}:${r}`}function RR(){return"model-tier-bandit:v1"}function bN(e){return e.toLowerCase().split(/[^a-z0-9_]+/).map(t=>t.trim()).filter(t=>t.length>1)}function kR(e,t){let r=0,n=e.indexOf(t);for(;n>=0;)r++,n=e.indexOf(t,n+t.length);return r}function xR(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+kR(r,a)*3+kR(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 wN(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=OR({...xR(a,t),connections:0,vector:0}).total;c>0&&(s+=Math.min(c,12)*.35)}return Ur(s)}function OR(e){return{...e,lexical:Ur(e.lexical),tags:Ur(e.tags),kind:Ur(e.kind),connections:Ur(e.connections),vector:Ur(e.vector),total:Ur(e.lexical+e.tags+e.kind+e.connections+e.vector)}}function Ur(e){return Math.round(e*1e3)/1e3}function _N(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 EN(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 RN(e){let t={};for(let r of e)t[r]=(t[r]??0)+1;return t}var Rt,dN,pN,up,CR=y(()=>{"use strict";pR();Rt={artifacts:"brain_artifacts",connections:"brain_connections",outcomeEvents:"brain_outcome_events",kv:"brain_kv"},dN=new Set(["pillar","decision","concept","question","playbook","task","event","pattern","hypothesis","fact","source","bookmark","note","reference","custom","project","idea","meeting","claim","organization","person"]),pN=new Set(["supports","contradicts","depends_on","derived_from","related_to","part_of","preceded_by","followed_by","authored","tagged"]),up=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(Hr(r));if(t==="getArtifact")return await this.getArtifact(hR(r,"ridOrId"));if(t==="listArtifacts")return await this.listArtifacts();if(t==="search"){let n=Hr(r);return await this.search(yR(n,"query"),bR(n,"limit")??10,wR(n.options))}if(t==="think"){let n=Hr(r);return await this.think(yR(n,"query"),bR(n,"limit")??8,wR(n.options))}if(t==="link")return await this.link(Hr(r));if(t==="backlinks")return await this.backlinks(hR(r,"target"));if(t==="listConnections")return await this.listConnections();if(t==="eventKpis")return await this.eventKpis(Hr(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 ${Rt.artifacts}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${Rt.connections}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${Rt.outcomeEvents}`)}async status(){let t=await this.listArtifacts(),r=await this.listConnections();return{uri:this.uri,artifacts:t.length,connections:r.length,kinds:RN(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=TR(Ie(t.kind)||"note"),o=gN(Array.isArray(t.tags)?t.tags.map(String):[]),i=Date.now(),a=hN([s,r,n,o,Ie(t.sourcePath),Ie(t.sourceSession)]),c=await this.kv().get(_R(a));if(c!=null){let g=await this.getArtifact(Number(c));if(g)return g}let u=`${yN(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:Ca(t.metadata)?t.metadata:void 0},p=(await this.db.query(`INSERT INTO ${Rt.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 m=mR(p);if(!m)throw new Error("INSERT artifact returned invalid row");return await this.kv().put(_R(a),m.rid),await this.materializeTagConnections(m),m}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 ${Rt.artifacts}`)).rows.map(mR).filter(cp)}async search(t,r,n={}){let s=bN(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=xR(u,s),d=OR({...l,connections:wN(u,s,a,c),vector:0});return{artifact:u,score:d.total,score_breakdown:d,excerpt:_N(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 EN(t,s)}async link(t){let r=await this.getArtifact(gR(t.from)),n=await this.getArtifact(gR(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=vR(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:Ca(t.metadata)?t.metadata:void 0},c=(await this.db.query(`INSERT INTO ${Rt.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=fR(c);if(!u)throw new Error("INSERT connection returned invalid row");return await this.kv().put(ER(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 ${Rt.connections}`)).rows.map(fR).filter(cp)}async eventKpis(t){let r=(await this.listArtifacts()).filter(o=>o.kind==="event"),n=fN(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(!ap(t))throw new Error("invalid Brain outcome event");if(!(await this.db.query(`INSERT INTO ${Rt.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 ${Rt.outcomeEvents}`)).rows.map(mN).filter(cp).sort((r,n)=>r.rid-n.rid).map(({event:r})=>r)}async loadModelTierBanditDocument(){let t=await this.kv().get(RR());return typeof t=="string"?JSON.parse(t):t}async saveModelTierBanditDocument(t){return await this.kv().put(RR(),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(ER(t,r,n));return s!=null?Number(s):null}kv(){return this.db.kv(Rt.kv)}}});import{join as kN}from"node:path";function IR(e){let t=Au({path:kN(X(e.rootDir),"github","spend.toonl")}),r=nl({token:e.token,attribution:t,...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.balance?{balance:e.balance}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}});return SN(r)}function SN(e){return{async read(t){let r=Ou(t.args);if(r.kind!=="read")return lo(r,"github-write-passthrough","writes are executed by the original gh command unchanged");if(t.actor.trim()==="")return lo(r,"github-actor-missing","retry through rsp so the caller can be attributed");if(r.budget==="search")return lo(r,"github-search-not-routable","search reads are never a fallback; narrow the read to a classified object");try{let n=TN(r,t);if(n){let o=await e.singleObject({cacheKey:PR(t.path,t.params),kind:n.kind,owner:n.owner,repo:n.repo,number:n.number,selection:n.selection,operation:r,actor:t.actor,project:n.project});return{status:0,stdout:JSON.stringify(o.data),stderr:"",surface:o.surface,pool:o.surface==="graphql"?"graphql":"rest",quotaFree:o.quotaFree}}if(r.surface==="graphql"){let o=xN(r,t);if(!o)return lo(r,"github-graphql-read-not-realized","use a classified rsp summary whose GraphQL projection is declared");let i=await e.graphql(o.query,o.variables,{operation:r,actor:t.actor});return{status:0,stdout:JSON.stringify(o.decode(i)),stderr:"",surface:r.surface,pool:r.budget,quotaFree:!1}}let s=await e.conditionalRest({cacheKey:PR(t.path,t.params),route:`GET /${t.path.replace(/^\/+/,"")}`,parameters:AN(t.params),operation:r,actor:t.actor});return{status:0,stdout:JSON.stringify(s.data),stderr:"",surface:r.surface,pool:r.budget,quotaFree:s.quotaFree}}catch(n){return sl(n)?lo(r,"github-budget-refused","wait for the reported GitHub rate-limit reset, then retry"):{status:PN(n),stdout:"",stderr:n instanceof Error?n.message:String(n),surface:r.surface,pool:r.budget,quotaFree:!1}}}}}function TN(e,t){if(e.key!=="issue view"&&e.key!=="pr view")return null;let r=/^repos\/([^/]+)\/([^/]+)\/(issues|pulls)\/(\d+)\/?$/.exec(t.path.replace(/^\/+/,""));if(!r)return null;let n=po(t.params,"owner")||r[1],s=po(t.params,"repo")||r[2],o=Number(r[4]);return!Number.isSafeInteger(o)||o<=0||n.includes("{")||s.includes("{")?null:e.key==="issue view"?{kind:"issue",owner:n,repo:s,number:o,selection:"number title state body url updatedAt author { login } labels(first: 100) { nodes { name } }",project:(i,a)=>a==="rest"?kt(i)??{}:LR(i)}:{kind:"pr",owner:n,repo:s,number:o,selection:"number title state body url updatedAt isDraft baseRefName headRefName author { login } labels(first: 100) { nodes { name } }",project:(i,a)=>a==="rest"?kt(i)??{}:vN(i)}}function LR(e){let t=kt(e)??{};return{number:t.number,title:t.title,state:String(t.state??"").toLowerCase(),body:t.body,html_url:t.url,updated_at:t.updatedAt,user:kt(t.author)??{},labels:dp(t.labels).map(r=>({name:r.name}))}}function vN(e){let t=kt(e)??{};return{...LR(t),draft:t.isDraft===!0,base:{ref:t.baseRefName},head:{ref:t.headRefName}}}function xN(e,t){let r=po(t.params,"owner"),n=po(t.params,"repo");if(!r||!n)return null;let s=ON(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!]) {
172
174
  repository(owner: $owner, name: $repo) {
173
175
  issues(first: $first, states: $states, labels: $labels, orderBy: {field: UPDATED_AT, direction: DESC}) {
174
176
  nodes { number title body state url updatedAt author { login } labels(first: 100) { nodes { name } } }
175
177
  }
176
178
  }
177
- }`,variables:{owner:r,repo:n,first:s,states:o,labels:J$(t.params,"labels")},decode:i=>pR(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:np(a.labels)}))}:e.key==="pr list"?{query:`query RspPrList($owner: String!, $repo: String!, $first: Int!, $states: [PullRequestState!]) {
179
+ }`,variables:{owner:r,repo:n,first:s,states:o,labels:CN(t.params,"labels")},decode:i=>AR(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:dp(a.labels)}))}:e.key==="pr list"?{query:`query RspPrList($owner: String!, $repo: String!, $first: Int!, $states: [PullRequestState!]) {
178
180
  repository(owner: $owner, name: $repo) {
179
181
  pullRequests(first: $first, states: $states, orderBy: {field: UPDATED_AT, direction: DESC}) {
180
182
  nodes { number title body state url updatedAt isDraft author { login } baseRefName headRefName labels(first: 100) { nodes { name } } }
181
183
  }
182
184
  }
183
- }`,variables:{owner:r,repo:n,first:s,states:o},decode:i=>pR(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:np(a.labels)}))}:null}function pR(e,t){let r=_t(e.repository),n=_t(r?.[t]);return Array.isArray(n?.nodes)?n.nodes.map(_t).filter(s=>s!==null):[]}function np(e){let t=_t(e);return Array.isArray(t?.nodes)?t.nodes.map(_t).filter(r=>r!==null):[]}function _t(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function so(e,t){let r=e?.[t];return typeof r=="string"?r.trim():""}function W$(e,t,r){let n=Number(e?.[t]);return Number.isSafeInteger(n)&&n>0?n:r}function J$(e,t){let r=so(e,t);return r===""?null:r.split(",").map(n=>n.trim()).filter(Boolean)}function no(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 mR(e,t){return JSON.stringify({path:e,params:Object.entries(t??{}).filter(r=>r[1]!==void 0).sort(([r],[n])=>r.localeCompare(n))})}function V$(e){return Object.fromEntries(Object.entries(e??{}).filter(t=>t[1]!==void 0))}function K$(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 hR=y(()=>{"use strict";yi();Ge()});var OR={};K(OR,{runResidentServer:()=>tN});import{randomUUID as Dn}from"node:crypto";import{execFileSync as kR,spawn as z$}from"node:child_process";import{existsSync as Y$}from"node:fs";import{mkdir as SR,rename as Q$,rm as yR,writeFile as TR}from"node:fs/promises";import{createServer as X$}from"node:net";import{dirname as ap,join as ka}from"node:path";import{fileURLToPath as Z$,pathToFileURL as eN}from"node:url";async function tN(e){await SR(ap(e.socketPath),{recursive:!0});let t=fN();mN();let r=e.telemetryDrainTimeoutMs??vR,n={kind:"opening",startedAt:process.hrtime.bigint()},s,o=!1,i=e.github??kN(e.rootDir??process.cwd()),a=e.idleMs??Xo,c,u,l=!1,d=new Set,p=e.telemetryDrainIntervalMs??3e4,g=X$(G=>{d.add(G),G.once("close",()=>d.delete(G)),R(),EN(G,async(F,q)=>{R();let se=await RN(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=pN(u),g.close();for(let G of d)G.destroy()}function R(){n.kind!=="opening"&&(c&&clearTimeout(c),c=setTimeout(()=>{f()},a),c.unref())}let h=["SIGINT","SIGTERM"].map(G=>{let F=()=>{Sa(),g.close();for(let q of d)q.destroy();setTimeout(()=>process.exit(0),1e3)};return process.once(G,F),{signal:G,handler:F}});await new Promise((G,F)=>{g.once("error",F),g.listen(e.socketPath,()=>{g.off("error",F),G()})}),(async()=>{let G=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 Pr.open({uri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,allowResidentOpen:!0}),se=Number(process.hrtime.bigint()-G)/1e6,re=new ip(q,{rootDir:e.rootDir??process.cwd(),ttlDays:e.telemetryTtlDays??Yo,byteBudget:e.telemetryByteBudget??e.byteBudget??Qo});if(o){await q.close();return}if(await sp(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&&sp(de.telemetry,r)},p),s.unref(),R()})().catch(G=>{n={kind:"failed",error:G instanceof Error?G:new Error(String(G))},R()}),e.pidPath&&await TR(e.pidPath,`${process.pid}
184
- `,{encoding:"utf8",mode:384});let E=e.residentVersion??"0.0.0-dev",T=e.registryPath??ka(X(e.rootDir??process.cwd()),"rsp-resident.pid.json");try{await Po(T,{socket_path:e.socketPath,store_uri:e.storeUri,resident_version:E})}catch{}await new Promise(G=>g.once("close",G)),c&&clearTimeout(c),s&&clearInterval(s),await yR(e.socketPath,{force:!0});let C=n;C.kind==="ready"&&(await sp(C.telemetry,r,l),await C.store.close()),u&&clearTimeout(u);for(let{signal:G,handler:F}of h)process.off(G,F);t?.kill("SIGTERM"),Sa(),e.pidPath&&await yR(e.pidPath,{force:!0}),await Io(T)}async function aN(e,t,r=new Date){let n=await qi(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=ka(X(t),oN),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 SR(ap(a),{recursive:!0}),await TR(c,`${ne(u)}
185
- `,{encoding:"utf8",mode:384}),await Q$(c,a)}async function sp(e,t=vR,r=!1){try{r&&process.env.RSP_TEST_HANG_TELEMETRY_DRAIN==="1"&&await new Promise(()=>{}),await CR(e.drainAndSweep(),t,"telemetry drain timed out")}catch(n){process.stderr.write(`rsp resident: telemetry drain failed: ${n instanceof Error?n.message:String(n)}
186
- `)}}async function cN(e){let t=[];for(let r of iN){let n=await uN(e,r);n.ok||(n.previousModel&&(n.previousModel!=="collection"&&await lN(e,r,n.previousModel),t.push({collection:r,previousModel:n.previousModel})),await e.query(`CREATE KV IF NOT EXISTS ${xR(r)}`))}return t}async function uN(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 lN(e,t,r){let n=dN(r);if(!n)throw new Error(`cannot self-heal telemetry collection ${t}: unsupported model ${r}`);await e.query(`DROP ${n} ${xR(t)}`)}function dN(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 xR(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid telemetry collection name: ${e}`);return e}function pN(e){return e&&clearTimeout(e),setTimeout(()=>{Sa(),process.exit(0)},sN)}function mN(){bR||(bR=!0,process.on("exit",()=>Sa()))}function fN(){if(process.platform==="win32")return;let t=z$(process.execPath,["-e",`
185
+ }`,variables:{owner:r,repo:n,first:s,states:o},decode:i=>AR(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:dp(a.labels)}))}:null}function AR(e,t){let r=kt(e.repository),n=kt(r?.[t]);return Array.isArray(n?.nodes)?n.nodes.map(kt).filter(s=>s!==null):[]}function dp(e){let t=kt(e);return Array.isArray(t?.nodes)?t.nodes.map(kt).filter(r=>r!==null):[]}function kt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function po(e,t){let r=e?.[t];return typeof r=="string"?r.trim():""}function ON(e,t,r){let n=Number(e?.[t]);return Number.isSafeInteger(n)&&n>0?n:r}function CN(e,t){let r=po(e,t);return r===""?null:r.split(",").map(n=>n.trim()).filter(Boolean)}function lo(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 PR(e,t){return JSON.stringify({path:e,params:Object.entries(t??{}).filter(r=>r[1]!==void 0).sort(([r],[n])=>r.localeCompare(n))})}function AN(e){return Object.fromEntries(Object.entries(e??{}).filter(t=>t[1]!==void 0))}function PN(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 GR=y(()=>{"use strict";Si();De()});var VR={};K(VR,{runResidentServer:()=>FN});import{randomUUID as Fn}from"node:crypto";import{execFileSync as BR,spawn as IN}from"node:child_process";import{existsSync as LN}from"node:fs";import{mkdir as UR,rename as GN,rm as DR,writeFile as HR}from"node:fs/promises";import{createServer as DN}from"node:net";import{dirname as gp,join as Aa}from"node:path";import{fileURLToPath as $N,pathToFileURL as NN}from"node:url";async function FN(e){await UR(gp(e.socketPath),{recursive:!0});let t=QN();YN();let r=e.telemetryDrainTimeoutMs??qR,n={kind:"opening",startedAt:process.hrtime.bigint()},s,o=!1,i=e.github??iF(e.rootDir??process.cwd()),a=e.idleMs??oi,c,u,l=!1,d=new Set,p=e.telemetryDrainIntervalMs??3e4,m=DN(L=>{d.add(L),L.once("close",()=>d.delete(L)),R(),sF(L,async(F,q)=>{R();let se=await oF(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(()=>g())})});function g(){o=!0,l=!0,u=zN(u),m.close();for(let L of d)L.destroy()}function R(){n.kind!=="opening"&&(c&&clearTimeout(c),c=setTimeout(()=>{g()},a),c.unref())}let h=["SIGINT","SIGTERM"].map(L=>{let F=()=>{Pa(),m.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)=>{m.once("error",F),m.listen(e.socketPath,()=>{m.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 Gr.open({uri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,allowResidentOpen:!0}),se=Number(process.hrtime.bigint()-L)/1e6,re=new fp(q,{rootDir:e.rootDir??process.cwd(),ttlDays:e.telemetryTtlDays??ni,byteBudget:e.telemetryByteBudget??e.byteBudget??si});if(o){await q.close();return}if(await pp(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&&pp(de.telemetry,r)},p),s.unref(),R()})().catch(L=>{n={kind:"failed",error:L instanceof Error?L:new Error(String(L))},R()}),e.pidPath&&await HR(e.pidPath,`${process.pid}
186
+ `,{encoding:"utf8",mode:384});let E=e.residentVersion??"0.0.0-dev",T=e.registryPath??Aa(X(e.rootDir??process.cwd()),"rsp-resident.pid.json");try{await Fo(T,{socket_path:e.socketPath,store_uri:e.storeUri,resident_version:E})}catch{}await new Promise(L=>m.once("close",L)),c&&clearTimeout(c),s&&clearInterval(s),await DR(e.socketPath,{force:!0});let O=n;O.kind==="ready"&&(await pp(O.telemetry,r,l),await O.store.close()),u&&clearTimeout(u);for(let{signal:L,handler:F}of h)process.off(L,F);t?.kill("SIGTERM"),Pa(),e.pidPath&&await DR(e.pidPath,{force:!0}),await Mo(T)}async function qN(e,t,r=new Date){let n=await Qi(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=Aa(X(t),UN),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 UR(gp(a),{recursive:!0}),await HR(c,`${ne(u)}
187
+ `,{encoding:"utf8",mode:384}),await GN(c,a)}async function pp(e,t=qR,r=!1){try{r&&process.env.RSP_TEST_HANG_TELEMETRY_DRAIN==="1"&&await new Promise(()=>{}),await JR(e.drainAndSweep(),t,"telemetry drain timed out")}catch(n){process.stderr.write(`rsp resident: telemetry drain failed: ${n instanceof Error?n.message:String(n)}
188
+ `)}}async function WN(e){let t=[];for(let r of HN){let n=await JN(e,r);n.ok||(n.previousModel&&(n.previousModel!=="collection"&&await VN(e,r,n.previousModel),t.push({collection:r,previousModel:n.previousModel})),await e.query(`CREATE KV IF NOT EXISTS ${WR(r)}`))}return t}async function JN(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 VN(e,t,r){let n=KN(r);if(!n)throw new Error(`cannot self-heal telemetry collection ${t}: unsupported model ${r}`);await e.query(`DROP ${n} ${WR(t)}`)}function KN(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 WR(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid telemetry collection name: ${e}`);return e}function zN(e){return e&&clearTimeout(e),setTimeout(()=>{Pa(),process.exit(0)},BN)}function YN(){$R||($R=!0,process.on("exit",()=>Pa()))}function QN(){if(process.platform==="win32")return;let t=IN(process.execPath,["-e",`
187
189
  const { execFileSync } = require("node:child_process");
188
190
  const parentPid = Number(process.argv[1]);
189
191
  const known = new Set();
@@ -224,26 +226,26 @@ const timer = setInterval(() => {
224
226
  clearInterval(timer);
225
227
  process.exit(0);
226
228
  }, 500);
227
- `,String(process.pid)],{detached:!0,stdio:"ignore"});return t.unref(),t}function Sa(){for(let e of gN())try{process.kill(e,"SIGTERM")}catch{}}function gN(){if(process.platform==="win32")return[];let e="";try{e=kR("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 hN(e){if(e.collection!==Ue)return e;let t=await wR(e.raw_text,ER(e.raw_bytes)),r=await wR(e.emitted_text,ER(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 wR(e,t){if(typeof e=="string"){let r=Buffer.byteLength(e,"utf8");if(r<=rN)try{return await CR((async()=>({tokens:(await yN())("cl100k_base").encode(e).length,estimated:!1}))(),nN,"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 yN(){return _R??=import(eN(bN()).href).then(e=>{let t=e.getEncoding;if(!t)throw new Error("js-tiktoken getEncoding export not found");return t}),await _R}function bN(){let e=ap(Z$(import.meta.url)),r=[ka(e,"..","node_modules","js-tiktoken","dist","index.js"),ka(e,"..","apps","rsp","node_modules","js-tiktoken","dist","index.js")].find(n=>Y$(n));if(!r)throw new Error("js-tiktoken dependency not found");return r}function ER(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 op(e){return e.trim().split(/\s+/).filter(Boolean)[0]??"unknown"}async function CR(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 wN(e){try{return JSON.parse(e)}catch{return e}}function _N(e){return RR(e)&&e.version===1&&Array.isArray(e.records)&&e.records.every(t=>RR(t)&&(t.collection===Oe||t.collection===Ae||t.collection===Ue||t.collection===mt)&&typeof t.key=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&typeof t.bytes=="number")}function RR(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function EN(e,t){sf(e,(r,n)=>t(r,n),(r,n,s)=>{s({id:n?.id??Dn(),ok:!1,error:r instanceof Error?r.message:String(r)})})}async function RN(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 Xl(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 qi(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 Zl(i,t.sinceDays)}if(t.op==="mint")return{handle:await o.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return vN(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 TN(o,r,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}function kN(e){let t;return{async read(r){if(!t){let n=String(kR("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=fR({rootDir:e,token:n,balance:SN(n)})}return await t.read(r)}}}function SN(e){let t=rl({token:e}),r=null,n=0,s=null;return async()=>{let o=Date.now();if(o<n)return r;if(s!==null)return await s;let i=new Date(o).toISOString();return s=el({transport:t,now:i}).then(a=>(r=a,n=Date.now()+tl(a,{now:new Date().toISOString()}),r)).finally(()=>{s=null}),await s}}async function TN(e,t,r,n){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await iR(s,t).request(r,n)}function vN(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var rN,nN,vR,sN,oN,iN,ip,bR,_R,AR=y(()=>{"use strict";yi();Ge();Go();vo();Ct();Hi();dR();hR();ft();je();rN=256*1024,nN=500,vR=2e3,sN=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),oN="rsp-status-summary.json",iN=[Oe,Ae,Ue,mt,_s],ip=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 cN(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 bl(this.opts.rootDir,async a=>{let c=wn(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 aN(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:Dn(),a={...await hN(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===Ue?await this.writeEvent(t,{collection:Oe,id:`mirror:${we(r.id)||Dn()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:op(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===mt?await this.writeEvent(t,{collection:Oe,id:`mirror:${we(r.id)||Dn()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:op(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:mt,id:Dn(),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:${Dn()}`,created_at:n.created_at,event_type:"invocation",command:r.command,command_class:op(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(_s).get("index:v1"),n=typeof r=="string"?wN(r):r;return _N(n)?n:{version:1,records:[]}}async writeIndex(t,r){await t.kv(_s).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})}};bR=!1});import{posix as ON,win32 as AN}from"node:path";import{fileURLToPath as PN}from"node:url";La();ct();var hm={"store-uri":{kind:"value",coerce:e=>e},brief:{kind:"boolean"},terse:{kind:"boolean"},query:{kind:"value",coerce:e=>e}},kS={json:{kind:"boolean"}},SS={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 ym(e){let{command:t,args:r}=Ga(e,vS);return t==="--version"?{kind:"version",json:jn(r,kS).values.json===!0}:xS(e)?{kind:"help"}:{kind:"command"}}var vS={commands:{"--version":{aliases:["-v"]},run:{}},default:"run",keepArgvOnDefault:!0};function xS(e){return fr(e,SS).values.help===!0}function bm(e){let{values:t,rest:r}=OS(e),n=r[0];if(n!==void 0&&n!=="--"&&n.startsWith("--"))throw go.unknownFlag(n);let s=Ga(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 go=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:CS})}},CS=Object.keys(hm).map(e=>`--${e}`);function OS(e){try{return fr(e,hm)}catch(t){throw new go(t instanceof Error?t.message:String(t))}}function wm(e){return V({command:`rsp ${e.token}`,category:"usage",error:`unknown command: ${e.token}`,help:"rsp --help",validFlags:e.known})}function _m(e){return e instanceof Mn}function Yr(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}var AS={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:Wt},"ephemeral-ttl-hours":{kind:"value",coerce:Wt},"byte-budget":{kind:"value",coerce:Wt},"telemetry-ttl-days":{kind:"value",coerce:Wt},"telemetry-byte-budget":{kind:"value",coerce:Wt},"telemetry-drain-interval-ms":{kind:"value",coerce:Wt},"telemetry-drain-timeout-ms":{kind:"value",coerce:Wt},"idle-ms":{kind:"value",coerce:Wt}};function nc(e){return jn(e,AS).values}var Em={since:{kind:"value",coerce:IS},full:{kind:"boolean"}};function ho(e,t){return jn(e,Em).values.since??t}function Rm(e){return jn(e,Em).values.full===!0}var PS={field:{kind:"value",type:"array",aliases:["f","F"],coerce:e=>e}};function km(e){let{values:t,rest:r}=fr(e,PS),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 Wt(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function IS(e){let t=/^(\d+)(d)?$/.exec(e);if(!t)return;let r=Number(t[1]);return Number.isFinite(r)&&r>0?r:void 0}sc();ct();import{existsSync as xN}from"node:fs";import{fileURLToPath as CN}from"node:url";Ct();zn();ae();lt();import{existsSync as k0}from"node:fs";import{fileURLToPath as S0}from"node:url";Ct();$c();ae();import{existsSync as cv}from"node:fs";import{fileURLToPath as uv}from"node:url";async function en(e,t){let r={stats:lv(e.telemetryByteBudget),telemetry:jc(t)};if(!e.storeUri.startsWith("file://"))return r;let n=uv(e.storeUri);if(!cv(n))return r;let{residentElisionStore:s}=await Promise.resolve().then(()=>(Kt(),ss)),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:jc(t)}}catch{return r}finally{await o.close()}}function Bc(e,t=jc(30),r=!1,n=Df()){return`${ne(Uc(e,t,r,n))}
228
- `}function Lf(e,t){return`${ne({...e,overhead:$f(t)})}
229
- `}function Df(){return{schema_version:"red.rsp.overhead.v1",verdict:"green",summary:"every wrapper family is inside its overhead ceiling",ceiling:At,breaching_families:[],disabled_families:[],families:[]}}function $f(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 Uc(e,t,r,n=Df()){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??Lo(),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:dv(t.savings),dollars_saved_estimate_usd_display:pv(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:$f(n),health:{overhead_verdict:n.verdict,overhead_summary:n.summary,...t.health,degradation_rate_display:Mc(t.health.degradation_rate),show_hit_rate_display:Mc(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:Mc(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:Fc(t.latency.wrapper_ms_p50),wrapper_ms_p95_display:Fc(t.latency.wrapper_ms_p95),store_elapsed_ms_avg_display:Fc(t.latency.store_elapsed_ms_avg)}}}function Nf(e){return`${ne(e)}
230
- `}function jc(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 lv(e){return{records:0,bytes:0,oldest:null,budget:e,storage_classes:Lo()}}function Lo(){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 Hc(e){let t=e.legacyStoreMigrated?"migrated":e.storeCreated?"created":"existing";return[`config: ${e.configChanged?"updated":"unchanged"}`,`store: ${t}`,""].join(`
231
- `)}function dv(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 pv(e){return e.dollars_saved_low_usd==null||e.dollars_saved_high_usd==null?rs(e.dollars_saved_estimate_usd):`${rs(e.dollars_saved_low_usd)}-${rs(e.dollars_saved_high_usd)} (estimate_midpoint: ${rs(e.dollars_saved_estimate_usd)})`}function Fc(e){return e==null?"none":String(e)}function Mc(e){return e.toFixed(4).replace(/0+$/,"").replace(/\.$/,".0")}async function hb(e){let{stats:t,telemetry:r}=await en(e,30),[n,s]=await Promise.all([T0(e),Promise.resolve().then(()=>(cl(),al)).then(o=>o.listWaits(process.cwd()),()=>[])]);return{stats:t,telemetry:r,recoveryHandles:n,waits:s,overhead:Jt(ut(process.cwd()).rootDir,e.overhead)}}function yb(e){let t=Uc(e.stats,e.telemetry,!1,e.overhead),r=cc({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??Lo()},savings:t.savings,overhead:t.overhead,health:t.health,decisions:t.decisions,latency:t.latency},v0(e));return`${ne(r)}
232
- `}async function T0(e){if(!e.storeUri.startsWith("file://"))return[];let t=S0(e.storeUri);if(!k0(t))return[];let{residentElisionStore:r}=await Promise.resolve().then(()=>(Kt(),ss)),n=r(process.cwd(),e);try{return await n.recoveryHandles(5)}catch{return[]}finally{await n.close()}}function v0(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"]}Ct();ae();ct();import{existsSync as eL}from"node:fs";import{fileURLToPath as tL}from"node:url";ft();import{spawn as ta}from"node:child_process";async function d_(e,t,r){let n=process.hrtime.bigint(),s=await p_(e.positional),o=Number(process.hrtime.bigint()-n)/1e6;return hG(t,e,s,o,r),s.signal?(process.kill(process.pid,s.signal),128):s.status??0}async function p_(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(()=>(Ji(),Wi)).then(i=>i.parseProxyCommandLine(e)):await Promise.resolve().then(()=>(Ks(),Vs)).then(i=>i.parseExecCommandLine(e));r=ta(o,{shell:!0,stdio:["inherit","pipe","pipe"]})}else r=ta(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)}
233
- `;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 m_(e){return e>0&&Math.random()<e}async function Ys(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
234
- `);let s=await y_(t);if(n){let o=yG(e,t,r),{appendTelemetryEvent:i,RSP_ACCOUNTING_EVENTS_COLLECTION:a,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:c}=await Promise.resolve().then(()=>(ft(),js));na(i(n,{collection:a,event_type:"invocation",ts:new Date().toISOString(),command:ra(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})),na(i(n,{collection:c,ts:new Date().toISOString(),command:ra(t),reason:o.reason,wrapper_family:o.family,wrapper_exit_code:o.exitCode,stderr_head:o.stderrHead,accounting_recorded:!0}))}return s}async function f_(e,t,r){let n=await p_(e),{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:i}=await Promise.resolve().then(()=>(ft(),js)),a={ts:new Date().toISOString(),command:ra(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 na(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})),na(s(t,{collection:i,accounting_recorded:!0,...a})),n.signal?(process.kill(process.pid,n.signal),128):n.status??0}async function g_(e){return process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp: ${sa()}, passing through
235
- `),await y_(e)}function sa(){return"rsp is not enabled in this directory; run /red-setup"}function h_(e){return e==="git"||e==="gh"||e==="vitest"||e==="cargo"||e==="cat"||e==="exec"||e==="proxy"||e==="gh-api-json"}function gt(e){return ra(e.positional)}function ra(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 zs(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function hG(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};Zt(e,{collection:"rsp_accounting_events_v1",...i}),Zt(e,{collection:"rsp_telemetry_invocations_v1",...i,accounting_recorded:!0})}function yG(e,t,r){let n=t[0]??"unknown",s=bG(r)||e;return{reason:l_(r)==="ENOENT"||l_(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:_G(r)??1,stderrHead:wG(s,240)}}function bG(e){return e instanceof Error?zs(e.message):zs(String(e??""))}function wG(e,t){let r=zs(e).replace(/\s+/g," ").trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}\u2026`}function l_(e){if(typeof e!="object"||e===null||!("code"in e))return"";let t=e.code;return typeof t=="string"?t:""}function _G(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 na(e){e.catch(()=>{})}async function y_(e){if(e[0]==="exec"||e[0]==="proxy")return await EG(e);let t=e[0];if(!t)return 2;let r=ta(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)}
236
- `),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function EG(e){let t;try{if(e[0]==="proxy"){let{parseProxyCommandLine:n}=await Promise.resolve().then(()=>(Ji(),Wi));t=n(e)}else{let{parseExecCommandLine:n}=await Promise.resolve().then(()=>(Ks(),Vs));t=n(e)}}catch(n){return process.stderr.write(`${n instanceof Error?n.message:String(n)}
237
- `),2}let r=ta(t,{shell:!0,stdio:"inherit"});return await new Promise(n=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
238
- `),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function L_(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")),G_("disabled",n,r);n.push(await rL(e)),n.push(e.proxyEnabled?le("proxy_mode","proxy routing enabled for pre-exec rewrites"):Dr("proxy_mode","proxy routing is explicitly disabled; hook falls back to fixed wrapper capabilities","rsp setup"));let{residentRegistryStatus:o}=await Promise.resolve().then(()=>(lt(),Er));if(n.push(nL(await o(t))),n.push(sL(e)),$_(e)){let{telemetry:i}=await en(e,r);n.push(oL(i,r))}else n.push(le("recent_degradation_rate","no telemetry store available yet; no recent degradation spike detected"));return n.push(iL(Jt(process.cwd(),e.overhead))),G_(n.some(i=>!i.pass)?"fail":"pass",n,r)}function D_(e){let{exitCode:t,...r}=e;return`${ne({...r,exit_code:e.exitCode,probes:e.probes,errors:e.errors})}
239
- `}async function rL(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(()=>(Xs(),la)),r=t("git status");return r.kind==="rewrite"?le("hook_wiring",`pre-exec hook would rewrite git status through ${r.capabilityId}`):Dr("hook_wiring",`pre-exec hook passed git status through: ${r.reason??"unsupported-command"}`,"rsp setup")}catch(t){return Dr("hook_wiring",`pre-exec hook probe failed: ${t instanceof Error?zs(t.message):"unknown error"}`,"rsp setup")}}function nL(e){return e.state==="registered-alive-socket-healthy"?le("resident_liveness","resident registry points at a healthy socket"):Dr("resident_liveness",`resident registry state is ${e.state}`,"rsp warm-resident")}function sL(e){return e.storeUri.startsWith("file://")?$_(e)?le("store_provisioning","rsp store exists for this directory"):Dr("store_provisioning","rsp store is not provisioned","rsp setup"):le("store_provisioning","non-file store URI configured; provisioning is delegated to that backend")}function oL(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 Dr("recent_degradation_rate",`${n} degradation(s) in the recent ${t}d window; dominant reason ${s} (${o})`,aL(s,t))}function iL(e){return e.verdict==="green"?le("overhead_budget",e.summary):Dr("overhead_budget",e.summary,"rsp status")}function aL(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){if(!e.storeUri.startsWith("file://"))return!0;try{return eL(tL(e.storeUri))}catch{return!1}}function le(e,t){return{name:e,pass:!0,finding:t}}function Dr(e,t,r){return{name:e,pass:!1,finding:t,fix_command:r,error:rc({command:`rsp doctor:${e}`,category:"real-error",error:t,help:r})}}function G_(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)}}wd();function j_(e){let t=e[0]==="--help"||e[0]==="-h"?void 0:e[0];return`${lL(t).join(`
229
+ `,String(process.pid)],{detached:!0,stdio:"ignore"});return t.unref(),t}function Pa(){for(let e of XN())try{process.kill(e,"SIGTERM")}catch{}}function XN(){if(process.platform==="win32")return[];let e="";try{e=BR("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 ZN(e){if(e.collection!==qe)return e;let t=await NR(e.raw_text,MR(e.raw_bytes)),r=await NR(e.emitted_text,MR(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 NR(e,t){if(typeof e=="string"){let r=Buffer.byteLength(e,"utf8");if(r<=MN)try{return await JR((async()=>({tokens:(await eF())("cl100k_base").encode(e).length,estimated:!1}))(),jN,"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 eF(){return FR??=import(NN(tF()).href).then(e=>{let t=e.getEncoding;if(!t)throw new Error("js-tiktoken getEncoding export not found");return t}),await FR}function tF(){let e=gp($N(import.meta.url)),r=[Aa(e,"..","node_modules","js-tiktoken","dist","index.js"),Aa(e,"..","apps","rsp","node_modules","js-tiktoken","dist","index.js")].find(n=>LN(n));if(!r)throw new Error("js-tiktoken dependency not found");return r}function MR(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 mp(e){return e.trim().split(/\s+/).filter(Boolean)[0]??"unknown"}async function JR(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 rF(e){try{return JSON.parse(e)}catch{return e}}function nF(e){return jR(e)&&e.version===1&&Array.isArray(e.records)&&e.records.every(t=>jR(t)&&(t.collection===Ce||t.collection===Ae||t.collection===qe||t.collection===st)&&typeof t.key=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&typeof t.bytes=="number")}function jR(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function sF(e,t){mf(e,(r,n)=>t(r,n),(r,n,s)=>{s({id:n?.id??Fn(),ok:!1,error:r instanceof Error?r.message:String(r)})})}async function oF(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 id(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 Qi(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 ad(i,t.sinceDays)}if(t.op==="mint")return{handle:await o.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return uF(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 cF(o,r,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}function iF(e){let t;return{async read(r){if(!t){let n=String(BR("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=IR({rootDir:e,token:n,balance:aF(n)})}return await t.read(r)}}}function aF(e){let t=ul({token:e}),r=null,n=0,s=null;return async()=>{let o=Date.now();if(o<n)return r;if(s!==null)return await s;let i=new Date(o).toISOString();return s=al({transport:t,now:i}).then(a=>(r=a,n=Date.now()+cl(a,{now:new Date().toISOString()}),r)).finally(()=>{s=null}),await s}}async function cF(e,t,r,n){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await SR(s,t).request(r,n)}function uF(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var MN,jN,qR,BN,UN,HN,fp,$R,FR,KR=y(()=>{"use strict";Si();De();jo();Lo();Ct();Yi();CR();GR();yt();Ue();MN=256*1024,jN=500,qR=2e3,BN=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),UN="rsp-status-summary.json",HN=[Ce,Ae,qe,st,vs],fp=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 WN(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 Tl(this.opts.rootDir,async a=>{let c=Rn(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 qN(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:Fn(),a={...await ZN(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===qe?await this.writeEvent(t,{collection:Ce,id:`mirror:${we(r.id)||Fn()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:mp(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===st?await this.writeEvent(t,{collection:Ce,id:`mirror:${we(r.id)||Fn()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:mp(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:st,id:Fn(),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:${Fn()}`,created_at:n.created_at,event_type:"invocation",command:r.command,command_class:mp(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(vs).get("index:v1"),n=typeof r=="string"?rF(r):r;return nF(n)?n:{version:1,records:[]}}async writeIndex(t,r){await t.kv(vs).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})}};$R=!1});import{posix as pF,win32 as mF}from"node:path";import{fileURLToPath as fF}from"node:url";Ba();pt();var Sm={"store-uri":{kind:"value",coerce:e=>e},brief:{kind:"boolean"},terse:{kind:"boolean"},query:{kind:"value",coerce:e=>e}},BS={json:{kind:"boolean"}},US={help:{kind:"boolean",aliases:["h"]}},HS={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 Tm(e){let{command:t,args:r}=ja(e,qS);return t==="--version"?{kind:"version",json:Hn(r,BS).values.json===!0}:WS(e)?{kind:"help"}:{kind:"command"}}var qS={commands:{"--version":{aliases:["-v"]},run:{}},default:"run",keepArgvOnDefault:!0};function WS(e){return hr(e,US).values.help===!0}function vm(e){let{values:t,rest:r}=VS(e),n=r[0];if(n!==void 0&&n!=="--"&&n.startsWith("--"))throw Ro.unknownFlag(n);let s=ja(r,HS).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 Ro=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:JS})}},JS=Object.keys(Sm).map(e=>`--${e}`);function VS(e){try{return hr(e,Sm)}catch(t){throw new Ro(t instanceof Error?t.message:String(t))}}function xm(e){return V({command:`rsp ${e.token}`,category:"usage",error:`unknown command: ${e.token}`,help:"rsp --help",validFlags:e.known})}function Om(e){return e instanceof Un}function Zr(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}var KS={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:Vt},"ephemeral-ttl-hours":{kind:"value",coerce:Vt},"byte-budget":{kind:"value",coerce:Vt},"telemetry-ttl-days":{kind:"value",coerce:Vt},"telemetry-byte-budget":{kind:"value",coerce:Vt},"telemetry-drain-interval-ms":{kind:"value",coerce:Vt},"telemetry-drain-timeout-ms":{kind:"value",coerce:Vt},"idle-ms":{kind:"value",coerce:Vt}};function lc(e){return Hn(e,KS).values}var Cm={since:{kind:"value",coerce:YS},full:{kind:"boolean"}};function ko(e,t){return Hn(e,Cm).values.since??t}function Am(e){return Hn(e,Cm).values.full===!0}var zS={field:{kind:"value",type:"array",aliases:["f","F"],coerce:e=>e}};function Pm(e){let{values:t,rest:r}=hr(e,zS),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 Vt(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function YS(e){let t=/^(\d+)(d)?$/.exec(e);if(!t)return;let r=Number(t[1]);return Number.isFinite(r)&&r>0?r:void 0}dc();pt();import{existsSync as lF}from"node:fs";import{fileURLToPath as dF}from"node:url";Ct();Xn();ae();ft();import{existsSync as aA}from"node:fs";import{fileURLToPath as cA}from"node:url";Ct();Hc();ae();import{existsSync as vv}from"node:fs";import{fileURLToPath as xv}from"node:url";async function nn(e,t){let r={stats:Ov(e.telemetryByteBudget),telemetry:Vc(t)};if(!e.storeUri.startsWith("file://"))return r;let n=xv(e.storeUri);if(!vv(n))return r;let{residentElisionStore:s}=await Promise.resolve().then(()=>(Yt(),as)),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:Vc(t)}}catch{return r}finally{await o.close()}}function Kc(e,t=Vc(30),r=!1,n=Hf()){return`${ne(zc(e,t,r,n))}
230
+ `}function Uf(e,t){return`${ne({...e,overhead:qf(t)})}
231
+ `}function Hf(){return{schema_version:"red.rsp.overhead.v1",verdict:"green",summary:"every wrapper family is inside its overhead ceiling",ceiling:Pt,breaching_families:[],disabled_families:[],families:[]}}function qf(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 zc(e,t,r,n=Hf()){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??Bo(),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:Cv(t.savings),dollars_saved_estimate_usd_display:Av(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:qf(n),health:{overhead_verdict:n.verdict,overhead_summary:n.summary,...t.health,degradation_rate_display:Jc(t.health.degradation_rate),show_hit_rate_display:Jc(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:Jc(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:Wc(t.latency.wrapper_ms_p50),wrapper_ms_p95_display:Wc(t.latency.wrapper_ms_p95),store_elapsed_ms_avg_display:Wc(t.latency.store_elapsed_ms_avg)}}}function Wf(e){return`${ne(e)}
232
+ `}function Vc(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 Ov(e){return{records:0,bytes:0,oldest:null,budget:e,storage_classes:Bo()}}function Bo(){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 Yc(e){let t=e.legacyStoreMigrated?"migrated":e.storeCreated?"created":"existing";return[`config: ${e.configChanged?"updated":"unchanged"}`,`store: ${t}`,""].join(`
233
+ `)}function Cv(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 Av(e){return e.dollars_saved_low_usd==null||e.dollars_saved_high_usd==null?os(e.dollars_saved_estimate_usd):`${os(e.dollars_saved_low_usd)}-${os(e.dollars_saved_high_usd)} (estimate_midpoint: ${os(e.dollars_saved_estimate_usd)})`}function Wc(e){return e==null?"none":String(e)}function Jc(e){return e.toFixed(4).replace(/0+$/,"").replace(/\.$/,".0")}async function Pb(e){let{stats:t,telemetry:r}=await nn(e,30),[n,s]=await Promise.all([uA(e),Promise.resolve().then(()=>(gl(),fl)).then(o=>o.listWaits(process.cwd()),()=>[])]);return{stats:t,telemetry:r,recoveryHandles:n,waits:s,overhead:Kt(mt(process.cwd()).rootDir,e.overhead)}}function Ib(e){let t=zc(e.stats,e.telemetry,!1,e.overhead),r=gc({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??Bo()},savings:t.savings,overhead:t.overhead,health:t.health,decisions:t.decisions,latency:t.latency},lA(e));return`${ne(r)}
234
+ `}async function uA(e){if(!e.storeUri.startsWith("file://"))return[];let t=cA(e.storeUri);if(!aA(t))return[];let{residentElisionStore:r}=await Promise.resolve().then(()=>(Yt(),as)),n=r(process.cwd(),e);try{return await n.recoveryHandles(5)}catch{return[]}finally{await n.close()}}function lA(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"]}Ct();ae();pt();import{existsSync as NG}from"node:fs";import{fileURLToPath as FG}from"node:url";yt();import{spawn as ca}from"node:child_process";async function C_(e,t,r){let n=process.hrtime.bigint(),s=await A_(e.positional),o=Number(process.hrtime.bigint()-n)/1e6;return ZL(t,e,s,o,r),s.signal?(process.kill(process.pid,s.signal),128):s.status??0}async function A_(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(()=>(Zi(),Xi)).then(i=>i.parseProxyCommandLine(e)):await Promise.resolve().then(()=>(to(),eo)).then(i=>i.parseExecCommandLine(e));r=ca(o,{shell:!0,stdio:["inherit","pipe","pipe"]})}else r=ca(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)}
235
+ `;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 P_(e){return e>0&&Math.random()<e}async function no(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
236
+ `);let s=await D_(t);if(n){let o=eG(e,t,r),{appendTelemetryEvent:i,RSP_ACCOUNTING_EVENTS_COLLECTION:a,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:c}=await Promise.resolve().then(()=>(yt(),Vs));la(i(n,{collection:a,event_type:"invocation",ts:new Date().toISOString(),command:ua(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})),la(i(n,{collection:c,ts:new Date().toISOString(),command:ua(t),reason:o.reason,wrapper_family:o.family,wrapper_exit_code:o.exitCode,stderr_head:o.stderrHead,accounting_recorded:!0}))}return s}async function I_(e,t,r){let n=await A_(e),{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:i}=await Promise.resolve().then(()=>(yt(),Vs)),a={ts:new Date().toISOString(),command:ua(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 la(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})),la(s(t,{collection:i,accounting_recorded:!0,...a})),n.signal?(process.kill(process.pid,n.signal),128):n.status??0}async function L_(e){return process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp: ${da()}, passing through
237
+ `),await D_(e)}function da(){return"rsp is not enabled in this directory; run /red-setup"}function G_(e){return e==="git"||e==="gh"||e==="vitest"||e==="cargo"||e==="cat"||e==="exec"||e==="proxy"||e==="gh-api-json"}function bt(e){return ua(e.positional)}function ua(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 ro(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function ZL(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:bt(t),command_class:t.command??"unknown",wrapper:t.command,loss:"lossless",elided:!1,raw_bytes:o,emitted_bytes:o,wrapper_ms:n};tr(e,{collection:"rsp_accounting_events_v1",...i}),tr(e,{collection:"rsp_telemetry_invocations_v1",...i,accounting_recorded:!0})}function eG(e,t,r){let n=t[0]??"unknown",s=tG(r)||e;return{reason:O_(r)==="ENOENT"||O_(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:nG(r)??1,stderrHead:rG(s,240)}}function tG(e){return e instanceof Error?ro(e.message):ro(String(e??""))}function rG(e,t){let r=ro(e).replace(/\s+/g," ").trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}\u2026`}function O_(e){if(typeof e!="object"||e===null||!("code"in e))return"";let t=e.code;return typeof t=="string"?t:""}function nG(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 la(e){e.catch(()=>{})}async function D_(e){if(e[0]==="exec"||e[0]==="proxy")return await sG(e);let t=e[0];if(!t)return 2;let r=ca(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)}
238
+ `),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function sG(e){let t;try{if(e[0]==="proxy"){let{parseProxyCommandLine:n}=await Promise.resolve().then(()=>(Zi(),Xi));t=n(e)}else{let{parseExecCommandLine:n}=await Promise.resolve().then(()=>(to(),eo));t=n(e)}}catch(n){return process.stderr.write(`${n instanceof Error?n.message:String(n)}
239
+ `),2}let r=ca(t,{shell:!0,stdio:"inherit"});return await new Promise(n=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
240
+ `),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function X_(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")),Q_("disabled",n,r);n.push(await MG(e)),n.push(e.proxyEnabled?le("proxy_mode","proxy routing enabled for pre-exec rewrites"):Fr("proxy_mode","proxy routing is explicitly disabled; hook falls back to fixed wrapper capabilities","rsp setup"));let{residentRegistryStatus:o}=await Promise.resolve().then(()=>(ft(),kr));if(n.push(jG(await o(t))),n.push(BG(e)),eE(e)){let{telemetry:i}=await nn(e,r);n.push(UG(i,r))}else n.push(le("recent_degradation_rate","no telemetry store available yet; no recent degradation spike detected"));return n.push(HG(Kt(process.cwd(),e.overhead))),Q_(n.some(i=>!i.pass)?"fail":"pass",n,r)}function Z_(e){let{exitCode:t,...r}=e;return`${ne({...r,exit_code:e.exitCode,probes:e.probes,errors:e.errors})}
241
+ `}async function MG(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(()=>(oo(),ya)),r=t("git status");return r.kind==="rewrite"?le("hook_wiring",`pre-exec hook would rewrite git status through ${r.capabilityId}`):Fr("hook_wiring",`pre-exec hook passed git status through: ${r.reason??"unsupported-command"}`,"rsp setup")}catch(t){return Fr("hook_wiring",`pre-exec hook probe failed: ${t instanceof Error?ro(t.message):"unknown error"}`,"rsp setup")}}function jG(e){return e.state==="registered-alive-socket-healthy"?le("resident_liveness","resident registry points at a healthy socket"):Fr("resident_liveness",`resident registry state is ${e.state}`,"rsp warm-resident")}function BG(e){return e.storeUri.startsWith("file://")?eE(e)?le("store_provisioning","rsp store exists for this directory"):Fr("store_provisioning","rsp store is not provisioned","rsp setup"):le("store_provisioning","non-file store URI configured; provisioning is delegated to that backend")}function UG(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 Fr("recent_degradation_rate",`${n} degradation(s) in the recent ${t}d window; dominant reason ${s} (${o})`,qG(s,t))}function HG(e){return e.verdict==="green"?le("overhead_budget",e.summary):Fr("overhead_budget",e.summary,"rsp status")}function qG(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 eE(e){if(!e.storeUri.startsWith("file://"))return!0;try{return NG(FG(e.storeUri))}catch{return!1}}function le(e,t){return{name:e,pass:!0,finding:t}}function Fr(e,t,r){return{name:e,pass:!1,finding:t,fix_command:r,error:uc({command:`rsp doctor:${e}`,category:"real-error",error:t,help:r})}}function Q_(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)}}xd();function sE(e){let t=e[0]==="--help"||e[0]==="-h"?void 0:e[0];return`${VG(t).join(`
240
242
  `)}
241
- `}function lL(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}`)]}Ge();ae();ft();import{spawn as dL}from"node:child_process";import{createHash as pL}from"node:crypto";import{existsSync as mL,readFileSync as fL,statSync as gL}from"node:fs";import{tmpdir as hL}from"node:os";import{dirname as yL,join as ir}from"node:path";async function Se(e,t,r,n,s=process.cwd(),o,i=o?.overhead??At){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let a=Number(process.hrtime.bigint()-r)/1e6;n&&o&&wL(s,o);let c=bL(e,t,a);return mc(s,c,i),n?$r(kL(s,e,t,c,i,n.lastResponseMetrics())):SL(s,e,t,c,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}function bL(e,t,r){let n=hc(),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 $r(e){e.catch(()=>{})}async function ma(e,t,r,n){let{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o}=await Promise.resolve().then(()=>(ft(),js));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 wL(e,t){try{let r=Ft(e),n=gL(r),s=t.telemetryDrainIntervalMs*2;if(n.size<t.telemetryByteBudget&&!RL(r,Date.now()-s))return;let o=_L(e),i=EL(o),a=ir(i,"rsp.sock"),c=ir(i,"rsp.pid"),u=ir(X(o),"rsp-resident.pid.json"),l=ir(o,".red","tmp","rsp","wake.lock");dL(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 _L(e){let t=e;for(;;){if(mL(ir(t,".git")))return t;let r=yL(t);if(r===t)return e;t=r}}function EL(e){let t=pL("sha256").update(e).digest("hex").slice(0,20),r=process.env.XDG_RUNTIME_DIR;if(r){let s=ir(r,"red-skills",t);if(ir(s,"rsp.sock").length<108)return s}let n=typeof process.getuid=="function"?process.getuid():"nouid";return ir(hL(),`red-skills-${n}`,t)}function RL(e,t){try{let r=fL(e,"utf8");Qn(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=ko(n,s),{appendTelemetryEvent:u,RSP_ACCOUNTING_EVENTS_COLLECTION:l,RSP_TELEMETRY_INVOCATIONS_COLLECTION:d}=await Promise.resolve().then(()=>(ft(),js));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:d,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 SL(e,t,r,n,s){try{let o=Buffer.concat([r.stdout,r.stderr]),i=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),a=ko(n,s);Zt(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}),Zt(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 dr=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}},Vd=class{async mint(t,r){return`recovery unavailable (cold store) \u2014 re-run: ${r.command}`}lastResponseMetrics(){}async close(){}};async function OE(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw n instanceof Error?n:new Error("cold store");let s=new Vd,o=process.hrtime.bigint();try{if(e.command==="git"){let{isFastGitStatus:i,runFastGitStatus:a}=await Promise.resolve().then(()=>(wd(),M_));if(i(e.positional))return await Se(e,await a(),o,s,r,t);let{runGitWrapper:c}=await Promise.resolve().then(()=>(Gr(),sd)),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(()=>(Fd(),Nd)),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(()=>(Ud(),Bd)),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(()=>(Jd(),Wd)),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(()=>(Ks(),Vs)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Se(e,a,o,s)}}catch(i){return Yr(i)?(process.stdout.write(i.render()),2):await Ys("wrapper failed",e.positional,i,r)}finally{await s.close()}return await Ys("wrapper failed",e.positional,n,r)}async function PR(e=process.argv.slice(2)){let t=yo("rsp"),r=ym(e);if(r.kind==="version")return process.stdout.write(r.json?`${JSON.stringify(t)}
242
- `:`${Sm(t)}
243
- `),0;if(r.kind==="help")return process.stdout.write(j_(e)),0;let n;try{n=bm(e)}catch(h){if(_m(h))return process.stdout.write(wm(h)),2;throw h}if(n.command==="hook"&&n.positional[1]==="claude-pre-exec"){let{runClaudePreExecHook:h}=await Promise.resolve().then(()=>(Xs(),la));return await h()}if(n.command==="hook"&&n.positional[1]==="codex-pre-exec"){let{runCodexPreExecHook:h}=await Promise.resolve().then(()=>(Xs(),la));return await h()}if(n.command==="hook"&&n.positional[1]==="claude-post-exec"){let{runClaudePostExecHook:h}=await Promise.resolve().then(()=>(qs(),cd));return await h()}if(n.command==="hook"&&n.positional[1]==="codex-post-exec"){let{runCodexPostExecHook:h}=await Promise.resolve().then(()=>(qs(),cd));return await h()}if(n.command==="setup"){let{provisionRspRepoStore:h}=await Promise.resolve().then(()=>(NE(),$E)),E=await h(process.cwd());return process.stdout.write(Hc(E)),0}if(n.command==="mcp"){let{runRspMcpServer:h}=await Promise.resolve().then(()=>(qE(),HE));return await h(),0}if(n.command==="wait"){let{runWait:h}=await Promise.resolve().then(()=>(cl(),al));return await h(n.positional)}if(n.command==="shell-init"){let h=n.positional[1];if(h!=="fish"&&h!=="bash"&&h!=="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:E}=await Promise.resolve().then(()=>(VE(),JE));return process.stdout.write(E(h)),0}let{resolveRspConfig:s}=await Promise.resolve().then(()=>(je(),Cg)),o=s(process.cwd(),process.env,n.storeUri);if(n.command==="doctor"){let{resolveResidentPaths:h}=await Promise.resolve().then(()=>(lt(),Er)),E=h(process.cwd()),T=await L_(o,E,ho(n.positional,1));return process.stdout.write(D_(T)),T.exitCode}let i=h_(n.command);if(!o.enabled)return i?await g_(n.positional):(process.stdout.write(`${sa()}
244
- `),0);if(n.command==="git"&&da(n.positional)){let h=process.hrtime.bigint();return await Se(n,await pa(),h,void 0,await bd(process.cwd()),o)}let{resolveResidentPaths:a,ensureResidentServer:c}=await Promise.resolve().then(()=>(lt(),Er)),u=a(process.cwd());if(i&&n.command){let{overheadFamilyDisabled:h}=await Promise.resolve().then(()=>(ae(),To)),E=h(u.rootDir,n.command);if(E)return await f_(n.positional,u.rootDir,E)}if(i&&m_(o.measurementHoldoutShare))return await d_(n,u.rootDir,o.measurementHoldoutShare);if(n.command==="server"){let{runResidentServer:h}=await Promise.resolve().then(()=>(AR(),OR)),E=a(process.cwd()),T=nc(n.positional),C=s(process.cwd(),process.env,n.storeUri);return C.enabled?(await h({socketPath:T.socket??E.socketPath,pidPath:T["pid-file"]??E.pidPath,rootDir:E.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??E.registryPath}),0):(process.stdout.write(`${sa()}
245
- `),0)}if(n.command==="warm-resident"){let h=a(process.cwd()),E=nc(n.positional),T=s(process.cwd(),process.env,n.storeUri);if(!T.enabled)return 0;let{warmResidentServer:C}=await Promise.resolve().then(()=>(lt(),Er));return await C({...h,socketPath:E.socket??h.socketPath,wakeLockPath:E["wake-lock"]??h.wakeLockPath},{storeUri:T.storeUri,ttlDays:E["ttl-days"]??T.ttlDays,ephemeralTtlHours:E["ephemeral-ttl-hours"]??T.ephemeralTtlHours,byteBudget:E["byte-budget"]??T.byteBudget,telemetryTtlDays:E["telemetry-ttl-days"]??T.telemetryTtlDays,telemetryByteBudget:E["telemetry-byte-budget"]??T.telemetryByteBudget,telemetryDrainIntervalMs:E["telemetry-drain-interval-ms"]??T.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:E["telemetry-drain-timeout-ms"]??T.telemetryDrainTimeoutMs,idleMs:E["idle-ms"]??T.idleMs,clientVersion:t.version}),0}if(n.command==="proxy"){let{runProxy:h}=await Promise.resolve().then(()=>(Ji(),Wi));return await h(n.positional,{telemetryRoot:u.rootDir,level:n.level})}if(n.command==="status"||n.command==="sweep"){let{residentRegistryStatus:h,sweepResidentRegistry:E}=await Promise.resolve().then(()=>(lt(),Er)),T=n.command==="sweep"?await E(u):await h(u);if(n.command==="sweep"){let{sweepGhEtagCache:F}=await Promise.resolve().then(()=>(zo(),Rg));await F(u.rootDir,{maxBytes:o.ghEtagCacheMaxBytes})}let{overheadHealth:C}=await Promise.resolve().then(()=>(ae(),To)),G=C(u.rootDir,o.overhead);return process.stdout.write(Lf(T,G)),0}if(n.command==="gh-api-json"){let{readGhConditionalJson:h}=await Promise.resolve().then(()=>(ei(),Dg)),E=km(n.positional);if(!E)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 h({path:E.path,params:E.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}
246
- `),T.status}if(n.command==="dashboard"){let h=await hb(o);return process.stdout.write(yb(h)),0}if(!n.storeUri&&o.storeUri.startsWith("file://")&&!xN(CN(o.storeUri)))return i?await OE(n,o,u.rootDir):(process.stdout.write(V({command:gt(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(()=>(Kt(),ss)),g=(h=!0)=>Promise.resolve(d(process.cwd(),o,{ensureResident:h,paths:u})),f=()=>c(u,l(o,t.version)).catch(h=>void p(h)),R=()=>g(),b;try{if(n.command==="stats"){let{stats:h,telemetry:E}=await en(o,ho(n.positional,30)),{overheadHealth:T}=await Promise.resolve().then(()=>(ae(),To));return process.stdout.write(Bc(h,E,Rm(n.positional),T(u.rootDir,o.overhead))),0}if(n.command==="gains"){let h=await R();b=()=>h.close();let E;try{E=await h.telemetryGains(ho(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(Nf(E)),0}if(n.command==="git"){if($r(f()),da(n.positional)){let G=process.hrtime.bigint();return await Se(n,await pa(),G,void 0,u.rootDir,o)}let{runGitWrapper:h}=await Promise.resolve().then(()=>(Gr(),sd)),E=new dr(()=>g(!1));b=()=>E.close();let T=process.hrtime.bigint(),C=await h(n.positional,{level:n.level,store:E,heavyGitByteThreshold:o.heavyGitByteThreshold});return await Se(n,C,T,E,u.rootDir,o)}if(n.command==="gh"){$r(f());let{runGhWrapper:h}=await Promise.resolve().then(()=>(Fd(),Nd)),E=new dr(()=>g(!1));b=()=>E.close();let T=process.hrtime.bigint(),C=await h(n.positional,{level:n.level,store:E});return await Se(n,C,T,E,u.rootDir,o)}if(n.command==="vitest"||n.command==="cargo"){$r(f());let{runTestWrapper:h}=await Promise.resolve().then(()=>(Ud(),Bd)),E=new dr(()=>g(!1));b=()=>E.close();let T=process.hrtime.bigint(),C=await h(n.positional,{level:n.level,store:E});return await Se(n,C,T,E,u.rootDir,o)}if(n.command==="cat"){$r(f());let{runCatWrapper:h}=await Promise.resolve().then(()=>(Jd(),Wd)),E=new dr(()=>g(!1));b=()=>E.close();let T=process.hrtime.bigint(),C=await h(n.positional,{level:n.level,store:E,heavyByteThreshold:o.heavyGitByteThreshold});return await Se(n,C,T,E,u.rootDir,o)}if(n.command==="exec"){$r(f());let{runExecWrapper:h}=await Promise.resolve().then(()=>(Ks(),Vs)),E=new dr(()=>g(!1));b=()=>E.close();let T=process.hrtime.bigint(),C=await h(n.positional,{level:n.level,store:E,heavyByteThreshold:o.heavyGitByteThreshold});return await Se(n,C,T,E,u.rootDir,o)}if(n.command==="show"&&n.handle){let h=await R();b=()=>h.close();let E=await h.get(n.handle);if(E&&"original"in E&&E.original)return process.stdout.write(E.original),await ma(u.rootDir,n.handle,!0,E.original.length),0;if(E?.status==="expired"){let C=V({command:`rsp show ${n.handle}`,category:"real-error",error:`expired ${E.expired_at}`,help:E.command});return process.stdout.write(C),await ma(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 ma(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(h){if(Yr(h))return process.stdout.write(h.render()),2;if(i)return await Ys("wrapper failed",n.positional,h,u.rootDir);throw h}finally{await b?.()}}ct();function IN(e,t,r=process.platform){if(!t)return!1;let n=r==="win32",s=n?AN:ON;try{let o=s.resolve(PN(e,{windows:n})),i=s.resolve(t);return n?o.toLowerCase()===i.toLowerCase():o===i}catch{return!1}}IN(import.meta.url,process.argv[1])&&PR().then(e=>process.exit(e),e=>{Yr(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{IN as isDirectExecution,PR as main,Hc as renderSetupResult,Bc as renderStats};
243
+ `}function VG(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}`)]}De();ae();yt();import{spawn as KG}from"node:child_process";import{createHash as zG}from"node:crypto";import{existsSync as YG,readFileSync as QG,statSync as XG}from"node:fs";import{tmpdir as ZG}from"node:os";import{dirname as eD,join as cr}from"node:path";async function Se(e,t,r,n,s=process.cwd(),o,i=o?.overhead??Pt){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let a=Number(process.hrtime.bigint()-r)/1e6;n&&o&&rD(s,o);let c=tD(e,t,a);return _c(s,c,i),n?Mr(iD(s,e,t,c,i,n.lastResponseMetrics())):aD(s,e,t,c,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}function tD(e,t,r){let n=kc(),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 Mr(e){e.catch(()=>{})}async function _a(e,t,r,n){let{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o}=await Promise.resolve().then(()=>(yt(),Vs));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 rD(e,t){try{let r=jt(e),n=XG(r),s=t.telemetryDrainIntervalMs*2;if(n.size<t.telemetryByteBudget&&!oD(r,Date.now()-s))return;let o=nD(e),i=sD(o),a=cr(i,"rsp.sock"),c=cr(i,"rsp.pid"),u=cr(X(o),"rsp-resident.pid.json"),l=cr(o,".red","tmp","rsp","wake.lock");KG(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 nD(e){let t=e;for(;;){if(YG(cr(t,".git")))return t;let r=eD(t);if(r===t)return e;t=r}}function sD(e){let t=zG("sha256").update(e).digest("hex").slice(0,20),r=process.env.XDG_RUNTIME_DIR;if(r){let s=cr(r,"red-skills",t);if(cr(s,"rsp.sock").length<108)return s}let n=typeof process.getuid=="function"?process.getuid():"nouid";return cr(ZG(),`red-skills-${n}`,t)}function oD(e,t){try{let r=QG(e,"utf8");es(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 iD(e,t,r,n,s,o){let i=Buffer.concat([r.stdout,r.stderr]),a=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),c=Ao(n,s),{appendTelemetryEvent:u,RSP_ACCOUNTING_EVENTS_COLLECTION:l,RSP_TELEMETRY_INVOCATIONS_COLLECTION:d}=await Promise.resolve().then(()=>(yt(),Vs));await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:bt(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:bt(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:bt(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:bt(t),reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead,accounting_recorded:!0}))}function aD(e,t,r,n,s){try{let o=Buffer.concat([r.stdout,r.stderr]),i=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),a=Ao(n,s);tr(e,{collection:"rsp_accounting_events_v1",event_type:"invocation",ts:new Date().toISOString(),command:bt(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}),tr(e,{collection:"rsp_telemetry_invocations_v1",ts:new Date().toISOString(),command:bt(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 mr=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}},tp=class{async mint(t,r){return`recovery unavailable (cold store) \u2014 re-run: ${r.command}`}lastResponseMetrics(){}async close(){}};async function VE(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw n instanceof Error?n:new Error("cold store");let s=new tp,o=process.hrtime.bigint();try{if(e.command==="git"){let{isFastGitStatus:i,runFastGitStatus:a}=await Promise.resolve().then(()=>(xd(),nE));if(i(e.positional))return await Se(e,await a(),o,s,r,t);let{runGitWrapper:c}=await Promise.resolve().then(()=>($r(),pd)),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(()=>(Jd(),Wd)),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(()=>(Yd(),zd)),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(()=>(ep(),Zd)),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(()=>(to(),eo)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Se(e,a,o,s)}}catch(i){return Zr(i)?(process.stdout.write(i.render()),2):await no("wrapper failed",e.positional,i,r)}finally{await s.close()}return await no("wrapper failed",e.positional,n,r)}async function zR(e=process.argv.slice(2)){let t=So("rsp"),r=Tm(e);if(r.kind==="version")return process.stdout.write(r.json?`${JSON.stringify(t)}
244
+ `:`${Im(t)}
245
+ `),0;if(r.kind==="help")return process.stdout.write(sE(e)),0;let n;try{n=vm(e)}catch(h){if(Om(h))return process.stdout.write(xm(h)),2;throw h}if(n.command==="hook"&&n.positional[1]==="claude-pre-exec"){let{runClaudePreExecHook:h}=await Promise.resolve().then(()=>(oo(),ya));return await h()}if(n.command==="hook"&&n.positional[1]==="codex-pre-exec"){let{runCodexPreExecHook:h}=await Promise.resolve().then(()=>(oo(),ya));return await h()}if(n.command==="hook"&&n.positional[1]==="claude-post-exec"){let{runClaudePostExecHook:h}=await Promise.resolve().then(()=>(Qs(),hd));return await h()}if(n.command==="hook"&&n.positional[1]==="codex-post-exec"){let{runCodexPostExecHook:h}=await Promise.resolve().then(()=>(Qs(),hd));return await h()}if(n.command==="setup"){let{provisionRspRepoStore:h}=await Promise.resolve().then(()=>(tR(),eR)),E=await h(process.cwd());return process.stdout.write(Yc(E)),0}if(n.command==="mcp"){let{runRspMcpServer:h}=await Promise.resolve().then(()=>(cR(),aR));return await h(),0}if(n.command==="wait"){let{runWait:h}=await Promise.resolve().then(()=>(gl(),fl));return await h(n.positional)}if(n.command==="shell-init"){let h=n.positional[1];if(h!=="fish"&&h!=="bash"&&h!=="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:E}=await Promise.resolve().then(()=>(dR(),lR));return process.stdout.write(E(h)),0}let{resolveRspConfig:s}=await Promise.resolve().then(()=>(Ue(),$g)),o=s(process.cwd(),process.env,n.storeUri);if(n.command==="doctor"){let{resolveResidentPaths:h}=await Promise.resolve().then(()=>(ft(),kr)),E=h(process.cwd()),T=await X_(o,E,ko(n.positional,1));return process.stdout.write(Z_(T)),T.exitCode}let i=G_(n.command);if(!o.enabled)return i?await L_(n.positional):(process.stdout.write(`${da()}
246
+ `),0);if(n.command==="git"&&ba(n.positional)){let h=process.hrtime.bigint();return await Se(n,await wa(),h,void 0,await vd(process.cwd()),o)}let{resolveResidentPaths:a,ensureResidentServer:c}=await Promise.resolve().then(()=>(ft(),kr)),u=a(process.cwd());if(i&&n.command){let{overheadFamilyDisabled:h}=await Promise.resolve().then(()=>(ae(),Io)),E=h(u.rootDir,n.command);if(E)return await I_(n.positional,u.rootDir,E)}if(i&&P_(o.measurementHoldoutShare))return await C_(n,u.rootDir,o.measurementHoldoutShare);if(n.command==="server"){let{runResidentServer:h}=await Promise.resolve().then(()=>(KR(),VR)),E=a(process.cwd()),T=lc(n.positional),O=s(process.cwd(),process.env,n.storeUri);return O.enabled?(await h({socketPath:T.socket??E.socketPath,pidPath:T["pid-file"]??E.pidPath,rootDir:E.rootDir,storeUri:O.storeUri,ttlDays:T["ttl-days"]??O.ttlDays,ephemeralTtlHours:T["ephemeral-ttl-hours"]??O.ephemeralTtlHours,byteBudget:T["byte-budget"]??O.byteBudget,telemetryTtlDays:T["telemetry-ttl-days"]??O.telemetryTtlDays,telemetryByteBudget:T["telemetry-byte-budget"]??O.telemetryByteBudget,telemetryDrainIntervalMs:T["telemetry-drain-interval-ms"]??O.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:T["telemetry-drain-timeout-ms"]??O.telemetryDrainTimeoutMs,idleMs:T["idle-ms"]??O.idleMs,residentVersion:T["resident-version"]??t.version,registryPath:T.registry??E.registryPath}),0):(process.stdout.write(`${da()}
247
+ `),0)}if(n.command==="warm-resident"){let h=a(process.cwd()),E=lc(n.positional),T=s(process.cwd(),process.env,n.storeUri);if(!T.enabled)return 0;let{warmResidentServer:O}=await Promise.resolve().then(()=>(ft(),kr));return await O({...h,socketPath:E.socket??h.socketPath,wakeLockPath:E["wake-lock"]??h.wakeLockPath},{storeUri:T.storeUri,ttlDays:E["ttl-days"]??T.ttlDays,ephemeralTtlHours:E["ephemeral-ttl-hours"]??T.ephemeralTtlHours,byteBudget:E["byte-budget"]??T.byteBudget,telemetryTtlDays:E["telemetry-ttl-days"]??T.telemetryTtlDays,telemetryByteBudget:E["telemetry-byte-budget"]??T.telemetryByteBudget,telemetryDrainIntervalMs:E["telemetry-drain-interval-ms"]??T.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:E["telemetry-drain-timeout-ms"]??T.telemetryDrainTimeoutMs,idleMs:E["idle-ms"]??T.idleMs,clientVersion:t.version}),0}if(n.command==="proxy"){let{runProxy:h}=await Promise.resolve().then(()=>(Zi(),Xi));return await h(n.positional,{telemetryRoot:u.rootDir,level:n.level})}if(n.command==="status"||n.command==="sweep"){let{residentRegistryStatus:h,sweepResidentRegistry:E}=await Promise.resolve().then(()=>(ft(),kr)),T=n.command==="sweep"?await E(u):await h(u);if(n.command==="sweep"){let{sweepGhEtagCache:F}=await Promise.resolve().then(()=>(ri(),Ag));await F(u.rootDir,{maxBytes:o.ghEtagCacheMaxBytes})}let{overheadHealth:O}=await Promise.resolve().then(()=>(ae(),Io)),L=O(u.rootDir,o.overhead);return process.stdout.write(Uf(T,L)),0}if(n.command==="gh-api-json"){let{readGhConditionalJson:h}=await Promise.resolve().then(()=>(ai(),Hg)),E=Pm(n.positional);if(!E)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 h({path:E.path,params:E.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}
248
+ `),T.status}if(n.command==="dashboard"){let h=await Pb(o);return process.stdout.write(Ib(h)),0}if(!n.storeUri&&o.storeUri.startsWith("file://")&&!lF(dF(o.storeUri)))return i?await VE(n,o,u.rootDir):(process.stdout.write(V({command:bt(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(()=>(Yt(),as)),m=(h=!0)=>Promise.resolve(d(process.cwd(),o,{ensureResident:h,paths:u})),g=()=>c(u,l(o,t.version)).catch(h=>void p(h)),R=()=>m(),b;try{if(n.command==="stats"){let{stats:h,telemetry:E}=await nn(o,ko(n.positional,30)),{overheadHealth:T}=await Promise.resolve().then(()=>(ae(),Io));return process.stdout.write(Kc(h,E,Am(n.positional),T(u.rootDir,o.overhead))),0}if(n.command==="gains"){let h=await R();b=()=>h.close();let E;try{E=await h.telemetryGains(ko(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(Wf(E)),0}if(n.command==="git"){if(Mr(g()),ba(n.positional)){let L=process.hrtime.bigint();return await Se(n,await wa(),L,void 0,u.rootDir,o)}let{runGitWrapper:h}=await Promise.resolve().then(()=>($r(),pd)),E=new mr(()=>m(!1));b=()=>E.close();let T=process.hrtime.bigint(),O=await h(n.positional,{level:n.level,store:E,heavyGitByteThreshold:o.heavyGitByteThreshold});return await Se(n,O,T,E,u.rootDir,o)}if(n.command==="gh"){Mr(g());let{runGhWrapper:h}=await Promise.resolve().then(()=>(Jd(),Wd)),E=new mr(()=>m(!1));b=()=>E.close();let T=process.hrtime.bigint(),O=await h(n.positional,{level:n.level,store:E});return await Se(n,O,T,E,u.rootDir,o)}if(n.command==="vitest"||n.command==="cargo"){Mr(g());let{runTestWrapper:h}=await Promise.resolve().then(()=>(Yd(),zd)),E=new mr(()=>m(!1));b=()=>E.close();let T=process.hrtime.bigint(),O=await h(n.positional,{level:n.level,store:E});return await Se(n,O,T,E,u.rootDir,o)}if(n.command==="cat"){Mr(g());let{runCatWrapper:h}=await Promise.resolve().then(()=>(ep(),Zd)),E=new mr(()=>m(!1));b=()=>E.close();let T=process.hrtime.bigint(),O=await h(n.positional,{level:n.level,store:E,heavyByteThreshold:o.heavyGitByteThreshold});return await Se(n,O,T,E,u.rootDir,o)}if(n.command==="exec"){Mr(g());let{runExecWrapper:h}=await Promise.resolve().then(()=>(to(),eo)),E=new mr(()=>m(!1));b=()=>E.close();let T=process.hrtime.bigint(),O=await h(n.positional,{level:n.level,store:E,heavyByteThreshold:o.heavyGitByteThreshold});return await Se(n,O,T,E,u.rootDir,o)}if(n.command==="show"&&n.handle){let h=await R();b=()=>h.close();let E=await h.get(n.handle);if(E&&"original"in E&&E.original)return process.stdout.write(E.original),await _a(u.rootDir,n.handle,!0,E.original.length),0;if(E?.status==="expired"){let O=V({command:`rsp show ${n.handle}`,category:"real-error",error:`expired ${E.expired_at}`,help:E.command});return process.stdout.write(O),await _a(u.rootDir,n.handle,!1,O.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 _a(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(h){if(Zr(h))return process.stdout.write(h.render()),2;if(i)return await no("wrapper failed",n.positional,h,u.rootDir);throw h}finally{await b?.()}}pt();function gF(e,t,r=process.platform){if(!t)return!1;let n=r==="win32",s=n?mF:pF;try{let o=s.resolve(fF(e,{windows:n})),i=s.resolve(t);return n?o.toLowerCase()===i.toLowerCase():o===i}catch{return!1}}gF(import.meta.url,process.argv[1])&&zR().then(e=>process.exit(e),e=>{Zr(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{gF as isDirectExecution,zR as main,Yc as renderSetupResult,Kc as renderStats};
247
249
  /*! Bundled license information:
248
250
 
249
251
  @octokit/request-error/dist-src/index.js: