@reddb-io/red-skills 3.6.1 → 3.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brain.bundle.min.mjs +1 -1
- package/dist/castle-mcp.bundle.min.mjs +352 -352
- package/dist/code-nav.bundle.min.mjs +1 -1
- package/dist/dev.bundle.min.mjs +579 -579
- package/dist/memory.bundle.min.mjs +1 -1
- package/dist/redskilled.bundle.min.mjs +89 -87
- package/dist/rsp.bundle.min.mjs +138 -136
- package/package.json +1 -1
package/dist/rsp.bundle.min.mjs
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
3
|
-
var
|
|
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
4
|
`),W("newline",`
|
|
5
5
|
`)),e.positional&&e.positional.length>0){t.push(W("section-header","Arguments:"),W("newline",`
|
|
6
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
7
|
`),W("indent"," "),W("option-description",n.description),W("newline",`
|
|
8
8
|
`))}t.push(W("newline",`
|
|
9
9
|
`))}if(e.options&&Object.keys(e.options).length>0){t.push(W("section-header","Options:"),W("newline",`
|
|
10
|
-
`));let n=
|
|
11
|
-
`))}return r}function
|
|
12
|
-
`);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function
|
|
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
|
|
14
|
-
`),e.push(" order: ",Ee(r.order.encoded,
|
|
15
|
-
`),e.push(" discriminator: ",Ee(r.discriminator,
|
|
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),`
|
|
16
16
|
`),e.push(" rows: ",String(r.rows.length),`
|
|
17
|
-
`),r.common.length>0
|
|
18
|
-
`);for(let s of n)e.push(" ",r.map(o=>Ee(s[o],
|
|
19
|
-
`)}function pk(e){return e!==""&&La(e)}function Ia(e,t,r,n=new Set){if(!La(t))return!1;if(ot(e))return r[t]=e,!0;if(Array.isArray(e)){if(n.has(e))return!1;n.add(e),r[`${t}.length`]=e.length;let s=e.every((o,i)=>Ia(o,`${t}.${i}`,r,n));return n.delete(e),s}if(Z(e)){if(n.has(e))return!1;n.add(e);let s=Object.entries(e).every(([o,i])=>!o.includes(".")&&Ia(i,`${t}.${o}`,r,n));return n.delete(e),s}return!1}function mk(e){let t=Object.keys(e[0]??{});if(e.every(r=>fk(Object.keys(r),t)))return t.every(La)?t:void 0}function fk(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function La(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}var Ga=h(()=>{Rt();fr();Ur();$n()});function Hr(e,t){let r=e[t]??e[e.length-1];return v(r===void 0?1:r.number,"array length mismatch")}function io(e,t){if(t===-1)throw v(0,"array header missing colon");let r=e.slice(0,t),n=_e(r,"[",0);if(n===-1)throw v(0,"invalid array header");let s,o;try{[s,o]=Je(r.slice(0,n),0)}catch{throw v(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw v(0,"invalid array header");let c=i.slice(0,a),u=/^[0-9]*/.exec(c)[0];if(u===""||u.length>1&&u.startsWith("0"))throw v(0,"invalid array header");let l=Number.parseInt(u,10),d;switch(c.slice(u.length)){case"":d=",";break;case" ":d=" ";break;case"|":d="|";break;default:throw v(0,"invalid array header")}let p=i.slice(a+1),g,f;if(p==="")g=void 0,f=void 0;else if(p.startsWith("{")&&p.endsWith("}")&&p.length>=2)try{f=hk(p.slice(1,-1),d),g=$a(f)}catch(k){throw v(0,k.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw v(0,"invalid array header");return{key:s,keyQuoted:o,len:l,delimiter:d,fields:g,fieldTree:f}}function Ap(e){let t=_e(e,"{",0);if(t===-1||!e.endsWith("}"))throw v(0,"invalid keyed map header");let r,n;try{[r,n]=Je(e.slice(0,t),0)}catch{throw v(0,"invalid keyed map header")}if(r===""&&!n)throw v(0,"expected non-empty field name");let s=e.slice(t+1,-1),o=Q;(s.startsWith("|")||s.startsWith(" "))&&(o=s[0],s=s.slice(1));let i;try{i=gk(s,o,o)}catch(a){throw v(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:o,fields:i}}function gk(e,t,r){let n=[],s=0;function o(c,u){let l=0;for(;s<e.length&&!(u&&e[s]==="}");){if(e[s]===t||e[s]==="}")throw v(0,"invalid array header");let d=s;for(;s<e.length;){let f=e[s];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;s+=1}let[p,g]=Je(e.slice(d,s),0);if(p===""&&!g)throw v(0,"invalid array header");if(l+=1,e[s]==="["){s+=1;let f=s;for(;s<e.length&&e[s]!=="]";)s+=1;if(s>=e.length)throw v(0,"invalid array header");let k=e.slice(f,s);if(!Pp(k,r))throw v(0,"invalid array header");s+=1,n.push({path:[...c,p],listDelimiter:k})}else if(e[s]==="{"){s+=1;let f=n.length;if(o([...c,p],!0),e[s]!=="}"||n.length===f)throw v(0,"invalid array header");s+=1}else n.push({path:[...c,p],listDelimiter:void 0});if(e[s]===t){if(s+=1,s>=e.length||e[s]==="}")throw v(0,"invalid array header");continue}if(u?e[s]==="}":s===e.length)break;throw v(0,"invalid array header")}if(l===0)throw v(0,"invalid array header")}function i(){for(s+=1;s<e.length;){let c=e[s];if(s+=1,c==="\\")s+=1;else if(c==='"')return}}if(o([],!1),s!==e.length)throw v(0,"invalid array header");let a=new Set;for(let c=0;c<n.length;c+=1)for(let u=c+1;u<n.length;u+=1)if(Ip(n[c].path,n[u].path)||Bn(n[c].path,n[u].path)||Bn(n[u].path,n[c].path))throw v(0,"duplicate key");for(let c of n){let l=c.path.join("\0");if(a.has(l))throw v(0,"duplicate key");a.add(l)}return n}function hk(e,t){if(t!==Q&&e.includes(Q)&&(e.includes("[")||e.includes("{")))return Da(e,Q,t);try{return Da(e,t,t)}catch(r){if(t!==Q&&r.reason!=="duplicate key")return Da(e,Q,t);throw r}}function Da(e,t,r){let n=0;function s(c){let u=[];for(;n<e.length&&!(c&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw v(0,"invalid array header");let l=n;for(;n<e.length;){let f=e[n];if(f==='"'){o();continue}if(f===t||f==="{"||f==="}"||f==="[")break;n+=1}let[d,p]=Je(e.slice(l,n),0);if(d===""&&!p)throw v(0,"invalid array header");let g={key:d};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw v(0,"invalid array header");let k=e.slice(f,n);n+=1;let E=yk(k);if(E!==void 0){if(E.delimiter!==r)throw v(0,"invalid array header");g.fixedLength=E.len,g.fixedDelimiter=E.delimiter}else if(Pp(k,r))g.listDelimiter=k;else throw v(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=s(!0),e[n]!=="}"||g.children.length===0)throw v(0,"invalid array header");n+=1}if(u.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw v(0,"invalid array header");continue}if(c?e[n]==="}":n===e.length)break;throw v(0,"invalid array header")}if(u.length===0)throw v(0,"invalid array header");return u}function o(){for(n+=1;n<e.length;){let c=e[n];if(n+=1,c==="\\")n+=1;else if(c==='"')return}}let i=s(!1);if(n!==e.length)throw v(0,"invalid array header");let a=$a(i);for(let c=0;c<a.length;c+=1)for(let u=c+1;u<a.length;u+=1)if(Ip(a[c].path,a[u].path)||Bn(a[c].path,a[u].path)||Bn(a[u].path,a[c].path))throw v(0,"duplicate key");return i}function yk(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=Q;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function $a(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?$a(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function ao(e,t,r){return e.listDelimiter===void 0?Fe(t,r):Ve(t,e.listDelimiter,r).map(n=>Fe(n,r))}function Pp(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Ip(e,t){return e.length===t.length&&Bn(e,t)}function Bn(e,t){return t.every((r,n)=>e[n]===r)}function co(e,t){return v(t,e.reason??String(e.message))}var Lp=h(()=>{Rt();fr()});function H(e,t){let r=kp(t),n=Sp(e,r),s=n[0];if(s===void 0)return{};if(s.depth!==0)throw v(s.number,"invalid indentation");let o=n.length===1;if(o&&s.content.trim()==="[]")return[];if(s.content.startsWith("[")){Mn(s.content,s.number,r);let u;try{u=io(s.content,_e(s.content,":",s.number))}catch(l){if(r.strict)throw co(l,s.number);u=void 0}if(u!==void 0)return _k(u,n,r)}if(o&&_e(s.content,":",s.number)===-1)return Fe(s.content.trim(),s.number);let i={index:0},a=Fa(n,i,0,r),c=n[i.index];if(c!==void 0)throw v(c.number,"expected end of document");return r.cyclicDiscriminatedArrays?xp(a):a}function Fa(e,t,r,n){let s={};for(;t.index<e.length;){let o=e[t.index];if(o.depth<r)break;if(o.depth>r)throw v(o.number,"invalid indentation");let{key:i,quoted:a,value:c}=bk(e,t,r,n);Bp(s,i,a,c,n,o.number)}return s}function bk(e,t,r,n){let s=e[t.index],o=s.content,i=_e(o,":",s.number);if(i===-1)throw v(s.number,"expected `key: value`");let a=o.slice(0,i),c=o.slice(i+1),u=_e(a,"[",s.number),l=_e(a,"{",s.number);if(l!==-1&&(u===-1||l<u)){Mn(a,s.number,n);let f;try{f=Ap(a)}catch(E){if(n.strict)throw co(E,s.number);t.index+=1;let y=Na(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:y}}if(c.trim()!=="")throw v(s.number,"expected keyed map rows");let k=wk(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:k}}if(u!==-1){Mn(a,s.number,n);let f;try{f=io(a,i)}catch(E){if(n.strict)throw co(E,s.number);t.index+=1;let y=Na(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:y}}if(f.key===""&&!f.keyQuoted)throw v(s.number,"expected non-empty field name");let k=Ma(f,c,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:k}}let[d,p]=Je(a,s.number);if(d===""&&!p)throw v(s.number,"expected non-empty field name");t.index+=1;let g=Na(e,t,r,c,s.number,n);return{key:d,quoted:p,value:g}}function Na(e,t,r,n,s,o){let i=n.trim();if(i==="[]")return[];if(i!=="")return Fe(i,s);let a=e[t.index];return a!==void 0&&a.depth>r?Fa(e,t,r+1,o):{}}function wk(e,t,r,n,s){let o={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw v(i.number,"invalid indentation");if(i.blankBefore&&s.strict)throw v(i.number,"blank line inside keyed map");let a=_e(i.content,":",i.number);if(a===-1)throw v(i.number,"expected `key: value`");let[c,u]=Je(i.content.slice(0,a),i.number);if(c===""&&!u)throw v(i.number,"expected non-empty field name");let l=Ve(i.content.slice(a+1).trim(),e.delimiter,i.number);if(l.length!==e.fields.length)throw v(i.number,"keyed map row length mismatch");let d={};e.fields.forEach((p,g)=>{Wr(d,p.path,ao(p,l[g],i.number),s,i.number)}),Bp(o,c,u,d,s,i.number),r.index+=1}return o}function _k(e,t,r){let n=t[0],s=_e(n.content,":",n.number);if(s===-1)throw v(n.number,"expected `key: value`");let o=n.content.slice(s+1),i={index:0},a=Ma(e,o,t,i,0,r),c=t[i.index];if(c!==void 0)throw v(c.number,"expected end of document");return a}function Ma(e,t,r,n,s,o){let i=r[n.index].number,a=t.trim();if(n.index+=1,e.fields!==void 0){if(a!=="")throw v(i,"expected tabular rows");return Ek(e,e.fields,r,n,s+1,o)}if(a!==""){let c=Ve(a,e.delimiter,i).map(u=>Fe(u,i));if(c.length!==e.len)throw v(i,"array length mismatch");return c}return Ck(e,r,n,s+1,o)}function Ek(e,t,r,n,s,o){if(e.fieldTree!==void 0&&vk(e.fieldTree))return Rk(e,r,n,s,o);let i=[];for(;i.length<e.len;){let c=r[n.index];if(c===void 0)throw Hr(r,n.index);if(c.depth<s)break;if(c.depth>s)throw v(c.number,"invalid indentation");if(c.blankBefore&&o.strict)throw v(c.number,"blank line inside array");if(!qr(c.content,e.delimiter,c.number))break;let u=Ve(c.content,e.delimiter,c.number);if(u.length!==t.length)throw v(c.number,"array row length mismatch");let l={};t.forEach((d,p)=>{Wr(l,d.path,ao(d,u[p],c.number),o,c.number)}),i.push(l),n.index+=1}if(i.length!==e.len)throw Hr(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=s&&qr(a.content,e.delimiter,a.number))throw v(a.number,"array length mismatch");return i}function Rk(e,t,r,n,s){return Gp(e.len,e.fieldTree,e.delimiter,t,r,n,s,!0)}function Gp(e,t,r,n,s,o,i,a){let c=[],u=$p(e,t,r,n,s.index,o,i);for(;c.length<e;){let d=n[s.index];if(d===void 0)throw Hr(n,s.index);if(d.depth<o)break;if(d.depth>o)throw v(d.number,"invalid indentation");if(d.blankBefore&&i.strict)throw v(d.number,"blank line inside array");if(!qr(d.content,r,d.number))break;let p=Ve(d.content,r,d.number),g={cellIndex:0,nextIndex:s.index+1,flatWidth:uo(t),childTableFields:u},f=Dp(t,p,d.number,n,g,o+1,r,i);if(g.cellIndex!==p.length)throw v(d.number,"array row length mismatch");c.push(Tk(t,f,a)),s.index=g.nextIndex}if(c.length!==e)throw Hr(n,s.index);let l=n[s.index];if(l!==void 0&&l.depth>=o&&qr(l.content,r,l.number))throw v(l.number,"array length mismatch");return c}function Dp(e,t,r,n,s,o,i,a){let c={};return e.forEach((u,l)=>{let d=e.slice(l+1),p=kk(u,d,t,r,n,s,o,i,a);Wr(c,[u.key],p,a,r)}),c}function kk(e,t,r,n,s,o,i,a,c){if(e.fixedLength!==void 0){if(o.cellIndex+e.fixedLength>r.length)throw v(n,"array row length mismatch");let l=r.slice(o.cellIndex,o.cellIndex+e.fixedLength).map(d=>Fe(d,n));return o.cellIndex+=e.fixedLength,l}if(e.children!==void 0){let l=uo(e.children),d=r[o.cellIndex],p=Fp(d),g=r.length-o.cellIndex-1,f=s[o.nextIndex],k=f!==void 0&&f.depth===i,E=o.childTableFields===void 0?void 0:o.childTableFields.has(e);if(E===void 0?p!==void 0&&(k||r.length!==o.flatWidth&&g<l+xk(t)):E){if(p===void 0)throw v(n,"array row length mismatch");return o.cellIndex+=1,Gp(p,e.children,a,s,{get index(){return o.nextIndex},set index(_){o.nextIndex=_}},i,c,!1)}return Dp(e.children,r,n,s,o,i,a,c)}let u=r[o.cellIndex];if(u===void 0)throw v(n,"array row length mismatch");return o.cellIndex+=1,ao(e,u,n)}function $p(e,t,r,n,s,o,i){let a=t.filter(l=>l.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let c,u=1<<a.length;for(let l=0;l<u;l+=1){let d=new Set;a.forEach((g,f)=>{l&1<<f&&d.add(g)});let p=Np(e,t,d,r,n,s,o,i);p!==void 0&&(c===void 0||p.consumedChildRows>c.consumedChildRows||p.consumedChildRows===c.consumedChildRows&&d.size<c.childTableFields.size)&&(c={childTableFields:d,consumedChildRows:p.consumedChildRows})}return c?.childTableFields}function Np(e,t,r,n,s,o,i,a){let c=o,u=0;try{for(let d=0;d<e;d+=1){let p=s[c];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!qr(p.content,n,p.number))return;let g=Ve(p.content,n,p.number),f=Sk(t,r,g,n,s,c+1,i+1,a);if(f===void 0||s[f.nextIndex]?.depth>i)return;u+=f.consumedChildRows,c=f.nextIndex}let l=s[c];if(l!==void 0&&l.depth>=i&&qr(l.content,n,l.number))return}catch{return}return{nextIndex:c,consumedChildRows:u}}function Sk(e,t,r,n,s,o,i,a){let c=0,u=o,l=0;for(let d of e){if(d.fixedLength!==void 0)c+=d.fixedLength;else if(d.children!==void 0)if(t.has(d)){let p=Fp(r[c]);if(p===void 0)return;c+=1;let g=$p(p,d.children,n,s,u,i,a);if(g===void 0)return;let f=Np(p,d.children,g,n,s,u,i,a);if(f===void 0)return;u=f.nextIndex,l+=p+f.consumedChildRows}else c+=uo(d.children);else c+=1;if(c>r.length)return}if(c===r.length)return{nextIndex:u,consumedChildRows:l}}function Tk(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function Fp(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function vk(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function uo(e){return e.reduce((t,r)=>t+Mp(r),0)}function Mp(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?uo(e.children):1}function xk(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Mp(r),0)}function qr(e,t,r){let n=_e(e,":",r);if(n===-1)return!0;let s=_e(e,t,r);return s===-1?!1:s<n}function Ck(e,t,r,n,s){let o=[];for(;o.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw Hr(t,r.index);if(a.depth>n)throw v(a.number,"invalid indentation");if(a.blankBefore&&s.strict)throw v(a.number,"blank line inside array");o.push(Ok(t,r,n,s))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw v(i.number,"array length mismatch");return o}function Ok(e,t,r,n){let s=e[t.index];if(!s.content.startsWith("-"))throw v(s.number,"expected array item");let o=s.content.slice(1).replace(/^\s+/,"");if(o==="")return t.index+=1,{};if(o.startsWith("[")){let i=_e(o,":",s.number);Mn(o,s.number,n);let a;try{a=io(o,i)}catch{a=void 0}if(a!==void 0){let c=o.slice(i+1);return Ma(a,c,e,t,r,n)}}if(_e(o,":",s.number)!==-1){let i=[{number:s.number,depth:r+1,content:o,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return Fa(i,{index:0},r+1,n)}return t.index+=1,Fe(o,s.number)}function Bp(e,t,r,n,s,o){if(s.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(Ak)){Wr(e,i,n,s,o);return}}Wr(e,[t],n,s,o)}function Wr(e,t,r,n,s){it(t.length-1,s,n);let o=t[0],i=Object.prototype.hasOwnProperty.call(e,o);if(t.length===1){if(i&&n.strict)throw v(s,"duplicate key");Ke(e,o,r);return}if(i&&!Z(e[o])){if(n.strict)throw v(s,"path expansion conflict");Ke(e,o,{})}else i||Ke(e,o,{});Wr(e[o],t.slice(1),r,n,s)}function Ak(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var jp=h(()=>{Rt();fr();Ur();$n();Aa();Ga();Lp()});function $(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??Q;if(![Q,"|"," "].includes(n))throw v(0,"invalid array header");let s={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(s.cyclicDiscriminatedArrays){let i=Op(e);if(i!==void 0)return i}let o=[];return Array.isArray(e)?Ha(o,void 0,e,0,!1,s):Z(e)?Up(o,e,0,s):o.push(Ee(e,n)),o.join("")}function Jr(e,t){e.push(" ".repeat(t*2))}function Up(e,t,r,n){it(r,0,n);for(let[s,o]of Object.entries(t))Jr(e,r),ja(e,s,o,r,n)}function ja(e,t,r,n,s){if(it(n,0,s),Array.isArray(r)){Ha(e,t,r,n,!1,s);return}if(Z(r)){let o=s.keyedMapCollapse?Ik(r,s,n+1):void 0;if(o!==void 0){e.push(ie(t),"{",qa(s.delimiter),o.fields.map(i=>Va(i,s.delimiter)).join(s.delimiter),`}:
|
|
20
|
-
`);for(let[i,a]of Object.entries(r)){
|
|
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),`
|
|
21
21
|
`),e.push(...c)}return}e.push(ie(t),`:
|
|
22
|
-
`),
|
|
23
|
-
`)}function
|
|
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),`: []
|
|
24
24
|
`):s?e.push(`[0]:
|
|
25
25
|
`):e.push(`[]
|
|
26
|
-
`);return}if(r.every(
|
|
27
|
-
`);return}let i=s?void 0:
|
|
28
|
-
`);for(let a of r){
|
|
29
|
-
`),e.push(...c)}return}
|
|
30
|
-
`);for(let a of r)
|
|
31
|
-
`);return}e.push("- "),
|
|
32
|
-
`)}function
|
|
33
|
-
`),e.push(...i)}}function
|
|
34
|
-
`}function
|
|
35
|
-
`}function
|
|
36
|
-
`,f=()=>
|
|
37
|
-
`;return
|
|
38
|
-
`},end(){return d?"":(d=!0,g())}}}var
|
|
39
|
-
`)}function
|
|
40
|
-
`).trim()}var
|
|
41
|
-
`,{encoding:"utf8",mode:384}),
|
|
42
|
-
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=
|
|
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,PF,IF,fm=y(()=>{St();Jn();yr();lm=[Q,"|"," "],dm=8,pm=/^[A-Za-z0-9_-]+$/,PF=new TextEncoder,IF=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.6.2")??"0.0.0-dev"),gitSha:Qr("__RED_BUILD_GIT_SHA__",()=>"4a05257f346bc0c1025d1696e9f180f9185f5fe3")??"unknown",buildTime:Qr("__RED_BUILD_TIME__",()=>"2026-08-05T08:36:37Z")??"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,fM,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"}],fM=[...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(`
|
|
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
|
|
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(`
|
|
46
46
|
`)?`${r}
|
|
47
47
|
`:`${r}
|
|
48
48
|
|
|
49
49
|
`}return`${JSON.stringify(e)}
|
|
50
|
-
`}function
|
|
51
|
-
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:c,reaped:i};let u=await
|
|
52
|
-
`,1)[0]?.trim()??"";if(!t.startsWith(
|
|
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})`:""}
|
|
53
53
|
searched:
|
|
54
54
|
${t.searched.map(r=>` ${r}`).join(`
|
|
55
|
-
`)}`),this.name="RspResidentEntryError",this.searched=t.searched,this.callerEntry=t.callerEntry}},
|
|
56
|
-
`)});if(r.acquired)try{if(await
|
|
57
|
-
`,{encoding:"utf8",mode:384}),await
|
|
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:
|
|
58
58
|
${s}`),n.join(`
|
|
59
|
-
`)}function
|
|
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
|
|
60
60
|
`),process.env.RSP_DEBUG==="1"&&e instanceof Error&&process.stderr.write(`${e.message}
|
|
61
|
-
`)),!0):!1}function
|
|
62
|
-
`)}async function
|
|
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)}
|
|
63
63
|
`:`${ne(e)}
|
|
64
|
-
`}var
|
|
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
|
|
66
|
-
`,{encoding:"utf8",mode:384}),await Uv(r,e)}catch(n){throw await ng(r,{force:!0}),n}}function Qv(e){if(!/^[A-Za-z0-9_-]{1,128}$/.test(e))throw new Error(`unsafe gh etag cache key: ${e}`);return e}function dg(e){try{return JSON.parse(e)}catch{return H(e)}}function Xv(e){return Yc(e)&&e.version===1&&Yc(e.entries)&&Object.values(e.entries).every(qo)}function qo(e){return Yc(e)&&typeof e.key=="string"&&typeof e.request=="string"&&typeof e.etag=="string"&&typeof e.body=="string"&&typeof e.updated_at=="string"}function Yc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ig,ag,cg,cn,zc,Wo=h(()=>{"use strict";Le();J();ae();ig="gh-etag",ag="gh-etag-cache.toon",cg="gh-etag-cache.json",cn=4*1024*1024;zc=new Set});var bg={};K(bg,{DEFAULT_RSP_BYTE_BUDGET:()=>Xe,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Qe,DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>Gt,DEFAULT_RSP_IDLE_MS:()=>Ko,DEFAULT_RSP_MEASUREMENT_HOLDOUT_SHARE:()=>yg,DEFAULT_RSP_STORE_PATH:()=>tu,DEFAULT_RSP_TELEMETRY_BYTE_BUDGET:()=>Vo,DEFAULT_RSP_TELEMETRY_DRAIN_INTERVAL_MS:()=>fg,DEFAULT_RSP_TELEMETRY_DRAIN_TIMEOUT_MS:()=>gg,DEFAULT_RSP_TELEMETRY_TTL_DAYS:()=>Jo,DEFAULT_RSP_TTL_DAYS:()=>Ye,MIN_RSP_IDLE_MS:()=>hg,resolveRspConfig:()=>De});import{existsSync as Zv,readFileSync as ex}from"node:fs";import{join as tx,resolve as mg}from"node:path";function De(e,t,r){let n=tg(mg(e),tx(".red","config.yaml")),s=n?ex(n,"utf8"):"",o=Bo(s,"rsp.enabled")==="true",i=Bo(s,"rsp.proxy.enabled"),a=i===void 0?o:i==="true",c=ke(ce(s,"rsp.ttlDays"),Ye),u=ke(dt(t.RSP_EPHEMERAL_TTL_HOURS)??ce(s,"rsp.ephemeralTtlHours"),Qe),l=ke(ce(s,"rsp.byteBudget"),Xe),d=ke(ce(s,"rsp.telemetryTtlDays"),Jo),p=ke(ce(s,"rsp.telemetryByteBudget")??ce(s,"rsp.byteBudget"),Vo),g=ke(dt(t.RSP_TELEMETRY_DRAIN_INTERVAL_MS)??ce(s,"rsp.telemetryDrainIntervalMs"),fg),f=ke(dt(t.RSP_TELEMETRY_DRAIN_TIMEOUT_MS)??ce(s,"rsp.telemetryDrainTimeoutMs"),gg),k=rx(dt(t.RSP_IDLE_MS)??ce(s,"rsp.idleMs"),Ko,hg),E=ke(dt(t.RSP_HEAVY_GIT_BYTE_THRESHOLD)??ce(s,"rsp.heavyGitByteThreshold"),Gt),y=nx(dt(t.RSP_MEASUREMENT_HOLDOUT_SHARE)??ce(s,"rsp.measurement.holdoutShare"),yg),_=ke(dt(t.RSP_GH_ETAG_CACHE_MAX_BYTES)??ce(s,"rsp.ghEtagCacheMaxBytes"),cn),T={maxOverheadMs:ke(dt(t.RSP_MAX_OVERHEAD_MS)??ce(s,"rsp.overhead.maxOverheadMs"),fo),maxSelfStateBytes:ke(dt(t.RSP_MAX_SELF_STATE_BYTES)??ce(s,"rsp.overhead.maxSelfStateBytes"),go),netLossFloorBytes:ke(ce(s,"rsp.overhead.netLossFloorBytes"),ho),consecutiveBreaches:ke(dt(t.RSP_OVERHEAD_CONSECUTIVE_BREACHES)??ce(s,"rsp.overhead.consecutiveBreaches"),yo),cooldownMs:ke(ce(s,"rsp.overhead.cooldownMs"),bo)},C=ct(e).rootDir,L=r??t.RSP_STORE_URI??`file://${Em(mg(C),Zv)}`;return{enabled:o,proxyEnabled:a,storeUri:L,ttlDays:c,ephemeralTtlHours:u,byteBudget:l,telemetryTtlDays:d,telemetryByteBudget:p,telemetryDrainIntervalMs:g,telemetryDrainTimeoutMs:f,idleMs:k,heavyGitByteThreshold:E,measurementHoldoutShare:y,ghEtagCacheMaxBytes:_,overhead:T}}function ce(e,t){let r=Bo(e,t);if(r==null)return;let n=Number(r);return Number.isFinite(n)?n:void 0}function ke(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function rx(e,t,r){let n=ke(e,t);return Math.max(n,r)}function nx(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e<=0?0:e>=1?1:e}function dt(e){if(e==null||e.trim()==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}var Gt,tu,Ye,Qe,Xe,Jo,Vo,fg,gg,Ko,hg,yg,Be=h(()=>{"use strict";rg();Le();Oo();ae();Wo();Gt=8*1024,tu=wm,Ye=7,Qe=6,Xe=64*1024*1024,Jo=90,Vo=4*1024*1024,fg=3e4,gg=2e3,Ko=5*6e4,hg=5e3,yg=0});function wg(e,t=process.env){return{async mint(r,n){let{residentElisionStore:s}=await Promise.resolve().then(()=>(Jt(),Zn)),o=s(e,De(e,t));try{return await o.mint(r,n)}finally{await o.close()}}}}var _g=h(()=>{"use strict";Be()});import{spawn as sx}from"node:child_process";async function Rg(e){let{commandLine:t,options:r,cwd:n,registryPath:s,entry:o,signal:i}=e;if(!t.trim())return{verdict:ge("missing command line")};let a=e.store??wg(n),c=Zf(e.spoolDir,o.id,r.captureBytes);return await new Promise(u=>{let l=!1,d=!1,p=async y=>{l||(l=!0,i.removeEventListener("abort",k),await Do(s,o,y.verdict.status).catch(()=>{}),u(y))},g=sx(t,{cwd:n,shell:!0,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"});g.stdout?.on("data",y=>c.stdout.write(Buffer.from(y))),g.stderr?.on("data",y=>c.stderr.write(Buffer.from(y)));let f=async(y,_)=>{if(l||d)return;d=!0,clearTimeout(E);let T=await Zr(g,r.terminateGraceMs),C=await Eg(null,null,c,a,t);await p({verdict:{status:y,exitCode:2,summary:_,details:C},cleanupProven:T.cleaned,survivors:T.survivors})},k=()=>void f("indeterminate","command interrupted");i.addEventListener("abort",k,{once:!0});let E=setTimeout(()=>{f("timeout",`command timed out after ${kg(r.timeoutMs)}`)},r.timeoutMs);g.once("error",y=>{clearTimeout(E),c.stdout.discard(),c.stderr.discard(),p({verdict:{status:"failure",exitCode:1,summary:y.message}})}),g.once("close",(y,_)=>{if(clearTimeout(E),l||d)return;let T=y===0;Eg(y,_,c,a,t).then(C=>p({verdict:{status:T?"success":"failure",exitCode:T?0:1,summary:T?"command exited successfully":`command exited with ${_??y??"unknown"}`,details:C}}))}),i.aborted&&k()})}async function zo(e){let{probe:t,timeoutMs:r,baseSleepMs:n,registryPath:s,entry:o,signal:i}=e,a=Date.now()+r,c=0,u;for(;Date.now()<a;){if(i.aborted)return{verdict:ox(u,c,o.last_poll_at)};let l;try{l=await t()}catch(k){l=ge(k instanceof Error?k.message:String(k))}if(u=l,o.attempts=++c,o.last_poll_at=new Date().toISOString(),o.last_observation=ru(l),await rn(s,o).catch(()=>{}),l.status!=="running"&&l.status!=="indeterminate")return await Do(s,o,l.status).catch(()=>{}),{verdict:l};let d=Math.min(n*4,Math.round(n*Math.pow(1.25,c-1))),p=Math.floor(Math.random()*1e3),g=Math.min(d+p,Math.max(0,a-Date.now())),f=e.makeWakeSignal?.();await ix(g,i,f)}return await Do(s,o,"timeout").catch(()=>{}),{verdict:{status:"timeout",exitCode:2,summary:`timed out after ${kg(r)}`,details:u?{attempts:c,last_poll_at:o.last_poll_at??null,last_observation:ru(u)}:{attempts:c}}}}async function Eg(e,t,r,n,s){let[o,i]=await Promise.all([r.stdout.finish(n,`${s} # stdout`),r.stderr.finish(n,`${s} # stderr`)]);return{status:e??null,signal:t??null,stdout:o,stderr:i}}function ru(e){return{status:e.status,exit_code:e.exitCode,summary:e.summary,...e.details?{details:e.details}:{}}}function ox(e,t,r){return ge("wait interrupted",{attempts:t,last_poll_at:r??null,...e?{last_observation:ru(e)}:{}})}async function ix(e,t,r){t.aborted||e<=0||r?.aborted||await new Promise(n=>{let s=setTimeout(o,e);function o(){clearTimeout(s),t.removeEventListener("abort",i),r?.removeEventListener("abort",a),n()}let i=()=>o(),a=()=>o();t.addEventListener("abort",i,{once:!0}),r?.addEventListener("abort",a,{once:!0})})}function kg(e){return e%36e5===0?`${e/36e5}h`:e%6e4===0?`${e/6e4}m`:e%1e3===0?`${e/1e3}s`:`${e}ms`}var Sg=h(()=>{"use strict";eg();_g();wr();Lt();os()});var Tg={};K(Tg,{readGhConditionalJson:()=>xe,readGhEtagCache:()=>Ho,sweepGhEtagCache:()=>Zc});import{execFileSync as ax}from"node:child_process";async function xe(e){if(e.signal?.aborted)return{status:1,stdout:"",stderr:"gh call cancelled",quotaFree:!1};let t=e.cwd??process.cwd(),r=e.env??process.env,n=lx(t),s={...n?{owner:n.owner,repo:n.repo}:{},...e.params??{}},o={args:e.args??ux(e.path),path:e.path,actor:cx(r),...Object.keys(s).length>0?{params:s}:{}};try{let i;if(e.residentRead)i=await e.residentRead(o);else{let a=De(t,r),c=Xn(t,a);try{i=await c.githubRead(o)}finally{await c.close()}}return{status:i.status,stdout:i.stdout,stderr:i.stderr,quotaFree:i.quotaFree}}catch(i){return{status:75,stdout:"",stderr:JSON.stringify({refused:!0,reason:"rsp-github-resident-unavailable",repair:"restore the rsp resident and GitHub credential, then retry",detail:i instanceof Error?i.message:String(i)}),quotaFree:!1}}}function cx(e){let t=(e.RED_AFK_GH_ACTOR??"").trim();return t===""?"session":`proxied-agent:${t}`}function ux(e){return/\/pulls\/[^/]+\/?$/.test(e)?["pr","view"]:/\/pulls\/?$/.test(e)?["pr","list"]:/\/issues\/[^/]+\/?$/.test(e)?["issue","view"]:/\/issues\/?$/.test(e)?["issue","list"]:/\/actions\/runs\/[^/]+\/?$/.test(e)?["run","view"]:/\/actions\/runs\/?$/.test(e)?["run","list"]:["api",e]}function lx(e){let t="";try{t=String(ax("git",["config","--get","remote.origin.url"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]})).trim()}catch{return null}let n=t.replace(/^git@[^:]+:/,"").replace(/^ssh:\/\/git@[^/]+\//,"").replace(/^https?:\/\/[^/]+\//,"").replace(/\.git$/,"").replace(/^\/+|\/+$/g,"").split("/").filter(Boolean);return n.length<2?null:{owner:n[n.length-2],repo:n[n.length-1]}}var Yo=h(()=>{"use strict";Be();Jt();Wo()});import{spawn as dx}from"node:child_process";async function cs(e,t){return await px(t,async r=>{let n=await fx(e,t.cwd,r);return n||await mx(e,t.cwd,r)})}async function px(e,t){if(e.signal.aborted)return{status:1,stdout:"",stderr:"wait cancelled"};let r=new AbortController,n=setTimeout(()=>r.abort(),e.timeoutMs),s=AbortSignal.any([e.signal,r.signal]);try{let o=await t(s);return r.signal.aborted?{status:1,stdout:"",stderr:`GitHub probe exceeded ${e.timeoutMs}ms`}:o}finally{clearTimeout(n)}}async function mx(e,t,r){return r.aborted?{status:1,stdout:"",stderr:"gh call cancelled"}:await new Promise(n=>{let s=!1,o=l=>{s||(s=!0,r.removeEventListener("abort",a),n(l))},i=dx("gh",e,{cwd:t,stdio:["ignore","pipe","pipe"]});function a(){let l=i.pid;l&&Io(l).then(d=>Po(d,"SIGKILL"));try{i.kill("SIGKILL")}catch{}o({status:1,stdout:"",stderr:"gh call cancelled"})}r.addEventListener("abort",a,{once:!0});let c=[],u=[];i.stdout.on("data",l=>c.push(Buffer.from(l))),i.stderr.on("data",l=>u.push(Buffer.from(l))),i.once("error",l=>o({status:1,stdout:"",stderr:l.message})),i.once("close",l=>{o({status:l??1,stdout:Buffer.concat(c).toString("utf8"),stderr:Buffer.concat(u).toString("utf8").trim()})})})}async function fx(e,t,r){if(e[0]==="pr"&&e[1]==="view"&&e[2])return await gx(e[2],t,r);if(e[0]==="run"&&e[1]==="view"&&e[2]){let n=await xe({path:`repos/{owner}/{repo}/actions/runs/${e[2]}`,cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(n.status!==0)return n;let s=lt(JSON.parse(n.stdout));return{status:0,stderr:n.stderr,stdout:JSON.stringify({databaseId:sn(s,"database_id")||sn(s,"id"),status:he(s,"status").toUpperCase(),conclusion:he(s,"conclusion").toUpperCase(),workflowName:he(s,"workflow_name")||he(s,"name"),headBranch:he(s,"head_branch"),url:he(s,"html_url")})}}if(e[0]==="run"&&e[1]==="list"){let n=No(e,"--branch"),s=No(e,"--limit")??"20",o=await xe({path:"repos/{owner}/{repo}/actions/runs",params:{branch:n,per_page:s},cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(o.status!==0)return o;let i=Er(lt(JSON.parse(o.stdout)).workflow_runs).map(a=>({databaseId:sn(a,"database_id")||sn(a,"id")}));return{status:0,stdout:JSON.stringify(i),stderr:o.stderr}}if(e[0]==="release"&&e[1]==="list"){let n=No(e,"--limit")??"20",s=await xe({path:"repos/{owner}/{repo}/releases",params:{per_page:n},cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(s.status!==0)return s;let o=Er(JSON.parse(s.stdout)).map(i=>({tagName:he(i,"tag_name"),publishedAt:he(i,"published_at"),isDraft:i.draft===!0}));return{status:0,stdout:JSON.stringify(o),stderr:s.stderr}}return null}async function gx(e,t,r){let n=await xe({path:`repos/{owner}/{repo}/pulls/${e}`,cwd:t,signal:r,command:`gh pr view ${e}`});if(n.status!==0)return n;let s=lt(JSON.parse(n.stdout));if(Array.isArray(s.statusCheckRollup))return{status:0,stdout:n.stdout,stderr:n.stderr};let o=he(lt(s.head),"sha"),[i,a]=o?await Promise.all([xe({path:`repos/{owner}/{repo}/commits/${o}/status`,cwd:t,signal:r,command:`gh pr view ${e} status`}),xe({path:`repos/{owner}/{repo}/commits/${o}/check-runs`,cwd:t,signal:r,command:`gh pr view ${e} check-runs`})]):[{status:0,stdout:"{}",stderr:"",quotaFree:!1},{status:0,stdout:"{}",stderr:"",quotaFree:!1}],c=i.status===0?Er(lt(JSON.parse(i.stdout)).statuses):[],u=a.status===0?Er(lt(JSON.parse(a.stdout)).check_runs):[];return{status:0,stderr:[n.stderr,i.stderr,a.stderr].filter(Boolean).join(`
|
|
67
|
-
`),stdout:JSON.stringify({number:
|
|
68
|
-
`)}var nu=h(()=>{"use strict"});var Lg=h(()=>{"use strict";J()});var Gg=h(()=>{"use strict"});function _x(e){return Object.keys(e)}function un(e){return{...e,fields:_x(e.fields)}}var Dg,$g,Ng,Ex,Rx,kx,Fg,su=h(()=>{"use strict";Dg="red.castle.lane.v1",$g="red.castle.state.v1",Ng="red.castle.history.v1",Ex="red.castle.validation.v2",Rx="red.castle.envelope.v1",kx="red.castle.hitl-card.v1",Fg=[un({schemaId:Dg,docPath:".red/contracts/red.castle.lane.v1.md",typeNames:["CastleLaneRecord","CastleLaneKind"],fields:{at:!0,kind:!0,worker_id:!0,supervisor_id:!0,issue:!0,attempt:!0,msg:!0,payload:!0}}),un({schemaId:$g,docPath:".red/contracts/red.castle.state.v1.md",typeNames:["CastleStateSnapshot","CastleStateKind"],fields:{kind:!0,id:!0,version:!0,updated_at:!0,worker_id:!0,supervisor_id:!0,runner:!0,bundle_version:!0,pid:!0,started_at:!0,current:!0,queue:!0,completed:!0,envelope:!0}}),un({schemaId:Ng,docPath:".red/contracts/red.castle.history.v1.md",typeNames:["CastleHistoryRecord","CastleHistoryEvent"],fields:{ts:!0,epoch:!0,worker:!0,issue:!0,event:!0,duration_s:!0,runner:!0,merge_sha:!0,reason:!0}}),un({schemaId:Ex,docPath:".red/contracts/red.castle.validation.v2.md",typeNames:["CastleValidationRecord","CastleValidationStatus"],fields:{schema:!0,name:!0,status:!0,command:!0,exitCode:!0,durationMs:!0,summary:!0}}),un({schemaId:Rx,docPath:".red/contracts/red.castle.envelope.v1.md",typeNames:["CastleEnvelope","CastleEnvelopeSection","CastleAttemptStatus"],fields:{status:!0,worker:!0,duration:!0,diff:!0,attempt:!0,mergeSha:!0,sections:!0}}),un({schemaId:kx,docPath:".red/contracts/red.castle.hitl-card.v1.md",typeNames:["CastleHitlCard","CastleHitlCardPrStatus","CastleHitlCardAction"],fields:{issueNumber:!0,issueTitle:!0,issueUrl:!0,pendingDecision:!0,prStatus:!0,updatedAt:!0}})]});var hj,Qo=h(()=>{"use strict";J();su();hj=new Map(Fg.map(e=>[e.schemaId,new Set(e.fields)]))});var Mg=h(()=>{"use strict";Gg();Qo()});var Bg=h(()=>{"use strict"});var Xo=h(()=>{"use strict"});var ou=h(()=>{"use strict";Xo()});var Zo=h(()=>{"use strict"});import{appendFile as vx,mkdir as xx,readFile as Cx}from"node:fs/promises";import{dirname as Ox,join as Ax}from"node:path";function iu(e,t){if(typeof e!="string"||e.length===0)throw new Error(`singleton event ${t} must be a non-empty string`);return e}function jg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton event must be a record");let t={...e},r=t.payload;if(typeof r=="string")try{t.payload=JSON.parse(r)}catch{throw new Error("singleton event payload is not valid JSON")}if(t.payload!==void 0&&(t.payload===null||typeof t.payload!="object"||Array.isArray(t.payload)))throw new Error("singleton event payload must be a record");return{at:iu(t.at,"at"),singleton:iu(t.singleton,"singleton"),kind:iu(t.kind,"kind"),...t.payload===void 0?{}:{payload:t.payload}}}function Px(e){return{at:e.at,singleton:e.singleton,kind:e.kind,...e.payload===void 0?{}:{payload:JSON.stringify(e.payload)}}}function Ix(e){if(e!==void 0&&(!Number.isSafeInteger(e)||e<0))throw new Error("singleton event tail must be a non-negative integer")}function Lx(e){return Ax(e.castleStateRoot,"singleton-events.toonl")}function au(e,t={}){let r=t.fs??{appendFile:vx,mkdir:xx,readFile:Cx},n=t.clock??(()=>new Date().toISOString()),s=Lx(e);return{path:s,async append(o){let i=jg({at:o.at??n(),...o});return await r.mkdir(Ox(s),{recursive:!0}),await r.appendFile(s,St().push(Px(i)),"utf8"),i},async read(o={}){Ix(o.tail);let i;try{i=await r.readFile(s,"utf8")}catch(c){if(c.code==="ENOENT")return[];throw c}let a=kt(i).map(jg);return o.tail===void 0?a:o.tail===0?[]:a.slice(-o.tail)}}}var cu=h(()=>{"use strict";J()});var ei=h(()=>{"use strict";J();Zo();cu()});var Ug=h(()=>{"use strict";Xo();ou();ei()});var Hg=h(()=>{"use strict"});var e1,qg=h(()=>{"use strict";J();e1=24*60*60*1e3});var Wg=h(()=>{"use strict";Qo()});var s1,o1,Jg=h(()=>{"use strict";s1=15*6e4,o1=30*6e4});var Vg=h(()=>{"use strict"});var Dx,$x,c1,u1,Kg=h(()=>{"use strict";Dx=["supervisor_start","supervisor_exit","fleet_scaled","worker_start","worker_exit","worker_steered","worker_escalated","post_claim","pre_worktree","post_issue","pre_requeue","pre_merge","post_merge"],$x={pre_worktree:["cargo","gradle"]},c1=Object.values($x).flat(),u1=new Set(Dx)});var zg=h(()=>{"use strict"});var Yg=h(()=>{"use strict";ei()});var Qg=h(()=>{"use strict"});var Xg=h(()=>{});var Zg=h(()=>{"use strict";Xg()});var eh=h(()=>{"use strict"});var th=h(()=>{"use strict"});var uu=h(()=>{"use strict"});var rh=h(()=>{"use strict";J();uu()});var nh=h(()=>{"use strict";J()});var lu=h(()=>{"use strict"});var du=h(()=>{"use strict"});import{resolve as ye}from"node:path";function sh(e){let t=ye(e),r=ye(t,"state"),n=ye(r,"castle"),s=ye(t,"tmp"),o=ye(s,"supervisors"),i=ye(s,"workers"),a=ye(s,"monitors"),c=ye(s,"worktrees");return{redRoot:t,stateRoot:r,castleStateRoot:n,castleHistory:ye(n,"history.toonl"),castleValidation:ye(n,"validation.toonl"),tmpRoot:s,supervisorsRoot:o,supervisor:u=>ye(o,u),projectSupervisor:ye(o,Nx),workersRoot:i,worker:u=>ye(i,u),workerSteerFile:u=>ye(i,u,"steer.toon"),monitorsRoot:a,monitor:u=>ye(a,u),worktreesRoot:c,worktreeLane:u=>ye(c,u)}}var Nx,oh=h(()=>{"use strict";Nx="default"});var ih=h(()=>{"use strict";Zo()});var ah=h(()=>{"use strict"});var ch=h(()=>{"use strict";lu();du()});import{mkdir as Fx,readFile as Mx,rename as Bx,rm as jx,writeFile as Ux}from"node:fs/promises";import{dirname as Hx,join as qx}from"node:path";function Jx(e){if(!Wx.test(e)||e==="."||e==="..")throw new Error(`invalid singleton name ${JSON.stringify(e)}`)}function Vx(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function Kx(e){return e.code==="ENOENT"}function zx(e){return e.code==="EEXIST"}function Yx(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton lease must be a record");let t=e;if(!Number.isInteger(t.pid)||t.pid<=0)throw new Error("singleton lease pid must be a positive integer");for(let r of["start_time","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)throw new Error(`singleton lease ${r} must be a non-empty string`);return t}function pu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function ti(e,t){return Jx(t),qx(e.castleStateRoot,"singletons",t,"lease.toon")}function uh(e,t={}){let r=t.fs??{mkdir:Fx,readFile:Mx,rename:Bx,rm:jx,writeFile:Ux},n=t.clock??(()=>new Date().toISOString()),s=t.isPidAlive??Vx;async function o(a){try{return Yx(H(await r.readFile(a,"utf8")))}catch(c){if(Kx(c))return;throw c}}async function i(a,c){let u=`${a}.tmp-${c.pid}-${crypto.randomUUID()}`;await r.writeFile(u,$(c,{keyedMapCollapse:!0}),{encoding:"utf8"}),await r.rename(u,a)}return{read(a){return o(ti(e,a))},async acquire(a,c){let u=ti(e,a);await r.mkdir(Hx(u),{recursive:!0});let l=!1;for(;;){let d=n(),p={pid:c.pid,start_time:c.startTime,acquired_at:d,renewed_at:d};try{return await r.writeFile(u,$(p,{keyedMapCollapse:!0}),{encoding:"utf8",flag:"wx"}),{acquired:!0,reaped:l,lease:p}}catch(f){if(!zx(f))throw f}let g=await o(u);if(g){if(pu(g,c))return{acquired:!0,reaped:l,lease:g};if(await s(g.pid))return{acquired:!1,lease:g};await r.rm(u,{force:!0}),l=!0}}},async renew(a,c){let u=ti(e,a),l=await o(u);if(!l||!pu(l,c))throw new ri(a);let d={...l,renewed_at:n()};return await i(u,d),d},async release(a,c){let u=ti(e,a),l=await o(u);if(!l)return!1;if(!pu(l,c))throw new ri(a);return await r.rm(u,{force:!0}),!0}}}var ri,Wx,lh=h(()=>{"use strict";J();ri=class extends Error{constructor(t){super(`singleton lease ${JSON.stringify(t)} is held by another owner`),this.name="SingletonLeaseOwnershipError"}},Wx=/^[a-z0-9][a-z0-9._-]{0,63}$/});var mu=h(()=>{"use strict"});var dh=h(()=>{"use strict"});var Qx,Xx,Zx,Q1,ph=h(()=>{"use strict";Qx={refreshCadenceS:270,tolerance:3},Xx=270,Zx=2700,Q1={...Qx,claimGraceS:Xx,recentCommitProtectionS:Zx}});var mh=h(()=>{"use strict"});function fh(e){return e==="single-object"?"rest":"graphql"}function ee(e,t,r,n,s,o){return{key:e,kind:"read",cardinality:t,volatility:r,surface:o??fh(t),budget:n,...o?{only:o}:{},why:s}}function Ce(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,why:n}}function hh(e){let t=[],r=0;for(;r<e.length&&e[r].startsWith("-");)r+=e[r]==="-R"||e[r]==="--repo"?2:1;for(;r<e.length&&!e[r].startsWith("-")&&t.length<2;)t.push(e[r]),r+=1;return t}function fu(e){let t=hh(e);if(t.length===0)return"";if(t[0]==="api")return t[1]==="graphql"?"api graphql":"api rest";let r=t.length===1?t[0]:`${t[0]} ${t[1]}`;return t[1]==="list"&&e.includes("--search")?`${r} (search)`:r}function yh(e){return eC.get(fu(e))??null}function gu(e){let t=yh(e);if(!t)throw new ni(e);return t}var gh,eC,ni,bh=h(()=>{gh=[ee("issue view","single-object","stable-poll","rest","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),ee("pr view","single-object","stable-poll","rest","one pull request by number, polled per Worker per iteration"),ee("repo view","single-object","stable-poll","rest","one repository's own metadata, repeatedly read while usually unchanged"),ee("run view","single-object","stable-poll","rest","one Actions run repeatedly polled to terminal; Actions has no GraphQL surface"),ee("release view","single-object","stable-poll","rest","one release by tag, repeatedly checked while usually absent or unchanged"),ee("pr diff","single-object","one-shot","rest","one pull request's diff, read once for review and served by a REST media type"),ee("issue list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged issue connection; GraphQL avoids N REST pages"),ee("pr list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged pull-request connection; GraphQL avoids N REST pages"),ee("pr checks","multi-node","stable-poll","graphql","check contexts form a connection repeatedly polled while awaiting terminal state"),ee("release list","multi-node","stable-poll","rest","release waits poll a usually-unchanged list; Releases has no GraphQL connection gh reads","rest"),ee("run list","multi-node","stable-poll","rest","run waits poll a usually-unchanged list; Actions has no GraphQL surface","rest"),ee("label list","multi-node","one-shot","graphql","a label connection loaded once for the current operation"),ee("issue list (search)","multi-node","stable-poll","search","queue discovery polls usually-unchanged search results through the 30/min search connection"),ee("pr list (search)","multi-node","stable-poll","search","PR discovery polls usually-unchanged search results through the 30/min search connection"),ee("search issues","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("search prs","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("search repos","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("api graphql","multi-node","one-shot","graphql","the caller supplies one explicit GraphQL query rather than a routed poll"),ee("api rest","single-object","one-shot","rest","the caller supplies one explicit REST path rather than a routed poll"),Ce("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ce("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ce("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ce("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ce("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ce("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ce("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ce("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ce("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ce("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ce("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ce("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ce("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ce("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],eC=new Map(gh.map(e=>[e.key,e]));ni=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=fu(t);super(`unclassified GitHub operation ${JSON.stringify(r||"(empty argv)")}: add an entry to GITHUB_OPERATIONS in packages/github/surface.ts stating its cardinality. Defaulting to GraphQL is what sent every single-object poll to the node-point pool (ADR 0132 decision 4).`),this.operation=r,this.args=[...t]}}});import{appendFile as tC,mkdir as rC,readFile as nC}from"node:fs/promises";import{dirname as sC}from"node:path";function yu(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let s=oC(n.operation,n.cost,n.observedAt??t(),n.actor),o=St().push(aC(s));return r=r.then(async()=>{await rC(sC(e.path),{recursive:!0}),await tC(e.path,o,"utf8")}),r},async report(n){await r;let s=hu(n.from,"report window start"),o=hu(n.to,"report window end");if(o<=s)throw new Error("GitHub attribution report window end must be after its start");let i=await iC(e.path),a=new Map;for(let u of i.observations){let l=Date.parse(u.observed_at);if(l<s||l>=o||n.pool!==void 0&&u.pool!==n.pool)continue;let d=`${u.pool}\0${u.operation_key}\0${u.actor??""}`,p=a.get(d);a.set(d,{operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:(p?.count??0)+1,cost:(p?.cost??0)+u.cost})}let c=[...a.values()].sort((u,l)=>l.cost-u.cost||l.count-u.count||u.operation_key.localeCompare(l.operation_key)||u.pool.localeCompare(l.pool)||(u.actor??"").localeCompare(l.actor??""));return{version:1,origin:"process-attribution",window:{from:n.from,to:n.to},pool:n.pool??null,total_count:c.reduce((u,l)=>u+l.count,0),total_cost:c.reduce((u,l)=>u+l.cost,0),operations:c,unreadable_records:i.unreadable}}}}function oC(e,t,r,n){if(hu(r,"GitHub spend observation"),!Number.isSafeInteger(t)||t<0)throw new Error(`GitHub spend observation cost must be a non-negative safe integer; received ${t}`);if(n!==void 0&&n.trim()==="")throw new Error("GitHub spend observation actor must be non-empty when supplied");return{version:1,observed_at:r,operation_key:e.key,pool:e.budget,...n===void 0?{}:{actor:n},cost:t}}async function iC(e){let t;try{t=await nC(e,"utf8")}catch(o){if(lC(o)&&o.code==="ENOENT")return{observations:[],unreadable:0};throw o}let r=[],n=0,s=t.split(`
|
|
69
|
-
`);for(let o=0;o<s.length;o+=1){let i=s[o];if(i.trim()==="")continue;let a=s[o+1];if(!i.startsWith("[]{")||a===void 0||a.trim()===""){n+=1;continue}let c;try{c=
|
|
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 tB}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 VB,ti=y(()=>{"use strict";J();lu();VB=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 P1,eh=y(()=>{"use strict";J();P1=24*60*60*1e3});var th=y(()=>{"use strict";ti()});var D1,$1,rh=y(()=>{"use strict";D1=15*6e4,$1=30*6e4});var nh=y(()=>{"use strict"});var oC,iC,M1,j1,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"]},M1=Object.values(iC).flat(),j1=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,CU,Rh=y(()=>{"use strict";EC={refreshCadenceS:270,tolerance:3},RC=270,kC=2700,CU={...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}
|
|
70
70
|
${a}
|
|
71
|
-
`)[0]}catch{n+=1,o+=1;continue}if(!cC(c)){n+=1,o+=1;continue}r.push(c),o+=1}return{observations:r,unreadable:n}}function aC(e){return{version:e.version,observed_at:e.observed_at,operation_key:e.operation_key,pool:e.pool,...e.actor===void 0?{}:{actor:e.actor},cost:e.cost}}function cC(e){return uC(e)?e.version===1&&typeof e.observed_at=="string"&&Number.isFinite(Date.parse(e.observed_at))&&typeof e.operation_key=="string"&&e.operation_key!==""&&(e.pool==="rest"||e.pool==="graphql"||e.pool==="search")&&(e.actor===void 0||typeof e.actor=="string"&&e.actor!=="")&&typeof e.cost=="number"&&Number.isSafeInteger(e.cost)&&e.cost>=0:!1}function hu(e,t){let r=Date.parse(e);if(!Number.isFinite(r))throw new Error(`${t} must be an ISO-8601 instant; received ${JSON.stringify(e)}`);return r}function uC(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lC(e){return e instanceof Error&&"code"in e}var wh=h(()=>{J()});var _u=cp((bu,wu)=>{(function(e,t){typeof bu=="object"&&typeof wu<"u"?wu.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(bu,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(I){return I&&I.default||I}var r=function(I,b,m={}){var w,R,S;for(w in b)S=b[w],m[w]=(R=I[w])!=null?R:S;return m},n=function(I,b,m={}){var w,R;for(w in I)R=I[w],b[w]!==void 0&&(m[w]=R);return m},s={load:r,overwrite:n},o;o=class{constructor(b,m){this.incr=b,this.decr=m,this._first=null,this._last=null,this.length=0}push(b){var m;this.length++,typeof this.incr=="function"&&this.incr(),m={value:b,prev:this._last,next:null},this._last!=null?(this._last.next=m,this._last=m):this._first=this._last=m}shift(){var b;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),b=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,b}first(){if(this._first!=null)return this._first.value}getArray(){var b,m,w;for(b=this._first,w=[];b!=null;)w.push((m=b,b=b.next,m.value));return w}forEachShift(b){var m;for(m=this.shift();m!=null;)b(m),m=this.shift()}debug(){var b,m,w,R,S;for(b=this._first,S=[];b!=null;)S.push((m=b,b=b.next,{value:m.value,prev:(w=m.prev)!=null?w.value:void 0,next:(R=m.next)!=null?R.value:void 0}));return S}};var i=o,a;a=class{constructor(b){if(this.instance=b,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(m,w)=>this._addListener(m,"many",w),this.instance.once=(m,w)=>this._addListener(m,"once",w),this.instance.removeAllListeners=(m=null)=>m!=null?delete this._events[m]:this._events={}}_addListener(b,m,w){var R;return(R=this._events)[b]==null&&(R[b]=[]),this._events[b].push({cb:w,status:m}),this.instance}listenerCount(b){return this._events[b]!=null?this._events[b].length:0}async trigger(b,...m){var w,R;try{return b!=="debug"&&this.trigger("debug",`Event triggered: ${b}`,m),this._events[b]==null?void 0:(this._events[b]=this._events[b].filter(function(S){return S.status!=="none"}),R=this._events[b].map(async S=>{var x,A;if(S.status!=="none"){S.status==="once"&&(S.status="none");try{return A=typeof S.cb=="function"?S.cb(...m):void 0,typeof A?.then=="function"?await A:A}catch(U){return x=U,this.trigger("error",x),null}}}),(await Promise.all(R)).find(function(S){return S!=null}))}catch(S){return w=S,this.trigger("error",w),null}}};var c=a,u,l,d;u=i,l=c,d=class{constructor(b){var m;this.Events=new l(this),this._length=0,this._lists=function(){var w,R,S;for(S=[],m=w=1,R=b;1<=R?w<=R:w>=R;m=1<=R?++w:--w)S.push(new u(()=>this.incr(),()=>this.decr()));return S}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(b){return this._lists[b.options.priority].push(b)}queued(b){return b!=null?this._lists[b].length:this._length}shiftAll(b){return this._lists.forEach(function(m){return m.forEachShift(b)})}getFirst(b=this._lists){var m,w,R;for(m=0,w=b.length;m<w;m++)if(R=b[m],R.length>0)return R;return[]}shiftLastFrom(b){return this.getFirst(this._lists.slice(b).reverse()).shift()}};var p=d,g;g=class extends Error{};var f=g,k,E,y,_,T;_=10,E=5,T=s,k=f,y=class{constructor(b,m,w,R,S,x,A,U){this.task=b,this.args=m,this.rejectOnDrop=S,this.Events=x,this._states=A,this.Promise=U,this.options=T.load(w,R),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===R.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((oe,me)=>{this._resolve=oe,this._reject=me}),this.retryCount=0}_sanitizePriority(b){var m;return m=~~b!==b?E:b,m<0?0:m>_-1?_-1:m}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:b,message:m="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(b??new k(m)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(b){var m;if(m=this._states.jobStatus(this.options.id),!(m===b||b==="DONE"&&m===null))throw new k(`Invalid job status ${m}, expected ${b}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(b,m){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:b,blocked:m})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(b,m,w,R){var S,x,A;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),x={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",x);try{if(A=await(b!=null?b.schedule(this.options,this.task,...this.args):this.task(...this.args)),m())return this.doDone(x),await R(this.options,x),this._assertStatus("DONE"),this._resolve(A)}catch(U){return S=U,this._onFailure(S,x,m,w,R)}}doExpire(b,m,w){var R,S;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),S={args:this.args,options:this.options,retryCount:this.retryCount},R=new k(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(R,S,b,m,w)}async _onFailure(b,m,w,R,S){var x,A;if(w())return x=await this.Events.trigger("failed",b,m),x!=null?(A=~~x,this.Events.trigger("retry",`Retrying ${this.options.id} after ${A} ms`,m),this.retryCount++,R(A)):(this.doDone(m),await S(this.options,m),this._assertStatus("DONE"),this._reject(b))}doDone(b){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",b)}};var C=y,L,F,q;q=s,L=f,F=class{constructor(b,m,w){this.instance=b,this.storeOptions=m,this.clientId=this.instance._randomIndex(),q.load(w,w,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var b;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(b=this.heartbeat=setInterval(()=>{var m,w,R,S,x;if(S=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&S>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=S,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&S>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:m,reservoirIncreaseMaximum:R,reservoir:x}=this.storeOptions,this._lastReservoirIncrease=S,w=R!=null?Math.min(m,R-x):m,w>0))return this.storeOptions.reservoir+=w,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?b.unref():void 0:clearInterval(this.heartbeat)}async __publish__(b){return await this.yieldLoop(),this.instance.Events.trigger("message",b.toString())}async __disconnect__(b){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(b=0){return new this.Promise(function(m,w){return setTimeout(m,b)})}computePenalty(){var b;return(b=this.storeOptions.penalty)!=null?b:15*this.storeOptions.minTime||5e3}async __updateSettings__(b){return await this.yieldLoop(),q.overwrite(b,b,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(b){return await this.yieldLoop(),this._nextRequest+this.timeout<b}computeCapacity(){var b,m;return{maxConcurrent:b,reservoir:m}=this.storeOptions,b!=null&&m!=null?Math.min(b-this._running,m):b!=null?b-this._running:m??null}conditionsCheck(b){var m;return m=this.computeCapacity(),m==null||b<=m}async __incrementReservoir__(b){var m;return await this.yieldLoop(),m=this.storeOptions.reservoir+=b,this.instance._drainAll(this.computeCapacity()),m}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(b){return this._unblockTime>=b}check(b,m){return this.conditionsCheck(b)&&this._nextRequest-m<=0}async __check__(b){var m;return await this.yieldLoop(),m=Date.now(),this.check(b,m)}async __register__(b,m,w){var R,S;return await this.yieldLoop(),R=Date.now(),this.conditionsCheck(m)?(this._running+=m,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=m),S=Math.max(this._nextRequest-R,0),this._nextRequest=R+S+this.storeOptions.minTime,{success:!0,wait:S,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(b,m){var w,R,S;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&m>this.storeOptions.maxConcurrent)throw new L(`Impossible to add a job having a weight of ${m} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return R=Date.now(),S=this.storeOptions.highWater!=null&&b===this.storeOptions.highWater&&!this.check(m,R),w=this.strategyIsBlock()&&(S||this.isBlocked(R)),w&&(this._unblockTime=R+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:S,blocked:w,strategy:this.storeOptions.strategy}}async __free__(b,m){return await this.yieldLoop(),this._running-=m,this._done+=m,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var se=F,re,de;re=f,de=class{constructor(b){this.status=b,this._jobs={},this.counts=this.status.map(function(){return 0})}next(b){var m,w;if(m=this._jobs[b],w=m+1,m!=null&&w<this.status.length)return this.counts[m]--,this.counts[w]++,this._jobs[b]++;if(m!=null)return this.counts[m]--,delete this._jobs[b]}start(b){var m;return m=0,this._jobs[b]=m,this.counts[m]++}remove(b){var m;return m=this._jobs[b],m!=null&&(this.counts[m]--,delete this._jobs[b]),m!=null}jobStatus(b){var m;return(m=this.status[this._jobs[b]])!=null?m:null}statusJobs(b){var m,w,R,S,x;if(b!=null){if(w=this.status.indexOf(b),w<0)throw new re(`status must be one of ${this.status.join(", ")}`);R=this._jobs,S=[];for(m in R)x=R[m],x===w&&S.push(m);return S}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((b,m,w)=>(b[this.status[w]]=m,b),{})}};var pe=de,Mt,P;Mt=i,P=class{constructor(b,m){this.schedule=this.schedule.bind(this),this.name=b,this.Promise=m,this._running=0,this._queue=new Mt}isEmpty(){return this._queue.length===0}async _tryToRun(){var b,m,w,R,S,x,A;if(this._running<1&&this._queue.length>0)return this._running++,{task:A,args:b,resolve:S,reject:R}=this._queue.shift(),m=await async function(){try{return x=await A(...b),function(){return S(x)}}catch(U){return w=U,function(){return R(w)}}}(),this._running--,this._tryToRun(),m()}schedule(b,...m){var w,R,S;return S=R=null,w=new this.Promise(function(x,A){return S=x,R=A}),this._queue.push({task:b,args:m,resolve:S,reject:R}),this._tryToRun(),w}};var B=P,Ne="2.19.5",wt={version:Ne},Bt=Object.freeze({version:Ne,default:wt}),O=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),N=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),_t=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),rt,Te,ve,Et,Fr,jt;jt=s,rt=c,Et=O,ve=N,Fr=_t,Te=function(){class I{constructor(m={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=m,jt.load(this.limiterOptions,this.defaults,this),this.Events=new rt(this),this.instances={},this.Bottleneck=ip,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Et(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new ve(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(m=""){var w;return(w=this.instances[m])!=null?w:(()=>{var R;return R=this.instances[m]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${m}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",R,m),R})()}async deleteKey(m=""){var w,R;return R=this.instances[m],this.connection&&(w=await this.connection.__runCommand__(["del",...Fr.allKeys(`${this.id}-${m}`)])),R!=null&&(delete this.instances[m],await R.disconnect()),R!=null||w>0}limiters(){var m,w,R,S;w=this.instances,R=[];for(m in w)S=w[m],R.push({key:m,limiter:S});return R}keys(){return Object.keys(this.instances)}async clusterKeys(){var m,w,R,S,x,A,U,oe,me;if(this.connection==null)return this.Promise.resolve(this.keys());for(A=[],m=null,me=`b_${this.id}-`.length,w=9;m!==0;)for([oe,R]=await this.connection.__runCommand__(["scan",m??0,"match",`b_${this.id}-*_settings`,"count",1e4]),m=~~oe,S=0,U=R.length;S<U;S++)x=R[S],A.push(x.slice(me,-w));return A}_startAutoCleanup(){var m;return clearInterval(this.interval),typeof(m=this.interval=setInterval(async()=>{var w,R,S,x,A,U;A=Date.now(),S=this.instances,x=[];for(R in S){U=S[R];try{await U._store.__groupCheck__(A)?x.push(this.deleteKey(R)):x.push(void 0)}catch(oe){w=oe,x.push(U.Events.trigger("error",w))}}return x},this.timeout/2)).unref=="function"?m.unref():void 0}updateSettings(m={}){if(jt.overwrite(m,this.defaults,this),jt.overwrite(m,m,this.limiterOptions),m.timeout!=null)return this._startAutoCleanup()}disconnect(m=!0){var w;if(!this.sharedConnection)return(w=this.connection)!=null?w.disconnect(m):void 0}}return I.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},I}.call(e);var Pn=Te,ur,In,Xd;Xd=s,In=c,ur=function(){class I{constructor(m={}){this.options=m,Xd.load(this.options,this.defaults,this),this.Events=new In(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((m,w)=>this._resolve=m)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(m){var w;return this._arr.push(m),w=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),w}}return I.prototype.defaults={maxTime:null,maxSize:null,Promise},I}.call(e);var cR=ur,uR=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),lR=t(Bt),Zd,ep,wa,_a,tp,Ea,rp,np,sp,Ra,nt,op=[].splice;Ea=10,ep=5,nt=s,rp=p,_a=C,tp=se,np=uR,wa=c,sp=pe,Ra=B,Zd=function(){class I{constructor(m={},...w){var R,S;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(m,w),nt.load(m,this.instanceDefaults,this),this._queues=new rp(Ea),this._scheduled={},this._states=new sp(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new wa(this),this._submitLock=new Ra("submit",this.Promise),this._registerLock=new Ra("register",this.Promise),S=nt.load(m,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return R=nt.load(m,this.redisStoreDefaults,{}),new np(this,S,R);if(this.datastore==="local")return R=nt.load(m,this.localStoreDefaults,{}),new tp(this,S,R);throw new I.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var x;return(x=this._store.heartbeat)!=null&&typeof x.ref=="function"?x.ref():void 0}),this._queues.on("zero",()=>{var x;return(x=this._store.heartbeat)!=null&&typeof x.unref=="function"?x.unref():void 0})}_validateOptions(m,w){if(!(m!=null&&typeof m=="object"&&w.length===0))throw new I.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(m){return this._store.__publish__(m)}disconnect(m=!0){return this._store.__disconnect__(m)}chain(m){return this._limiter=m,this}queued(m){return this._queues.queued(m)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(m){return this._states.jobStatus(m)}jobs(m){return this._states.statusJobs(m)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(m=1){return this._store.__check__(m)}_clearGlobalState(m){return this._scheduled[m]!=null?(clearTimeout(this._scheduled[m].expiration),delete this._scheduled[m],!0):!1}async _free(m,w,R,S){var x,A;try{if({running:A}=await this._store.__free__(m,R.weight),this.Events.trigger("debug",`Freed ${R.id}`,S),A===0&&this.empty())return this.Events.trigger("idle")}catch(U){return x=U,this.Events.trigger("error",x)}}_run(m,w,R){var S,x,A;return w.doRun(),S=this._clearGlobalState.bind(this,m),A=this._run.bind(this,m,w),x=this._free.bind(this,m,w),this._scheduled[m]={timeout:setTimeout(()=>w.doExecute(this._limiter,S,A,x),R),expiration:w.options.expiration!=null?setTimeout(function(){return w.doExpire(S,A,x)},R+w.options.expiration):void 0,job:w}}_drainOne(m){return this._registerLock.schedule(()=>{var w,R,S,x,A;return this.queued()===0?this.Promise.resolve(null):(A=this._queues.getFirst(),{options:x,args:w}=S=A.first(),m!=null&&x.weight>m?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${x.id}`,{args:w,options:x}),R=this._randomIndex(),this._store.__register__(R,x.weight,x.expiration).then(({success:U,wait:oe,reservoir:me})=>{var Ln;return this.Events.trigger("debug",`Drained ${x.id}`,{success:U,args:w,options:x}),U?(A.shift(),Ln=this.empty(),Ln&&this.Events.trigger("empty"),me===0&&this.Events.trigger("depleted",Ln),this._run(R,S,oe),this.Promise.resolve(x.weight)):this.Promise.resolve(null)})))})}_drainAll(m,w=0){return this._drainOne(m).then(R=>{var S;return R!=null?(S=m!=null?m-R:m,this._drainAll(S,w+R)):this.Promise.resolve(w)}).catch(R=>this.Events.trigger("error",R))}_dropAllQueued(m){return this._queues.shiftAll(function(w){return w.doDrop({message:m})})}stop(m={}){var w,R;return m=nt.load(m,this.stopDefaults),R=S=>{var x;return x=()=>{var A;return A=this._states.counts,A[0]+A[1]+A[2]+A[3]===S},new this.Promise((A,U)=>x()?A():this.on("done",()=>{if(x())return this.removeAllListeners("done"),A()}))},w=m.dropWaitingJobs?(this._run=function(S,x){return x.doDrop({message:m.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var S,x,A;x=this._scheduled;for(S in x)A=x[S],this.jobStatus(A.job.options.id)==="RUNNING"&&(clearTimeout(A.timeout),clearTimeout(A.expiration),A.job.doDrop({message:m.dropErrorMessage}));return this._dropAllQueued(m.dropErrorMessage),R(0)}))):this.schedule({priority:Ea-1,weight:0},()=>R(1)),this._receive=function(S){return S._reject(new I.prototype.BottleneckError(m.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new I.prototype.BottleneckError("stop() has already been called")),w}async _addToQueue(m){var w,R,S,x,A,U,oe;({args:w,options:x}=m);try{({reachedHWM:A,blocked:R,strategy:oe}=await this._store.__submit__(this.queued(),x.weight))}catch(me){return S=me,this.Events.trigger("debug",`Could not queue ${x.id}`,{args:w,options:x,error:S}),m.doDrop({error:S}),!1}return R?(m.doDrop(),!0):A&&(U=oe===I.prototype.strategy.LEAK?this._queues.shiftLastFrom(x.priority):oe===I.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(x.priority+1):oe===I.prototype.strategy.OVERFLOW?m:void 0,U?.doDrop(),U==null||oe===I.prototype.strategy.OVERFLOW)?(U==null&&m.doDrop(),A):(m.doQueue(A,R),this._queues.push(m),await this._drainAll(),A)}_receive(m){return this._states.jobStatus(m.options.id)!=null?(m._reject(new I.prototype.BottleneckError(`A job with the same id already exists (id=${m.options.id})`)),!1):(m.doReceive(),this._submitLock.schedule(this._addToQueue,m))}submit(...m){var w,R,S,x,A,U,oe;return typeof m[0]=="function"?(A=m,[R,...m]=A,[w]=op.call(m,-1),x=nt.load({},this.jobDefaults)):(U=m,[x,R,...m]=U,[w]=op.call(m,-1),x=nt.load(x,this.jobDefaults)),oe=(...me)=>new this.Promise(function(Ln,pR){return R(...me,function(...ap){return(ap[0]!=null?pR:Ln)(ap)})}),S=new _a(oe,m,x,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),S.promise.then(function(me){return typeof w=="function"?w(...me):void 0}).catch(function(me){return Array.isArray(me)?typeof w=="function"?w(...me):void 0:typeof w=="function"?w(me):void 0}),this._receive(S)}schedule(...m){var w,R,S;return typeof m[0]=="function"?([S,...m]=m,R={}):[R,S,...m]=m,w=new _a(S,m,R,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(w),w.promise}wrap(m){var w,R;return w=this.schedule.bind(this),R=function(...S){return w(m.bind(this),...S)},R.withOptions=function(S,...x){return w(S,m,...x)},R}async updateSettings(m={}){return await this._store.__updateSettings__(nt.overwrite(m,this.storeDefaults)),nt.overwrite(m,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(m=0){return this._store.__incrementReservoir__(m)}}return I.default=I,I.Events=wa,I.version=I.prototype.version=lR.version,I.strategy=I.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},I.BottleneckError=I.prototype.BottleneckError=f,I.Group=I.prototype.Group=Pn,I.RedisConnection=I.prototype.RedisConnection=O,I.IORedisConnection=I.prototype.IORedisConnection=N,I.Batcher=I.prototype.Batcher=cR,I.prototype.jobDefaults={priority:ep,weight:1,expiration:null,id:"<no-id>"},I.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:I.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},I.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},I.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},I.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},I.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},I}.call(e);var ip=Zd,dR=ip;return dR})});var Dt,Eu=h(()=>{Dt=class extends Error{name;status;request;response;constructor(t,r,n){super(t,{cause:n.cause}),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0);"response"in n&&(this.response=n.response);let s=Object.assign({},n.request);n.request.headers.authorization&&(s.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),s.url=s.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=s}}});function pC(e){return e.request!==void 0}async function _h(e,t,r,n){if(!pC(r)||!r?.request.request)throw r;if(r.status>=400&&!e.doNotRetry.includes(r.status)){let s=n.request.retries!=null?n.request.retries:e.retries,o=Math.pow((n.request.retryCount||0)+1,2);throw t.retry.retryRequest(r,s,o)}throw r}async function mC(e,t,r,n){let s=new Eh.default;return s.on("failed",function(o,i){let a=~~o.request.request?.retries,c=~~o.request.request?.retryAfter;if(n.request.retryCount=i.retryCount+1,a>i.retryCount)return c*e.retryAfterBaseValue}),s.schedule(fC.bind(null,e,t,r),n)}async function fC(e,t,r,n){let s=await r(n);if(s.data&&s.data.errors&&s.data.errors.length>0&&/Something went wrong while executing your query/.test(s.data.errors[0].message)){let o=new Dt(s.data.errors[0].message,500,{request:n,response:s});return _h(e,t,o,n)}return s}function Ru(e,t){let r=Object.assign({enabled:!0,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,410,422,451],retries:3},t.retry),n={retry:{retryRequest:(s,o,i)=>(s.request.request=Object.assign({},s.request.request,{retries:o,retryAfter:i}),s)}};return r.enabled&&(e.hook.error("request",_h.bind(null,r,n)),e.hook.wrap("request",mC.bind(null,r,n))),n}var Eh,dC,Rh=h(()=>{Eh=Sa(_u(),1);Eu();dC="0.0.0-development";Ru.VERSION=dC});function hC(e,t,r){return e.retryLimiter.schedule(yC,e,t,r)}async function yC(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),s=bC(r.method,n),o=!s&&r.method!=="GET"&&r.method!=="HEAD",i=r.method==="GET"&&n.startsWith("/search/"),a=n.startsWith("/graphql"),u=~~t.retryCount>0?{priority:0,weight:0}:{};e.clustering&&(u.expiration=1e3*60),(o||a)&&await e.write.key(e.id).schedule(u,ku),o&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(u,ku),i&&await e.search.key(e.id).schedule(u,ku);let l=(s?e.auth:e.global).key(e.id).schedule(u,t,r);if(a){let d=await l;if(d.data.errors!=null&&d.data.errors.some(p=>p.type==="RATE_LIMITED"))throw Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:d,data:d.data})}return l}function bC(e,t){return e==="PATCH"&&/^\/applications\/[^/]+\/token\/scoped$/.test(t)||e==="POST"&&(/^\/applications\/[^/]+\/token$/.test(t)||/^\/app\/installations\/[^/]+\/access_tokens$/.test(t)||t==="/login/oauth/access_token")}function _C(e){let r=`^(?:${e.map(n=>n.split("/").map(s=>s.startsWith("{")?"(?:.+?)":s).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}function si(e,t){let{enabled:r=!0,Bottleneck:n=Sh.default,id:s="no-id",timeout:o=1e3*60*2,connection:i}=t.throttle||{};if(!r)return{};let a={timeout:o};typeof i<"u"&&(a.connection=i);let c=Object.assign({clustering:i!=null,triggersNotification:Th,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:s},t.throttle);if(typeof c.onSecondaryRateLimit!="function"||typeof c.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
|
|
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:
|
|
72
72
|
You must pass the onSecondaryRateLimit and onRateLimit error handlers.
|
|
73
73
|
See https://octokit.github.io/rest.js/#throttling
|
|
74
74
|
|
|
@@ -78,110 +78,112 @@ ${a}
|
|
|
78
78
|
onRateLimit: (retryAfter, options) => {/* ... */}
|
|
79
79
|
}
|
|
80
80
|
})
|
|
81
|
-
`);let u=!1,l=()=>{if(u)return;u=!0,Ze.global==null&&EC(n,a),c.global=c.global??Ze.global,c.auth=c.auth??Ze.auth,c.search=c.search??Ze.search,c.write=c.write??Ze.write,c.notifications=c.notifications??Ze.notifications,c.retryLimiter=c.retryLimiter??new n;let d={},p=new n.Events(d);d.on("secondary-limit",c.onSecondaryRateLimit),d.on("rate-limit",c.onRateLimit),d.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),c.retryLimiter.on("failed",async function(g,f){let[k,E,y]=f.args,{pathname:_}=new URL(y.url,"http://github.test");if(!(_.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let C=~~E.retryCount;E.retryCount=C,y.request.retryCount=C;let{wantRetry:L,retryAfter:F=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let q=Number(g.response.headers["retry-after"])||k.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",q,y,e,C),retryAfter:q}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(q=>q.type==="RATE_LIMITED")){let q=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),se=Math.max(Math.ceil((q-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",se,y,e,C),retryAfter:se}}return{}}();if(L)return E.retryCount++,F*k.retryAfterBaseValue})};return e.hook.wrap("request",(d,p)=>(l(),hC(c,d,p))),{}}var Sh,gC,ku,wC,kh,Th,Ze,EC,vh=h(()=>{Sh=Sa(_u(),1),gC="0.0.0-development",ku=()=>Promise.resolve();wC=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/issues/{issue_number}/sub_issue","/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];kh=_C(wC),Th=kh.test.bind(kh),Ze={},EC=function(e,t){Ze.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),Ze.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),Ze.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),Ze.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),Ze.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};si.VERSION=gC;si.triggersNotification=Th});function Vt(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:"<environment undetectable>"}var ls=h(()=>{});function oi(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((s,o)=>oi.bind(null,e,o,s,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((s,o)=>o.hook.bind(null,s,n),r)():r(n))}var xh=h(()=>{});function Ch(e,t,r,n){let s=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=(o,i)=>Promise.resolve().then(s.bind(null,i)).then(o.bind(null,i))),t==="after"&&(n=(o,i)=>{let a;return Promise.resolve().then(o.bind(null,i)).then(c=>(a=c,s(a,i))).then(()=>a)}),t==="error"&&(n=(o,i)=>Promise.resolve().then(o.bind(null,i)).catch(a=>s(a,i))),e.registry[r].push({hook:n,orig:s})}var Oh=h(()=>{});function Ah(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(s=>s.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var Ph=h(()=>{});function Gh(e,t,r){let n=Lh(Ah,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(s=>{let o=r?[t,s,r]:[t,s];e[s]=e.api[s]=Lh(Ch,null).apply(null,o)})}function RC(){let e=Symbol("Singular"),t={registry:{}},r=oi.bind(null,t,e);return Gh(r,t,e),r}function kC(){let e={registry:{}},t=oi.bind(null,e);return Gh(t,e),t}var Ih,Lh,Dh,$h=h(()=>{xh();Oh();Ph();Ih=Function.bind,Lh=Ih.bind(Ih);Dh={Singular:RC,Collection:kC}});function xC(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function CC(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Mh(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{CC(t[n])?n in e?r[n]=Mh(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Nh(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Tu(e,t,r){if(typeof t=="string"){let[s,o]=t.split(" ");r=Object.assign(o?{method:s,url:o}:{url:s},r)}else r=Object.assign({},t);r.headers=xC(r.headers),Nh(r),Nh(r.headers);let n=Mh(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(s=>!n.mediaType.previews.includes(s)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(s=>s.replace(/-preview/,""))),n}function OC(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(s=>s==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${s}=${encodeURIComponent(t[s])}`).join("&")}function PC(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function IC(e){let t=e.match(AC);return t?t.map(PC).reduce((r,n)=>r.concat(n),[]):[]}function Fh(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Bh(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function dn(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function ds(e,t,r){return t=e==="+"||e==="#"?Bh(t):dn(t),r?dn(r)+"="+t:t}function ln(e){return e!=null}function Su(e){return e===";"||e==="&"||e==="?"}function LC(e,t,r,n){var s=e[r],o=[];if(ln(s)&&s!=="")if(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||typeof s=="boolean")s=s.toString(),n&&n!=="*"&&(s=s.substring(0,parseInt(n,10))),o.push(ds(t,s,Su(t)?r:""));else if(n==="*")Array.isArray(s)?s.filter(ln).forEach(function(i){o.push(ds(t,i,Su(t)?r:""))}):Object.keys(s).forEach(function(i){ln(s[i])&&o.push(ds(t,s[i],i))});else{let i=[];Array.isArray(s)?s.filter(ln).forEach(function(a){i.push(ds(t,a))}):Object.keys(s).forEach(function(a){ln(s[a])&&(i.push(dn(a)),i.push(ds(t,s[a].toString())))}),Su(t)?o.push(dn(r)+"="+i.join(",")):i.length!==0&&o.push(i.join(","))}else t===";"?ln(s)&&o.push(dn(r)):s===""&&(t==="&"||t==="?")?o.push(dn(r)+"="):s===""&&o.push("");return o}function GC(e){return{expand:DC.bind(null,e)}}function DC(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,s,o){if(s){let a="",c=[];if(r.indexOf(s.charAt(0))!==-1&&(a=s.charAt(0),s=s.substr(1)),s.split(/,/g).forEach(function(u){var l=/([^:\*]*)(?::(\d+)|(\*))?/.exec(u);c.push(LC(t,a,l[1],l[2]||l[3]))}),a&&a!=="+"){var i=",";return a==="?"?i="&":a!=="#"&&(i=a),(c.length!==0?a:"")+c.join(i)}else return c.join(",")}else return Bh(o)}),e==="/"?e:e.replace(/\/$/,"")}function jh(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),s,o=Fh(e,["method","baseUrl","url","headers","request","mediaType"]),i=IC(r);r=GC(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=Fh(o,a);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(l=>l.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let l=n.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g)||[];n.accept=l.concat(e.mediaType.previews).map(d=>{let p=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${d}-preview${p}`}).join(",")}return["GET","HEAD"].includes(t)?r=OC(r,c):"data"in c?s=c.data:Object.keys(c).length&&(s=c),!n["content-type"]&&typeof s<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof s>"u"&&(s=""),Object.assign({method:t,url:r,headers:n},typeof s<"u"?{body:s}:null,e.request?{request:e.request}:null)}function $C(e,t,r){return jh(Tu(e,t,r))}function Uh(e,t){let r=Tu(e,t),n=$C.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Uh.bind(null,r),merge:Tu.bind(null,r),parse:jh})}var SC,TC,vC,AC,Hh,qh=h(()=>{ls();SC="0.0.0-development",TC=`octokit-endpoint.js/${SC} ${Vt()}`,vC={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":TC},mediaType:{format:""}};AC=/\{[^{}}]+\}/g;Hh=Uh(null,vC)});var Qh=cp(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.format=BC;ii.parse=jC;var NC=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,Jh=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,FC=/[\\"]/g,MC=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Vh=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function BC(e){let{type:t,parameters:r}=e;if(!t||!MC.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let s of Object.keys(r)){if(!Jh.test(s))throw new TypeError(`Invalid parameter name: ${s}`);n+=`; ${s}=${WC(r[s])}`}return n}function jC(e,t){let r=e.length,n=xu(e,0,r),s=n;n=vu(e,n,r);let o=Cu(e,s,n),i=e.slice(s,o).toLowerCase(),a=t?.parameters===!1?new Vh:qC(e,n,r);return{type:i,parameters:a}}var Kh=32,zh=9,Yh=59,UC=61,Wh=34,HC=92;function qC(e,t,r){let n=new Vh;e:for(;t<r;){t=xu(e,t+1,r);let s=t;for(;t<r;){let o=e.charCodeAt(t);if(o===Yh)continue e;if(o===UC){let i=Cu(e,s,t),a=e.slice(s,i).toLowerCase();if(t=xu(e,t+1,r),t<r&&e.charCodeAt(t)===Wh){t++;let u="";for(;t<r;){let l=e.charCodeAt(t++);if(l===Wh){t=vu(e,t,r),n[a]===void 0&&(n[a]=u);break}if(l===HC&&t<r){u+=e[t++];continue}u+=String.fromCharCode(l)}continue e}let c=t;if(t=vu(e,t,r),n[a]===void 0){let u=Cu(e,c,t);n[a]=e.slice(c,u)}continue e}t++}}return n}function vu(e,t,r){for(;t<r&&e.charCodeAt(t)!==Yh;)t++;return t}function xu(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==Kh&&n!==zh)break;t++}return t}function Cu(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==Kh&&n!==zh)break;r--}return r}function WC(e){if(Jh.test(e))return e;if(NC.test(e))return`"${e.replace(FC,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});var JC,ci,Kt,Ou,ry,Xh,Zh,Au,Pu,VC,ny,ai,KC,zC,YC,sy,ey,QC,XC,ZC,ty,oy,iy=h(()=>{JC=/^-?\d+$/,ci=/^-?\d+n+$/,Kt=JSON.stringify,Ou=JSON.parse,ry=/^-?\d+n$/,Xh=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Zh=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Au=e=>e===void 0||typeof e=="function"||typeof e=="symbol",Pu=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",VC=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let s=typeof t=="function",o=Array.isArray(t)?new Set(t.map(String)):null,i=(f,k,E)=>(E!==null&&typeof E=="object"&&typeof E.toJSON=="function"&&(E=E.toJSON(k)),typeof E=="string"&&ci.test(E)?E+"n":typeof E=="bigint"?"rawJSON"in JSON?JSON.rawJSON(E.toString()):E.toString()+"n":(s&&(E=t.call(f,k,E)),E!==null&&typeof E=="object"&&(E instanceof Number||E instanceof String||E instanceof Boolean)&&(E=E.valueOf()),E)),a=i({"":e},"",e);if(Au(a))return;let c=a===null||typeof a!="object",u=Pu(a);if(c||u)return Kt(a);let l=[],d=0,p=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;p.length>0;){let f=p[p.length-1];f.index===0&&(l.push(f.isArray?"[":"{"),d++);let k=!1;if(f.isArray)if(f.index<f.val.length){f.first||l.push(","),n&&l.push(`
|
|
82
|
-
`+n.repeat(d));let
|
|
83
|
-
`+n.repeat(d)+
|
|
84
|
-
`+n.repeat(d)),l.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return l.join("")},
|
|
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:
|
|
85
85
|
`+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(uO.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,s=Object.keys(n).reduce((i,a)=>cO.includes(a)?(i[a]=n[a],i):(i.variables||(i.variables={}),i.variables[a]=n[a],i),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return ly.test(o)&&(s.url=o.replace(ly,"/api/graphql")),e(s).then(i=>{if(i.data.errors){let a={};for(let c of Object.keys(i.headers))a[c]=i.headers[c];throw new aO(s,a,i.data)}return i.data.data})}function Du(e,t){let r=e.defaults(t);return Object.assign((s,o)=>lO(r,s,o),{defaults:Du.bind(null,r),endpoint:r.endpoint})}function dy(e){return Du(e,{method:"POST",url:"/graphql"})}var oO,aO,cO,uO,ly,DU,py=h(()=>{Gu();ls();oO="0.0.0-development";aO=class extends Error{constructor(e,t,r){super(iO(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}request;headers;response;name="GraphqlResponseError";errors;data},cO=["method","baseUrl","url","headers","request","query","mediaType","operationName"],uO=["query","method","url"],ly=/\/api\/v3\/?$/;DU=Du(ps,{headers:{"user-agent":`octokit-graphql.js/${oO} ${Vt()}`},method:"POST",url:"/graphql"});});async function pO(e){let t=dO(e),r=e.startsWith("v1.")||e.startsWith("ghs_"),n=e.startsWith("ghu_");return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function mO(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function fO(e,t,r,n){let s=t.endpoint.merge(r,n);return s.headers.authorization=mO(e),t(s)}var $u,my,fy,dO,gy,hy=h(()=>{$u="(?:[a-zA-Z0-9_-]+)",my="\\.",fy=new RegExp(`^${$u}${my}${$u}${my}${$u}$`),dO=fy.test.bind(fy);gy=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(pO.bind(null,t),{hook:fO.bind(null,t)})}});var Nu,yy=h(()=>{Nu="7.0.7"});function yO(e={}){return typeof e.debug!="function"&&(e.debug=by),typeof e.info!="function"&&(e.info=by),typeof e.warn!="function"&&(e.warn=gO),typeof e.error!="function"&&(e.error=hO),e}var by,gO,hO,wy,ui,_y=h(()=>{ls();$h();Gu();py();hy();yy();by=()=>{},gO=console.warn.bind(console),hO=console.error.bind(console);wy=`octokit-core.js/${Nu} ${Vt()}`,ui=class{static VERSION=Nu;static defaults(t){return class extends this{constructor(...n){let s=n[0]||{};if(typeof t=="function"){super(t(s));return}super(Object.assign({},t,s,s.userAgent&&t.userAgent?{userAgent:`${s.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(s=>!r.includes(s)))}}constructor(t={}){let r=new Dh.Collection,n={baseUrl:ps.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${wy}`:wy,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=ps.defaults(n),this.graphql=dy(this.request).defaults(n),this.log=yO(t.log),this.hook=r,t.authStrategy){let{authStrategy:o,...i}=t,a=o(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let o=gy(t.auth);r.wrap("request",o.hook),this.auth=o}let s=this.constructor;for(let o=0;o<s.plugins.length;++o)Object.assign(this,s.plugins[o](this,t))}request;graphql;log;hook;auth}});var Ey,Ry=h(()=>{Ey="6.0.0"});function Fu(e){e.hook.wrap("request",(t,r)=>{e.log.debug("request",r);let n=Date.now(),s=e.request.endpoint.parse(r),o=s.url.replace(r.baseUrl,"");return t(r).then(i=>{let a=i.headers["x-github-request-id"];return e.log.info(`${s.method} ${o} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i}).catch(i=>{let a=i.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${s.method} ${o} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i})})}var ky=h(()=>{Ry();Fu.VERSION=Ey});function wO(e){if(!e.data)return{...e,data:[]};if(!(("total_count"in e.data||"total_commits"in e.data)&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,s=e.data.total_count,o=e.data.total_commits;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count,delete e.data.total_commits;let i=Object.keys(e.data)[0],a=e.data[i];return e.data=a,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=s,e.data.total_commits=o,e}function Mu(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),s=typeof t=="function"?t:e.request,o=n.method,i=n.headers,a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{let c=await s({method:o,url:a,headers:i}),u=wO(c);if(a=((u.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in u.data){let l=new URL(u.url),d=l.searchParams,p=parseInt(d.get("page")||"1",10),g=parseInt(d.get("per_page")||"250",10);p*g<u.data.total_commits&&(d.set("page",String(p+1)),a=l.toString())}return{value:u}}catch(c){if(c.status!==409)throw c;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function Sy(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),Ty(e,[],Mu(e,t,r)[Symbol.asyncIterator](),n)}function Ty(e,t,r,n){return r.next().then(s=>{if(s.done)return t;let o=!1;function i(){o=!0}return t=t.concat(n?n(s.value,i):s.value.data),o?t:Ty(e,t,r,n)})}function Bu(e){return{paginate:Object.assign(Sy.bind(null,e),{iterator:Mu.bind(null,e)})}}var bO,XU,vy=h(()=>{bO="0.0.0-development";XU=Object.assign(Sy,{iterator:Mu});Bu.VERSION=bO});var ju,xy=h(()=>{ju="17.0.0"});var _O,Cy,Oy=h(()=>{_O={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteCustomImageFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],deleteCustomImageVersionFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomImageForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],getCustomImageVersionForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listCustomImageVersionsForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"],listCustomImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingPremiumRequestUsageReportOrg:["GET /organizations/{org}/settings/billing/premium_request/usage"],getGithubBillingPremiumRequestUsageReportUser:["GET /users/{username}/settings/billing/premium_request/usage"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubBillingUsageReportUser:["GET /users/{username}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},credentials:{revoke:["POST /credentials/revoke"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],repositoryAccessForOrg:["GET /organizations/{org}/dependabot/repository-access"],setRepositoryAccessDefaultLevel:["PUT /organizations/{org}/dependabot/repository-access/default-level"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],updateRepositoryAccessForOrg:["PATCH /organizations/{org}/dependabot/repository-access"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},enterpriseTeamMemberships:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"],get:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],list:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],remove:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"]},enterpriseTeamOrganizations:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"],delete:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignment:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignments:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"]},enterpriseTeams:{create:["POST /enterprises/{enterprise}/teams"],delete:["DELETE /enterprises/{enterprise}/teams/{team_slug}"],get:["GET /enterprises/{enterprise}/teams/{team_slug}"],list:["GET /enterprises/{enterprise}/teams"],update:["PATCH /enterprises/{enterprise}/teams/{team_slug}"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addBlockedByDependency:["POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],getParent:["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listDependenciesBlockedBy:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],listDependenciesBlocking:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeDependencyBlockedBy:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createArtifactStorageRecord:["POST /orgs/{org}/artifacts/metadata/storage-record"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createWebhook:["POST /orgs/{org}/hooks"],customPropertiesForOrgsCreateOrUpdateOrganizationValues:["PATCH /organizations/{org}/org-properties/values"],customPropertiesForOrgsGetOrganizationValues:["GET /organizations/{org}/org-properties/values"],customPropertiesForReposCreateOrUpdateOrganizationDefinition:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposCreateOrUpdateOrganizationDefinitions:["PATCH /orgs/{org}/properties/schema"],customPropertiesForReposCreateOrUpdateOrganizationValues:["PATCH /orgs/{org}/properties/values"],customPropertiesForReposDeleteOrganizationDefinition:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinition:["GET /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinitions:["GET /orgs/{org}/properties/schema"],customPropertiesForReposGetOrganizationValues:["GET /orgs/{org}/properties/values"],delete:["DELETE /orgs/{org}"],deleteAttestationsBulk:["POST /orgs/{org}/attestations/delete-request"],deleteAttestationsById:["DELETE /orgs/{org}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /orgs/{org}/attestations/digest/{subject_digest}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],disableSelectedRepositoryImmutableReleasesOrganization:["DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],enableSelectedRepositoryImmutableReleasesOrganization:["PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],get:["GET /orgs/{org}"],getImmutableReleasesSettings:["GET /orgs/{org}/settings/immutable-releases"],getImmutableReleasesSettingsRepositories:["GET /orgs/{org}/settings/immutable-releases/repositories"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listArtifactStorageRecords:["GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"],listAttestationRepositories:["GET /orgs/{org}/attestations/repositories"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listAttestationsBulk:["POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setImmutableReleasesSettings:["PUT /orgs/{org}/settings/immutable-releases"],setImmutableReleasesSettingsRepositories:["PUT /orgs/{org}/settings/immutable-releases/repositories"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},projects:{addItemForOrg:["POST /orgs/{org}/projectsV2/{project_number}/items"],addItemForUser:["POST /users/{username}/projectsV2/{project_number}/items"],deleteItemForOrg:["DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],deleteItemForUser:["DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"],getFieldForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"],getFieldForUser:["GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"],getForOrg:["GET /orgs/{org}/projectsV2/{project_number}"],getForUser:["GET /users/{username}/projectsV2/{project_number}"],getOrgItem:["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],getUserItem:["GET /users/{username}/projectsV2/{project_number}/items/{item_id}"],listFieldsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields"],listFieldsForUser:["GET /users/{username}/projectsV2/{project_number}/fields"],listForOrg:["GET /orgs/{org}/projectsV2"],listForUser:["GET /users/{username}/projectsV2"],listItemsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/items"],listItemsForUser:["GET /users/{username}/projectsV2/{project_number}/items"],updateItemForOrg:["PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],updateItemForUser:["PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkImmutableReleases:["GET /repos/{owner}/{repo}/immutable-releases"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],customPropertiesForReposCreateOrUpdateRepositoryValues:["PATCH /repos/{owner}/{repo}/properties/values"],customPropertiesForReposGetRepositoryValues:["GET /repos/{owner}/{repo}/properties/values"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disableImmutableReleases:["DELETE /repos/{owner}/{repo}/immutable-releases"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enableImmutableReleases:["PUT /repos/{owner}/{repo}/immutable-releases"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],listOrgPatternConfigs:["GET /orgs/{org}/secret-scanning/pattern-configurations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],updateOrgPatternConfigs:["PATCH /orgs/{org}/secret-scanning/pattern-configurations"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteAttestationsBulk:["POST /users/{username}/attestations/delete-request"],deleteAttestationsById:["DELETE /users/{username}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /users/{username}/attestations/digest/{subject_digest}"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listAttestationsBulk:["POST /users/{username}/attestations/bulk-list{?per_page,before,after}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Cy=_O});function Uu(e){let t={};for(let r of Rr.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},EO);return t}function RO(e,t,r,n,s){let o=e.request.defaults(n);function i(...a){let c=o.endpoint.merge(...a);if(s.mapToData)return c=Object.assign({},c,{data:c[s.mapToData],[s.mapToData]:void 0}),o(c);if(s.renamed){let[u,l]=s.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${u}.${l}()`)}if(s.deprecated&&e.log.warn(s.deprecated),s.renamedParameters){let u=o.endpoint.merge(...a);for(let[l,d]of Object.entries(s.renamedParameters))l in u&&(e.log.warn(`"${l}" parameter is deprecated for "octokit.${t}.${r}()". Use "${d}" instead`),d in u||(u[d]=u[l]),delete u[l]);return o(u)}return o(...a)}return Object.assign(i,o)}var Rr,EO,Ay=h(()=>{Oy();Rr=new Map;for(let[e,t]of Object.entries(Cy))for(let[r,n]of Object.entries(t)){let[s,o,i]=n,[a,c]=s.split(/ /),u=Object.assign({method:a,url:c},o);Rr.has(e)||Rr.set(e,new Map),Rr.get(e).set(r,{scope:e,methodName:r,endpointDefaults:u,decorations:i})}EO={has({scope:e},t){return Rr.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Rr.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let s=Rr.get(t).get(n);if(!s)return;let{endpointDefaults:o,decorations:i}=s;return i?r[n]=RO(e,t,n,o,i):r[n]=e.request.defaults(o),r[n]}}});function kO(e){return{rest:Uu(e)}}function Hu(e){let t=Uu(e);return{...t,rest:t}}var Py=h(()=>{xy();Ay();kO.VERSION=ju;Hu.VERSION=ju});var Iy,Ly=h(()=>{Iy="22.0.1"});var Gy,Dy=h(()=>{_y();ky();vy();Py();Ly();Gy=ui.plugin(Fu,Hu,Bu).defaults({userAgent:`octokit-rest.js/${Iy}`})});function $y(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function qu(e){let t=e.etags??$y(),r=new SO({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{request:{fetch:e.fetchImpl}}:{},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),n=async s=>{let o=t.get(s.cacheKey),i={...s.parameters??{}},a=ms(i.headers)?i.headers:{};i.headers={...a,...o?{"if-none-match":o.etag}:{}};try{let c=await r.request(s.route,i),u=c.headers,l=di(u,"etag");return l!==void 0&&t.set(s.cacheKey,{etag:l,data:c.data,headers:u}),await e.attribution?.record({operation:s.operation,cost:1,actor:s.actor}),{data:c.data,headers:u,quotaFree:!1}}catch(c){if(li(c)===304){if(o===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(s.cacheKey)} without a held answer to reuse`,{cause:c});let u=Ny(c),l={...o.headers,...u},d=di(l,"etag")??o.etag;return t.set(s.cacheKey,{etag:d,data:o.data,headers:l}),await e.attribution?.record({operation:s.operation,cost:0,actor:s.actor}),{data:o.data,headers:l,quotaFree:!0}}throw li(c)===401?new fs({cause:c}):c}};return{conditionalRest:n,async conditionalPaginate(s){let o=[],i={},a=0,c=!0,u=1;for(;;){let l=await n({...s,cacheKey:`${s.cacheKey}:page:${u}`,parameters:{...s.parameters??{},per_page:100,page:u}});if(a+=1,c=c&&l.quotaFree,!Array.isArray(l.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(s.cacheKey)} page ${u}`);if(o.push(...l.data),i=l.headers,!TO(l.headers))break;u+=1}return{data:o,headers:i,requestCount:a,quotaFree:c}},async graphql(s,o={},i){try{let a=await r.graphql(s,o);return i&&await e.attribution?.record({operation:i.operation,cost:1,actor:i.actor}),a}catch(a){throw li(a)===401?new fs({cause:a}):a}}}}function TO(e){let t=di(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Wu(e){let t=li(e),r=Ny(e);return t===429||t===403&&di(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function li(e){if(ms(e))return typeof e.status=="number"?e.status:void 0}function Ny(e){return!ms(e)||!ms(e.response)||!ms(e.response.headers)?{}:e.response.headers}function di(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function ms(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var SO,fs,Fy=h(()=>{Rh();vh();Dy();SO=Gy.plugin(Ru,si);fs=class extends Error{status=401;constructor(t){super("GitHub rejected the host credential; refresh the stored login with `gh auth login` or provide a current host token",t),this.name="GithubCredentialError"}}});var My=h(()=>{});var By=h(()=>{});var jy=h(()=>{});var Ju=h(()=>{bh();wh();Fy();My();By();jy()});import{execFile as AO}from"node:child_process";import{promisify as PO}from"node:util";var aq,Uy=h(()=>{"use strict";Ju();mu();aq=PO(AO)});var Hy=h(()=>{"use strict";Lg();Mg();Bg();Xo();Ug();Hg();qg();Wg();Qo();Jg();Vg();Kg();zg();ou();Yg();Qg();Zg();eh();th();ei();rh();nh();su();lu();du();oh();ih();ah();ch();Zo();uu();cu();lh();mu();dh();ph();mh();Uy()});import{EventEmitter as IO}from"node:events";import{spawn as LO}from"node:child_process";function mi(e,t){let r=Number(t);return!Number.isSafeInteger(r)||r<=0?!1:!!(e.pull_request?.number===r||e.check_run?.pull_requests?.some(n=>n.number===r)||e.check_suite?.pull_requests?.some(n=>n.number===r))}function fi(e,t){return e.workflow_run!=null&&String(e.workflow_run.id)===t}var gs,Vu,GO,DO,$O,NO,pi,Ku=h(()=>{gs="github-webhook",Vu="github.webhook.delivery";GO="pull_request,pull_request_review,check_run,check_suite,workflow_run",DO=3,$O=1e3,NO=/no extension matched|unknown command|command not found/i,pi=class extends IO{constructor(r,n){super();this.opts=r;this.terminate=n}child;_dead=!1;restarts=0;_mode="polling";stopping;get mode(){return this._mode}get dead(){return this._dead}start(){this._dead||this.opts.cancelSignal.aborted||(this.opts.cancelSignal.addEventListener("abort",()=>void this.stop(),{once:!0}),this.spawnChild())}async stop(){if(this.stopping)return await this.stopping;this._dead=!0,this.emit("stopped");let r=this.child;this.child=void 0,r&&(this.stopping=this.terminate(r,$O).then(()=>{}),await this.stopping)}makeWakeSignalFor(r,n){return()=>{if(this._mode!=="webhook"||this._dead)return;let s=new AbortController,o=c=>{(r==="pr"?mi(c,n):fi(c,n))&&(a(),s.abort())},i=()=>{a()},a=()=>{this.off("delivery",o),this.off("stopped",i)};return this.on("delivery",o),this.once("stopped",i),s.signal}}spawnChild(){if(this._dead)return;let r=this.opts.ghBin??"gh",n;try{n=LO(r,["webhook","forward",`--events=${GO}`],{cwd:this.opts.cwd,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"})}catch{return}this.child=n;let s="";n.stdout?.setEncoding("utf8"),n.stdout?.on("data",i=>{s+=i;let a;for(;(a=s.indexOf(`
|
|
87
|
-
`))>=0;){let c=s.slice(0,a).trim();s=s.slice(a+1),c&&this.onLine(c)}});let o=[];n.stderr?.on("data",i=>{o.push(Buffer.from(i))}),n.once("error",()=>{this.child===n&&(this.child=void 0),this.scheduleRestart()}),n.once("close",i=>{if(this.child===n&&(this.child=void 0),this._dead)return;let a=Buffer.concat(o).toString("utf8");NO.test(a)||this.restarts===0&&(i===1||i===127)||this.scheduleRestart()})}onLine(r){let n;try{n=JSON.parse(r)}catch{this.emit("malformed-delivery",r);return}this._mode!=="webhook"&&(this._mode="webhook",this.emit("mode-changed","webhook")),this.emit("delivery",n)}scheduleRestart(){if(this._dead||this.restarts>=DO)return;let r=Math.min(500*Math.pow(2,this.restarts),5e3);this.restarts++,setTimeout(()=>this.spawnChild(),r).unref()}}});var gi,qy=h(()=>{"use strict";Ku();Ku();Lt();gi=class extends pi{constructor(t){super(t,Zr)}}});import{EventEmitter as FO}from"node:events";import{join as MO}from"node:path";function Yu(e){let t=Go(e.cwd),r=sh(MO(t,".red"));return new zu({...e,leases:e.leases??uh(r),lane:e.lane??au(r),makeForwarder:e.makeForwarder??((n,s)=>new gi({cwd:n,cancelSignal:s})),isLeaseHolderLive:e.isLeaseHolderLive??(n=>en(n.pid,n.start_time))})}var zu,Wy=h(()=>{"use strict";Hy();qy();Lt();Hc();zu=class extends FO{constructor(r){super();this.options=r}_mode="polling";cursor=0;timer;fallback;stopped=!1;syncing=!1;get mode(){return this.fallback?.mode??this._mode}async start(){let r=await this.options.leases.read(gs).catch(()=>{});if(!r||!await this.options.isLeaseHolderLive(r)){this.startFallback();return}let n=await this.options.lane.read().catch(()=>{});if(!n){this.degradeToFallback();return}this.cursor=n.length,this._mode="webhook",this.emit("mode-changed","webhook"),this.timer=setInterval(()=>void this.sync().catch(()=>this.degradeToFallback()),this.options.pollIntervalMs??100),this.timer.unref(),this.options.cancelSignal.addEventListener("abort",()=>void this.stop(),{once:!0})}async stop(){this.stopped||(this.stopped=!0,this.timer&&clearInterval(this.timer),await this.fallback?.stop(),this.emit("stopped"))}makeWakeSignalFor(r,n){return()=>{if(this.fallback)return this.fallback.makeWakeSignalFor(r,n)();if(this._mode!=="webhook"||this.stopped)return;let s=new AbortController,o=a=>{(r==="pr"?mi(a,n):fi(a,n))&&(i(),s.abort())},i=()=>{this.off("delivery",o),this.off("stopped",i)};return this.on("delivery",o),this.once("stopped",i),s.signal}}startFallback(){this.fallback||this.stopped||(this.fallback=this.options.makeForwarder(this.options.cwd,this.options.cancelSignal),this.fallback.on("mode-changed",r=>{this.emit("mode-changed",r)}),this.fallback.on("delivery",r=>{this.emit("delivery",r)}),this.fallback.start())}degradeToFallback(){this.timer&&clearInterval(this.timer),this.timer=void 0,this._mode="polling",this.startFallback()}async sync(){if(!(this.syncing||this.stopped)){this.syncing=!0;try{let r=await this.options.lane.read();r.length<this.cursor&&(this.cursor=0);let n=r.slice(this.cursor);this.cursor=r.length;for(let o of n)o.singleton===gs&&o.kind===Vu&&o.payload&&this.emit("delivery",o.payload);let s=await this.options.leases.read(gs);(!s||!await this.options.isLeaseHolderLive(s))&&this.degradeToFallback()}finally{this.syncing=!1}}}}});var Qu={};K(Qu,{listWaits:()=>$o,renderWaitHelp:()=>us,runWait:()=>UO});import{randomUUID as Jy}from"node:crypto";import{mkdir as BO,rm as jO}from"node:fs/promises";async function UO(e,t=process.cwd()){let r;try{r=await Ff(e)}catch(n){return await VO(e,n)}if(r.kind==="help"||e.includes("--help")||e.includes("-h"))return process.stdout.write(us()),0;if(r.kind==="ls"){let n={schema:Af,version:1,waits:await $o(t)};return process.stdout.write(on(n,r.options.format)),0}return jc(r.kind)?await HO({...r,kind:r.kind},t):(process.stdout.write(us()),2)}async function HO(e,t){let r=e.kind,n=Vc({id:Jy(),kind:r,target:JO(e),reason:e.options.reason,pid:process.pid,pid_start_time:await es(process.pid),started_at:new Date().toISOString(),deadline_at:new Date(Date.now()+e.options.timeoutMs).toISOString(),timeout_ms:e.options.timeoutMs,poll_tier:Mc[r],status:"running",attempts:0}),s=Wf(t,n.id),o=new AbortController,i,a=l=>{i=l,o.abort()},c=()=>a("SIGINT"),u=()=>a("SIGTERM");process.once("SIGINT",c),process.once("SIGTERM",u);try{await BO(tn(t),{recursive:!0}),await rn(s,n);let l=await qO(e,t,s,n,o.signal);i&&(l={...l,verdict:ge(`wait interrupted by ${i}`,l.verdict.details)});let d=await zf({kind:r,entry:n,verdict:l.verdict,options:e.options,cwd:t,cleanupProven:l.cleanupProven,survivors:l.survivors});return process.stdout.write(on(d.result,e.options.format)),d.exitCode}catch(l){let d=ge(l instanceof Error?l.message:String(l)),p=is(r,n,d,{status:"success"},new Date().toISOString());return await as(e.options.resultFile,p,e.options.format).catch(()=>{}),process.stdout.write(on(p,e.options.format)),2}finally{process.removeListener("SIGINT",c),process.removeListener("SIGTERM",u),await jO(s,{force:!0}).catch(()=>{})}}async function qO(e,t,r,n,s){let o={cwd:t,signal:s,timeoutMs:e.options.probeTimeoutMs};switch(e.kind){case"cmd":return await Rg({commandLine:e.commandLine??"",options:e.options,cwd:t,spoolDir:Uf(t),registryPath:r,entry:n,signal:s});case"pr":{let i=e.target??"";if(!/^[1-9][0-9]*$/.test(i))return{verdict:ge("missing PR number")};n.webhook_mode="polling";let a=Yu({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await zo({probe:Cg(i,o,{emptyChecksGraceMs:rs("RSP_WAIT_PR_EMPTY_CHECKS_GRACE_MS",3e4)}),timeoutMs:e.options.timeoutMs,baseSleepMs:rs("RSP_WAIT_PR_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("pr",i),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"run":{let i=await WO(e,o,r,n);if(!i.ok)return{verdict:ge(i.reason)};n.webhook_mode="polling";let a=Yu({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await zo({probe:()=>Og(i.value,o),timeoutMs:e.options.timeoutMs,baseSleepMs:rs("RSP_WAIT_RUN_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("run",i.value),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"release":return await zo({probe:()=>Pg(e.tagGlob,new Date(n.started_at),o),timeoutMs:e.options.timeoutMs,baseSleepMs:rs("RSP_WAIT_RELEASE_POLL_MS",6e4),registryPath:r,entry:n,signal:s})}}async function WO(e,t,r,n){if(e.target)return{ok:!0,value:e.target};if(!(e.latest&&e.branch))return{ok:!1,reason:"missing run id"};let s=await Ag(e.branch,t);return s?(e.target=s,n.target=`run:${s}`,await rn(r,n),{ok:!0,value:s}):{ok:!1,reason:`no run found for branch ${e.branch}`}}function JO(e){return e.kind==="cmd"?`cmd:${e.commandLine??""}`:e.kind==="run"&&e.branch&&e.latest?`run:${e.branch}:latest`:e.kind==="release"?`release:${e.tagGlob??"*"}`:`${e.kind}:${e.target??""}`}async function VO(e,t){let r=e.includes("--json")?"json":"toon",n=e.indexOf("--result-file"),s=n>=0?e[n+1]:void 0,o=jc(e[1])?e[1]:"cmd",i=new Date().toISOString(),a=Vc({id:Jy(),kind:o,target:`${o}:`,reason:"",pid:process.pid,started_at:i,deadline_at:i,timeout_ms:0,poll_tier:Mc[o],status:"indeterminate",attempts:0}),c=is(o,a,ge(t instanceof Error?t.message:String(t)),{status:"success"},i);return await as(s,c,r).catch(()=>{}),process.stdout.write(on(c,r)),2}var Xu=h(()=>{"use strict";Mf();Qf();Sg();wr();qc();Ig();Lt();os();nu();Wy();os();nu()});var Zu,el,tl,Oe,Ae,je,pt,hs,hi=h(()=>{"use strict";Zu="rsp-telemetry.spool.toonl",el="rsp-telemetry.spool.jsonl",tl="rsp-telemetry.spool.corrections.toonl",Oe="rsp_accounting_events_v1",Ae="rsp_decisions_v1",je="rsp_telemetry_invocations_v1",pt="rsp_telemetry_degradations_v1",hs="rsp_telemetry_index_v1"});function pn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ue(e){return zt(e)??0}function zt(e){return typeof e=="number"&&Number.isFinite(e)?e:null}var rl=h(()=>{"use strict"});import{randomUUID as sl,createHash as XO}from"node:crypto";import{appendFileSync as Zy,existsSync as ZO,mkdirSync as eb}from"node:fs";import{mkdir as tb,readdir as e0,readFile as rb,rename as t0,rm as nb,writeFile as ol}from"node:fs/promises";import{basename as nl,dirname as ys,join as mn,resolve as zy}from"node:path";function bi(e){if(!e)return null;let t=zy(e);for(;;){if(ZO(mn(t,".red")))return t;let r=zy(mn(t,".."));if(r===t)break;t=r}return null}function $t(e){return mn(X(e),Zu)}function wi(e){return mn(X(e),el)}function al(e){return mn(X(e),tl)}async function kr(e,t){Yt(e,t)}function Yt(e,t){try{let r=bi(e);if(!r)return;let n=$t(r);eb(ys(n),{recursive:!0}),Zy(n,a0({spool_id:sl(),event:n0(t)}),{encoding:"utf8",mode:384})}catch{}}function n0(e){return Yy(Yy(e,"raw_text","raw_bytes"),"emitted_text","emitted_bytes")}function Yy(e,t,r){let n=e[t];if(typeof n!="string")return e;let s=Buffer.byteLength(n,"utf8");if(s<=r0)return e;let o={...e};return delete o[t],Ue(o[r])===0&&(o[r]=s),o.estimated=!0,o}async function s0(e){let t=bi(e);if(!t)return[];let r=$t(t);await tb(ys(r),{recursive:!0}).catch(()=>{});let n=await ib(t),s=[...await ab(t),...await u0(n)];return await Promise.all(n.map(o=>nb(o,{force:!0}))),s.map(o=>JSON.stringify(o.event))}async function cl(e,t){let r=bi(e);if(!r)return;let n=$t(r);await tb(ys(n),{recursive:!0}).catch(()=>{}),await c0(r);for(let s of await o0(r))await Qy(r,s,t);for(let s of await ab(r))await sb(r,s,t,!0);for(let s of await ib(r))await Qy(r,s,t)}async function o0(e){let t=[$t(e),wi(e)],r=ys(t[0]);return(await e0(r).catch(()=>[])).filter(s=>t.some(o=>s.startsWith(`${nl(o)}.`)&&s.endsWith(".drain"))).filter(s=>{let o=t.find(c=>s.startsWith(`${nl(c)}.`));if(!o)return!1;let i=`${nl(o)}.`,a=Number(s.slice(i.length).split(".")[0]);return!(Number.isInteger(a)&&a!==process.pid&&i0(a))}).sort().map(s=>mn(r,s))}function i0(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function Qy(e,t,r){try{let n=await ob(t);for(let s of cb(n))await sb(e,s,r,!1)}finally{await nb(t,{force:!0})}}async function sb(e,t,r,n){let s=t.event?JSON.stringify(t.event):t.raw_line??"";try{if(await r(s)){n&&Xy(e,{correction_id:sl(),target_spool_id:t.spool_id,action:"resolved",created_at:new Date().toISOString()});return}}catch{}Xy(e,{correction_id:sl(),target_spool_id:t.spool_id,action:"retry",created_at:new Date().toISOString(),event_json:t.event?JSON.stringify(t.event):void 0})}async function ob(e){let t="";for(let r=0;r<5;r++){let n=await rb(e,"utf8").catch(()=>"");if(n===t)return n;t=n,await new Promise(s=>setTimeout(s,2))}return t}function fn(e){try{let t=JSON.parse(e);return!pn(t)||t.collection!==Oe&&t.collection!==Ae&&t.collection!==je&&t.collection!==pt?null:t}catch{return null}}function a0(e){return St().push(p0(e))}function Xy(e,t){try{let r=bi(e);if(!r)return;let n=al(r);eb(ys(n),{recursive:!0});let s=St();Zy(n,s.push({correction_id:t.correction_id,target_spool_id:t.target_spool_id,action:t.action,created_at:t.created_at,event_json:t.event_json??null}),{encoding:"utf8",mode:384})}catch{}}async function ib(e){let t=[$t(e),wi(e)],r=[];for(let n of t){let s=`${n}.${process.pid}.${Date.now()}.drain`;try{await t0(n,s),await ol(n,"",{flag:"wx"}).catch(()=>{}),r.push(s)}catch(o){if(o.code!=="ENOENT")continue}}return r}async function c0(e){await Promise.all([ol($t(e),"",{flag:"a"}),ol(wi(e),"",{flag:"a"})]).catch(()=>{})}async function u0(e){let t=[];for(let r of e)t.push(...cb(await ob(r)));return t}async function ab(e){let t=await rb(al(e),"utf8").catch(()=>""),r=new Map;for(let n of l0(t))r.set(n.target_spool_id,n);return[...r.values()].filter(n=>n.action==="retry"&&n.event_json).map(n=>({spool_id:n.target_spool_id,event:fn(n.event_json)??void 0})).filter(n=>n.event!==void 0)}function cb(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s){try{let o=JSON.parse(s);if(pn(o)){let i=fn(JSON.stringify(o));t.push(i?{spool_id:yi(JSON.stringify(o)),event:i}:{spool_id:yi(s),raw_line:s})}continue}catch{}if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r){t.push({spool_id:yi(s),raw_line:s});continue}try{for(let o of kt(`${r}
|
|
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,pH,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\/?$/;pH=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,OH,Ny=y(()=>{UO="0.0.0-development";OH=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(`
|
|
87
|
+
`)})," 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,QH,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"}],QH=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 Pq,db=y(()=>{"use strict";yi();wu();Pq=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}
|
|
88
90
|
${s}
|
|
89
|
-
`))
|
|
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}
|
|
90
92
|
${s}
|
|
91
|
-
`))
|
|
92
|
-
`,"utf8"),t]):null}function
|
|
93
|
-
`,"utf8"),await
|
|
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.
|
|
94
96
|
expected at: ${o}
|
|
95
97
|
override: set ${n}=/path/to/${t}
|
|
96
98
|
fix: re-run \`pnpm install\` (the postinstall script downloads it),
|
|
97
|
-
or check the postinstall log for a download error.`)}var
|
|
98
|
-
`)).catch(a=>{this.pending.delete(n),i(a)})})}async close(){if(!this.closed){try{await this.call("close",{})}catch{}this.#e("close requested");try{this.child.stdin.end()}catch{}await this.child.wait()}}async#t(){let t=new Uint8Array(0);try{for await(let r of this.child.stdout){let n=new Uint8Array(t.length+r.length);n.set(t,0),n.set(r,t.length),t=n;let s=0;for(let o=0;o<t.length;o++)if(t[o]===10){let i=t.subarray(s,o);this.#r(
|
|
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 UJ}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(`
|
|
99
101
|
|
|
100
102
|
`)){let l=u.split(`
|
|
101
|
-
`).find(d=>d.startsWith("data: "));l&&(yield JSON.parse(l.slice(6)))}}watchPrefix(t,r={}){return this.watch(`${t}.*`,r)}}});function iA(e,t,r){let{waitMs:n,group:s=null,count:o=null}=r??{};if(!Number.isInteger(n)||n<0)throw new D("INVALID_QUEUE_WAIT","queue readWait requires an explicit non-negative integer waitMs (no infinite wait)");let i=Ft(e),a=Ft(t),c=s!=null?` GROUP ${Ft(s)}`:"",u=o!=null?Al(o):"";return`QUEUE READ ${i}${c} CONSUMER ${a}${u} WAIT ${n}ms`}function Ft(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_QUEUE_NAME",`invalid queue name "${t}": expected an SQL identifier`);return t}function Al(e){if(e==null)return"";if(!Number.isInteger(e)||e<0)throw new D("INVALID_QUEUE_COUNT","queue count must be a non-negative integer");return` COUNT ${e}`}function aA(e){if(!Number.isInteger(e))throw new D("INVALID_QUEUE_PRIORITY","queue priority must be an integer");return String(e)}function cA(e){if(e.key!=null&&(e.delay!=null||e.at!=null))throw new D("INVALID_ARGUMENT","QUEUE PUSH KEY cannot be combined with DELAY / AVAILABLE AT");let t="";return e.priority!=null&&(t+=` PRIORITY ${aA(e.priority)}`),e.key!=null&&(t+=` KEY ${Pl(e.key)}`),e.dedup!=null&&(t+=` DEDUP ${Pl(e.dedup)}`),e.delay!=null&&(t+=` DELAY ${e.delay}`),e.at!=null&&(t+=` AVAILABLE AT ${e.at}`),t}function uA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="string"?Pl(e):JSON.stringify(e)}function Pl(e){return`'${String(e).replace(/'/g,"''")}'`}function Ol(e){return Array.isArray(e?.rows)?e.rows.map(t=>t.payload):[]}var Os,Il=h(()=>{Xt();Os=class{constructor(t){this.client=t}create(t){return this.client.call("query",{sql:`CREATE QUEUE IF NOT EXISTS ${Ft(t)}`})}push(t,r,n={}){let s=cA(n);return this.client.call("query",{sql:`QUEUE PUSH ${Ft(t)} ${uA(r)}${s}`})}async pop(t,r){let n=await this.client.call("query",{sql:`QUEUE POP ${Ft(t)}${Al(r)}`});return Ol(n)}async peek(t,r){let n=await this.client.call("query",{sql:`QUEUE PEEK ${Ft(t)}${Al(r)}`});return Ol(n)}async len(t){let r=await this.client.call("query",{sql:`QUEUE LEN ${Ft(t)}`});return Number(r?.rows?.[0]?.len??0)}purge(t){return this.client.call("query",{sql:`QUEUE PURGE ${Ft(t)}`})}async readWait(t,r,n={}){let s=iA(t,r,n),o=await this.client.call("query",{sql:s});return Ol(o)}}});function Gb(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new D("INVALID_ARGUMENT",`${t} must be an object`)}function lA(e){if(e==null)return 100;if(!Number.isInteger(e)||e<=0)throw new D("INVALID_ARGUMENT","limit must be a positive integer");return e}function Li(e){return String(e).split(".").map(Db).join(".")}function Db(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_ARGUMENT",`invalid SQL identifier "${t}"`);return t}function dA(e){return $b(JSON.stringify(e))}function pA(e){return JSON.stringify(e)}function mA(e){return e==null?"NULL":typeof e=="number"||typeof e=="boolean"?String(e):typeof e=="object"?dA(e):$b(e)}function $b(e){return`'${String(e).replace(/'/g,"''")}'`}var As,Ll=h(()=>{Xt();As=class{constructor(t){this.db=t}async insert(t,r){Gb(r,"documents.insert document"),await this.ensureCollection(t);let n=await this.db.query(`INSERT INTO ${Li(t)} DOCUMENT VALUES (${pA(r)}) RETURNING *`),s=n.rows?.[0];if(!s||s.rid==null)throw new D("INVALID_RESPONSE","documents.insert expected one returned item with rid");return{affected:n.affected??1,rid:s.rid,item:s}}async get(t,r){let n=await this.db.get(t,r);if(!n.entity)throw new D("NOT_FOUND",`document ${String(r)} was not found`);return n.entity}async list(t,r={}){let n=lA(r.limit),s=r.orderBy??r.order_by??"rid ASC",o=r.filter?` WHERE ${String(r.filter)}`:"";return{items:(await this.db.query(`SELECT * FROM ${Li(t)}${o} ORDER BY ${s} LIMIT ${n}`)).rows??[]}}async patch(t,r,n){Gb(n,"documents.patch patch");let s=Object.entries(n);if(s.length===0)throw new D("INVALID_ARGUMENT","documents.patch patch must be a non-empty object");for(let[c]of s)if(c.includes("/"))throw new D("INVALID_ARGUMENT","documents.patch currently accepts top-level document fields");let o=s.map(([c,u])=>`${Db(c)} = ${mA(u)}`).join(", "),a=(await this.db.query(`UPDATE ${Li(t)} SET ${o} WHERE rid = $1 RETURNING *`,r)).rows?.[0];if(!a)throw new D("NOT_FOUND",`document ${String(r)} was not found`);return a}async delete(t,r){let s=(await this.db.delete(t,r)).affected??0;return{affected:s,deleted:s>0}}async ensureCollection(t){try{await this.db.query(`CREATE DOCUMENT ${Li(t)}`)}catch(r){if(!String(r?.message??"").includes("already exists"))throw r}}}});function fA(e,t){if(t.secretRef){let{collection:r,key:n}=t.secretRef;return`SECRET_REF(vault, ${Zt(r)}.${Zt(n)})`}return hA(e)}function gA(e,t){for(let r of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[r]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function Zt(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function hA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):Nb(e)}function Nb(e){return`'${String(e).replace(/'/g,"''")}'`}var Ps,Gl=h(()=>{Ps=class{constructor(t,r="red.config"){this.client=t,this.collection=r}put(t,r,n={}){gA(n,"config");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Nb).join(", ")}]`:"";return this.client.call("query",{sql:`PUT CONFIG ${Zt(s)} ${Zt(t)} = ${fA(r,n)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`GET CONFIG ${Zt(n)} ${Zt(t)}`})}resolve(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`RESOLVE CONFIG ${Zt(n)} ${Zt(t)}`})}}});function yA(e,t){for(let r of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[r]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function bn(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function bA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):Fb(e)}function Fb(e){return`'${String(e).replace(/'/g,"''")}'`}var Is,Dl=h(()=>{Is=class{constructor(t,r="red.vault"){this.client=t,this.collection=r}put(t,r,n={}){yA(n,"vault");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Fb).join(", ")}]`:"";return this.client.call("query",{sql:`VAULT PUT ${bn(s)}.${bn(t)} = ${bA(r)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`VAULT GET ${bn(n)}.${bn(t)}`})}unseal(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`UNSEAL VAULT ${bn(n)}.${bn(t)}`})}}});async function Bb(e){return((await e.query("SHOW COLLECTIONS")).rows??[]).map(wA)}async function jb(e,t){return((await e.query(`SHOW COLLECTIONS WHERE name = ${EA(t)}`)).rows??[]).some(n=>n.name===String(t))}function wA(e){return{...e,name:String(e.name),model:String(e.model),capabilities:Array.isArray(e.capabilities)?e.capabilities:[]}}function Mb(e){return String(e).split(".").map(_A).join(".")}function _A(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_IDENTIFIER",`invalid SQL identifier "${t}"`);return t}function EA(e){return`'${String(e).replace(/'/g,"''")}'`}var Ls,$l=h(()=>{Xt();Ls=class e{constructor(t,r,n=null,s=[],o=[]){this.db=t,this.collection=r,this.columns=n,this.whereClauses=s,this.params=o}select(...t){let r=t.length===1&&Array.isArray(t[0])?t[0]:t,n=r.length===1&&r[0]==="*"?null:r;return new e(this.db,this.collection,n!=null&&n.length>0?n:null,this.whereClauses,this.params)}where(t,...r){if(typeof t!="string"||t.trim().length===0)throw new D("INVALID_QUERY_BUILDER","where() requires a non-empty SQL condition");let n=r.length===1&&Array.isArray(r[0])?r[0]:r;return new e(this.db,this.collection,this.columns,[...this.whereClauses,t.trim()],[...this.params,...n])}async run(){let t=this.columns==null?"*":this.columns.map(Mb).join(", "),r=this.whereClauses.length>0?` WHERE ${this.whereClauses.map(i=>`(${i})`).join(" AND ")}`:"",n=`SELECT ${t} FROM ${Mb(this.collection)}${r}`,o=(this.params.length>0?await this.db.query(n,this.params):await this.db.query(n)).rows??[];return this.columns==null?o:o.map(i=>{let a={};for(let c of this.columns)a[c]=i[c];return a})}}});async function $i(e,t={}){let r=kl(e);if(PA(r),r.kind==="embedded"){let n=AA(r,t.auth);if(n.token||n.username)throw new D("AUTH_NOT_APPLICABLE","auth is only meaningful for remote connections; embedded modes inherit caller privileges.");let s=OA(r),o=t.binary??Ab(),i=await vb(o,s),a=new Ii(i);return await a.call("version",{}),new Fl(a,{transport:"embedded"})}}function Hb(e){return SA(e),e instanceof Float32Array||e instanceof Float64Array?Array.from(e):e instanceof Date?{$ts:String(BigInt(e.getTime())*1000000n)}:e instanceof Uint8Array||typeof Buffer<"u"&&e instanceof Buffer?{$bytes:vA(e)}:typeof e=="number"&&!Number.isFinite(e)?Number.isNaN(e)?{$float:"NaN"}:{$float:e>0?"Infinity":"-Infinity"}:typeof e=="string"&&CA(e)?{$uuid:e}:e}function SA(e){if(e!=null&&!(typeof e=="boolean"||typeof e=="number"||typeof e=="string")){if(e instanceof Date){if(Number.isNaN(e.getTime()))throw new D("UNSUPPORTED_PARAM","cannot encode invalid Date query parameter");return}if(!(e instanceof Uint8Array||e instanceof Float32Array||e instanceof Float64Array||typeof Buffer<"u"&&e instanceof Buffer)){if(Array.isArray(e)){if(e.every(t=>typeof t=="number"))return;throw new D("UNSUPPORTED_PARAM","array query parameters must contain only numbers")}if(!(typeof e=="object"&&Object.getPrototypeOf(e)===Object.prototype))throw new D("UNSUPPORTED_PARAM",`cannot encode query parameter of type ${typeof e}`)}}}function TA(e){return e.length===0?null:e.length===1&&Array.isArray(e[0])?e[0].map(Hb):e.map(Hb)}function vA(e){let t=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(typeof Buffer<"u")return Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("base64");let r="";for(let n of t)r+=String.fromCharCode(n);return btoa(r)}function xA(e){if(typeof Buffer<"u"){let n=Buffer.from(e,"base64");return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function CA(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}function Gi(e){if(Array.isArray(e))return e.map(Gi);if(e&&typeof e=="object"){if(Object.keys(e).length===1){if(typeof e.$bytes=="string")return xA(e.$bytes);if(typeof e.$uuid=="string")return e.$uuid;if(typeof e.$float=="string"){if(e.$float==="NaN")return Number.NaN;if(e.$float==="Infinity"||e.$float==="+Infinity")return 1/0;if(e.$float==="-Infinity")return-1/0}if(typeof e.$ts=="string"||typeof e.$ts=="number"){let n=typeof e.$ts=="string"?BigInt(e.$ts):BigInt(Math.trunc(e.$ts));return new Date(Number(n/1000000n))}}let r={};for(let[n,s]of Object.entries(e))r[n]=Gi(s);return r}return e}function OA(e){return e.path?["rpc","--stdio","--path",e.path]:["rpc","--stdio"]}function AA(e,t){let r={token:e.token??e.apiKey??null,username:e.username??null,password:e.password??null,loginUrl:e.loginUrl??null};if(t==null)return r;if(typeof t!="object")throw new TypeError("options.auth must be an object");if(t.token!=null){if(typeof t.token!="string"||t.token.length===0)throw new TypeError("options.auth.token must be a non-empty string");r.token=t.token}if(t.apiKey!=null){if(typeof t.apiKey!="string"||t.apiKey.length===0)throw new TypeError("options.auth.apiKey must be a non-empty string");r.token=t.apiKey}if(t.username!=null){if(typeof t.username!="string"||t.username.length===0)throw new TypeError("options.auth.username must be a non-empty string");r.username=t.username}if(t.password!=null){if(typeof t.password!="string"||t.password.length===0)throw new TypeError("options.auth.password must be a non-empty string");r.password=t.password}return t.loginUrl!=null&&(r.loginUrl=t.loginUrl),r}function PA(e){if(e.kind!=="embedded")throw new D("EMBEDDED_ONLY",RA)}function Ml(){return new D(Ub,`${Ub}: nested transactions are not supported on one connection`)}function Wb(e,t){if(e&&typeof e=="object")try{e.rollbackError=t}catch{}}function IA(e,t){if(!e||typeof e!="object"||e.rid==null&&e.id==null)throw new D("ENGINE_TOO_OLD",`${t}() requires RedDB engine >= ${qb} with insert id support`);return e.rid==null&&(e.rid=e.id),e.id==null&&(e.id=e.rid),e}function LA(e,t){if(!e||typeof e!="object"||!Array.isArray(e.rids)&&!Array.isArray(e.ids))throw new D("ENGINE_TOO_OLD",`bulkInsert() requires RedDB engine >= ${qb} with bulk insert id support`);if(Array.isArray(e.rids)||(e.rids=e.ids),Array.isArray(e.ids)||(e.ids=e.rids),e.rids.length!==t)throw new D("INVALID_RESPONSE",`bulkInsert() expected ${t} rids, got ${e.rids.length}`);return e}var RA,kA,qb,Ub,Di,Nl,Fl,Jb=h(()=>{xb();Pb();Xt();Sl();Tl();Cl();Il();Ll();Gl();Dl();$l();Tl();Cl();Il();Ll();Gl();Dl();$l();Sl();RA="remote URIs are not supported in @reddb-io/sdk; install @reddb-io/client for grpc/http/red transports",kA="1.0",qb="1.0.9",Ub="NESTED_TX_NOT_SUPPORTED";Di=class{constructor(t){this.db=t}query(t,...r){return this.db.query(t,...r)}execute(t,...r){return this.db.execute(t,...r)}insert(t,r){return this.db.insert(t,r)}bulkInsert(t,r){return this.db.bulkInsert(t,r)}async transaction(){throw Ml()}},Nl=class{constructor(t){this.db=t,this.active=!1}async begin(){if(this.db.inTransaction)throw Ml();this.db.inTransaction=!0,this.active=!0;try{return await this.db.query("BEGIN")}catch(t){throw this.db.inTransaction=!1,this.active=!1,t}}async commit(){if(!this.active)throw new D("INVALID_ARGUMENT","tx.commit() called without an open transaction");try{return await this.db.query("COMMIT")}finally{this.active=!1,this.db.inTransaction=!1}}async rollback(){if(!this.active)throw new D("INVALID_ARGUMENT","tx.rollback() called without an open transaction");try{return await this.db.query("ROLLBACK")}finally{this.active=!1,this.db.inTransaction=!1}}async run(t){if(typeof t!="function")throw new TypeError("tx.run(callback) requires a function");if(this.db.inTransaction)throw new D("INVALID_ARGUMENT","nested tx.run() is not supported; issue savepoints via tx.query() instead");await this.begin();try{let r=await t(new Di(this.db));return await this.commit(),r}catch(r){if(this.active)try{await this.rollback()}catch(n){Wb(r,n)}throw r}}},Fl=class{constructor(t,r={}){this.client=t,this.transport=r.transport??null,this.helperSpecVersion=kA,this.cache=new Cs(t,this.transport),this.queue=new Os(t),this.queues=this.queue,this.documents=new As(this);let n=new yn(t);this.kv=Object.assign((s="kv_default")=>new yn(t,s),{put:n.put.bind(n),invalidateTags:n.invalidateTags.bind(n),watch:n.watch.bind(n),watchPrefix:n.watchPrefix.bind(n)}),this.config=(s="red.config")=>new Ps(t,s),this.vault=(s="red.vault")=>new Is(t,s),this.inTransaction=!1}query(t,...r){if(typeof t!="string"||t.trim().length===0)return Promise.reject(new D("INVALID_ARGUMENT","query() requires a non-empty SQL string"));let n=TA(r);return n==null?this.client.call("query",{sql:t}).then(Gi):this.client.call("query",{sql:t,params:n}).then(Gi)}execute(t,...r){return this.query(t,...r)}async insert(t,r){let n=await this.client.call("insert",{collection:t,payload:r});return IA(n,"insert")}async bulkInsert(t,r){if(Array.isArray(r)&&r.length===0)return{affected:0,rids:[],ids:[]};let n=await this.client.call("bulk_insert",{collection:t,payloads:r});return LA(n,r.length)}tx(){return new Nl(this)}async transaction(t){if(this.inTransaction)throw Ml();if(typeof t!="function")throw new TypeError("transaction(callback) requires a function");this.inTransaction=!0;let r=!1;try{await this.query("BEGIN"),r=!0;let n=await t(new Di(this));return await this.query("COMMIT"),n}catch(n){if(r)try{await this.query("ROLLBACK")}catch(s){Wb(n,s)}throw n}finally{this.inTransaction=!1}}exists(t){return jb(this,t)}list(){return Bb(this)}from(t){return new Ls(this,t)}get(t,r){return this.client.call("get",{collection:t,id:String(r)})}delete(t,r){return this.client.call("delete",{collection:t,id:String(r)})}health(){return this.client.call("health",{})}version(){return this.client.call("version",{})}login(t,r){return this.client.call("auth.login",{username:t,password:r})}whoami(){return this.client.call("auth.whoami",{})}changePassword(t,r){return this.client.call("auth.change_password",{current_password:t,new_password:r})}createApiKey({username:t,role:r}={}){return this.client.call("auth.create_api_key",{username:t,role:r})}revokeApiKey(t){return this.client.call("auth.revoke_api_key",{key:t})}close(){return this.client.close()}}});import{createHash as GA}from"node:crypto";import{existsSync as Vb}from"node:fs";import{mkdir as DA,readFile as $A,rename as Bl,rm as Gs,stat as jl}from"node:fs/promises";import{basename as NA,dirname as FA}from"node:path";async function Kb(e){await(await Cr.open({...e,allowResidentOpen:!0})).close()}var Cr,zb=h(()=>{"use strict";Jb();Ei();Pi();Cr=class e{constructor(t,r){this.opts=r;this.path=t}document;db;path;dirty=!1;static async open(t){if(process.env.RSP_FAIL_IF_STORE_OPEN==="1"&&!t.allowResidentOpen)throw new Error("RSP_FAIL_IF_STORE_OPEN blocked store open");let r=Tb(t.uri),n=await kb(r),s=new e(n,{uri:t.uri,ttlDays:vi(t.ttlDays,Ye),ephemeralTtlHours:vi(t.ephemeralTtlHours,Qe),byteBudget:vi(t.byteBudget,Xe),now:t.now??(()=>new Date)});return Sb(n)?(await Ai(),await DA(FA(n),{recursive:!0}),s.db=await $i(`file://${n}`),await s.ensureRedDbCollections(),await s.ensureRedDbStore()):s.document=await Rb(s.path),s}async close(){await this.db?.close()}redDb(){return this.db}async mint(t,r){if(this.db)return await this.mintRedDb(t,r);let n=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=Ss(n,r),a=Qt(i),c=Nt(r.command),u=c==="derivable"?gl(n,r.command):null,l=c==="re-executable"?hl(n,r.command):null,d=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,p=fl(s,d,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Tr(n),f=d==="ephemeral"?wl(n,g,o):null,k=yl(n,u,l,f);f&&!this.document.blobs[f.key]&&(this.document.blobs[f.key]=f,this.dirty=!0);let E={collection:ue,handle:i,original_bytes:n.length,stored_bytes:k,command:r.command,created_at:o,expires_at:p,loss:r.loss,storage_class:d,content_hash:g,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};return delete this.document.tombstones[vr(i)],this.document.records[a]=E,this.upsertIndex({handle:i,key:a,bytes:k,raw_bytes:n.length,command:r.command,created_at:o,expires_at:p,storage_class:d,blob_key:f?.key}),this.prune(),await this.flush(),i}async get(t){if(this.db)return await this.getRedDb(t);if(!vs(t))return null;let r=this.tombstone(t);if(r)return r;let n=this.document.records[Qt(t)];if(!xs(n))return null;if(Date.parse(n.expires_at)<=this.opts.now().getTime()){let o={status:"expired",expired_at:n.expires_at,command:n.command};return this.expireEntry({handle:n.handle,key:Qt(n.handle),bytes:bl(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:Ts(n),blob_key:n.blob_key},n.expires_at),await this.flush(),o}let s=await this.readOriginal(n);return!s&&(n.derivation_recipe||n.reexecution_recipe)?{status:"expired",expired_at:n.expires_at,command:n.command}:s?{collection:ue,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:Ts(n)}:null}async stats(){if(this.db)return await this.statsRedDb();this.prune(),await this.flush();let r=this.readIndex().records;return{records:r.length,bytes:xr(r),oldest:r.reduce((n,s)=>n==null||s.created_at<n?s.created_at:n,null),budget:this.opts.byteBudget,storage_classes:pl(r)}}async recoveryHandles(t=5){return this.db?await this.recoveryHandlesRedDb(t):(this.prune(),await this.flush(),ml(this.readIndex().records,this.opts.now(),t))}readIndex(){return this.document.index}writeIndex(t){this.document.index=t}upsertIndex(t){let n=this.readIndex().records.filter(s=>s.handle!==t.handle);n.push(t),this.writeIndex({version:1,records:n}),this.dirty=!0}prune(){let t=this.opts.now().getTime(),r=new Date(t).toISOString(),n=this.readIndex(),s=[];for(let i of n.records)Date.parse(i.expires_at)<=t?this.expireEntry(i,i.expires_at):s.push(i);let o=xr(s);for(s.sort((i,a)=>i.created_at.localeCompare(a.created_at));o>this.opts.byteBudget&&s.length>0;){let i=s.shift();this.expireEntry(i,r),o=xr(s)}s.length<n.records.length&&this.writeIndex({version:1,records:s}),this.deleteUnreferencedLocalBlobs(s)}expireEntry(t,r){delete this.document.records[t.key],this.document.tombstones[vr(t.handle)]={status:"expired",expired_at:r,command:t.command},this.dirty=!0}tombstone(t){let r=this.document.tombstones[vr(t)];return Ci(r)?r:null}async readOriginal(t){if(t.original)return Buffer.from(t.original,"base64");if(t.derivation_recipe)return gb(t.derivation_recipe);if(t.reexecution_recipe)return hb(t.reexecution_recipe);if(t.blob_key){let r=this.db?await this.kvGet(t.blob_key):this.document.blobs[t.blob_key];return xi(r)?fb(r):null}return null}deleteUnreferencedLocalBlobs(t){let r=new Set(t.map(n=>n.blob_key).filter(n=>typeof n=="string"));for(let n of Object.keys(this.document.blobs))r.has(n)||(delete this.document.blobs[n],this.dirty=!0)}async flush(){this.dirty&&(await hn(this.path,this.document),this.dirty=!1),await this.rotateLocalGenerationIfOversized()}async rotateLocalGenerationIfOversized(){let t=await jl(this.path).then(a=>a.size,()=>0);if(t<=this.opts.byteBudget)return;let r=this.readIndex().records,n=new Set(r.map(a=>a.key)),s=new Set(r.map(a=>a.blob_key).filter(a=>typeof a=="string")),o={version:1,records:Object.fromEntries(Object.entries(this.document.records).filter(([a])=>n.has(a))),blobs:Object.fromEntries(Object.entries(this.document.blobs).filter(([a])=>s.has(a))),tombstones:{},index:{version:1,records:r}},i=Buffer.byteLength(`${JSON.stringify(o)}
|
|
102
|
-
`,"utf8");i>this.opts.byteBudget||i>=t||(this.document=o,await
|
|
103
|
-
`),diagnostics:{vector:{status:"unavailable",candidates:0,contributed:0,reason:"resident-basic-recall"}}}}async readRedDbIndex(){let t=await this.kvGet(Si());return _l(t)?t:{version:1,records:[]}}async writeRedDbIndex(t){await this.kv().put(Si(),t)}async pruneRedDb(t,r=!1){let n=this.opts.now().getTime(),s=new Date(n).toISOString(),o=[];for(let c of t.records)Date.parse(c.expires_at)<=n?await this.expireRedDbEntry(c,c.expires_at):o.push(c);let i=xr(o);for(o.sort((c,u)=>c.created_at.localeCompare(u.created_at));i>this.opts.byteBudget&&o.length>0;){let c=o.shift();await this.expireRedDbEntry(c,s),i=xr(o)}let a={version:1,records:o};return(r||o.length<t.records.length)&&await this.writeRedDbIndex(a),await this.deleteUnreferencedRedDbBlobs(o),await this.rotateRedDbGenerationIfOversized(a),a}async rotateRedDbGenerationIfOversized(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await jl(this.path).then(u=>u.size,()=>0);if(r<=this.opts.byteBudget)return;let n=await this.snapshotRedDbKvCollections(t);if(!n)return;let s=`${process.pid}.${Date.now()}`,o=`${this.path}.${s}.compact`,i=`${this.path}.${s}.old`;await Gs(o,{force:!0}),await Gs(i,{force:!0});let a=await $i(`file://${o}`);try{for(let u of n){await a.query(`CREATE KV IF NOT EXISTS ${pb(u.name)}`);let l=a.kv(u.name);for(let d of u.items)await l.put(d.key,d.value)}}finally{await a.close()}let c=await jl(o).then(u=>u.size,()=>0);if(c===0||c>this.opts.byteBudget||c>=r){await Gs(o,{force:!0});return}await this.db.close(),this.db=void 0;try{await Bl(this.path,i),await Bl(o,this.path),await Gs(i,{force:!0})}catch(u){throw!Vb(this.path)&&Vb(i)&&await Bl(i,this.path),await Gs(o,{force:!0}),u}finally{this.db=await $i(`file://${this.path}`)}}async snapshotRedDbKvCollections(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await this.db.list();if(r.some(o=>o.model!=="kv"))return null;let n=[],s=!1;for(let o of r){let i=String(o.name??"").trim();if(i===ue){n.push(await this.snapshotRedDbElisions(t)),s=!0;continue}let a=await this.db.kv(i).list({limit:1e4});if(a.items.length>=1e4)return null;n.push({name:i,items:a.items})}return s||n.push(await this.snapshotRedDbElisions(t)),n}async snapshotRedDbElisions(t){let r=[{key:Si(),value:t}],n=new Set;for(let s of t.records)n.add(s.key),s.blob_key&&n.add(s.blob_key);for(let s of n){let o=await this.kvGet(s);o!=null&&r.push({key:s,value:o})}return{name:ue,items:r}}async expireRedDbEntry(t,r){await this.kv().delete(t.key),await this.kv().put(vr(t.handle),{status:"expired",expired_at:r,command:t.command})}async deleteUnreferencedRedDbBlobs(t){let r=new Set(t.map(s=>s.blob_key).filter(s=>typeof s=="string")),n=await this.kv().list({limit:1e4}).catch(()=>({items:[]}));for(let s of n.items)s.key.startsWith("blob:")&&!r.has(s.key)&&await this.kv().delete(s.key)}async assertRedDbMintPersisted(t,r){let n=await this.kvGet(Qt(t));if(!xs(n))throw new Error(`rsp resident failed to persist elision record ${t}`);let o=(await this.readRedDbIndex()).records.find(i=>i.handle===t);if(!o||o.bytes!==r)throw new Error(`rsp resident failed to persist elision index ${t}`)}}});var Yb={};K(Yb,{DEFAULT_RSP_BYTE_BUDGET:()=>Xe,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Qe,DEFAULT_RSP_TTL_DAYS:()=>Ye,RSP_ELISION_COLLECTION:()=>ue,RspElisionStore:()=>Cr,contentHandle:()=>Ss,ensureReddbBinaryFromWarmCache:()=>Ai,provisionElisionStore:()=>Kb,storageClassForCommand:()=>Nt});var Ni=h(()=>{"use strict";Ei();Pi();Pi();zb()});async function Fi(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:30,s=r.getTime()-n*24*60*60*1e3,o=await Zb(e,s),i=(await Ds(e,Ae)).filter(P=>_n(P)>=s),a=o.filter(P=>M(P.event_type)!=="show"&&M(P.degradation_reason)===""),c=o.filter(P=>M(P.event_type)==="show"),u=o.filter(P=>M(P.degradation_reason)!==""),l=0,d=0,p=0,g=0,f=!1,k=new Map,E=new Map,y=[],_=0,T=0,C=0;for(let P of a){P.elided===!0&&l++;let B=Ue(P.raw_bytes),Ne=Ue(P.emitted_bytes),wt=Math.max(0,B-Ne),Bt=En(P,"raw"),O=En(P,"emitted"),N=Math.max(0,Bt.tokens-O.tokens);f||=(P.estimated===!0||Bt.estimated||O.estimated)&&N>0,d+=B,p+=Ne,g+=N;let _t=Or(P).slice(0,10);_t&&k.set(_t,(k.get(_t)??0)+N);let rt=M(P.command)||"unknown",Te=E.get(rt)??{command:rt,invocations:0,bytes_saved:0,tokens_saved:0};Te.invocations++,Te.bytes_saved+=wt,Te.tokens_saved+=N,E.set(rt,Te);let ve=zt(P.wrapper_ms);ve!=null&&y.push(ve),_+=Ue(P.store_open_count);let Et=zt(P.store_elapsed_ms);Et!=null&&(T+=Et,C++)}let L=new Map,F=new Map,q=[],se=null;for(let P of u){let B=M(P.degradation_reason)||M(P.reason)||"unknown",Ne=M(P.wrapper_family)||He(M(P.command));L.set(B,(L.get(B)??0)+1),F.set(Ne,(F.get(Ne)??0)+1);let wt=Or(P);q.push({timestamp:wt,family:Ne,command:M(P.command)||"unknown",reason:B,exit_code:zt(P.wrapper_exit_code),stderr_head:M(P.stderr_head)||null}),(!se||wt>se.timestamp)&&(se={timestamp:wt,reason:B,command:M(P.command)||"unknown"})}let re=a.length+u.length,de=c.filter(P=>P.hit===!0).length,pe=Oc(g,f),Mt=MA(i);return{window_days:n,empty:o.length===0,savings:{invocations:a.length,elided:l,raw_bytes:d,emitted_bytes:p,bytes_saved:Math.max(0,d-p),tokens_saved:g,tokens_saved_estimated:pe.tokens_saved_estimated,token_estimate_range_pct:pe.token_estimate_range_pct,tokens_saved_low:pe.tokens_saved_low,tokens_saved_high:pe.tokens_saved_high,dollars_saved_estimate_usd:pe.dollars_saved_estimate_usd,dollars_saved_low_usd:pe.dollars_saved_low_usd,dollars_saved_high_usd:pe.dollars_saved_high_usd,pricing_model_family:pe.pricing_model_family,pricing_input_usd_per_million_tokens:pe.pricing_input_usd_per_million_tokens,pricing_note:pe.pricing_note,daily_tokens_saved:[...k.entries()].sort(([P],[B])=>P.localeCompare(B)).map(([P,B])=>({date:P,tokens_saved:B})),top_commands:[...E.values()].sort((P,B)=>B.bytes_saved-P.bytes_saved||B.tokens_saved-P.tokens_saved||P.command.localeCompare(B.command))},health:{degradations:u.length,degradation_rate:re===0?0:u.length/re,show_total:c.length,show_hits:de,show_misses:Math.max(0,c.length-de),show_hit_rate:c.length===0?0:be(de/c.length),by_reason:[...L.entries()].sort((P,B)=>B[1]-P[1]||P[0].localeCompare(B[0])).map(([P,B])=>({reason:P,count:B})),by_family:[...F.entries()].sort((P,B)=>B[1]-P[1]||P[0].localeCompare(B[0])).map(([P,B])=>({family:P,count:B})),recent_failures:q.sort((P,B)=>B.timestamp.localeCompare(P.timestamp)).slice(0,20),most_recent:se},latency:{wrapper_ms_p50:wn(y,.5),wrapper_ms_p95:wn(y,.95),store_open_count_sum:_,store_elapsed_ms_sum:be(T),store_elapsed_ms_avg:C===0?null:be(T/C)},decisions:Mt}}function MA(e){let t=0,r=0,n=0,s=0,o=new Map,i=new Map;for(let a of e){let c=M(a.decision);if(c==="contributed"?t++:c==="failed-open"?n++:r++,a.quota_free===!0&&(s+=Math.max(1,Ue(a.saved_units))),c!=="contributed"){let d=M(a.reason)||"unknown";o.set(d,(o.get(d)??0)+1)}let u=M(a.command_family)||"unknown",l=i.get(u)??{contributed:0,passed:0,failed_open:0};c==="contributed"?l.contributed++:c==="failed-open"?l.failed_open++:l.passed++,i.set(u,l)}return{seen:e.length,contributed:t,passed:r,failed_open:n,quota_free_saved_units:s,contribution_rate:e.length===0?0:be(t/e.length),top_pass_reasons:[...o.entries()].sort((a,c)=>c[1]-a[1]||a[0].localeCompare(c[0])).map(([a,c])=>({reason:a,count:c})),by_command_family:[...i.entries()].sort((a,c)=>{let u=a[1].contributed+a[1].passed+a[1].failed_open;return c[1].contributed+c[1].passed+c[1].failed_open-u||a[0].localeCompare(c[0])}).map(([a,c])=>{let u=c.contributed+c.passed+c.failed_open;return{command_family:a,contributed:c.contributed,passed:c.passed,failed_open:c.failed_open,contribution_rate:u===0?0:be(c.contributed/u)}})}}async function Ul(e,t,r=new Date){let s=(await Ds(e,Oe)).filter(o=>_n(o)<=r.getTime()||Or(o)==="");return{records:s.length,bytes:s.reduce((o,i)=>o+Buffer.byteLength(JSON.stringify(i),"utf8"),0),oldest:s.reduce((o,i)=>{let a=Or(i);return a&&(o==null||a<o)?a:o},null),budget:t,storage_classes:KA(s)}}async function Hl(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:28,s=r.toISOString(),o=new Date(r.getTime()-n*24*60*60*1e3).toISOString(),i=Date.parse(o),a=await Zb(e,i),c=a.filter(O=>M(O.event_type)!=="show"&&M(O.event_type)!=="control_holdout"&&O.control_holdout!==!0&&M(O.degradation_reason)===""),u=a.filter(O=>M(O.event_type)==="control_holdout"||O.control_holdout===!0),l=a.filter(O=>M(O.event_type)==="show"),d=a.filter(O=>M(O.degradation_reason)!==""),p=[...c,...d].map(_n).filter(O=>Number.isFinite(O)&&O>0),g=p.length===0?null:Math.min(...p),f=g==null?0:Math.max(1,Math.min(n,Math.ceil((r.getTime()-g)/nP()))),k=[],E=new Map,y=new Map,_=new Map,T=new Map,C=new Map,L=new Map,F=0,q=!1,se=0,re=null,de=0,pe=0;for(let O of c){let N=Or(O),_t=N.slice(0,10),rt=N.slice(0,16),Te=He(M(O.command)),ve=Math.max(0,En(O,"raw").tokens-En(O,"emitted").tokens);F+=ve,q||=O.estimated===!0&&ve>0;let Et=Math.max(0,Ue(O.raw_bytes)-Ue(O.emitted_bytes)),Fr=zt(O.wrapper_ms);if(Fr!=null){k.push(Fr);let In=E.get(Te)??[];In.push(Fr),E.set(Te,In)}_t&&y.set(_t,(y.get(_t)??0)+1),rt&&_.set(rt,(_.get(rt)??0)+1);let jt=XA(N);jt&&T.set(jt,(T.get(jt)??0)+1);let Pn=tP(N);Pn&&C.set(Pn,(C.get(Pn)??0)+ve);let ur=L.get(Te)??{command_family:Te,invocations:0,tokens_saved:0,bytes_saved:0};ur.invocations++,ur.tokens_saved+=ve,ur.bytes_saved+=Et,L.set(Te,ur),O.elided===!0&&se++,(O.store_open_count!=null||O.store_elapsed_ms!=null)&&(de++,Ue(O.store_open_count)>0&&pe++),ve>0&&(!re||ve>re.tokens_saved||ve===re.tokens_saved&&Et>re.bytes_saved)&&(re={timestamp:N,command_family:Te,tokens_saved:ve,bytes_saved:Et})}let Mt=d.map(O=>({timestamp:Or(O),command_family:He(M(O.command)),reason:M(O.degradation_reason)||M(O.reason)||"unknown"})).sort((O,N)=>O.timestamp.localeCompare(N.timestamp)),P=new Map;for(let O of Mt)P.set(O.reason,(P.get(O.reason)??0)+1);let B=HA(Mt),Ne=UA(l),wt=WA([...L.values()],Ne,B),Bt=[..._.entries()].sort((O,N)=>N[1]-O[1]||O[0].localeCompare(N[0]))[0];return{schema_version:"red.rsp.gains.v1",window:{requested_days:n,data_days:f,since:o,until:s,label:`window: ${n}d, data: ${f}d`,empty:c.length===0&&d.length===0,invocations:c.length,degradations:d.length},latency:{global:Xb(k),by_command_family:[...E.entries()].sort((O,N)=>N[1].length-O[1].length||O[0].localeCompare(N[0])).map(([O,N])=>({command_family:O,count:N.length,...Xb(N)}))},throughput:{requests_per_day:[...y.entries()].sort(([O],[N])=>O.localeCompare(N)).map(([O,N])=>({date:O,requests:N})),active_minute_avg:_.size===0?null:be([..._.values()].reduce((O,N)=>O+N,0)/_.size),peak_minute:Bt?{minute:Bt[0],requests:Bt[1]}:null,hour_weekday_heatmap:ZA(T)},savings:{tokens:Oc(F,q),measured_control_holdout:BA(c,u),weekly_tokens_saved:rP(C),elision_rate:c.length===0?0:be(se/c.length),top_commands_by_tokens_saved:[...L.values()].sort((O,N)=>N.tokens_saved-O.tokens_saved||N.bytes_saved-O.bytes_saved||O.command_family.localeCompare(N.command_family)).slice(0,10),top_commands_by_invocation_count:[...L.values()].sort((O,N)=>N.invocations-O.invocations||N.tokens_saved-O.tokens_saved||O.command_family.localeCompare(N.command_family)).slice(0,10),single_biggest_elision:re},health:{degradation_timeline:Mt,degradations_by_reason:[...P.entries()].sort((O,N)=>N[1]-O[1]||O[0].localeCompare(N[0])).map(([O,N])=>({reason:O,count:N})),cold_boots:de===0?null:pe,warm_hits:de===0?null:Math.max(0,de-pe)},mining:{recovery_usage_by_family:Ne,degradation_clusters:B,threshold_tuning_suggestions:wt}}}async function Zb(e,t){let r=(await Ds(e,Oe)).filter(i=>_n(i)>=t),n=r.some(i=>M(i.event_type)!=="show"||M(i.degradation_reason)!==""),s=(await Ds(e,je)).filter(i=>_n(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:M(i.event_type)||"invocation"})),o=(await Ds(e,pt)).filter(i=>_n(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:"invocation",degradation_reason:M(i.reason)||"unknown"}));return[...r,...s,...o]}function En(e,t){let r=zt(e[t==="raw"?"tokens_raw":"tokens_emitted"]);if(r!=null)return{tokens:r,estimated:!1};let n=Ue(e[t==="raw"?"raw_bytes":"emitted_bytes"]);return{tokens:Math.ceil(n/4),estimated:n>0}}function BA(e,t){let r=VA(t.map(a=>zt(a.holdout_share)))??0;if(t.length===0)return{enabled:!1,holdout_share:r,holdout_invocations:0,compressed_invocations:e.length,savings_rate:null,confidence_interval_95:null,note:"control holdout disabled or no holdout samples in window"};let n=e.map(Qb).filter(a=>a!=null),s=t.map(Qb).filter(a=>a!=null),o=n.length>0?n:s,i=o.length===0?null:be(JA(o));return{enabled:!0,holdout_share:be(r),holdout_invocations:t.length,compressed_invocations:e.length,savings_rate:i,confidence_interval_95:i==null?null:jA(o,i),note:"measured from opt-in uncompressed control holdout; report proposes, it does not tune automatically"}}function Qb(e){let t=En(e,"raw").tokens;if(t<=0)return null;let r=En(e,"emitted").tokens;return Math.max(0,t-r)/t}function jA(e,t){if(e.length<=1)return{low:be(Math.max(0,t)),high:be(Math.min(1,t))};let r=e.reduce((s,o)=>s+(o-t)**2,0)/(e.length-1),n=1.96*Math.sqrt(r/e.length);return{low:be(Math.max(0,t-n)),high:be(Math.min(1,t+n))}}function UA(e){let t=new Map;for(let r of e){let n=He(M(r.recovered_command)||M(r.command)),s=t.get(n)??{command_family:n,show_total:0,show_hits:0,show_misses:0};s.show_total++,r.hit===!0?s.show_hits++:s.show_misses++,t.set(n,s)}return[...t.values()].sort((r,n)=>n.show_total-r.show_total||r.command_family.localeCompare(n.command_family)).map(r=>({...r,show_hit_rate:r.show_total===0?0:be(r.show_hits/r.show_total)}))}function HA(e){let t=new Map;for(let r of e){let n=`${r.command_family}\0${r.reason}`,s=t.get(n)??{command_family:r.command_family,reason:r.reason,count:0};s.count++,t.set(n,s)}return[...t.values()].sort((r,n)=>n.count-r.count||r.command_family.localeCompare(n.command_family)||r.reason.localeCompare(n.reason)).map(r=>({...r,suggestion:qA(r)}))}function qA(e){return/unavailable|not provisioned|missing/i.test(e.reason)?`Investigate ${e.command_family} wrapper availability before changing thresholds`:/timeout|large|limit/i.test(e.reason)?`Review ${e.command_family} byte thresholds and timeout caps for ${e.count} matching degradations`:`Investigate ${e.command_family} ${e.reason} cluster before tuning compression thresholds`}function WA(e,t,r){let n=[];for(let s of t.filter(o=>o.show_total>0))n.push({command_family:s.command_family,signal:`recovery_show_rate=${s.show_total}`,suggestion:s.show_hit_rate>=.5?"Consider preserving more context or raising terse thresholds for frequently recovered outputs":"Recovery misses dominate; inspect handle lifetime before threshold changes"});for(let s of r.filter(o=>o.count>1))n.push({command_family:s.command_family,signal:`degradation_cluster=${s.reason}:${s.count}`,suggestion:"Fix the repeated degradation before tightening compression"});for(let s of e.filter(o=>o.invocations>0&&o.tokens_saved===0))n.push({command_family:s.command_family,signal:"zero_token_savings",suggestion:"Consider bypassing or raising admission thresholds for this family"});return n.slice(0,10)}function JA(e){return e.reduce((t,r)=>t+r,0)/e.length}function VA(e){let t=e.filter(r=>r!=null);return t.length===0?null:Math.max(...t)}function KA(e){let t=YA();for(let r of e){if(M(r.event_type)==="show"||M(r.degradation_reason)!==""||r.elided!==!0)continue;let n=zA(r.storage_class)??Nt(M(r.command));t[n].records+=1;let s=Ue(r.raw_bytes);t[n].bytes+=s,t[n].raw_bytes+=s}return t}function zA(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"?e:null}function YA(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}async function Ds(e,t){return(await e.kv(t).list({limit:1e4}).catch(n=>{if(n instanceof Error&&/\bnot found\b/i.test(n.message))return{items:[]};throw n})).items.map(n=>QA(n.value)).filter(n=>pn(n))}function QA(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function _n(e){let t=Date.parse(Or(e));return Number.isFinite(t)?t:0}function Or(e){return M(e.created_at)||M(e.ts)||""}function M(e){return typeof e=="string"?e:""}function wn(e,t){if(e.length===0)return null;let r=[...e].sort((s,o)=>s-o),n=Math.min(r.length-1,Math.max(0,Math.ceil(r.length*t)-1));return be(r[n])}function Xb(e){return{wrapper_ms_p50:wn(e,.5),wrapper_ms_p90:wn(e,.9),wrapper_ms_p95:wn(e,.95),wrapper_ms_p99:wn(e,.99)}}function be(e){return Math.round(e*100)/100}function XA(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${eP(t.getUTCDay())}:${t.getUTCHours()}`:null}function ZA(e){let t=[];for(let r of["sun","mon","tue","wed","thu","fri","sat"])for(let n=0;n<24;n++){let s=e.get(`${r}:${n}`)??0;s>0&&t.push({weekday:r,hour:n,requests:s})}return t}function eP(e){return["sun","mon","tue","wed","thu","fri","sat"][e]??"unknown"}function tP(e){let t=new Date(e);if(!Number.isFinite(t.getTime()))return null;let r=t.getUTCDay(),n=r===0?-6:1-r;return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()+n)).toISOString().slice(0,10)}function rP(e){let t=null;return[...e.entries()].sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>{let s=t==null||t===0?null:be((n-t)/t*100);return t=n,{week_start:r,tokens_saved:n,wow_delta_pct:s}})}function nP(){return 24*60*60*1e3}var ew=h(()=>{"use strict";_s();Ni();Ac();hi();rl()});var $s={};K($s,{RSP_ACCOUNTING_EVENTS_COLLECTION:()=>Oe,RSP_DECISIONS_COLLECTION:()=>Ae,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:()=>pt,RSP_TELEMETRY_INDEX_COLLECTION:()=>hs,RSP_TELEMETRY_INVOCATIONS_COLLECTION:()=>je,RSP_TELEMETRY_LEGACY_SPOOL_FILE:()=>el,RSP_TELEMETRY_SPOOL_CORRECTIONS_FILE:()=>tl,RSP_TELEMETRY_SPOOL_FILE:()=>Zu,appendTelemetryEvent:()=>kr,appendTelemetryEventSync:()=>Yt,drainTelemetrySpool:()=>cl,parseTelemetryEvent:()=>fn,readAccountingLaneStats:()=>Ul,readTelemetryGainsReport:()=>Hl,readTelemetryStats:()=>Fi,takeTelemetrySpool:()=>s0,telemetryLegacySpoolPath:()=>wi,telemetrySpoolCorrectionsPath:()=>al,telemetrySpoolPath:()=>$t});var mt=h(()=>{"use strict";hi();lb();ew()});import{existsSync as sP}from"node:fs";import{join as oP}from"node:path";function iP(){for(let e of(process.env.PATH??"").split(":"))if(e&&sP(oP(e,"rsp")))return!0;return!1}function Ns(){return iP()?["rsp"]:[process.execPath,process.argv[1]]}var ql=h(()=>{"use strict"});var Mi={};K(Mi,{parseProxyCommandLine:()=>nw,rewriteProxyCommandLine:()=>rw,runProxy:()=>uP});import{spawn as aP}from"node:child_process";function cP(e){return/[^\w@%+=:,./-]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}async function uP(e,t){let r="",n="",s=[],o=process.hrtime.bigint();try{if(r=nw(e),process.env.RSP_PROXY_FAIL_INTERNAL==="1")throw new Error("forced proxy failure");let c=rw(r,t.level??"lossless");n=c.commandLine,s=c.matches}catch(c){if(r)return await lP(t.telemetryRoot,r,c),await tw(r);throw c}for(let c of s)await dP(t.telemetryRoot,c);let i=await tw(n||r),a=Number(process.hrtime.bigint()-o)/1e6;return await kr(t.telemetryRoot,{collection:je,ts:new Date().toISOString(),command:r,wrapper:"proxy",loss:"lossless",elided:!1,raw_bytes:0,emitted_bytes:0,wrapper_ms:a,accounting_recorded:!1}),i}function rw(e,t="lossless",r=Ns()){let n=yP(e),s=[];return{commandLine:n.map((i,a)=>{if(i.kind==="operator"||hP(n,a)==="|")return i.text;let c=pP(i.text,t,r);return c?(s.push(c.match),c.text):i.text}).join(""),matches:s}}function nw(e){if(e[0]!=="proxy")throw new Error("expected rsp proxy -- <command line>");let t=e.indexOf("--"),r=t>=0?e.slice(t+1):e.slice(1),n=r.length===1?r[0]:r.join(" ");if(!n.trim())throw new Error("usage: rsp proxy -- <command line>");return n}async function lP(e,t,r){await kr(e,{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t,command_family:He(t),decision:"failed-open",reason:"proxy-internal-error",error:r instanceof Error?r.name:typeof r})}async function dP(e,t){await kr(e,{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t.command,command_family:t.commandFamily,decision:t.decision,reason:t.reason,capability_id:t.capabilityId})}async function tw(e){let t=aP(e,{shell:!0,stdio:"inherit"}),r=Ge();return t.once("close",r),t.once("error",r),await new Promise(n=>{t.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
|
|
104
|
-
`),n(127)}),t.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}function
|
|
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
107
|
`;return{stdout:Buffer.from(`${$(a.payload)}
|
|
106
|
-
${l}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:a.payload,mintedHandle:u,bytesElided:c,rowsElided:a.rowsElided,rawOutput:Buffer.from(i)}}function
|
|
107
|
-
`)[0]??"",n=/^\[([^ ]+) ([0-9a-f]+)\] (.+)$/.exec(r),s=/(\d+) files? changed/.exec(t),o=/(\d+) insertions?\(\+\)/.exec(t),i=/(\d+) deletions?\(-\)/.exec(t),a=n?.[1]??"",c=n?.[2]??"",u=Number(s?.[1]??0),l=Number(o?.[1]??0),d=Number(i?.[1]??0);return{command:e.join(" "),branch:a,commit:c,subject:n?.[3]??"",files_changed:u,insertions:l,deletions:d,summary:`commit ${c} on ${a}: ${u} files, +${l} -${d}`}}function
|
|
108
|
-
`).filter(Boolean),n=r.find(c=>c.startsWith("To "))?.slice(3)??"",s=r.filter(c=>c.includes(" ")).map(c=>{let[u,l,d=""]=c.split(" "),[p,g]=(l??"").split(":");return{flag:u??"",from:p??"",to:g??"",summary:d}}),o=s.find(c=>c.flag!=="=")??s[0],i=o?.to.startsWith("refs/heads/")?o.to.slice(11):o?.to??"",a=o?.summary.includes("..")?1:0;return s.length>0&&s.every(c=>c.flag==="=")?{command:e.join(" "),category:"no-op",exit_code:0,noop:!0,remote:n,refs:s,summary:`push already satisfied for ${i} -> ${n}`,help:["rsp gh pr list --query <branch>"]}:{command:e.join(" "),remote:n,refs:s,summary:`pushed ${i} -> ${n} +${a} commits`}}function
|
|
109
|
-
`),s=[],o=null;for(let c of n){let u=/^([0-9a-f]{8,40}) \d+ (\d+)(?: \d+)?$/.exec(c);if(u){o={commit:u[1]??"",finalLine:Number(u[2]??0),author:"",path:""};continue}if(!o)continue;if(c.startsWith("author ")){o.author=c.slice(7);continue}if(c.startsWith("filename ")){o.path=c.slice(9);continue}if(!c.startsWith(" "))continue;let l=s.at(-1),d=o.commit.slice(0,12);l&&l.commit===d&&l.author===o.author&&l.path===o.path&&l.line_end+1===o.finalLine?l.line_end=o.finalLine:s.push({line_start:o.finalLine,line_end:o.finalLine,author:o.author,commit:d,path:o.path}),o=null}let i=Re(s,r),a=
|
|
110
|
-
`).filter(Boolean).map(i=>{let[a,c,u,l,d,p]=i.split("\0");return{current:a==="*",name:c??"",commit:u??"",upstream:l||null,worktree:d||null,subject:p??""}}),s=Re(n,r),o=s.find(i=>i.current)?.name??"";return
|
|
111
|
-
`)){let T=/^\s*(.+?)\s+\|\s+(\d+)\s+([+\-]+|Bin.*)$/.exec(
|
|
112
|
-
`).length:0,files:f,summary:`${r?`${f.length}/${g.length}`:f.length} files, ${
|
|
113
|
-
`),detected:!0,lossy:!0,totalItems:s,keptItems:u.length,handle:p}}function
|
|
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(`
|
|
114
116
|
`).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(`
|
|
115
|
-
`)},
|
|
117
|
+
`)},Xi={id:"trailing-whitespace",apply:e=>e.split(`
|
|
116
118
|
`).map(t=>t.replace(/[ \t]+$/,"")).join(`
|
|
117
|
-
`)},
|
|
119
|
+
`)},Zi={id:"blank-lines",apply:e=>e.replace(/\n{3,}/g,`
|
|
118
120
|
|
|
119
|
-
`)};
|
|
120
|
-
`}function
|
|
121
|
-
`,status:0}}async function
|
|
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}
|
|
122
124
|
`);return}process.stderr.write(`rsp hook ${e}: passthrough ${t.reason??"unsupported-command"}
|
|
123
|
-
`)}}function
|
|
124
|
-
`)}function
|
|
125
|
-
`)}function
|
|
126
|
-
`)}function
|
|
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,I2,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"]}],I2=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(`
|
|
127
129
|
`),u=o.map(({alias:p,number:g})=>[` ${p}: ${e}(number: ${g}) {`,c," }"].join(`
|
|
128
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(`
|
|
129
|
-
`);return{kind:e,query:d,aliases:o,labelAliases:i}}function
|
|
130
|
-
`)}}function
|
|
131
|
-
`)}}function
|
|
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(`
|
|
132
134
|
`).map(n=>`${r}${n}`).join(`
|
|
133
|
-
`)}function
|
|
134
|
-
`),subIssues:"subIssues(first: 100) { nodes { number } }"}});import{spawn as
|
|
135
|
-
`))}async function
|
|
136
|
-
`),stderr:Buffer.from(r),status:t,signal:null,payload:e}}function
|
|
137
|
-
${e.stdout}`)}function
|
|
138
|
-
`)[0]?.slice(0,240)??""}function
|
|
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)}
|
|
139
141
|
`;return{stdout:Buffer.from(`${$(u.payload)}
|
|
140
|
-
${p}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:u.payload,mintedHandle:d,bytesElided:l,rowsElided:u.rowsElided,rawOutput:Buffer.from(c)}}function j_(e){let t=Hn(e);if(t.argv[0]!=="gh")throw new Error("expected rsp gh <surface> <subcommand>");let r=t.argv[1],n=t.argv[2];if(!(r==="pr"||r==="issue"||r==="run"))throw new Error(`unsupported gh surface: ${r??""}`);let s=r==="pr"&&n&&n!=="list"&&n!=="view";if(!(n==="list"||n==="view"||s))throw new Error(`unsupported gh subcommand: ${n??""}`);let o=r,i=[],a=!1,c=!1,u=new Set,l=t.argv.slice(3);for(let g=0;g<l.length;g+=1){let f=l[g]??"";f==="--full"?a=!0:f==="--wide"?c=!0:f==="--fields"?u=$_(l[++g]??""):f.startsWith("--fields=")?u=$_(f.slice(9)):i.push(f)}let p={kind:o,action:s?"combined":n==="list"?"list":"view",target:s?n:void 0,full:a,wide:c,fields:u,passthrough:i,query:t.query};return vG(p),p}function D_(e){if(e.action==="combined")throw new Error("combined gh command uses multiple machine calls");let t=`${e.kind}:${e.action}`,r=e.wide||e.fields.size>0?RG[t]:EG[t];return[e.kind,e.action,...e.passthrough,"--json",r.join(",")]}function $_(e){return new Set(e.split(",").map(t=>t.trim()).filter(Boolean))}function vG(e){if(e.fields.size===0)return;if(e.action!=="list")throw new la(e,"--fields is supported for list outputs");let t=`${e.kind}:list`,r=SG[t];for(let n of e.fields)if(!r.includes(n))throw new la(e,`unknown field: ${n}`,r)}async function xG(e){if(e.action==="combined")return await CG(e);let t=OG(e);if(!t)return await GG(D_(e));let r=await xe({...t,command:["gh",...D_(e)].join(" ")});return r.status!==0?{stdout:r.stdout,stderr:r.stderr,status:r.status,signal:null}:{stdout:JSON.stringify(await AG(e,r.stdout)),stderr:r.stderr,status:0,signal:null}}async function CG(e){let t=e.target??"",[r,n,s]=await Promise.all([xe({path:`repos/{owner}/{repo}/pulls/${t}`,command:`gh pr view ${t}`}),xe({path:`repos/{owner}/{repo}/pulls/${t}/commits`,command:`gh pr checks ${t}`}),xe({path:`repos/{owner}/{repo}/issues/${t}/comments`,command:`gh pr view ${t} --comments`})]),o=[r,n,s].find(a=>(a.status??0)!==0);if(o)return{stdout:o.stdout,stderr:o.stderr,status:o.status,signal:null};let i=H_(Ys(r.stdout));return{stdout:JSON.stringify({view:i,checks:[],comments:{comments:$e(Ys(s.stdout)).map(IG)}}),stderr:[r.stderr,n.stderr,s.stderr].filter(Boolean).join(""),status:0,signal:null}}function OG(e){let t=q_(e.passthrough),r=LG(e.passthrough,"--limit")??30,n=ht(e.passthrough,"--state")??"open";switch(`${e.kind}:${e.action}`){case"pr:list":return{path:"repos/{owner}/{repo}/pulls",params:{state:n,per_page:r}};case"pr:view":return t?{path:`repos/{owner}/{repo}/pulls/${t}`}:null;case"issue:list":return{path:"repos/{owner}/{repo}/issues",params:{state:n,labels:ht(e.passthrough,"--label"),per_page:r}};case"issue:view":return t?{path:`repos/{owner}/{repo}/issues/${t}`}:null;case"run:list":return{path:"repos/{owner}/{repo}/actions/runs",params:{per_page:r}};case"run:view":return t?{path:`repos/{owner}/{repo}/actions/runs/${t}`}:null;default:return null}}async function AG(e,t){let r=Ys(t);switch(`${e.kind}:${e.action}`){case"pr:list":return $e(r).map(U_);case"pr:view":return H_(r);case"issue:list":return $e(r).filter(n=>!Gr(n.pull_request)).map(N_);case"issue:view":return N_(r);case"run:list":return{items:$e(Y(r).workflow_runs).map(F_),total:Pe(Y(r),"total_count")};case"run:view":{let n=F_(r),s=q_(e.passthrough);if(!s)return n;let o=await xe({path:`repos/{owner}/{repo}/actions/runs/${s}/jobs`,command:`gh run view ${s} jobs`});return{...n,jobs:o.status===0?$e(Y(Ys(o.stdout)).jobs).map(PG):[]}}default:return r}}function U_(e){let t=Y(e);return{number:Pe(t,"number"),title:G(t,"title"),state:G(t,"state").toUpperCase(),isDraft:!!t.draft,author:Td(t.user),labels:$e(t.labels).map(r=>({name:G(r,"name")})),url:G(t,"html_url"),updatedAt:G(t,"updated_at"),body:G(t,"body"),baseRefName:G(Y(t.base),"ref"),headRefName:G(Y(t.head),"ref")}}function H_(e){return U_(e)}function N_(e){let t=Y(e);return{number:Pe(t,"number"),title:G(t,"title"),state:G(t,"state").toUpperCase(),labels:$e(t.labels).map(r=>({name:G(r,"name")})),author:Td(t.user),url:G(t,"html_url"),updatedAt:G(t,"updated_at"),body:G(t,"body")}}function F_(e){let t=Y(e);return{databaseId:Pe(t,"database_id")||Pe(t,"id"),name:G(t,"name")||G(t,"display_title"),status:G(t,"status").toUpperCase(),conclusion:G(t,"conclusion").toUpperCase(),event:G(t,"event"),headBranch:G(t,"head_branch"),workflowName:G(t,"workflow_name"),createdAt:G(t,"created_at"),url:G(t,"html_url"),jobs:[]}}function PG(e){let t=Y(e);return{name:G(t,"name"),status:G(t,"status").toUpperCase(),conclusion:G(t,"conclusion").toUpperCase(),log:""}}function IG(e){let t=Y(e);return{author:Td(t.user),body:G(t,"body"),createdAt:G(t,"created_at")}}function Td(e){let t=Y(e);return{login:G(t,"login")}}function q_(e){return e.find(t=>!t.startsWith("-"))}function ht(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}function LG(e,t){let r=ht(e,t);if(!r)return;let n=Number(r);return Number.isFinite(n)&&n>0?n:void 0}async function GG(e){let t=_G("gh",e,{stdio:["ignore","pipe","pipe"]}),r=Ge();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",(a,c)=>{o({stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(s).toString("utf8"),status:a,signal:c})})})}function DG(e,t,r){let n={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let s=_d(r,"prs"),o=s.rows.map(c=>W_(c,e)),i=Re(o,e.query),a=Ed(i.length,o.length,s.total,e.query);return i.length===0?Rd(n,e,"prs",a,["rsp gh issue list","rsp gh pr list --query <title-or-label>"]):On({...n,prs:i,aggregate:a,summary:`${kd(i.length,o.length,e.query)} ${M_(i,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return On({...n,pr:J_(Y(r),e),summary:`PR #${Pe(Y(r),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return $G(e,t,Y(r));case"issue:list":{let s=_d(r,"issues"),o=s.rows.map(c=>V_(c,e)),i=Re(o,e.query),a=Ed(i.length,o.length,s.total,e.query);return i.length===0?Rd(n,e,"issues",a,["rsp gh issue list --state all","rsp gh issue list --query <label-or-title>"]):On({...n,issues:i,aggregate:a,summary:`${kd(i.length,o.length,e.query)} ${M_(i,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return On({...n,issue:jG(Y(r),e),summary:`issue #${Pe(Y(r),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let s=_d(r,"runs"),o=s.rows.map(c=>K_(c,e)),i=Re(o,e.query),a=Ed(i.length,o.length,s.total,e.query);return i.length===0?Rd(n,e,"runs",a,["rsp gh run list --limit 20","rsp gh run list --query <workflow-or-status>"]):On({...n,runs:i,aggregate:a,summary:`${kd(i.length,o.length,e.query)} runs`},e,["rsp gh run view <id>","rsp gh run list --query <workflow-or-status>"])}case"run:view":return On({...n,run:UG(Y(r),e),summary:`run ${Pe(Y(r),"databaseId")}`},e,["rsp gh run view <id> --full"])}throw new Error(`unsupported gh command: ${e.kind} ${e.action}`)}function $G(e,t,r){let n=J_(Y(r.view),{...e,action:"view",wide:!0}),s=Re($e(r.checks).map(NG),e.query),o=Y(r.comments).comments,i=Re($e(o).map(FG).slice(-3),e.query);return xt({command:t.join(" "),pr:n,checks:s,comments:i,summary:`PR #${Pe(Y(r.view),"number")}: ${s.length} checks, ${i.length} comments`},["rsp gh pr view <number> --full","rsp gh pr <number> --query <check-or-comment>","rsp gh run view <id>"])}function NG(e){return{name:G(e,"name"),state:Qs(e),bucket:G(e,"bucket"),conclusion:G(e,"conclusion"),workflow:G(e,"workflow"),link:G(e,"link")}}function FG(e){return{author:Y_(e.author),body:da(e,"body",Sd,!1),created:G(e,"createdAt")}}function _d(e,t){if(Array.isArray(e))return{rows:$e(e)};let r=Y(e),n=Pe(r,"total")||Pe(r,"total_count")||void 0;return Array.isArray(r.items)?{rows:$e(r.items),total:n}:t==="runs"&&Array.isArray(r.workflow_runs)?{rows:$e(r.workflow_runs),total:n}:{rows:[]}}function Ed(e,t,r,n){let s={returned:e};return typeof r=="number"&&r>0&&(s.total=r),n&&(s.unfiltered=t),s}function Rd(e,t,r,n,s){return xt({...e,empty:!0,scope:MG(t),[r]:[],aggregate:n,summary:`0 ${BG(t)}`},s)}function MG(e){let t=ht(e.passthrough,"--state")??"open",r=e.query?` query=${e.query}`:"";if(e.kind==="pr")return`${t} PRs${r}`;if(e.kind==="issue"){let o=ht(e.passthrough,"--label");return`${t} issues${o?` label=${o}`:""}${r}`}let n=ht(e.passthrough,"--branch")??ht(e.passthrough,"-b"),s=ht(e.passthrough,"--workflow")??ht(e.passthrough,"-w");return`workflow runs${n?` branch=${n}`:""}${s?` workflow=${s}`:""}${r}`}function BG(e){let t=ht(e.passthrough,"--state")??"open";return e.kind==="pr"?`${t} PRs`:e.kind==="issue"?`${t} issues`:"runs"}function W_(e,t){let r={number:Pe(e,"number"),title:G(e,"title"),state:Qs(e),draft:!!e.isDraft};return vd(r,e,t,["author","labels","url","updated"]),r}function J_(e,t){let r=W_(e,t);return r.body=da(e,"body",Sd,t.full),t.wide&&(r.base=G(e,"baseRefName"),r.head=G(e,"headRefName")),r}function V_(e,t){let r={number:Pe(e,"number"),title:G(e,"title"),state:Qs(e),labels:z_(e.labels)};return vd(r,e,t,["author","url","updated"]),r}function jG(e,t){let r=V_(e,t);return r.body=da(e,"body",Sd,t.full),r}function K_(e,t){let r={id:Pe(e,"databaseId"),name:G(e,"name"),status:Qs(e),conclusion:G(e,"conclusion")};return vd(r,e,t,["event","branch","workflow","created"]),r}function UG(e,t){let r=K_(e,t),n=$e(e.jobs).map(s=>({name:G(s,"name"),status:Qs(s),conclusion:G(s,"conclusion"),log:da(s,"log",kG,t.full)}));return r.jobs=n,r}function da(e,t,r,n){let s=G(e,t);if(n||Buffer.byteLength(s)<=r)return s;let o=s.slice(0,r),i={preview:o,truncated:{bytes:Buffer.byteLength(s),shown_bytes:Buffer.byteLength(o),hint:"--full",handle:""}};return Object.defineProperty(i,"__rsp_original",{value:s,enumerable:!1}),i}function HG(e){let t=[e];for(;t.length>0;){let r=t.pop();if(Array.isArray(r))t.push(...r);else if(Gr(r)){if(Gr(r.truncated)&&r.truncated.handle===""&&typeof r.preview=="string"){let n=typeof r.__rsp_original=="string"?r.__rsp_original:r.preview;return{target:r,original:n,bytes:Number(r.truncated.bytes??0)}}t.push(...Object.values(r))}}return null}function qG(e){for(let t of["prs","issues","runs","jobs"]){let r=e[t];if(Array.isArray(r)&&r.length>1)return{payload:{...e,[t]:r.slice(0,1)},rowsElided:r.length-1}}return null}function M_(e,t){return e.every(r=>r.state===t)?t:"returned"}function kd(e,t,r){return r?`${e}/${t}`:String(e)}function On(e,t,r){return t.query?xt(e,r):e}function Qs(e){return(G(e,"state")||G(e,"status")).toLowerCase()}function vd(e,t,r,n){if(!(!r.wide&&r.fields.size===0))for(let s of n)!r.wide&&!r.fields.has(s)||(s==="author"?e.author=Y_(t.author):s==="labels"?e.labels=z_(t.labels):s==="url"?e.url=G(t,"url"):s==="updated"?e.updated=G(t,"updatedAt"):s==="event"?e.event=G(t,"event"):s==="branch"?e.branch=G(t,"headBranch"):s==="workflow"?e.workflow=G(t,"workflowName"):s==="created"&&(e.created=G(t,"createdAt")))}function z_(e){return Array.isArray(e)?e.map(t=>Gr(t)?G(t,"name"):String(t)).filter(Boolean):[]}function Y_(e){return Gr(e)?G(e,"login"):""}function Ys(e){return e.trim()?JSON.parse(e):null}function $e(e){return Array.isArray(e)?e.filter(Gr):[]}function Y(e){return Gr(e)?e:{}}function G(e,t){let r=e[t];return typeof r=="string"?r:""}function Pe(e,t){let r=e[t];return typeof r=="number"?r:0}function Gr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var EG,RG,Sd,kG,SG,la,Cd=h(()=>{"use strict";ae();J();Yo();G_();Ar();qn();at();EG={"pr:list":["number","title","state","isDraft"],"pr:view":["number","title","state","body"],"issue:list":["number","title","state","labels"],"issue:view":["number","title","state","body"],"run:list":["databaseId","name","status","conclusion"],"run:view":["databaseId","name","status","conclusion","jobs"]},RG={"pr:list":["number","title","state","isDraft","author","labels","url","updatedAt"],"pr:view":["number","title","state","body","author","labels","url","baseRefName","headRefName"],"issue:list":["number","title","state","labels","author","url","updatedAt"],"issue:view":["number","title","state","body","author","labels","url","updatedAt"],"run:list":["databaseId","name","status","conclusion","event","headBranch","workflowName","createdAt"],"run:view":["databaseId","name","status","conclusion","event","headBranch","workflowName","createdAt","jobs","url"]},Sd=160,kG=160,SG={"pr:list":["number","title","state","draft","author","labels","url","updated"],"issue:list":["number","title","state","labels","author","url","updated"],"run:list":["id","name","status","conclusion","event","branch","workflow","created"]};la=class extends Error{constructor(r,n,s=[]){super(n);this.command=r;this.validFields=s}render(){return V({command:`gh ${this.command.kind} ${this.command.action}`,category:"usage",error:this.message,help:`gh ${this.command.kind} ${this.command.action} --help`,validFlags:this.validFields})}}});var Pd={};K(Pd,{renderTestContract:()=>Q_,runTestWrapper:()=>zG});import{spawn as WG}from"node:child_process";async function zG(e,t){let r=Hn(e),n=await eD(r.argv);return await Q_(e,n,t)}async function Q_(e,t,r){let n=Hn(e),o=X_(n.argv)==="vitest"?tD(t.stdout):rD(t.stdout),i=t.status;if(!o||(i??0)!==0&&o.failed===0){let f=ze(e.join(" "),t.stdout,t.stderr);return{stdout:V(f),stderr:Buffer.from(t.stderr),status:f.exitCode??1,signal:t.signal}}let a=`${o.failed}/${o.total} failed \xB7 ${o.suites} suites \xB7 ${oD(o.durationSeconds)}`,c=Re(o.failures,n.query);if(r.level==="terse")return await YG(n.argv,t,{...o,failures:c},i,a,r,n.query);let u=[],l,d=0;for(let f of c){let k=await nD(f.excerpt,n.argv.join(" "),r.store);u.push({suite:f.suite,name:f.name,excerpt:k.text}),l??=k.handle,d+=k.bytesElided}let p={exit_code:i,summary:n.query?`${a} \xB7 ${c.length}/${o.failures.length} failures matched`:a};u.length>0&&(p.failures=u);let g=n.query?xt(p,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):p;return{stdout:Buffer.from($(g)),stderr:Buffer.from(t.stderr),status:Ad(t.status),signal:t.signal,payload:g,mintedHandle:l,bytesElided:d>0?d:void 0,rowsElided:u.length>0?Math.max(0,o.total-u.length):void 0}}async function YG(e,t,r,n,s,o,i){let a=QG(r.failures),c={exit_code:n,summary:i?`${s} \xB7 ${r.failures.length} failures matched`:s};a.length>0&&(c.failures=a);let u=i?xt(c,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):c,l=$(u),d=Math.max(0,r.failures.length-a.length),p=a.some((T,C)=>T.excerpt!==r.failures[C].excerpt);if(d===0&&!p)return{stdout:Buffer.from(l),stderr:Buffer.from(t.stderr),status:Ad(t.status),signal:t.signal,payload:u};let g={exit_code:n,summary:s};r.failures.length>0&&(g.failures=r.failures.map(T=>({suite:T.suite,name:T.name,excerpt:T.excerpt})));let f=$(g),k=Buffer.byteLength(f),E=await o.store?.mint(Buffer.from(f),{command:e.join(" "),loss:{level:"terse",bytes_elided:k}});if(!E)throw new Error("terse test output requires an elision store");let _=`\u2026 elided ${d>0?`${d} failures`:"full detail"} (+${k}) \u2014 ${et(E)}`;return{stdout:Buffer.from(`${l}
|
|
141
|
-
${
|
|
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(`
|
|
142
144
|
`),n=r.length<=2?e:`${r[0]}
|
|
143
145
|
\u2026
|
|
144
|
-
${r[r.length-1]}`,s=Buffer.from(n);return s.length<=t?n:s.subarray(0,t).toString("utf8").replace(/�$/,"")}function
|
|
145
|
-
`).filter(Boolean).map(c=>
|
|
146
|
-
`)}),o||=1,n||=1,s||=1),s||=r.length,o||=1,n||=Math.max(s,r.length),{failed:s,total:n,suites:o,durationSeconds:i,failures:r}}async function
|
|
147
|
-
\u2026 elided ${i} bytes (+${n.length}) \u2014 ${
|
|
148
|
-
`):""}function
|
|
149
|
-
`),status:1,signal:null}}return
|
|
150
|
-
`;if(!i&&Buffer.byteLength(c)<=
|
|
151
|
-
`;return{stdout:Buffer.from(`${c}${l}`),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,mintedHandle:u,bytesElided:r.length,rawOutput:r}}function
|
|
152
|
-
`),n=r.at(-1)==="",s=n?r.slice(0,-1):r,o=t.limit??
|
|
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(`
|
|
153
155
|
`)}${n&&i.length>0?`
|
|
154
|
-
`:""}`,truncated:i.length<s.length}}function
|
|
155
|
-
`);return t.at(-1)===""?t.slice(0,-1):t}function
|
|
156
|
-
`),s=
|
|
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(`
|
|
157
159
|
`)}
|
|
158
|
-
`}let o=
|
|
160
|
+
`}let o=Yd(n,s,0);return`${[...n.slice(0,s),...r,...n.slice(o)].join(`
|
|
159
161
|
`)}
|
|
160
|
-
`}function
|
|
161
|
-
`),n=
|
|
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(`
|
|
162
164
|
`)}
|
|
163
|
-
`}function
|
|
164
|
-
`}function
|
|
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(`
|
|
165
167
|
`)?e:`${e}
|
|
166
|
-
`}function
|
|
167
|
-
`)}function
|
|
168
|
-
`)}function
|
|
169
|
-
`)}function fa(e,t){if(t.length===0)return[];if(t.some(o=>o.command.length===1))return[`${e}() {`," if command -v rsp >/dev/null 2>&1; then",` command rsp ${e} "$@"`," return"," fi",` command ${e} "$@"`,"}"];let r=t.map(o=>o.command.slice(1)).filter(o=>o.length===1).map(o=>o[0]).filter(ga),n=t.map(o=>o.command.slice(1)).filter(o=>o.length>1&&o.every(ga)),s=[`${e}() {`," if ! command -v rsp >/dev/null 2>&1; then",` command ${e} "$@"`," return"," fi",' case "$1" in'];if(r.length>0){let o=r.map(i=>RE(i)).join("|");s.push(` ${o}) command rsp ${e} "$@" ;;`)}for(let[o,i]of WD(n)){let a=i.map(c=>c.map((u,l)=>`[ "$${l+2}" = '${VD(u)}' ]`).join(" && ")).join(" || ");s.push(` ${RE(o)}) if ${a}; then command rsp ${e} "$@"; else command ${e} "$@"; fi ;;`)}return s.push(` *) command ${e} "$@" ;;`," esac","}"),s}function WD(e){let t=new Map;for(let[r,...n]of e){if(!r)continue;let s=t.get(r)??[];s.push(n),t.set(r,s)}return t}function JD(e){let t=new Map;for(let r of e){let n=r.command[0];if(!n||!ga(n))continue;let s=t.get(n)??[];s.push(r),t.set(n,s)}return t}function ga(e){return!!(e&&/^[A-Za-z0-9_./:-]+$/.test(e))}function RE(e){return e.replace(/[\\|)&;]/g,"\\$&")}function VD(e){return e.replace(/'/g,"'\\''")}function KD(e){return e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}var SE=h(()=>{"use strict";Ks()});function Hd(e){if(typeof e!="object"||e===null)return!1;let t=e;return t.schemaVersion===1&&typeof t.id=="string"&&t.id.length>0&&typeof t.emitter=="string"&&t.emitter.length>0&&typeof t.occurredAt=="string"&&typeof t.taskClass=="string"&&zD(t.chosenOption)&&YD(t.outcome)&&QD(t.cost)}function zD(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.kind=="string"&&t.kind.length>0}function YD(e){return e==="success"||e==="failure"||e==="escalated"}function QD(e){if(typeof e!="object"||e===null)return!1;let t=e.signal;return t==="none"||t==="low"||t==="medium"||t==="high"||t==="unknown"}var TE=h(()=>{});import{createHash as XD}from"node:crypto";function NE(e,t){return new Wd(e,t)}function vE(e){let t=Number(e.red_entity_id??e.rid),r=Jd(e.properties??e.PROPERTIES),n=FE(String(e.node_type??e.NODE_TYPE??r.kind??"note"));if(!Number.isFinite(t))return null;let s=String(r.id??e.label??e.LABEL??t),o=String(r.title??e.label??e.LABEL??s),i=String(r.content??""),a=Array.isArray(r.tags)?r.tags.map(String):[],c=Date.now();return{rid:t,label:String(e.label??e.LABEL??s),kind:n,properties:{...r,id:s,title:o,content:i,tags:a,created_at:Number(r.created_at??c),updated_at:Number(r.updated_at??r.created_at??c),hash:String(r.hash??"")}}}function xE(e){let t=Number(e.red_entity_id??e.rid),r=Number(e.from??e.FROM??e.from_rid??e.source),n=Number(e.to??e.TO??e.to_rid??e.target),s=ME(String(e.label??e.LABEL??"related_to"));return!Number.isFinite(t)||!Number.isFinite(r)||!Number.isFinite(n)?null:{rid:t,kind:s,from_rid:r,to_rid:n,weight:Number(e.weight??1),properties:Jd(e.properties??e.PROPERTIES)}}function t$(e){let t=Number(e.red_entity_id??e.rid),r=Jd(e.properties??e.PROPERTIES);return!Number.isFinite(t)||!Hd(r)?null:{rid:t,event:r}}function Jd(e){return e==null?{}:typeof e=="string"?JSON.parse(e):ha(e)?e:{}}function FE(e){let t=e==="contact"?"person":e;if(ZD.has(t))return t;throw new Error(`invalid Brain artifact kind: ${e}`)}function ME(e){if(e$.has(e))return e;throw new Error(`invalid Brain connection kind: ${e}`)}function r$(e){return e==="hour"||e==="week"||e==="month"?e:"day"}function CE(e){if(typeof e=="number")return e;let t=String(e??"");return/^\d+$/.test(t)?Number(t):t}function Nr(e){return ha(e)?e:{}}function OE(e,t){return Nr(e)[t]}function AE(e,t){let r=e[t];if(typeof r!="string")throw new Error(`brain ${t} must be a string`);return r}function PE(e,t){let r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function IE(e){let t=Nr(e);return{excludeRids:Array.isArray(t.excludeRids)?t.excludeRids.map(Number).filter(Number.isFinite):void 0}}function Ie(e){return typeof e=="string"&&e.length>0?e:void 0}function ha(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function qd(e){return e!=null}function n$(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean))).sort()}function s$(e){return XD("sha256").update(JSON.stringify(e)).digest("hex")}function o$(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"artifact"}function LE(e){return`artifact-hash:${e}`}function GE(e,t,r){return`connection:${e}:${t}:${r}`}function DE(){return"model-tier-bandit:v1"}function i$(e){return e.toLowerCase().split(/[^a-z0-9_]+/).map(t=>t.trim()).filter(t=>t.length>1)}function $E(e,t){let r=0,n=e.indexOf(t);for(;n>=0;)r++,n=e.indexOf(t,n+t.length);return r}function BE(e,t){let r=e.properties.title.toLowerCase(),n=e.properties.content.toLowerCase(),s=e.properties.tags.map(i=>i.toLowerCase()),o=e.kind.toLowerCase();return{lexical:t.reduce((i,a)=>i+$E(r,a)*3+$E(n,a),0),tags:t.reduce((i,a)=>i+s.reduce((c,u)=>c+(u===a?4:u.includes(a)||a.includes(u)?2:0),0),0),kind:t.reduce((i,a)=>i+(o===a?3:o.includes(a)||a.includes(o)?1:0),0)}}function a$(e,t,r,n){let s=0;for(let o of r){let i=o.from_rid===e.rid?o.to_rid:o.to_rid===e.rid?o.from_rid:null;if(i==null)continue;let a=n.get(i);if(!a)continue;let c=jE({...BE(a,t),connections:0,vector:0}).total;c>0&&(s+=Math.min(c,12)*.35)}return $r(s)}function jE(e){return{...e,lexical:$r(e.lexical),tags:$r(e.tags),kind:$r(e.kind),connections:$r(e.connections),vector:$r(e.vector),total:$r(e.lexical+e.tags+e.kind+e.connections+e.vector)}}function $r(e){return Math.round(e*1e3)/1e3}function c$(e,t){if(e.length<=220)return e;let r=e.toLowerCase(),n=t.map(o=>r.indexOf(o)).filter(o=>o>=0).sort((o,i)=>o-i)[0]??0,s=Math.max(0,n-80);return`${s>0?"...":""}${e.slice(s,s+220)}${s+220<e.length?"...":""}`}function u$(e,t){let r=t.length===0?"none":t[0].score>=5?"high":t[0].score>=3?"medium":"low",n=t.length===0?[`No Brain artifacts matched "${e}".`]:[];return{answer:t.length===0?`Brain has no cited evidence for "${e}".`:`Brain found ${t.length} cited artifact${t.length===1?"":"s"} for "${e}".`,hits:t,citations:t.map((s,o)=>({ref:`B${o+1}`,rid:s.artifact.rid,id:s.artifact.properties.id,title:s.artifact.properties.title,kind:s.artifact.kind,score:s.score,score_breakdown:s.score_breakdown,excerpt:s.excerpt})),confidence:r,missing_evidence:n}}function l$(e){let t={};for(let r of e)t[r]=(t[r]??0)+1;return t}var bt,ZD,e$,Wd,UE=h(()=>{"use strict";TE();bt={artifacts:"brain_artifacts",connections:"brain_connections",outcomeEvents:"brain_outcome_events",kv:"brain_kv"},ZD=new Set(["pillar","decision","concept","question","playbook","task","event","pattern","hypothesis","fact","source","bookmark","note","reference","custom","project","idea","meeting","claim","organization","person"]),e$=new Set(["supports","contradicts","depends_on","derived_from","related_to","part_of","preceded_by","followed_by","authored","tagged"]),Wd=class{constructor(t,r){this.db=t;this.uri=r}async request(t,r){if(await this.bootstrap(),t==="status")return await this.status();if(t==="capture")return await this.capture(Nr(r));if(t==="getArtifact")return await this.getArtifact(OE(r,"ridOrId"));if(t==="listArtifacts")return await this.listArtifacts();if(t==="search"){let n=Nr(r);return await this.search(AE(n,"query"),PE(n,"limit")??10,IE(n.options))}if(t==="think"){let n=Nr(r);return await this.think(AE(n,"query"),PE(n,"limit")??8,IE(n.options))}if(t==="link")return await this.link(Nr(r));if(t==="backlinks")return await this.backlinks(OE(r,"target"));if(t==="listConnections")return await this.listConnections();if(t==="eventKpis")return await this.eventKpis(Nr(r));if(t==="appendOutcomeEvent")return await this.appendOutcomeEvent(r);if(t==="replayOutcomeEvents")return await this.replayOutcomeEvents();if(t==="loadModelTierBanditDocument")return await this.loadModelTierBanditDocument();if(t==="saveModelTierBanditDocument")return await this.saveModelTierBanditDocument(r);if(t==="refreshModelTierBanditDocument")return await this.refreshModelTierBanditDocument();throw new Error(`unsupported resident brain action: ${t}`)}async bootstrap(){await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${bt.artifacts}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${bt.connections}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${bt.outcomeEvents}`)}async status(){let t=await this.listArtifacts(),r=await this.listConnections();return{uri:this.uri,artifacts:t.length,connections:r.length,kinds:l$(t.map(n=>n.kind))}}async capture(t){let r=Ie(t.title)||"Untitled artifact",n=Ie(t.content);if(!n)throw new Error("brain capture requires content");let s=FE(Ie(t.kind)||"note"),o=n$(Array.isArray(t.tags)?t.tags.map(String):[]),i=Date.now(),a=s$([s,r,n,o,Ie(t.sourcePath),Ie(t.sourceSession)]),c=await this.kv().get(LE(a));if(c!=null){let f=await this.getArtifact(Number(c));if(f)return f}let u=`${o$(r)}-${a.slice(0,8)}`,l={id:u,title:r,content:n,tags:o,source_agent:Ie(t.sourceAgent),source_runner:Ie(t.sourceRunner),source_session:Ie(t.sourceSession),source_path:Ie(t.sourcePath),created_at:i,updated_at:i,hash:a,metadata:ha(t.metadata)?t.metadata:void 0},p=(await this.db.query(`INSERT INTO ${bt.artifacts} NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *`,u,s,a,l)).rows[0];if(!p)throw new Error("INSERT artifact returned no row");let g=vE(p);if(!g)throw new Error("INSERT artifact returned invalid row");return await this.kv().put(LE(a),g.rid),await this.materializeTagConnections(g),g}async getArtifact(t){let r=await this.listArtifacts();return typeof t=="number"?r.find(n=>n.rid===t)??null:r.find(n=>n.properties.id===t||n.label===t)??null}async listArtifacts(){return(await this.db.query(`SELECT * FROM ${bt.artifacts}`)).rows.map(vE).filter(qd)}async search(t,r,n={}){let s=i$(t),o=new Set(n.excludeRids??[]),i=await this.listArtifacts(),a=await this.listConnections(),c=new Map(i.map(u=>[u.rid,u]));return i.filter(u=>!o.has(u.rid)).map(u=>{let l=BE(u,s),d=jE({...l,connections:a$(u,s,a,c),vector:0});return{artifact:u,score:d.total,score_breakdown:d,excerpt:c$(u.properties.content,s)}}).filter(u=>u.score>0).sort((u,l)=>l.score-u.score||l.artifact.properties.updated_at-u.artifact.properties.updated_at).slice(0,Math.max(1,Math.min(100,r)))}async think(t,r,n={}){let s=(await this.search(t,Math.max(r*2,r+5),n)).slice(0,r);return u$(t,s)}async link(t){let r=await this.getArtifact(CE(t.from)),n=await this.getArtifact(CE(t.to));if(!r)throw new Error(`Brain artifact not found: ${String(t.from)}`);if(!n)throw new Error(`Brain artifact not found: ${String(t.to)}`);let s=ME(Ie(t.kind)||"related_to"),o=await this.findConnection(r.rid,n.rid,s);if(o!=null){let l=(await this.listConnections()).find(d=>d.rid===o);if(l)return l}let i={reason:Ie(t.reason),confidence:Ie(t.confidence)||"explicit",created_at:Date.now(),metadata:ha(t.metadata)?t.metadata:void 0},c=(await this.db.query(`INSERT INTO ${bt.connections} EDGE (label, from, to, weight, properties) VALUES ($1, $2, $3, $4, $5) RETURNING *`,s,r.rid,n.rid,1,i)).rows[0];if(!c)throw new Error("INSERT connection returned no row");let u=xE(c);if(!u)throw new Error("INSERT connection returned invalid row");return await this.kv().put(GE(r.rid,n.rid,s),u.rid),u}async backlinks(t){let r=await this.getArtifact(t);if(!r)throw new Error(`Brain artifact not found: ${t}`);return(await this.listConnections()).filter(n=>n.to_rid===r.rid)}async listConnections(){return(await this.db.query(`SELECT * FROM ${bt.connections}`)).rows.map(xE).filter(qd)}async eventKpis(t){let r=(await this.listArtifacts()).filter(o=>o.kind==="event"),n=r$(Ie(t.interval)||"day"),s=Ie(t.timeField)==="ingested"?"ingested":"event";return{kind:"event",interval:n,timeField:s,range:{from:null,to:null},total:r.length,series:[{group:null,total:r.length,buckets:[]}]}}async appendOutcomeEvent(t){if(!Hd(t))throw new Error("invalid Brain outcome event");if(!(await this.db.query(`INSERT INTO ${bt.outcomeEvents} NODE (label, node_type, properties) VALUES ($1, $2, $3) RETURNING *`,t.id,`outcome_event.v${t.schemaVersion}`,t)).rows[0])throw new Error("INSERT outcome event returned no row");return t}async replayOutcomeEvents(){return(await this.db.query(`SELECT * FROM ${bt.outcomeEvents}`)).rows.map(t$).filter(qd).sort((r,n)=>r.rid-n.rid).map(({event:r})=>r)}async loadModelTierBanditDocument(){let t=await this.kv().get(DE());return typeof t=="string"?JSON.parse(t):t}async saveModelTierBanditDocument(t){return await this.kv().put(DE(),JSON.stringify(t)),t}async refreshModelTierBanditDocument(){let t=await this.loadModelTierBanditDocument();if(t!=null)return t;let r={schema_version:"brain.model-tier-bandit.v1",updated_at:new Date().toISOString(),arms:{}};return await this.saveModelTierBanditDocument(r),r}async materializeTagConnections(t){if(t.properties.metadata?.derived_kind!=="tag")for(let r of t.properties.tags){let n=await this.capture({title:r,content:`Tag: ${r}`,kind:"custom",tags:["tag"],metadata:{derived:!0,derived_kind:"tag"}});await this.link({from:t.rid,to:n.rid,kind:"tagged",confidence:"derived"})}}async findConnection(t,r,n){let s=await this.kv().get(GE(t,r,n));return s!=null?Number(s):null}kv(){return this.db.kv(bt.kv)}}});import{join as d$}from"node:path";function WE(e){let t=yu({path:d$(X(e.rootDir),"github","spend.toonl")}),r=qu({token:e.token,attribution:t,...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}});return p$(r)}function p$(e){return{async read(t){let r=gu(t.args);if(r.kind!=="read")return Zs(r,"github-write-passthrough","writes are executed by the original gh command unchanged");if(t.actor.trim()==="")return Zs(r,"github-actor-missing","retry through rsp so the caller can be attributed");if(r.budget==="search")return Zs(r,"github-search-not-routable","search reads are never a fallback; narrow the read to a classified object");try{if(r.surface==="graphql"){let s=m$(r,t);if(!s)return Zs(r,"github-graphql-read-not-realized","use a classified rsp summary whose GraphQL projection is declared");let o=await e.graphql(s.query,s.variables,{operation:r,actor:t.actor});return{status:0,stdout:JSON.stringify(s.decode(o)),stderr:"",surface:r.surface,pool:r.budget,quotaFree:!1}}let n=await e.conditionalRest({cacheKey:h$(t.path,t.params),route:`GET /${t.path.replace(/^\/+/,"")}`,parameters:y$(t.params),operation:r,actor:t.actor});return{status:0,stdout:JSON.stringify(n.data),stderr:"",surface:r.surface,pool:r.budget,quotaFree:n.quotaFree}}catch(n){return Wu(n)?Zs(r,"github-budget-refused","wait for the reported GitHub rate-limit reset, then retry"):{status:b$(n),stdout:"",stderr:n instanceof Error?n.message:String(n),surface:r.surface,pool:r.budget,quotaFree:!1}}}}}function m$(e,t){let r=Vd(t.params,"owner"),n=Vd(t.params,"repo");if(!r||!n)return null;let s=f$(t.params,"per_page",30),o=[String(t.params?.state??"open").toUpperCase()];return e.key==="issue list"?{query:`query RspIssueList($owner: String!, $repo: String!, $first: Int!, $states: [IssueState!], $labels: [String!]) {
|
|
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
172
|
repository(owner: $owner, name: $repo) {
|
|
171
173
|
issues(first: $first, states: $states, labels: $labels, orderBy: {field: UPDATED_AT, direction: DESC}) {
|
|
172
174
|
nodes { number title body state url updatedAt author { login } labels(first: 100) { nodes { name } } }
|
|
173
175
|
}
|
|
174
176
|
}
|
|
175
|
-
}`,variables:{owner:r,repo:n,first:s,states:o,labels:
|
|
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!]) {
|
|
176
178
|
repository(owner: $owner, name: $repo) {
|
|
177
179
|
pullRequests(first: $first, states: $states, orderBy: {field: UPDATED_AT, direction: DESC}) {
|
|
178
180
|
nodes { number title body state url updatedAt isDraft author { login } baseRefName headRefName labels(first: 100) { nodes { name } } }
|
|
179
181
|
}
|
|
180
182
|
}
|
|
181
|
-
}`,variables:{owner:r,repo:n,first:s,states:o},decode:i=>
|
|
182
|
-
`,{encoding:"utf8",mode:384});let
|
|
183
|
-
`,{encoding:"utf8",mode:384}),await
|
|
184
|
-
`)}}async function
|
|
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
187
|
const { execFileSync } = require("node:child_process");
|
|
186
188
|
const parentPid = Number(process.argv[1]);
|
|
187
189
|
const known = new Set();
|
|
@@ -222,26 +224,26 @@ const timer = setInterval(() => {
|
|
|
222
224
|
clearInterval(timer);
|
|
223
225
|
process.exit(0);
|
|
224
226
|
}, 500);
|
|
225
|
-
`,String(process.pid)],{detached:!0,stdio:"ignore"});return t.unref(),t}function ba(){for(let e of M$())try{process.kill(e,"SIGTERM")}catch{}}function M$(){if(process.platform==="win32")return[];let e="";try{e=ZE("ps",["-eo","pid=,ppid=,args="],{encoding:"utf8"})}catch{return[]}let t=[];for(let r of e.split(/\n/)){let n=/^\s*(\d+)\s+(\d+)\s+([\s\S]*)$/.exec(r);if(!n)continue;let s=Number(n[1]),o=Number(n[2]),i=n[3]??"";o===process.pid&&/(^|\s)\S*red(?:\.exe)?\s+rpc\s+--stdio(\s|$)/.test(i)&&t.push(s)}return t}async function B$(e){if(e.collection!==je)return e;let t=await zE(e.raw_text,QE(e.raw_bytes)),r=await zE(e.emitted_text,QE(e.emitted_bytes)),{raw_text:n,emitted_text:s,...o}=e;return{...o,tokens_raw:t.tokens,tokens_emitted:r.tokens,estimated:t.estimated||r.estimated}}async function zE(e,t){if(typeof e=="string"){let r=Buffer.byteLength(e,"utf8");if(r<=v$)try{return await sR((async()=>({tokens:(await j$())("cl100k_base").encode(e).length,estimated:!1}))(),x$,"telemetry tokenization timed out")}catch{return{tokens:Math.ceil(r/4),estimated:!0}}return{tokens:Math.ceil(r/4),estimated:!0}}return t!=null?{tokens:Math.ceil(t/4),estimated:!0}:{tokens:0,estimated:!1}}async function j$(){return YE??=import(S$(U$()).href).then(e=>{let t=e.getEncoding;if(!t)throw new Error("js-tiktoken getEncoding export not found");return t}),await YE}function U$(){let e=Qd(k$(import.meta.url)),r=[ya(e,"..","node_modules","js-tiktoken","dist","index.js"),ya(e,"..","apps","rsp","node_modules","js-tiktoken","dist","index.js")].find(n=>_$(n));if(!r)throw new Error("js-tiktoken dependency not found");return r}function QE(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function we(e){return typeof e=="string"&&e.trim()!==""?e:void 0}function zd(e){return e.trim().split(/\s+/).filter(Boolean)[0]??"unknown"}async function sR(e,t,r){let n;try{return await Promise.race([e,new Promise((s,o)=>{n=setTimeout(()=>o(new Error(r)),t),n.unref()})])}finally{n&&clearTimeout(n)}}function H$(e){try{return JSON.parse(e)}catch{return e}}function q$(e){return XE(e)&&e.version===1&&Array.isArray(e.records)&&e.records.every(t=>XE(t)&&(t.collection===Oe||t.collection===Ae||t.collection===je||t.collection===pt)&&typeof t.key=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&typeof t.bytes=="number")}function XE(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function W$(e,t){Km(e,(r,n)=>t(r,n),(r,n,s)=>{s({id:n?.id??An(),ok:!1,error:r instanceof Error?r.message:String(r)})})}async function J$(e,t,r,n,s){if(t.op==="handover")return{handover:!0,version:n,clientVersion:t.clientVersion};if(e.kind==="opening")throw new Error("rsp resident store is not ready");if(e.kind==="failed")throw new Error(`rsp resident store failed to open: ${e.error.message}`);let o=e.store;if(t.op==="ping")return{pong:!0,version:n};if(t.op==="stats")return await o.stats();if(t.op==="recovery-handles")return await o.recoveryHandles(t.limit);if(t.op==="accounting-stats"){let i=o.redDb();if(!i)throw new Error("rsp accounting stats require the shared RedDB store");return await Ul(i,t.byteBudget)}if(t.op==="telemetry-stats"){let i=o.redDb();if(!i)throw new Error("rsp telemetry stats require the shared RedDB store");return await Fi(i,t.sinceDays)}if(t.op==="telemetry-gains"){let i=o.redDb();if(!i)throw new Error("rsp telemetry gains require the shared RedDB store");return await Hl(i,t.sinceDays)}if(t.op==="mint")return{handle:await o.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return z$(await o.get(t.handle));if(t.op==="github-read")return await s.read({args:t.args,path:t.path,actor:t.actor,...t.params?{params:t.params}:{}});if(t.op==="memory")return await o.memory(t.action,t.payload);if(t.op==="brain")return await K$(o,r,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}function V$(e){let t;return{async read(r){if(!t){let n=String(ZE("gh",["auth","token"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})).trim();if(n==="")throw new Error("rsp resident could not obtain a GitHub credential from gh");t=WE({rootDir:e,token:n})}return await t.read(r)}}}async function K$(e,t,r,n){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await NE(s,t).request(r,n)}function z$(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var v$,x$,rR,C$,O$,A$,Yd,KE,YE,iR=h(()=>{"use strict";Le();Oo();Ro();vt();Ni();UE();JE();mt();Be();v$=256*1024,x$=500,rR=2e3,C$=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),O$="rsp-status-summary.json",A$=[Oe,Ae,je,pt,hs],Yd=class{constructor(t,r){this.store=t;this.opts=r;this.pendingHeals=[...r.bootHeals??[]]}running;pending=!1;pendingHeals;async drainAndSweep(){if(this.running){this.pending=!0,await this.running;return}this.running=(async()=>{do this.pending=!1,await this.drainAndSweepOnce();while(this.pending)})().finally(()=>{this.running=void 0}),await this.running}async drainAndSweepOnce(){let t=this.store.redDb();if(!t)return;let r=await I$(t);r.unshift(...this.pendingHeals),this.pendingHeals=[];let n=await this.readIndex(t),s=n.records.length,o=[...n.records];for(let a of r)o.push(await this.writeDrainDegradation(t,{reason:"telemetry collection model mismatch",command:"rsp resident telemetry drain",source_collection:a.collection,error:`expected kv, got ${a.previousModel}`,bytes:0}));await cl(this.opts.rootDir,async a=>{let c=fn(a);if(!c){let u=await this.writeDrainDegradation(t,{reason:"telemetry parse failed",command:"unknown",bytes:Buffer.byteLength(a,"utf8")});return o.push(u),!0}try{let u=await this.writeEvent(t,c);o.push(u);let l=await this.writeAccountingMirror(t,c);return l&&o.push(l),!0}catch(u){let l=await this.writeDrainDegradation(t,{reason:"telemetry event dropped",command:we(c.command)||"unknown",source_id:we(c.id),source_collection:we(c.collection),error:u instanceof Error?u.message:String(u),bytes:Buffer.byteLength(a,"utf8")});return o.push(l),!0}});let i=o.length>s;await this.prune(t,{version:1,records:o},i),await P$(t,this.opts.rootDir)}async writeEvent(t,r){let n=new Date,s=typeof r.created_at=="string"?r.created_at:n.toISOString(),o=new Date(Date.parse(s)+this.opts.ttlDays*24*60*60*1e3).toISOString(),i=typeof r.id=="string"&&r.id.trim()!==""?r.id:An(),a={...await B$(r),id:i,created_at:s,expires_at:o};return await t.kv(r.collection).put(i,a),{collection:r.collection,key:i,created_at:s,expires_at:o,bytes:r.collection===Oe?0:typeof r.bytes=="number"&&Number.isFinite(r.bytes)?Math.max(0,r.bytes):Buffer.byteLength(JSON.stringify(a),"utf8")}}async writeAccountingMirror(t,r){return r.collection===Oe||r.accounting_recorded===!0?null:r.collection===je?await this.writeEvent(t,{collection:Oe,id:`mirror:${we(r.id)||An()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:zd(we(r.command)||"unknown"),wrapper:r.wrapper,loss:r.loss,elided:r.elided,raw_bytes:r.raw_bytes,emitted_bytes:r.emitted_bytes,tokens_raw:r.tokens_raw,tokens_emitted:r.tokens_emitted,estimated:r.estimated,wrapper_ms:r.wrapper_ms,store_open_count:r.store_open_count,store_elapsed_ms:r.store_elapsed_ms}):r.collection===pt?await this.writeEvent(t,{collection:Oe,id:`mirror:${we(r.id)||An()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:zd(we(r.command)||"unknown"),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:we(r.reason)||"unknown",wrapper_family:we(r.wrapper_family),wrapper_exit_code:r.wrapper_exit_code,stderr_head:we(r.stderr_head)}):null}async writeDrainDegradation(t,r){let n=await this.writeEvent(t,{collection:pt,id:An(),created_at:new Date().toISOString(),reason:r.reason,command:r.command,bytes:r.bytes,source_id:r.source_id,source_collection:r.source_collection,error:r.error});return await this.writeEvent(t,{collection:Oe,id:`mirror:${An()}`,created_at:n.created_at,event_type:"invocation",command:r.command,command_class:zd(r.command),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:r.reason,source_id:r.source_id,source_collection:r.source_collection,error:r.error}),n}async readIndex(t){let r=await t.kv(hs).get("index:v1"),n=typeof r=="string"?H$(r):r;return q$(n)?n:{version:1,records:[]}}async writeIndex(t,r){await t.kv(hs).put("index:v1",r)}async prune(t,r,n=!1){let s=Date.now(),o=[];for(let a of r.records)Date.parse(a.expires_at)<=s?await t.kv(a.collection).delete(a.key):o.push(a);let i=o.reduce((a,c)=>a+c.bytes,0);for(o.sort((a,c)=>a.created_at.localeCompare(c.created_at));i>this.opts.byteBudget&&o.length>0;){let a=o.shift();i-=a.bytes,await t.kv(a.collection).delete(a.key)}(n||o.length<r.records.length)&&await this.writeIndex(t,{version:1,records:o})}};KE=!1});Ca();at();var im={"store-uri":{kind:"value",coerce:e=>e},brief:{kind:"boolean"},terse:{kind:"boolean"},query:{kind:"value",coerce:e=>e}},Zk={json:{kind:"boolean"}},eS={help:{kind:"boolean",aliases:["h"]}},tS={commands:{dashboard:{},stats:{},gains:{},show:{},git:{},gh:{},vitest:{},cargo:{},cat:{},exec:{},proxy:{},wait:{},doctor:{},status:{},sweep:{},setup:{},mcp:{},"shell-init":{},server:{},"warm-resident":{},"gh-api-json":{},hook:{}},default:"dashboard",keepArgvOnDefault:!0,errorOnUnknownCommand:!0};function am(e){let{command:t,args:r}=xa(e,rS);return t==="--version"?{kind:"version",json:Dn(r,Zk).values.json===!0}:nS(e)?{kind:"help"}:{kind:"command"}}var rS={commands:{"--version":{aliases:["-v"]},run:{}},default:"run",keepArgvOnDefault:!0};function nS(e){return dr(e,eS).values.help===!0}function cm(e){let{values:t,rest:r}=oS(e),n=r[0];if(n!==void 0&&n!=="--"&&n.startsWith("--"))throw lo.unknownFlag(n);let s=xa(r,tS).command,o=[...r],i=t.query;return i!==void 0&&s!=="show"&&o.push("--query",i),{command:s,handle:r[1],storeUri:t["store-uri"],query:i,level:t.terse===!0?"terse":t.brief===!0?"brief":"lossless",positional:o}}var lo=class e extends Error{static unknownFlag(t){return new e(`unknown flag: ${t}`)}render(){return V({command:"rsp",category:"usage",error:this.message,help:"rsp --help",validFlags:sS})}},sS=Object.keys(im).map(e=>`--${e}`);function oS(e){try{return dr(e,im)}catch(t){throw new lo(t instanceof Error?t.message:String(t))}}function um(e){return V({command:`rsp ${e.token}`,category:"usage",error:`unknown command: ${e.token}`,help:"rsp --help",validFlags:e.known})}function lm(e){return e instanceof Gn}function Vr(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}var iS={socket:{kind:"value",coerce:e=>e},"pid-file":{kind:"value",coerce:e=>e},"wake-lock":{kind:"value",coerce:e=>e},registry:{kind:"value",coerce:e=>e},"resident-version":{kind:"value",coerce:e=>e},"ttl-days":{kind:"value",coerce:Ht},"ephemeral-ttl-hours":{kind:"value",coerce:Ht},"byte-budget":{kind:"value",coerce:Ht},"telemetry-ttl-days":{kind:"value",coerce:Ht},"telemetry-byte-budget":{kind:"value",coerce:Ht},"telemetry-drain-interval-ms":{kind:"value",coerce:Ht},"telemetry-drain-timeout-ms":{kind:"value",coerce:Ht},"idle-ms":{kind:"value",coerce:Ht}};function Qa(e){return Dn(e,iS).values}var dm={since:{kind:"value",coerce:cS},full:{kind:"boolean"}};function po(e,t){return Dn(e,dm).values.since??t}function pm(e){return Dn(e,dm).values.full===!0}var aS={field:{kind:"value",type:"array",aliases:["f","F"],coerce:e=>e}};function mm(e){let{values:t,rest:r}=dr(e,aS),n=r[1];if(!n)return null;let s={};for(let o of t.field??[]){let i=o.indexOf("=");i<=0||(s[o.slice(0,i)]=o.slice(i+1))}return{path:n,params:s}}function Ht(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function cS(e){let t=/^(\d+)(d)?$/.exec(e);if(!t)return;let r=Number(t[1]);return Number.isFinite(r)&&r>0?r:void 0}Xa();at();import{existsSync as Y$}from"node:fs";import{fileURLToPath as Q$}from"node:url";vt();qn();ae();ut();import{existsSync as KO}from"node:fs";import{fileURLToPath as zO}from"node:url";vt();Ac();ae();import{existsSync as FT}from"node:fs";import{fileURLToPath as MT}from"node:url";async function Qr(e,t){let r={stats:BT(e.telemetryByteBudget),telemetry:Gc(t)};if(!e.storeUri.startsWith("file://"))return r;let n=MT(e.storeUri);if(!FT(n))return r;let{residentElisionStore:s}=await Promise.resolve().then(()=>(Jt(),Zn)),o=s(process.cwd(),e);try{return n.endsWith("red-skills.rdb")?{stats:await o.accountingStats(e.telemetryByteBudget),telemetry:await o.telemetryStats(t)}:{stats:await o.stats(),telemetry:Gc(t)}}catch{return r}finally{await o.close()}}function Dc(e,t=Gc(30),r=!1,n=Tf()){return`${ne($c(e,t,r,n))}
|
|
226
|
-
`}function
|
|
227
|
-
`}function
|
|
228
|
-
`}function
|
|
229
|
-
`)}function
|
|
230
|
-
`}async function
|
|
231
|
-
`;s+=Buffer.byteLength(a),process.stderr.write(a),o({stdoutBytes:n,stderrBytes:s,status:127,signal:null})}),r.on("close",(i,a)=>o({stdoutBytes:n,stderrBytes:s,status:i,signal:a}))})}function
|
|
232
|
-
`);let s=await
|
|
233
|
-
`),await
|
|
234
|
-
`),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function
|
|
235
|
-
`),2}let r=
|
|
236
|
-
`),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function
|
|
237
|
-
`}async function
|
|
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});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(`
|
|
238
240
|
`)}
|
|
239
|
-
`}function DL(e){switch(e){case"stats":return z("rsp stats [--since <days>d] [--full]",["Defaults: --since 30d, --full false","--since <days>d telemetry window, default 30d","--full include wider daily/top-command/failure lists, default false","--store-uri <uri> read a non-default store"],["rsp stats","rsp stats --since 7d --full"]);case"gains":return z("rsp gains [--since <days>d]",["--since <days>d gains window, default 28d","--store-uri <uri> read a non-default shared RedDB store"],["rsp gains","rsp gains --since 14d"]);case"show":return z("rsp show <handle>",["<handle> elision handle such as el:<id>","--store-uri <uri> read a non-default store"],["rsp show el:<id>","rsp show <handle>"]);case"git":return z("rsp git <status|log|diff|show|blame|branch|commit|push> [options]",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail"],["rsp git status --brief","rsp git log --terse","rsp git diff --query <path>"]);case"gh":return z("rsp gh <pr|issue|run> <list|view> [options] | <issues|prs|edit-labels|link-sub-issues> ...",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail","--json <fields> select fields for batched issues/prs","--repo <slug> owner/repo override for batched operations"],["rsp gh issues 42 43 --json state,title,labels,body","rsp gh prs 12 13 --json state,mergeable,statusCheckRollup","rsp gh edit-labels --add ready-for-agent --remove blocked:crashed 42 43","rsp gh link-sub-issues 100 101 102"]);case"vitest":return z("rsp vitest [run] [vitest-options]",["--brief compact output, default lossless","--terse summarize long failures and mint recovery handles","--query <text> filter failure rows"],["rsp vitest run","rsp vitest run --query <suite-or-test>"]);case"cargo":return z("rsp cargo test [cargo-test-options]",["--brief compact output, default lossless","--terse summarize long failures and mint recovery handles","--query <text> filter failure rows"],["rsp cargo test","rsp cargo test --query <test-name>"]);case"cat":return z("rsp cat [--head <n>|--tail <n>|--full] <file>",["--head <n> show first n lines, default slice 10","--tail <n> show last n lines, default slice 10","--full emit full text even when it is large","--brief/--terse reduce large text context"],["rsp cat <file>","rsp cat --head 20 <file>","rsp cat --tail 20 <file>"]);case"exec":return z('rsp exec -- "<command line>"',["--brief compact recognized stdout, default lossless","--terse summarize large stdout and mint recovery handles","--query <text> filter supported structured summaries"],['rsp exec -- "pnpm -C apps/rsp build"','rsp exec -- "git status --short"']);case"proxy":return z("rsp proxy -- <command line>",["--brief compact recognized stdout, default lossless","--terse summarize recognized large stdout"],["rsp proxy -- git status","rsp proxy -- pnpm test"]);case"wait":return["usage: rsp wait <subcommand> [options]","","Flags and defaults:"," --timeout <duration> default 30m for cmd, 60m for pr/run, 2h for release"," --reason <text> default empty"," --signal-pid <pid> optional completion signal target"," --signal <signal> default USR1"," --notify-cmd <cmd> optional completion command","","Examples:",' rsp wait pr 123 --reason "before merge"'," rsp wait run --branch feature/wait --latest",' rsp wait release --tag "v2.*"',' rsp wait cmd -- "pnpm -C apps/rsp build"'," rsp wait ls","","Exit codes: 0 = success verdict, 1 = failure verdict, 2 = timeout/indeterminate."];case"doctor":return z("rsp doctor [--since <days>d]",["--since <days>d recent degradation window, default 1d"],["rsp doctor","rsp doctor --since 7d"]);case"status":return z("rsp status",["No flags. Prints resident registry status as TOON."],["rsp status"]);case"sweep":return z("rsp sweep",["No flags. Removes stale resident registry entries, reclaims orphan state temps,","re-bounds the gh ETag cache, and prints TOON status."],["rsp sweep"]);case"setup":return z("rsp setup",["No flags. Provisions repo rsp configuration and store state."],["rsp setup"]);case"mcp":return z("rsp mcp",["No flags. Starts the rsp MCP server over stdio."],["rsp mcp"]);case"shell-init":return z("rsp shell-init <fish|bash|zsh>",["<fish|bash|zsh> target shell, no default"],["rsp shell-init bash","rsp shell-init fish"]);case"server":return z("rsp server [options]",["--socket <path> default resident socket","--pid-file <path> default resident pid file","--store-uri <uri> default repo store","--ttl-days <days> default from config","--ephemeral-ttl-hours <hours> default from config","--byte-budget <bytes> default from config","--idle-ms <ms> default from config"],["rsp server","rsp server --socket <path> --store-uri <uri>"]);case"warm-resident":return z("rsp warm-resident [options]",["--socket <path> default resident socket","--wake-lock <path> default resident wake lock","--store-uri <uri> default repo store","--idle-ms <ms> default from config"],["rsp warm-resident","rsp warm-resident --store-uri <uri>"]);case"gh-api-json":return z("rsp gh-api-json <path> [-f name=value ...]",["-f name=value string GitHub API field","-F name=value typed GitHub API field"],["rsp gh-api-json repos/{owner}/{repo}","rsp gh-api-json repos/{owner}/{repo}/pulls -f state=open"]);case"dashboard":return z("rsp dashboard",["No flags. The explicit spelling of the bare `rsp` invocation."],["rsp","rsp dashboard"]);case"hook":return z("rsp hook <claude-pre-exec|codex-pre-exec|claude-post-exec|codex-post-exec>",["Reads hook payload from stdin. Defaults come from the calling host."],["rsp hook codex-pre-exec","rsp hook claude-pre-exec"]);case void 0:return["usage: rsp <subcommand> [options]","","Bare invocation:"," rsp"," renders a live TOON dashboard with recovery handles, active waits, savings, and health.","","Subcommands:"," dashboard, stats, gains, show, git, gh, vitest, cargo, cat, exec, proxy, wait"," doctor, status, sweep, setup, mcp, shell-init, server, warm-resident, gh-api-json, hook","","Global flags:"," --store-uri <uri> default repo store"," --brief compact summaries"," --terse aggressive summaries with recovery handles"," --query <text> filter supported rendered output"," --help, -h scoped help"," --version, -v build version; add --json for structured build info","","Examples:"," rsp"," rsp stats --since 7d"," rsp git log --terse"," rsp show el:<id>"];default:return z(`rsp ${e} [options]`,["Unknown rsp subcommand. Use root help to list supported subcommands."],["rsp --help"])}}function z(e,t,r){return[`usage: ${e}`,"","Flags and defaults:",...t.map(n=>` ${n}`),"","Examples:",...r.map(n=>` ${n}`)]}Le();ae();mt();import{spawn as $L}from"node:child_process";import{createHash as NL}from"node:crypto";import{existsSync as FL,readFileSync as ML,statSync as BL}from"node:fs";import{tmpdir as jL}from"node:os";import{dirname as UL,join as nr}from"node:path";async function Se(e,t,r,n,s=process.cwd(),o,i=o?.overhead??Ct){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let a=Number(process.hrtime.bigint()-r)/1e6;n&&o&&qL(s,o);let c=HL(e,t,a);return ac(s,c,i),n?Lr(KL(s,e,t,c,i,n.lastResponseMetrics())):zL(s,e,t,c,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}function HL(e,t,r){let n=lc(),s=t.stdout.length+t.stderr.length,o=(t.rawOutput?.length??t.stdout.length)+t.stderr.length;return{family:e.command??"unknown",wrapperMs:r,childMs:n.childMs,selfStateBytesRead:n.selfStateBytesRead,bytesSaved:Math.max(0,o-s)}}function Lr(e){e.catch(()=>{})}async function aa(e,t,r,n){let{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o}=await Promise.resolve().then(()=>(mt(),$s));await s(e,{collection:o,event_type:"show",ts:new Date().toISOString(),command:"rsp show",command_class:"show",handle:t,hit:r,loss:"lossless",raw_bytes:r?n:0,emitted_bytes:n})}function qL(e,t){try{let r=$t(e),n=BL(r),s=t.telemetryDrainIntervalMs*2;if(n.size<t.telemetryByteBudget&&!VL(r,Date.now()-s))return;let o=WL(e),i=JL(o),a=nr(i,"rsp.sock"),c=nr(i,"rsp.pid"),u=nr(X(o),"rsp-resident.pid.json"),l=nr(o,".red","tmp","rsp","wake.lock");$L(process.execPath,[...process.execArgv,process.argv[1]??"","warm-resident","--socket",a,"--pid-file",c,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours),"--byte-budget",String(t.byteBudget),"--telemetry-ttl-days",String(t.telemetryTtlDays),"--telemetry-byte-budget",String(t.telemetryByteBudget),"--telemetry-drain-interval-ms",String(t.telemetryDrainIntervalMs),"--telemetry-drain-timeout-ms",String(t.telemetryDrainTimeoutMs),"--idle-ms",String(t.idleMs),"--registry",u,"--wake-lock",l],{cwd:o,detached:!0,stdio:"ignore",env:{...process.env,RSP_RESIDENT_WARMER:"1"}}).unref()}catch{}}function WL(e){let t=e;for(;;){if(FL(nr(t,".git")))return t;let r=UL(t);if(r===t)return e;t=r}}function JL(e){let t=NL("sha256").update(e).digest("hex").slice(0,20),r=process.env.XDG_RUNTIME_DIR;if(r){let s=nr(r,"red-skills",t);if(nr(s,"rsp.sock").length<108)return s}let n=typeof process.getuid=="function"?process.getuid():"nouid";return nr(jL(),`red-skills-${n}`,t)}function VL(e,t){try{let r=ML(e,"utf8");Jn(Buffer.byteLength(r));for(let n of r.split(/\r?\n/))if(n.trim())try{let s=JSON.parse(n),o=typeof s.created_at=="string"?s.created_at:s.ts;if(typeof o=="string"){let i=Date.parse(o);if(Number.isFinite(i)&&i<=t)return!0}}catch{}}catch{}return!1}async function KL(e,t,r,n,s,o){let i=Buffer.concat([r.stdout,r.stderr]),a=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),c=wo(n,s),{appendTelemetryEvent:u,RSP_ACCOUNTING_EVENTS_COLLECTION:l,RSP_TELEMETRY_INVOCATIONS_COLLECTION:d}=await Promise.resolve().then(()=>(mt(),$s));await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:ft(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs}),await u(e,{collection:d,ts:new Date().toISOString(),command:ft(t),wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,raw_text:a.toString("utf8"),emitted_text:i.toString("utf8"),...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs,accounting_recorded:!0}),r.degradation&&(await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:ft(t),command_class:t.command??"unknown",loss:t.level,raw_bytes:a.length,emitted_bytes:i.length,degradation_reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead}),await u(e,{collection:"rsp_telemetry_degradations_v1",ts:new Date().toISOString(),command:ft(t),reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead,accounting_recorded:!0}))}function zL(e,t,r,n,s){try{let o=Buffer.concat([r.stdout,r.stderr]),i=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),a=wo(n,s);Yt(e,{collection:"rsp_accounting_events_v1",event_type:"invocation",ts:new Date().toISOString(),command:ft(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a}),Yt(e,{collection:"rsp_telemetry_invocations_v1",ts:new Date().toISOString(),command:ft(t),wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a,accounting_recorded:!0})}catch{}}var cr=class{constructor(t){this.openStore=t}store;metrics;async mint(...t){try{let r=await this.open(),n=await r.mint(...t);return this.metrics=r.lastResponseMetrics?.(),n}catch{return`recovery unavailable (resident cold) \u2014 re-run: ${t[1].command}`}}async close(){if(!this.store)return;let t;try{t=await this.store}catch{return}await t.close()}open(){return this.store??=this.openStore(),this.store}lastResponseMetrics(){return this.metrics}},Nd=class{async mint(t,r){return`recovery unavailable (cold store) \u2014 re-run: ${r.command}`}lastResponseMetrics(){}async close(){}};async function iE(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw n instanceof Error?n:new Error("cold store");let s=new Nd,o=process.hrtime.bigint();try{if(e.command==="git"){let{isFastGitStatus:i,runFastGitStatus:a}=await Promise.resolve().then(()=>(ud(),h_));if(i(e.positional))return await Se(e,await a(),o,s,r,t);let{runGitWrapper:c}=await Promise.resolve().then(()=>(Ar(),Kl)),u=await c(e.positional,{level:e.level,store:s,heavyGitByteThreshold:t.heavyGitByteThreshold});return await Se(e,u,o,s,r,t)}if(e.command==="gh"){let{runGhWrapper:i}=await Promise.resolve().then(()=>(Cd(),xd)),a=await i(e.positional,{level:e.level,store:s});return await Se(e,a,o,s,r,t)}if(e.command==="vitest"||e.command==="cargo"){let{runTestWrapper:i}=await Promise.resolve().then(()=>(Id(),Pd)),a=await i(e.positional,{level:e.level,store:s});return await Se(e,a,o,s,r,t)}if(e.command==="cat"){let{runCatWrapper:i}=await Promise.resolve().then(()=>($d(),Dd)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Se(e,a,o,s,r,t)}if(e.command==="exec"){let{runExecWrapper:i}=await Promise.resolve().then(()=>(qs(),Hs)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Se(e,a,o,s)}}catch(i){return Vr(i)?(process.stdout.write(i.render()),2):await Js("wrapper failed",e.positional,i,r)}finally{await s.close()}return await Js("wrapper failed",e.positional,n,r)}async function aR(e=process.argv.slice(2)){let t=mo("rsp"),r=am(e);if(r.kind==="version")return process.stdout.write(r.json?`${JSON.stringify(t)}
|
|
240
|
-
`:`${
|
|
241
|
-
`),0;if(r.kind==="help")return process.stdout.write(
|
|
242
|
-
`),0);if(n.command==="git"&&
|
|
243
|
-
`),0)}if(n.command==="warm-resident"){let
|
|
244
|
-
`),T.status}if(n.command==="dashboard"){let
|
|
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();import.meta.url===`file://${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{PR as main,Hc as renderSetupResult,Bc as renderStats};
|
|
245
247
|
/*! Bundled license information:
|
|
246
248
|
|
|
247
249
|
@octokit/request-error/dist-src/index.js:
|