@reddb-io/red-skills 3.16.0 → 3.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brain.bundle.min.mjs +1 -1
- package/dist/code-nav.bundle.min.mjs +1 -1
- package/dist/dev.bundle.min.mjs +622 -619
- package/dist/memory.bundle.min.mjs +1 -1
- package/dist/redskilled-mcp.bundle.min.mjs +413 -412
- package/dist/redskilled.bundle.min.mjs +132 -131
- package/dist/rsp.bundle.min.mjs +150 -150
- package/package.json +1 -1
package/dist/rsp.bundle.min.mjs
CHANGED
|
@@ -1,78 +1,78 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
3
|
-
var
|
|
4
|
-
`),
|
|
5
|
-
`)),e.positional&&e.positional.length>0){t.push(
|
|
6
|
-
`));for(let n of e.positional)if(n.description){let s=n.variadic?`${n.name}...`:n.name;t.push(
|
|
7
|
-
`),
|
|
8
|
-
`))}t.push(
|
|
9
|
-
`))}if(e.options&&Object.keys(e.options).length>0){t.push(
|
|
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 Et(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw Et(t);r+=String.fromCharCode(a),n+=4;break}default:throw Et(t)}}throw Et(t)}function Dm(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 Et(r);t=s+2;continue}if(n===-1)throw Et(r);return n+1}}function Ve(e,t,r){if(e==="")return[];let n=[],s=0,o=0;for(;o<e.length;){let i=e.indexOf('"',o),a=e.indexOf(t,o);if(a!==-1&&(i===-1||a<i))n.push(e.slice(s,a).trim()),s=a+1,o=a+1;else if(i!==-1)o=Dm(e,i+1,r);else break}return n.push(e.slice(s).trim()),n}function K(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=Dm(e,s+1,r)}return-1}function dT(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function pT(e){return/^[+-]?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function mT(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw S(0,"number is not representable in TOON");return String(e)}function Rt(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function te(e,t){if(Cr(e))return e.value;if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return mT(e);if(typeof e=="string")return gT(e,t);throw S(0,"not a primitive")}function fT(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function J(e){return fT(e)?e:Fo(e)}function gT(e,t){return _c(e,t)?Fo(e):e}function _c(e,t){return e===""||/^[ \t]|[ \t]$/.test(e)||e==="true"||e==="false"||e==="null"||pT(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")||e.startsWith("#")}function Fo(e){return`"${$m(e)}"`}function $m(e){let t="",r=0;Lm.lastIndex=0;let n;for(;(n=Lm.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 ot(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var ee,Im,Lm,it=h(()=>{Je();is();ee=",";Im=/["\\\u0000-\u0008\u000a-\u001f]/g;Lm=/["\\\u0000-\u001f]/g});var Nm,Ar,Fm,Pr=h(()=>{Nm=["type","kind","event"],Ar="|",Fm=new Set(["order","discriminator","rows","common"])});function hT(e){let t=0;for(;t<e.length&&e[t]===" ";)t++;return e[t]==="#"}function*yT(e,t){for(let r of e){let n=t.push(r);n!==void 0&&(yield n)}}async function*bT(e,t){for await(let r of e){let n=t.push(r);n!==void 0&&(yield n)}}function Tc(e,t){let r=K(e,"[",t);if(r===-1)return null;let n=K(e,":",t);if(n!==-1&&n<r)return null;let s=e.slice(0,r);if(s!==""&&/\s$/.test(s))throw S(t,"whitespace between key and bracket segment");let o=e.indexOf("]",r);if(o===-1)return null;let i=e.slice(r+1,o),a=!1,c=",",u=i.indexOf(":");if(u!==-1){let E=i.slice(u+1);if(i=i.slice(0,u),a=!0,E===" "||E==="|")c=E;else if(E!=="")throw S(t,"malformed bracket segment")}else(i.endsWith(" ")||i.endsWith("|"))&&(c=i.slice(-1),i=i.slice(0,-1));if(!wT.test(i))throw S(t,"malformed array header length");let l=Number(i),d=e.slice(o+1),p;if(d.startsWith("{")){let E=Mm(d,t);p=Bm(d.slice(1,E),c,t),d=d.slice(E+1)}if(a&&p===void 0)throw S(t,"keyed header requires a field list");if(!d.startsWith(":"))throw S(t,"expected colon after array header");let m=kt(d.slice(1));if((p!==void 0||a)&&m!=="")throw S(t,"unexpected content after fields-bearing header colon");return{key:s===""?void 0:_e(s,t)[0],length:l,delimiter:c,fields:p,keyed:a,inline:m===""?void 0:m}}function Mm(e,t){let r=0,n=!1;for(let s=0;s<e.length;s++){let o=e[s];if(n){o==="\\"?s++:o==='"'&&(n=!1);continue}if(o==='"')n=!0;else if(o==="{")r++;else if(o==="}"&&(r--,r===0))return s}throw S(t,"malformed tabular header fields")}function Bm(e,t,r){let n=[],s=0,o=0,i=!1,a=c=>{n.push(_T(c,t,r))};for(let c=0;c<e.length;c++){let u=e[c];if(i){u==="\\"?c++:u==='"'&&(i=!1);continue}u==='"'?i=!0:u==="{"?o++:u==="}"?o--:u===t&&o===0&&(a(e.slice(s,c)),s=c+1)}return a(e.slice(s)),n}function _T(e,t,r){let n=kt(e);if(n==="")throw S(r,"empty field entry in header");let s=n.startsWith('"')?n.indexOf("{",ET(n,r)+1):n.indexOf("{");if(s===-1)return{name:_e(n,r)[0]};let o=Mm(n.slice(s),r)+s;if(o!==n.length-1)throw S(r,"malformed tabular header fields");let i=Bm(n.slice(s+1,o),t,r);if(i.length===0)throw S(r,"empty field entry in header");return{name:_e(n.slice(0,s),r)[0],children:i}}function ET(e,t){for(let r=1;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]==='"')return r;throw S(t,"invalid quoted string")}function vc(e){let t=0;for(let r of e)t+=r.children===void 0?1:vc(r.children);return t}function xc(e,t,r){let n=new Set;for(let s of e){if(n.has(s.name)&&r.strict)throw S(t,"duplicate field name in header");n.add(s.name),s.children!==void 0&&xc(s.children,t,r)}}function kt(e){let t=0,r=e.length;for(;t<r&&e[t]===" ";)t++;for(;r>t&&e[r-1]===" ";)r--;return e.slice(t,r)}function Oc(e,t,r){if(kt(e)==="")return[];let n=[],s=0,o=!1;for(let i=0;i<e.length;i++){let a=e[i];if(o){a==="\\"?i++:a==='"'&&(o=!1);continue}a==='"'?o=!0:a===t&&(n.push(kt(e.slice(s,i))),s=i+1)}return n.push(kt(e.slice(s))),n}function Um(e,t){return K(e,":",t)!==-1}function Hm(e,t){try{return _e(e,t)[0]}catch(r){if(e.startsWith('"'))throw r;return e}}function qm(e){let t=e?.maxDepth??1e3;return{indentSize:e?.indentSize??e?.indent??2,strict:e?.strict??!0,maxDepth:t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t))}}function*Wm(e){let t=new Rc,r=yield*t.peek();if(r===void 0){yield{type:"startObject",line:1},yield{type:"endObject",line:1};return}if(r.depth!==0)throw S(r.number,"invalid indentation");if(yield*t.peek(1),r.content==="[]"){yield*t.take(e),yield{type:"startArray",length:0,line:r.number},yield{type:"endArray",line:r.number},yield*Ec(t,e);return}let n=null,s=!1;try{n=Tc(r.content,r.number)}catch(o){if(e.strict)throw o;s=!0}if(n!=null&&Mo(n.fields,r.number,e),n!=null&&!s&&n.key===void 0){yield*t.take(e),n.keyed?yield*Vm(t,r,n,e):yield*Ac(t,r,n,e),yield*Ec(t,e);return}if((n===null||s)&&!Um(r.content,r.number)&&(yield*t.peek(1))===void 0){yield*t.take(e),yield{type:"primitive",value:ne(kt(r.content),r.number),line:r.number};return}yield*Jm(t,0,r.number,e),yield*Ec(t,e)}function*Ec(e,t){let r=yield*e.peek();if(r!==void 0&&t.strict)throw S(r.number,"expected end of document");e.stop()}function*Jm(e,t,r,n){yield{type:"startObject",line:r};let s=new Set;for(;;){let o=yield*e.peek();if(o===void 0||o.depth<t)break;if(o.depth>t)throw S(o.number,"over-indented line");yield*e.take(n),yield*kc(e,o,o.content,t,n,s)}yield{type:"endObject",line:e.lastNumber(r)}}function*kc(e,t,r,n,s,o){let i=null;try{i=Tc(r,t.number)}catch(l){if(s.strict)throw l;i=null}if(i!=null)if(Mo(i.fields,t.number,s),i.key===void 0){if(s.strict)throw S(t.number,"keyless header is only valid at the root or as a list item");i=null}else{Sc(o,i.key,t.number,s),yield{type:"key",key:i.key,line:t.number},i.keyed?yield*Vm(e,{...t,depth:n},i,s):yield*Ac(e,{...t,depth:n},i,s);return}let a=K(r,":",t.number);if(a===-1)throw S(t.number,"expected key-value line");let c=Hm(kt(r.slice(0,a)),t.number),u=kt(r.slice(a+1));if(Sc(o,c,t.number,s),yield{type:"key",key:c,line:t.number},u===""){let l=yield*e.peek();if(l!==void 0&&l.depth>n){if(l.depth!==n+1)throw S(l.number,"over-indented line");yield*Jm(e,n+1,l.number,s)}else yield{type:"startObject",line:t.number},yield{type:"endObject",line:t.number};return}if(u==="[]"){yield{type:"startArray",length:0,line:t.number},yield{type:"endArray",line:t.number};return}yield{type:"primitive",value:ne(u,t.number),line:t.number}}function Sc(e,t,r,n){if(e.has(t)&&n.strict)throw S(r,"duplicate object key");e.add(t)}function*Ac(e,t,r,n){if(yield{type:"startArray",length:r.length,line:t.number},r.fields!==void 0){xc(r.fields,t.number,n),yield*kT(e,t,r,n);return}if(r.inline!==void 0){let i=Oc(r.inline,r.delimiter,t.number);Ic(i.length,r.length,t.number,"inline-form values",n);for(let a of i)yield{type:"primitive",value:ne(a,t.number),line:t.number};yield{type:"endArray",line:t.number};return}let s=0;for(;;){let i=yield*e.peek();if(i===void 0||i.depth<=t.depth)break;if(i.depth!==t.depth+1)throw S(i.number,"over-indented line");if(!i.content.startsWith("- ")&&i.content!=="-")break;yield*e.take(n),s===0&&e.spanActive++,s++,yield*RT(e,i,n)}s>0&&e.spanActive--;let o=e.lastNumber(t.number);if(n.strict&&s!==r.length)throw S(o,`expected ${r.length} list items, but got ${s}`);yield{type:"endArray",line:o}}function*RT(e,t,r){if(t.content==="-"){yield{type:"startObject",line:t.number},yield{type:"endObject",line:t.number};return}let n=kt(t.content.slice(2));if(n==="[]"){yield{type:"startArray",length:0,line:t.number},yield{type:"endArray",line:t.number};return}let s=null;try{s=Tc(n,t.number)}catch(o){if(r.strict)throw o;s=null}if(s!=null&&s.key===void 0){if(Mo(s.fields,t.number,r),s.keyed||s.fields!==void 0){if(r.strict)throw S(t.number,"keyless fields-bearing header is only valid at the root");yield{type:"primitive",value:ne(n,t.number),line:t.number};return}yield*Ac(e,t,s,r);return}if(s!=null&&s.key!==void 0||Um(n,t.number)){yield{type:"startObject",line:t.number};let o=new Set;for(yield*kc(e,t,n,t.depth+1,r,o);;){let i=yield*e.peek();if(i===void 0||i.depth!==t.depth+1||i.content.startsWith("- ")||i.content==="-")break;yield*e.take(r),yield*kc(e,i,i.content,t.depth+1,r,o)}yield{type:"endObject",line:e.lastNumber(t.number)};return}yield{type:"primitive",value:ne(n,t.number),line:t.number}}function*kT(e,t,r,n){let s=r.fields,o=vc(s),i=t.depth+1,a=0;for(;;){let u=yield*e.peek();if(u===void 0||u.depth<=t.depth)break;if(u.depth!==i)throw S(u.number,"over-indented line");if(!ST(u.content,r.delimiter,u.number))break;yield*e.take(n),a===0&&e.spanActive++,a++;let l=Oc(u.content,r.delimiter,u.number);Ic(l.length,o,u.number,"row cells",n),yield*Pc(s,l,{next:0},u.number)}a>0&&e.spanActive--;let c=e.lastNumber(t.number);if(n.strict&&a!==r.length)throw S(c,`expected ${r.length} tabular rows, but got ${a}`);yield{type:"endArray",line:c}}function ST(e,t,r){let n=K(e,":",r);if(n===-1)return!0;let s=K(e,t,r);return s===-1?!1:s<n}function*Pc(e,t,r,n){yield{type:"startObject",line:n};for(let s of e)if(yield{type:"key",key:s.name,line:n},s.children===void 0){let o=t[r.next++]??"";yield{type:"primitive",value:ne(o,n),line:n}}else yield*Pc(s.children,t,r,n);yield{type:"endObject",line:n}}function*Vm(e,t,r,n){let s=r.fields;xc(s,t.number,n);let o=vc(s),i=t.depth+1;yield{type:"startObject",line:t.number};let a=new Set,c=0;for(;;){let l=yield*e.peek();if(l===void 0||l.depth<=t.depth)break;if(l.depth!==i)throw S(l.number,"over-indented line");let d=K(l.content,":",l.number);if(d===-1){if(n.strict)throw S(l.number,"expected a keyed entry row");yield*e.take(n);continue}yield*e.take(n),c===0&&e.spanActive++,c++;let p=Hm(kt(l.content.slice(0,d)),l.number);Sc(a,p,l.number,n),yield{type:"key",key:p,line:l.number};let m=Oc(l.content.slice(d+1),r.delimiter,l.number);Ic(m.length,o,l.number,"entry row cells",n),yield*Pc(s,m,{next:0},l.number)}c>0&&e.spanActive--;let u=e.lastNumber(t.number);if(n.strict&&c!==r.length)throw S(u,`expected ${r.length} entry rows, but got ${c}`);yield{type:"endObject",line:u}}function Ic(e,t,r,n,s){if(s.strict&&e!==t)throw S(r,`expected ${t} ${n}, but got ${e}`)}function Km(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw S(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function Mo(e,t,r,n=1){if(e!==void 0){Km(n,t,r);for(let s of e)s.children!==void 0&&Mo(s.children,t,r,n+1)}}function*zm(e,t){let r=qm(t),n=new jo(r),s=yT(e,n),o=Wm(r),i=o.next();try{for(;!i.done;)if(i.value===Cc){let a=s.next();i=o.next(a.done?void 0:a.value)}else yield i.value,i=o.next()}catch(a){throw Qm(a,n)}finally{o.return(),s.return(void 0)}}async function*Ym(e,t){let r=qm(t),n=new jo(r),s=bT(e,n),o=Wm(r),i=o.next();try{for(;!i.done;)if(i.value===Cc){let a=await s.next();i=o.next(a.done?void 0:a.value)}else yield i.value,i=o.next()}catch(a){throw Qm(a,n)}finally{o.return(),await s.return(void 0)}}function Qm(e,t){return!(e instanceof Nt)||e.source!==void 0?e:new cn(e.reason,{line:e.line,source:t.sourceByLine.get(e.line),cause:e})}function Xm(e,t){return Symbol.asyncIterator in e?Ym(e,t):zm(e,t)}var jo,wT,Cc,jm,Rc,Lc=h(()=>{Je();it();Pr();jo=class{ctx;sourceByLine=new Map;number=0;blankPending=!1;firstLine=!0;constructor(t){this.ctx=t}push(t){let r=t;if(this.number++,this.sourceByLine.set(this.number,t),this.firstLine&&(r.startsWith("\uFEFF")&&(r=r.slice(1)),this.firstLine=!1),r.endsWith("\r")&&(r=r.slice(0,-1)),r=r.replace(/ +$/,""),r.trim()===""){this.blankPending=!0;return}if(hT(r))return;let n=0,s=0,o=0;for(;n<r.length&&(r[n]===" "||r[n]===" ");){if(r[n]===" "){if(this.ctx.strict)throw S(this.number,"tab used as indentation");s++}else o++;n++}let i;if(o%this.ctx.indentSize===0)i=o/this.ctx.indentSize;else{if(this.ctx.strict)throw S(this.number,"invalid indentation");i=Math.floor(o/this.ctx.indentSize)}i+=s,Km(i,this.number,this.ctx);let a={number:this.number,depth:i,content:r.slice(n),blankBefore:this.blankPending};return this.blankPending=!1,a}};wT=/^(0|[1-9]\d*)$/;Cc=Symbol("need line"),jm=2,Rc=class{lines=[];ended=!1;previous;spanActive=0;*peek(t=0){if(t>=jm)throw new Error(`decoder lookahead exceeds ${jm} classified lines`);for(;!this.ended&&this.lines.length<=t;){let r=yield Cc;r===void 0?this.ended=!0:this.lines.push(r)}return this.lines[t]}*take(t){let r=yield*this.peek();if(r===void 0)throw new Error("decoder attempted to read past end of input");if(this.lines.shift(),t.strict&&this.spanActive>0&&r.blankBefore)throw S(r.number,"blank line inside a header span");return this.previous=r,r}lastNumber(t){return this.previous===void 0?t:this.previous.number}stop(){this.lines.length=0,this.ended=!0}}});function se(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var as=h(()=>{});function Uo(e){if(!se(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let s=TT(n,1);if(s===void 0)return e;ot(t,r,s)}return t}function TT(e,t){if(!se(e)||!vT(e))return;let{order:r,discriminator:n,rows:s}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(s)||s<0)throw Ee(t);let o=xT(r,s,t),i=e.common,a=i===void 0?Array.from({length:s},()=>({})):i;if(!Array.isArray(a)||a.length!==s||!a.every(se))throw tf(t);let c=new Map;for(let[d,p]of Object.entries(e))if(!Fm.has(d)){if(!Array.isArray(p)||!p.every(se))throw Ee(t);c.set(d,p)}if(c.size===0)throw Ee(t);let u=new Map,l=o.map((d,p)=>{let m=c.get(d);if(m===void 0)throw Gc(t);let f=u.get(d)??0,E=m[f];if(E===void 0)throw Gc(t);return u.set(d,f+1),OT(n,d,a[p],E,t)});for(let[d,p]of c)if((u.get(d)??0)!==p.length)throw Gc(t);return l}function vT(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function xT(e,t,r){if(!e.startsWith("cycle("))throw Ee(r);let n=e.slice(6),s=n.indexOf(")*");if(s===-1)throw Ee(r);let o=n.slice(0,s),i=n.slice(s+2);if(o===""||i.includes("+tail("))throw Ee(r);let a=o.split(",").map(l=>IT(l,r));if(a.some(l=>l===""))throw Ee(r);let c=PT(i,r),u=a.length*c;if(!Number.isSafeInteger(u))throw Ee(r);if(u!==t)throw tf(r);return Array.from({length:u},(l,d)=>a[d%a.length])}function OT(e,t,r,n,s){let o={};ot(o,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw Ee(s);ot(o,i,a)}for(let[i,a]of Object.entries(CT(n,s))){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw Ee(s);ot(o,i,a)}return o}function CT(e,t){let r={};for(let[n,s]of Object.entries(e))AT(r,n.split("."),s,t);return Bo(r,t)}function AT(e,t,r,n){if(t.some(o=>o===""))throw Ee(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],!se(s))throw Ee(n)}}function Bo(e,t){return Array.isArray(e)?e.map(r=>Bo(r,t)):se(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw Ee(t);return Bo(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Bo(n,t)])):e}function PT(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw Ee(t);let r=Number(e);if(!Number.isSafeInteger(r))throw Ee(t);return r}function IT(e,t){try{return decodeURIComponent(e)}catch{throw Ee(t)}}function Zm(e){return encodeURIComponent(e)}function Ee(e){return S(e,"invalid cyclic array wire")}function tf(e){return S(e,"cyclic array length mismatch")}function Gc(e){return S(e,"cyclic array group length mismatch")}function Ho(e){if(!se(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[s,o]of t){let i=LT(o);if(i===void 0)return;r.push([s,i])}let n=[];for(let[s,o]of r)NT(n,s,o);return n.join("")}function LT(e){if(!Array.isArray(e)||e.length===0||!e.every(se))return;let t=GT(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=DT(r);if(n===void 0)return;let s=$T(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)&&!Dc(d,l,u))return;o.get(c).push(u)}let i=[];for(let a of n.cycle){let c=o.get(a),u=jT(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 GT(e){return Nm.find(t=>e.every(r=>typeof r[t]=="string"))}function DT(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(Zm).join(","),o=`cycle(${r.map(Zm).join(",")})*${n}`;if(o.length<=s.length*.4)return{cycle:r,encoded:o,repeats:n}}}function $T(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(!FT(o)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,o))||!e.every(i=>Rt(i[o])))break;r.push(o)}return r}function NT(e,t,r){e.push(J(t),`:
|
|
14
|
-
`),e.push(" order: ",
|
|
15
|
-
`),e.push(" discriminator: ",
|
|
3
|
+
var GS=Object.create;var gc=Object.defineProperty;var DS=Object.getOwnPropertyDescriptor;var $S=Object.getOwnPropertyNames;var NS=Object.getPrototypeOf,FS=Object.prototype.hasOwnProperty;var y=(e,t)=>()=>(e&&(t=e(e=0)),t);var Om=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Z=(e,t)=>{for(var r in t)gc(e,r,{get:t[r],enumerable:!0})},jS=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of $S(t))!FS.call(e,s)&&s!==r&&gc(e,s,{get:()=>t[s],enumerable:!(n=DS(t,s))||n.enumerable});return e};var hc=(e,t,r)=>(r=e!=null?GS(NS(e)):{},jS(t||!e||!e.__esModule?gc(r,"default",{value:e,enumerable:!0}):r,e));function BS(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 US(e=Cm){return Object.entries(e).map(([t,r])=>BS(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function HS(e){return/^-\d+(\.\d+)?$/.test(e)}function un(e){return!(!e||e.startsWith("-")&&!HS(e))}function Fo(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 Am(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=>Am(r.trim())):e}function xr(e,t){switch(t){case"boolean":return qS(e);case"number":return WS(e);case"array":return e.split(",").map(r=>Fo(r.trim()));case"string":default:return e}}function qS(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function WS(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 nr(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function JS(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function K(e,t){return{type:e,value:t}}function VS(e){let t=[],r=zS(e);if(t.push(K("section-header","Usage:"),K("text"," "),K("usage-text",r),K("newline",`
|
|
4
|
+
`),K("newline",`
|
|
5
|
+
`)),e.positional&&e.positional.length>0){t.push(K("section-header","Arguments:"),K("newline",`
|
|
6
|
+
`));for(let n of e.positional)if(n.description){let s=n.variadic?`${n.name}...`:n.name;t.push(K("indent"," "),K("positional-name",`<${s}>`)),n.required||t.push(K("positional-optional"," (optional)")),t.push(K("newline",`
|
|
7
|
+
`),K("indent"," "),K("option-description",n.description),K("newline",`
|
|
8
|
+
`))}t.push(K("newline",`
|
|
9
|
+
`))}if(e.options&&Object.keys(e.options).length>0){t.push(K("section-header","Options:"),K("newline",`
|
|
10
|
+
`));let n=YS(e.options);t.push(...n)}return t}function KS(e,t){let r=VS(e);return JS(r,t)}function zS(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 YS(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=b=>{d.includes(b)||d.push(b)};l.short&&p(`-${l.short}`),p(`--${u}`);for(let b of l.aliases??[])b.length===1?p(`-${b}`):p(`--${b}`);let m=d.join(", "),f=l.type&&l.type!=="boolean"?`<${l.type}>`:void 0;n.push({flags:m,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(K("indent"," ")),r.push(K(s,u.flags)),u.type&&(r.push(K("text"," ")),r.push(K(o,u.type))),r.push(K("text",d)),r.push(K(a,u.desc)),u.default!==void 0&&(r.push(K("text"," ")),r.push(K(i,`(default: ${u.default})`))),r.push(K("newline",`
|
|
11
|
+
`))}return r}function Pm(e){let t=nT(e.options??{},e.autoShort??!1),r=US(e.separators??Cm);return{schema:e,parse(n){return QS(n,e,t,r)},help(){return KS(e,e.formatter)}}}function QS(e,t,r,n){let s={positional:{},options:{},errors:[],rest:[]},o=new Set(n.map(l=>l.to));for(let l of o)s[l]={};let i=0,a=t.positional??[],c=0,u=!1;for(;c<e.length;){let l=e[c];if(t.stopEarly&&i>0){s.rest=e.slice(c);break}if(l==="--"&&!u){u=!0,c++;continue}if(u){if(i<a.length){let p=a[i];if(p.variadic){let m=[];for(;c<e.length;){let f=e[c];m.push(p.type?xr(f,p.type):f),c++}s.positional[p.name]=m,i++}else{let m=p.type?xr(l,p.type):l;s.positional[p.name]=m,i++,c++}}else t.allowUnknown!==!1&&(s.rest=s.rest??[],s.rest.push(l)),c++;continue}if(l.startsWith("--")){c=tT(l,c,e,s,r,t);continue}if(l.startsWith("-")&&l.length>1&&!cT(l)){c=rT(l,c,e,s,r,t);continue}let d=XS(l,n);if(d){let{key:p,value:m,config:f}=d,b=s,_=b[f.to]??(b[f.to]={});_[p]=f.typed?Am(m):nr(m),c++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;c<e.length&&!e[c].startsWith("-");){let b=e[c];f.push(p.type?xr(b,p.type):b),c++}s.positional[p.name]=f,i++;continue}let m=p.type?xr(l,p.type):l;s.positional[p.name]=m,i++}else t.allowUnknown!==!1?s.rest.push(l):s.errors.push(`Unexpected positional argument: ${l}`);c++}return oT(s,t,r),iT(s,t,a),aT(s,t,r),s}function XS(e,t){if(MS.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(ZS(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(eT(s,o,r))return{key:s,value:o,config:r}}}return null}function ZS(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function eT(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 tT(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 jo(u,l,t+1,n,s,o)}let a=s.get(i);if(a){if(a.type!=="boolean"){let c=r[t+1];return un(c)?jo(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 rT(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=yc(c,s);return l?jo(l.name,u,t+1,n,s,o):(o.strict?n.errors.push(`Unknown option: -${c}`):o.allowUnknown!==!1&&(n.options[c]=Fo(nr(u))),t+1)}if(i.length===1){let a=yc(i,s);if(a){if(a.type!=="boolean"){let c=r[t+1];return un(c)?jo(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(un(c))return n.options[i]=Fo(nr(c)),t+2;n.options[i]=!0}return t+1}for(let a of i){let c=yc(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 jo(e,t,r,n,s,o){let i=s.get(e);if(i){if(i.choices){let c=i.type?xr(nr(t),i.type):nr(t);if(!i.choices.includes(c))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?xr(nr(t),i.type):nr(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]=Fo(nr(t)));return r}function nT(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=sT(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 sT(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 yc(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function oT(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?xr(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 iT(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 aT(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 cT(e){return/^-\d+(\.\d+)?$/.test(e)}var Cm,MS,Im=y(()=>{Cm={"=":"data",":=":{to:"data",typed:!0},":":"meta"},MS=/^[a-z][a-z0-9+.-]*:\/\//i});function uT(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 lT(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&&un(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 as(e,t,r={}){let s=Pm({options:uT(t),separators:{},allowUnknown:!0}).parse([...e]),o={},i=lT(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 bc(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 mT(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 Or(e,t,r={}){let n=mT(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=dT.exec(c)??pT.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&&un(e[a+1])&&(p=e[a+1],a+=1),p===void 0)throw new Error(`${c} requires a value`);if(d.type==="array"){let m=o[l]??[];m.push(d.coerce(p)),o[l]=m}else o[l]=d.coerce(p)}return{values:o,rest:i}}function wc(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 is(r,Object.keys(t.commands))}let s=t.keepArgvOnDefault??!0;return{command:t.default,args:s?[...e]:n}}var bc,dT,pT,is,_c=y(()=>{Im();bc=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}};dT=/^--([^=]+)(?:=([\s\S]*))?$/,pT=/^-([^-=])(?:=([\s\S]*))?$/;is=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 Gm(e){return fT.test(e)}var fT,Lm,Dm=y(()=>{fT=/rate limit exceeded|secondary rate limit|abuse detection mechanism|API rate limit|API rate limited|RATE_LIMITED|too many requests|\b429\b/i,Lm="wait for the GitHub rate limit window to reset, then retry: gh api rate_limit"});function T(e,t,r={}){return new jt(e,t,r)}function B(e,t){return new Cr(e,t)}function dn(e){return e instanceof Cr?e:e instanceof jt?new Cr(e.line,e.reason):new Cr(0,String(e&&e.message?e.message:e))}var ln,jt,Cr,Je=y(()=>{ln=class extends SyntaxError{line;source;reason;constructor(t,r={}){let n=r.line===void 0||r.line===0?"":`Line ${r.line}: `;super(n+t,r.cause===void 0?void 0:{cause:r.cause}),this.name="ToonDecodeError",this.line=r.line,this.source=r.source,this.reason=t}},jt=class extends SyntaxError{line;source;reason;constructor(t,r,n={}){super(t===0?r:`line ${t}: ${r}`,n.cause===void 0?void 0:{cause:n.cause}),this.name="ToonError",this.line=t,this.source=n.source,this.reason=r}},Cr=class extends Error{line;reason;constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}}});function Ar(e){return e instanceof Ec}var gT,Ec,cs=y(()=>{gT=/(?:^\uFEFF?|\n) *#/,Ec=class{value;constructor(t){if(gT.test(t))throw new TypeError(`Raw string must not contain a line starting with "#": ${JSON.stringify(t)}`);this.value=t}}});function Mo(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 Rt(e){return T(e,"invalid quoted string")}function ie(e,t){if(e==="")return"";if(e.startsWith('"'))return Fm(e,t);if(e.includes('"'))throw Rt(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:hT(e)?Number(e):e}function _e(e,t){let r=e.trim();if(r.startsWith('"'))return[Fm(r,t),!0];if(r.includes('"')||/\s/.test(r))throw T(t,"expected non-empty field name");return[r,!1]}function Fm(e,t){if(e.charCodeAt(0)!==34)throw Rt(t);let r="",n=1;for(;n<e.length;){$m.lastIndex=n;let s=$m.exec(e);if(s===null)break;if(s[0]==='"'){if(e.slice(s.index+1).trim()==="")return r+e.slice(n,s.index);throw Rt(t)}if(s[0]!=="\\")throw Rt(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 Rt(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw Rt(t);r+=String.fromCharCode(a),n+=4;break}default:throw Rt(t)}}throw Rt(t)}function jm(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 Rt(r);t=s+2;continue}if(n===-1)throw Rt(r);return n+1}}function Ve(e,t,r){if(e==="")return[];let n=[],s=0,o=0;for(;o<e.length;){let i=e.indexOf('"',o),a=e.indexOf(t,o);if(a!==-1&&(i===-1||a<i))n.push(e.slice(s,a).trim()),s=a+1,o=a+1;else if(i!==-1)o=jm(e,i+1,r);else break}return n.push(e.slice(s).trim()),n}function Y(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=jm(e,s+1,r)}return-1}function hT(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function yT(e){return/^[+-]?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function bT(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw T(0,"number is not representable in TOON");return String(e)}function kt(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function se(e,t){if(Ar(e))return e.value;if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return bT(e);if(typeof e=="string")return _T(e,t);throw T(0,"not a primitive")}function wT(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function J(e){return wT(e)?e:Bo(e)}function _T(e,t){return Rc(e,t)?Bo(e):e}function Rc(e,t){return e===""||/^[ \t]|[ \t]$/.test(e)||e==="true"||e==="false"||e==="null"||yT(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")||e.startsWith("#")}function Bo(e){return`"${Mm(e)}"`}function Mm(e){let t="",r=0;Nm.lastIndex=0;let n;for(;(n=Nm.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 it(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var ne,$m,Nm,at=y(()=>{Je();cs();ne=",";$m=/["\\\u0000-\u0008\u000a-\u001f]/g;Nm=/["\\\u0000-\u001f]/g});var Bm,Pr,Um,Ir=y(()=>{Bm=["type","kind","event"],Pr="|",Um=new Set(["order","discriminator","rows","common"])});function ET(e){let t=0;for(;t<e.length&&e[t]===" ";)t++;return e[t]==="#"}function*RT(e,t){for(let r of e){let n=t.push(r);n!==void 0&&(yield n)}}async function*kT(e,t){for await(let r of e){let n=t.push(r);n!==void 0&&(yield n)}}function xc(e,t){let r=Y(e,"[",t);if(r===-1)return null;let n=Y(e,":",t);if(n!==-1&&n<r)return null;let s=e.slice(0,r);if(s!==""&&/\s$/.test(s))throw T(t,"whitespace between key and bracket segment");let o=e.indexOf("]",r);if(o===-1)return null;let i=e.slice(r+1,o),a=!1,c=",",u=i.indexOf(":");if(u!==-1){let b=i.slice(u+1);if(i=i.slice(0,u),a=!0,b===" "||b==="|")c=b;else if(b!=="")throw T(t,"malformed bracket segment")}else(i.endsWith(" ")||i.endsWith("|"))&&(c=i.slice(-1),i=i.slice(0,-1));if(!ST.test(i))throw T(t,"malformed array header length");let l=Number(i),d=e.slice(o+1),p;if(d.startsWith("{")){let b=qm(d,t);p=Wm(d.slice(1,b),c,t),d=d.slice(b+1)}if(a&&p===void 0)throw T(t,"keyed header requires a field list");if(!d.startsWith(":"))throw T(t,"expected colon after array header");let m=St(d.slice(1));if((p!==void 0||a)&&m!=="")throw T(t,"unexpected content after fields-bearing header colon");return{key:s===""?void 0:_e(s,t)[0],length:l,delimiter:c,fields:p,keyed:a,inline:m===""?void 0:m}}function qm(e,t){let r=0,n=!1;for(let s=0;s<e.length;s++){let o=e[s];if(n){o==="\\"?s++:o==='"'&&(n=!1);continue}if(o==='"')n=!0;else if(o==="{")r++;else if(o==="}"&&(r--,r===0))return s}throw T(t,"malformed tabular header fields")}function Wm(e,t,r){let n=[],s=0,o=0,i=!1,a=c=>{n.push(TT(c,t,r))};for(let c=0;c<e.length;c++){let u=e[c];if(i){u==="\\"?c++:u==='"'&&(i=!1);continue}u==='"'?i=!0:u==="{"?o++:u==="}"?o--:u===t&&o===0&&(a(e.slice(s,c)),s=c+1)}return a(e.slice(s)),n}function TT(e,t,r){let n=St(e);if(n==="")throw T(r,"empty field entry in header");let s=n.startsWith('"')?n.indexOf("{",vT(n,r)+1):n.indexOf("{");if(s===-1)return{name:_e(n,r)[0]};let o=qm(n.slice(s),r)+s;if(o!==n.length-1)throw T(r,"malformed tabular header fields");let i=Wm(n.slice(s+1,o),t,r);if(i.length===0)throw T(r,"empty field entry in header");return{name:_e(n.slice(0,s),r)[0],children:i}}function vT(e,t){for(let r=1;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]==='"')return r;throw T(t,"invalid quoted string")}function Oc(e){let t=0;for(let r of e)t+=r.children===void 0?1:Oc(r.children);return t}function Cc(e,t,r){let n=new Set;for(let s of e){if(n.has(s.name)&&r.strict)throw T(t,"duplicate field name in header");n.add(s.name),s.children!==void 0&&Cc(s.children,t,r)}}function St(e){let t=0,r=e.length;for(;t<r&&e[t]===" ";)t++;for(;r>t&&e[r-1]===" ";)r--;return e.slice(t,r)}function Ac(e,t,r){if(St(e)==="")return[];let n=[],s=0,o=!1;for(let i=0;i<e.length;i++){let a=e[i];if(o){a==="\\"?i++:a==='"'&&(o=!1);continue}a==='"'?o=!0:a===t&&(n.push(St(e.slice(s,i))),s=i+1)}return n.push(St(e.slice(s))),n}function Jm(e,t){return Y(e,":",t)!==-1}function Vm(e,t){try{return _e(e,t)[0]}catch(r){if(e.startsWith('"'))throw r;return e}}function Km(e){let t=e?.maxDepth??1e3;return{indentSize:e?.indentSize??e?.indent??2,strict:e?.strict??!0,maxDepth:t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t))}}function*zm(e){let t=new Sc,r=yield*t.peek();if(r===void 0){yield{type:"startObject",line:1},yield{type:"endObject",line:1};return}if(r.depth!==0)throw T(r.number,"invalid indentation");if(yield*t.peek(1),r.content==="[]"){yield*t.take(e),yield{type:"startArray",length:0,line:r.number},yield{type:"endArray",line:r.number},yield*kc(t,e);return}let n=null,s=!1;try{n=xc(r.content,r.number)}catch(o){if(e.strict)throw o;s=!0}if(n!=null&&Ho(n.fields,r.number,e),n!=null&&!s&&n.key===void 0){yield*t.take(e),n.keyed?yield*Qm(t,r,n,e):yield*Ic(t,r,n,e),yield*kc(t,e);return}if((n===null||s)&&!Jm(r.content,r.number)&&(yield*t.peek(1))===void 0){yield*t.take(e),yield{type:"primitive",value:ie(St(r.content),r.number),line:r.number};return}yield*Ym(t,0,r.number,e),yield*kc(t,e)}function*kc(e,t){let r=yield*e.peek();if(r!==void 0&&t.strict)throw T(r.number,"expected end of document");e.stop()}function*Ym(e,t,r,n){yield{type:"startObject",line:r};let s=new Set;for(;;){let o=yield*e.peek();if(o===void 0||o.depth<t)break;if(o.depth>t)throw T(o.number,"over-indented line");yield*e.take(n),yield*Tc(e,o,o.content,t,n,s)}yield{type:"endObject",line:e.lastNumber(r)}}function*Tc(e,t,r,n,s,o){let i=null;try{i=xc(r,t.number)}catch(l){if(s.strict)throw l;i=null}if(i!=null)if(Ho(i.fields,t.number,s),i.key===void 0){if(s.strict)throw T(t.number,"keyless header is only valid at the root or as a list item");i=null}else{vc(o,i.key,t.number,s),yield{type:"key",key:i.key,line:t.number},i.keyed?yield*Qm(e,{...t,depth:n},i,s):yield*Ic(e,{...t,depth:n},i,s);return}let a=Y(r,":",t.number);if(a===-1)throw T(t.number,"expected key-value line");let c=Vm(St(r.slice(0,a)),t.number),u=St(r.slice(a+1));if(vc(o,c,t.number,s),yield{type:"key",key:c,line:t.number},u===""){let l=yield*e.peek();if(l!==void 0&&l.depth>n){if(l.depth!==n+1)throw T(l.number,"over-indented line");yield*Ym(e,n+1,l.number,s)}else yield{type:"startObject",line:t.number},yield{type:"endObject",line:t.number};return}if(u==="[]"){yield{type:"startArray",length:0,line:t.number},yield{type:"endArray",line:t.number};return}yield{type:"primitive",value:ie(u,t.number),line:t.number}}function vc(e,t,r,n){if(e.has(t)&&n.strict)throw T(r,"duplicate object key");e.add(t)}function*Ic(e,t,r,n){if(yield{type:"startArray",length:r.length,line:t.number},r.fields!==void 0){Cc(r.fields,t.number,n),yield*OT(e,t,r,n);return}if(r.inline!==void 0){let i=Ac(r.inline,r.delimiter,t.number);Gc(i.length,r.length,t.number,"inline-form values",n);for(let a of i)yield{type:"primitive",value:ie(a,t.number),line:t.number};yield{type:"endArray",line:t.number};return}let s=0;for(;;){let i=yield*e.peek();if(i===void 0||i.depth<=t.depth)break;if(i.depth!==t.depth+1)throw T(i.number,"over-indented line");if(!i.content.startsWith("- ")&&i.content!=="-")break;yield*e.take(n),s===0&&e.spanActive++,s++,yield*xT(e,i,n)}s>0&&e.spanActive--;let o=e.lastNumber(t.number);if(n.strict&&s!==r.length)throw T(o,`expected ${r.length} list items, but got ${s}`);yield{type:"endArray",line:o}}function*xT(e,t,r){if(t.content==="-"){yield{type:"startObject",line:t.number},yield{type:"endObject",line:t.number};return}let n=St(t.content.slice(2));if(n==="[]"){yield{type:"startArray",length:0,line:t.number},yield{type:"endArray",line:t.number};return}let s=null;try{s=xc(n,t.number)}catch(o){if(r.strict)throw o;s=null}if(s!=null&&s.key===void 0){if(Ho(s.fields,t.number,r),s.keyed||s.fields!==void 0){if(r.strict)throw T(t.number,"keyless fields-bearing header is only valid at the root");yield{type:"primitive",value:ie(n,t.number),line:t.number};return}yield*Ic(e,t,s,r);return}if(s!=null&&s.key!==void 0||Jm(n,t.number)){yield{type:"startObject",line:t.number};let o=new Set;for(yield*Tc(e,t,n,t.depth+1,r,o);;){let i=yield*e.peek();if(i===void 0||i.depth!==t.depth+1||i.content.startsWith("- ")||i.content==="-")break;yield*e.take(r),yield*Tc(e,i,i.content,t.depth+1,r,o)}yield{type:"endObject",line:e.lastNumber(t.number)};return}yield{type:"primitive",value:ie(n,t.number),line:t.number}}function*OT(e,t,r,n){let s=r.fields,o=Oc(s),i=t.depth+1,a=0;for(;;){let u=yield*e.peek();if(u===void 0||u.depth<=t.depth)break;if(u.depth!==i)throw T(u.number,"over-indented line");if(!CT(u.content,r.delimiter,u.number))break;yield*e.take(n),a===0&&e.spanActive++,a++;let l=Ac(u.content,r.delimiter,u.number);Gc(l.length,o,u.number,"row cells",n),yield*Lc(s,l,{next:0},u.number)}a>0&&e.spanActive--;let c=e.lastNumber(t.number);if(n.strict&&a!==r.length)throw T(c,`expected ${r.length} tabular rows, but got ${a}`);yield{type:"endArray",line:c}}function CT(e,t,r){let n=Y(e,":",r);if(n===-1)return!0;let s=Y(e,t,r);return s===-1?!1:s<n}function*Lc(e,t,r,n){yield{type:"startObject",line:n};for(let s of e)if(yield{type:"key",key:s.name,line:n},s.children===void 0){let o=t[r.next++]??"";yield{type:"primitive",value:ie(o,n),line:n}}else yield*Lc(s.children,t,r,n);yield{type:"endObject",line:n}}function*Qm(e,t,r,n){let s=r.fields;Cc(s,t.number,n);let o=Oc(s),i=t.depth+1;yield{type:"startObject",line:t.number};let a=new Set,c=0;for(;;){let l=yield*e.peek();if(l===void 0||l.depth<=t.depth)break;if(l.depth!==i)throw T(l.number,"over-indented line");let d=Y(l.content,":",l.number);if(d===-1){if(n.strict)throw T(l.number,"expected a keyed entry row");yield*e.take(n);continue}yield*e.take(n),c===0&&e.spanActive++,c++;let p=Vm(St(l.content.slice(0,d)),l.number);vc(a,p,l.number,n),yield{type:"key",key:p,line:l.number};let m=Ac(l.content.slice(d+1),r.delimiter,l.number);Gc(m.length,o,l.number,"entry row cells",n),yield*Lc(s,m,{next:0},l.number)}c>0&&e.spanActive--;let u=e.lastNumber(t.number);if(n.strict&&c!==r.length)throw T(u,`expected ${r.length} entry rows, but got ${c}`);yield{type:"endObject",line:u}}function Gc(e,t,r,n,s){if(s.strict&&e!==t)throw T(r,`expected ${t} ${n}, but got ${e}`)}function Xm(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw T(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function Ho(e,t,r,n=1){if(e!==void 0){Xm(n,t,r);for(let s of e)s.children!==void 0&&Ho(s.children,t,r,n+1)}}function*Zm(e,t){let r=Km(t),n=new Uo(r),s=RT(e,n),o=zm(r),i=o.next();try{for(;!i.done;)if(i.value===Pc){let a=s.next();i=o.next(a.done?void 0:a.value)}else yield i.value,i=o.next()}catch(a){throw tf(a,n)}finally{o.return(),s.return(void 0)}}async function*ef(e,t){let r=Km(t),n=new Uo(r),s=kT(e,n),o=zm(r),i=o.next();try{for(;!i.done;)if(i.value===Pc){let a=await s.next();i=o.next(a.done?void 0:a.value)}else yield i.value,i=o.next()}catch(a){throw tf(a,n)}finally{o.return(),await s.return(void 0)}}function tf(e,t){return!(e instanceof jt)||e.source!==void 0?e:new ln(e.reason,{line:e.line,source:t.sourceByLine.get(e.line),cause:e})}function rf(e,t){return Symbol.asyncIterator in e?ef(e,t):Zm(e,t)}var Uo,ST,Pc,Hm,Sc,Dc=y(()=>{Je();at();Ir();Uo=class{ctx;sourceByLine=new Map;number=0;blankPending=!1;firstLine=!0;constructor(t){this.ctx=t}push(t){let r=t;if(this.number++,this.sourceByLine.set(this.number,t),this.firstLine&&(r.startsWith("\uFEFF")&&(r=r.slice(1)),this.firstLine=!1),r.endsWith("\r")&&(r=r.slice(0,-1)),r=r.replace(/ +$/,""),r.trim()===""){this.blankPending=!0;return}if(ET(r))return;let n=0,s=0,o=0;for(;n<r.length&&(r[n]===" "||r[n]===" ");){if(r[n]===" "){if(this.ctx.strict)throw T(this.number,"tab used as indentation");s++}else o++;n++}let i;if(o%this.ctx.indentSize===0)i=o/this.ctx.indentSize;else{if(this.ctx.strict)throw T(this.number,"invalid indentation");i=Math.floor(o/this.ctx.indentSize)}i+=s,Xm(i,this.number,this.ctx);let a={number:this.number,depth:i,content:r.slice(n),blankBefore:this.blankPending};return this.blankPending=!1,a}};ST=/^(0|[1-9]\d*)$/;Pc=Symbol("need line"),Hm=2,Sc=class{lines=[];ended=!1;previous;spanActive=0;*peek(t=0){if(t>=Hm)throw new Error(`decoder lookahead exceeds ${Hm} classified lines`);for(;!this.ended&&this.lines.length<=t;){let r=yield Pc;r===void 0?this.ended=!0:this.lines.push(r)}return this.lines[t]}*take(t){let r=yield*this.peek();if(r===void 0)throw new Error("decoder attempted to read past end of input");if(this.lines.shift(),t.strict&&this.spanActive>0&&r.blankBefore)throw T(r.number,"blank line inside a header span");return this.previous=r,r}lastNumber(t){return this.previous===void 0?t:this.previous.number}stop(){this.lines.length=0,this.ended=!0}}});function ae(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var us=y(()=>{});function Wo(e){if(!ae(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let s=AT(n,1);if(s===void 0)return e;it(t,r,s)}return t}function AT(e,t){if(!ae(e)||!PT(e))return;let{order:r,discriminator:n,rows:s}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(s)||s<0)throw Ee(t);let o=IT(r,s,t),i=e.common,a=i===void 0?Array.from({length:s},()=>({})):i;if(!Array.isArray(a)||a.length!==s||!a.every(ae))throw of(t);let c=new Map;for(let[d,p]of Object.entries(e))if(!Um.has(d)){if(!Array.isArray(p)||!p.every(ae))throw Ee(t);c.set(d,p)}if(c.size===0)throw Ee(t);let u=new Map,l=o.map((d,p)=>{let m=c.get(d);if(m===void 0)throw $c(t);let f=u.get(d)??0,b=m[f];if(b===void 0)throw $c(t);return u.set(d,f+1),LT(n,d,a[p],b,t)});for(let[d,p]of c)if((u.get(d)??0)!==p.length)throw $c(t);return l}function PT(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function IT(e,t,r){if(!e.startsWith("cycle("))throw Ee(r);let n=e.slice(6),s=n.indexOf(")*");if(s===-1)throw Ee(r);let o=n.slice(0,s),i=n.slice(s+2);if(o===""||i.includes("+tail("))throw Ee(r);let a=o.split(",").map(l=>NT(l,r));if(a.some(l=>l===""))throw Ee(r);let c=$T(i,r),u=a.length*c;if(!Number.isSafeInteger(u))throw Ee(r);if(u!==t)throw of(r);return Array.from({length:u},(l,d)=>a[d%a.length])}function LT(e,t,r,n,s){let o={};it(o,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw Ee(s);it(o,i,a)}for(let[i,a]of Object.entries(GT(n,s))){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw Ee(s);it(o,i,a)}return o}function GT(e,t){let r={};for(let[n,s]of Object.entries(e))DT(r,n.split("."),s,t);return qo(r,t)}function DT(e,t,r,n){if(t.some(o=>o===""))throw Ee(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],!ae(s))throw Ee(n)}}function qo(e,t){return Array.isArray(e)?e.map(r=>qo(r,t)):ae(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw Ee(t);return qo(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,qo(n,t)])):e}function $T(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw Ee(t);let r=Number(e);if(!Number.isSafeInteger(r))throw Ee(t);return r}function NT(e,t){try{return decodeURIComponent(e)}catch{throw Ee(t)}}function nf(e){return encodeURIComponent(e)}function Ee(e){return T(e,"invalid cyclic array wire")}function of(e){return T(e,"cyclic array length mismatch")}function $c(e){return T(e,"cyclic array group length mismatch")}function Jo(e){if(!ae(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[s,o]of t){let i=FT(o);if(i===void 0)return;r.push([s,i])}let n=[];for(let[s,o]of r)UT(n,s,o);return n.join("")}function FT(e){if(!Array.isArray(e)||e.length===0||!e.every(ae))return;let t=jT(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=MT(r);if(n===void 0)return;let s=BT(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)&&!Nc(d,l,u))return;o.get(c).push(u)}let i=[];for(let a of n.cycle){let c=o.get(a),u=qT(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 jT(e){return Bm.find(t=>e.every(r=>typeof r[t]=="string"))}function MT(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(nf).join(","),o=`cycle(${r.map(nf).join(",")})*${n}`;if(o.length<=s.length*.4)return{cycle:r,encoded:o,repeats:n}}}function BT(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(!HT(o)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,o))||!e.every(i=>kt(i[o])))break;r.push(o)}return r}function UT(e,t,r){e.push(J(t),`:
|
|
14
|
+
`),e.push(" order: ",se(r.order.encoded,Pr),`
|
|
15
|
+
`),e.push(" discriminator: ",se(r.discriminator,Pr),`
|
|
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=>
|
|
19
|
-
`)}function FT(e){return e!==""&&$c(e)}function Dc(e,t,r,n=new Set){if(!$c(t))return!1;if(Rt(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)=>Dc(o,`${t}.${i}`,r,n));return n.delete(e),s}if(se(e)){if(n.has(e))return!1;n.add(e);let s=Object.entries(e).every(([o,i])=>!o.includes(".")&&Dc(i,`${t}.${o}`,r,n));return n.delete(e),s}return!1}function jT(e){let t=Object.keys(e[0]??{});if(e.every(r=>MT(Object.keys(r),t)))return t.every($c)?t:void 0}function MT(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function $c(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}var cs=h(()=>{Je();it();Pr();as()});function rf(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 nf(e,t){let r=[],n=!1;return No(e).forEach((s,o)=>{let i=o+1;if(s.trim()===""){n=!0;return}let a=s.length-s.replace(/^ +/,"").length;if(s[a]===" ")throw S(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw S(i,"invalid indentation");let c=Math.floor(a/t.indent);St(c,i,t),r.push({number:i,depth:c,content:s.slice(a),blankBefore:n}),n=!1}),r}function St(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw S(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function ls(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,St(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}var Nc=h(()=>{Je();it();Pr()});function ln(e,t){let r=e[t]??e[e.length-1];return S(r===void 0?1:r.number,"array length mismatch")}function qo(e,t){if(t===-1)throw S(0,"array header missing colon");let r=e.slice(0,t),n=K(r,"[",0);if(n===-1)throw S(0,"invalid array header");let s,o;try{[s,o]=_e(r.slice(0,n),0)}catch{throw S(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw S(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 S(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 S(0,"invalid array header")}let p=i.slice(a+1),m,f;if(p==="")m=void 0,f=void 0;else if(p.startsWith("{")&&p.endsWith("}")&&p.length>=2)try{f=UT(p.slice(1,-1),d),m=jc(f)}catch(E){throw S(0,E.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw S(0,"invalid array header");return{key:s,keyQuoted:o,len:l,delimiter:d,fields:m,fieldTree:f}}function sf(e){let t=K(e,"{",0);if(t===-1||!e.endsWith("}"))throw S(0,"invalid keyed map header");let r,n;try{[r,n]=_e(e.slice(0,t),0)}catch{throw S(0,"invalid keyed map header")}if(r===""&&!n)throw S(0,"expected non-empty field name");let s=e.slice(t+1,-1),o=ee;(s.startsWith("|")||s.startsWith(" "))&&(o=s[0],s=s.slice(1));let i;try{i=BT(s,o,o)}catch(a){throw S(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:o,fields:i}}function BT(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 S(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,m]=_e(e.slice(d,s),0);if(p===""&&!m)throw S(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 S(0,"invalid array header");let E=e.slice(f,s);if(!of(E,r))throw S(0,"invalid array header");s+=1,n.push({path:[...c,p],listDelimiter:E})}else if(e[s]==="{"){s+=1;let f=n.length;if(o([...c,p],!0),e[s]!=="}"||n.length===f)throw S(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 S(0,"invalid array header");continue}if(u?e[s]==="}":s===e.length)break;throw S(0,"invalid array header")}if(l===0)throw S(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 S(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(af(n[c].path,n[u].path)||ds(n[c].path,n[u].path)||ds(n[u].path,n[c].path))throw S(0,"duplicate key");for(let c of n){let l=c.path.join("\0");if(a.has(l))throw S(0,"duplicate key");a.add(l)}return n}function UT(e,t){if(t!==ee&&e.includes(ee)&&(e.includes("[")||e.includes("{")))return Fc(e,ee,t);try{return Fc(e,t,t)}catch(r){if(t!==ee&&r.reason!=="duplicate key")return Fc(e,ee,t);throw r}}function Fc(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 S(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]=_e(e.slice(l,n),0);if(d===""&&!p)throw S(0,"invalid array header");let m={key:d};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw S(0,"invalid array header");let E=e.slice(f,n);n+=1;let b=HT(E);if(b!==void 0){if(b.delimiter!==r)throw S(0,"invalid array header");m.fixedLength=b.len,m.fixedDelimiter=b.delimiter}else if(of(E,r))m.listDelimiter=E;else throw S(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,m.children=s(!0),e[n]!=="}"||m.children.length===0)throw S(0,"invalid array header");n+=1}if(u.push(m),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw S(0,"invalid array header");continue}if(c?e[n]==="}":n===e.length)break;throw S(0,"invalid array header")}if(u.length===0)throw S(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 S(0,"invalid array header");let a=jc(i);for(let c=0;c<a.length;c+=1)for(let u=c+1;u<a.length;u+=1)if(af(a[c].path,a[u].path)||ds(a[c].path,a[u].path)||ds(a[u].path,a[c].path))throw S(0,"duplicate key");return i}function HT(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=ee;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function jc(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?jc(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function Wo(e,t,r){return e.listDelimiter===void 0?ne(t,r):Ve(t,e.listDelimiter,r).map(n=>ne(n,r))}function of(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function af(e,t){return e.length===t.length&&ds(e,t)}function ds(e,t){return t.every((r,n)=>e[n]===r)}function Jo(e,t){return S(t,e.reason??String(e.message))}var cf=h(()=>{Je();it()});function Vo(e,t){let r=rf(t),n=nf(e,r),s=n[0];if(s===void 0)return{};if(s.depth!==0)throw S(s.number,"invalid indentation");let o=n.length===1;if(o&&s.content.trim()==="[]")return[];if(s.content.startsWith("[")){ls(s.content,s.number,r);let u;try{u=qo(s.content,K(s.content,":",s.number))}catch(l){if(r.strict)throw Jo(l,s.number);u=void 0}if(u!==void 0)return JT(u,n,r)}if(o&&K(s.content,":",s.number)===-1)return ne(s.content.trim(),s.number);let i={index:0},a=Bc(n,i,0,r),c=n[i.index];if(c!==void 0)throw S(c.number,"expected end of document");return r.cyclicDiscriminatedArrays?Uo(a):a}function Bc(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 S(o.number,"invalid indentation");let{key:i,quoted:a,value:c}=qT(e,t,r,n);gf(s,i,a,c,n,o.number)}return s}function qT(e,t,r,n){let s=e[t.index],o=s.content,i=K(o,":",s.number);if(i===-1)throw S(s.number,"expected `key: value`");let a=o.slice(0,i),c=o.slice(i+1),u=K(a,"[",s.number),l=K(a,"{",s.number);if(l!==-1&&(u===-1||l<u)){ls(a,s.number,n);let f;try{f=sf(a)}catch(b){if(n.strict)throw Jo(b,s.number);t.index+=1;let y=Mc(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:y}}if(c.trim()!=="")throw S(s.number,"expected keyed map rows");let E=WT(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:E}}if(u!==-1){ls(a,s.number,n);let f;try{f=qo(a,i)}catch(b){if(n.strict)throw Jo(b,s.number);t.index+=1;let y=Mc(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:y}}if(f.key===""&&!f.keyQuoted)throw S(s.number,"expected non-empty field name");let E=Uc(f,c,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:E}}let[d,p]=_e(a,s.number);if(d===""&&!p)throw S(s.number,"expected non-empty field name");t.index+=1;let m=Mc(e,t,r,c,s.number,n);return{key:d,quoted:p,value:m}}function Mc(e,t,r,n,s,o){let i=n.trim();if(i==="[]")return[];if(i!=="")return ne(i,s);let a=e[t.index];return a!==void 0&&a.depth>r?Bc(e,t,r+1,o):{}}function WT(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 S(i.number,"invalid indentation");if(i.blankBefore&&s.strict)throw S(i.number,"blank line inside keyed map");let a=K(i.content,":",i.number);if(a===-1)throw S(i.number,"expected `key: value`");let[c,u]=_e(i.content.slice(0,a),i.number);if(c===""&&!u)throw S(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 S(i.number,"keyed map row length mismatch");let d={};e.fields.forEach((p,m)=>{pn(d,p.path,Wo(p,l[m],i.number),s,i.number)}),gf(o,c,u,d,s,i.number),r.index+=1}return o}function JT(e,t,r){let n=t[0],s=K(n.content,":",n.number);if(s===-1)throw S(n.number,"expected `key: value`");let o=n.content.slice(s+1),i={index:0},a=Uc(e,o,t,i,0,r),c=t[i.index];if(c!==void 0)throw S(c.number,"expected end of document");return a}function Uc(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 S(i,"expected tabular rows");return VT(e,e.fields,r,n,s+1,o)}if(a!==""){let c=Ve(a,e.delimiter,i).map(u=>ne(u,i));if(c.length!==e.len)throw S(i,"array length mismatch");return c}return ev(e,r,n,s+1,o)}function VT(e,t,r,n,s,o){if(e.fieldTree!==void 0&&XT(e.fieldTree))return KT(e,r,n,s,o);let i=[];for(;i.length<e.len;){let c=r[n.index];if(c===void 0)throw ln(r,n.index);if(c.depth<s)break;if(c.depth>s)throw S(c.number,"invalid indentation");if(c.blankBefore&&o.strict)throw S(c.number,"blank line inside array");if(!dn(c.content,e.delimiter,c.number))break;let u=Ve(c.content,e.delimiter,c.number);if(u.length!==t.length)throw S(c.number,"array row length mismatch");let l={};t.forEach((d,p)=>{pn(l,d.path,Wo(d,u[p],c.number),o,c.number)}),i.push(l),n.index+=1}if(i.length!==e.len)throw ln(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=s&&dn(a.content,e.delimiter,a.number))throw S(a.number,"array length mismatch");return i}function KT(e,t,r,n,s){return uf(e.len,e.fieldTree,e.delimiter,t,r,n,s,!0)}function uf(e,t,r,n,s,o,i,a){let c=[],u=df(e,t,r,n,s.index,o,i);for(;c.length<e;){let d=n[s.index];if(d===void 0)throw ln(n,s.index);if(d.depth<o)break;if(d.depth>o)throw S(d.number,"invalid indentation");if(d.blankBefore&&i.strict)throw S(d.number,"blank line inside array");if(!dn(d.content,r,d.number))break;let p=Ve(d.content,r,d.number),m={cellIndex:0,nextIndex:s.index+1,flatWidth:Ko(t),childTableFields:u},f=lf(t,p,d.number,n,m,o+1,r,i);if(m.cellIndex!==p.length)throw S(d.number,"array row length mismatch");c.push(QT(t,f,a)),s.index=m.nextIndex}if(c.length!==e)throw ln(n,s.index);let l=n[s.index];if(l!==void 0&&l.depth>=o&&dn(l.content,r,l.number))throw S(l.number,"array length mismatch");return c}function lf(e,t,r,n,s,o,i,a){let c={};return e.forEach((u,l)=>{let d=e.slice(l+1),p=zT(u,d,t,r,n,s,o,i,a);pn(c,[u.key],p,a,r)}),c}function zT(e,t,r,n,s,o,i,a,c){if(e.fixedLength!==void 0){if(o.cellIndex+e.fixedLength>r.length)throw S(n,"array row length mismatch");let l=r.slice(o.cellIndex,o.cellIndex+e.fixedLength).map(d=>ne(d,n));return o.cellIndex+=e.fixedLength,l}if(e.children!==void 0){let l=Ko(e.children),d=r[o.cellIndex],p=mf(d),m=r.length-o.cellIndex-1,f=s[o.nextIndex],E=f!==void 0&&f.depth===i,b=o.childTableFields===void 0?void 0:o.childTableFields.has(e);if(b===void 0?p!==void 0&&(E||r.length!==o.flatWidth&&m<l+ZT(t)):b){if(p===void 0)throw S(n,"array row length mismatch");return o.cellIndex+=1,uf(p,e.children,a,s,{get index(){return o.nextIndex},set index(R){o.nextIndex=R}},i,c,!1)}return lf(e.children,r,n,s,o,i,a,c)}let u=r[o.cellIndex];if(u===void 0)throw S(n,"array row length mismatch");return o.cellIndex+=1,Wo(e,u,n)}function df(e,t,r,n,s,o,i){let a=t.filter(l=>l.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let c,u=1<<a.length;for(let l=0;l<u;l+=1){let d=new Set;a.forEach((m,f)=>{l&1<<f&&d.add(m)});let p=pf(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 pf(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||!dn(p.content,n,p.number))return;let m=Ve(p.content,n,p.number),f=YT(t,r,m,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&&dn(l.content,n,l.number))return}catch{return}return{nextIndex:c,consumedChildRows:u}}function YT(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=mf(r[c]);if(p===void 0)return;c+=1;let m=df(p,d.children,n,s,u,i,a);if(m===void 0)return;let f=pf(p,d.children,m,n,s,u,i,a);if(f===void 0)return;u=f.nextIndex,l+=p+f.consumedChildRows}else c+=Ko(d.children);else c+=1;if(c>r.length)return}if(c===r.length)return{nextIndex:u,consumedChildRows:l}}function QT(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function mf(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function XT(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Ko(e){return e.reduce((t,r)=>t+ff(r),0)}function ff(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Ko(e.children):1}function ZT(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+ff(r),0)}function dn(e,t,r){let n=K(e,":",r);if(n===-1)return!0;let s=K(e,t,r);return s===-1?!1:s<n}function ev(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 ln(t,r.index);if(a.depth>n)throw S(a.number,"invalid indentation");if(a.blankBefore&&s.strict)throw S(a.number,"blank line inside array");o.push(tv(t,r,n,s))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw S(i.number,"array length mismatch");return o}function tv(e,t,r,n){let s=e[t.index];if(!s.content.startsWith("-"))throw S(s.number,"expected array item");let o=s.content.slice(1).replace(/^\s+/,"");if(o==="")return t.index+=1,{};if(o.startsWith("[")){let i=K(o,":",s.number);ls(o,s.number,n);let a;try{a=qo(o,i)}catch{a=void 0}if(a!==void 0){let c=o.slice(i+1);return Uc(a,c,e,t,r,n)}}if(K(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 Bc(i,{index:0},r+1,n)}return t.index+=1,ne(o,s.number)}function gf(e,t,r,n,s,o){if(s.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(rv)){pn(e,i,n,s,o);return}}pn(e,[t],n,s,o)}function pn(e,t,r,n,s){St(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 S(s,"duplicate key");ot(e,o,r);return}if(i&&!se(e[o])){if(n.strict)throw S(s,"path expansion conflict");ot(e,o,{})}else i||ot(e,o,{});pn(e[o],t.slice(1),r,n,s)}function rv(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var zo=h(()=>{Je();it();as();Nc();cs();cf()});function Fe(e){if(e===null)return null;if(Cr(e))return e;if(typeof e=="object"&&e!==null&&"toJSON"in e&&typeof e.toJSON=="function"){let t=e.toJSON();if(t!==e)return Fe(t)}if(typeof e=="string")return hf(e,"string value"),e;if(typeof e=="boolean")return e;if(typeof e=="number")return Object.is(e,-0)?0:Number.isFinite(e)?e:null;if(typeof e=="bigint")return e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER?Number(e):e.toString();if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Fe);if(e instanceof Set)return Array.from(e,Fe);if(e instanceof Map){let t={};for(let[r,n]of e)mn(t,String(r),Fe(n));return t}if(Pe(e)){let t={};for(let r of Object.keys(e))hf(r,"object key"),mn(t,r,Fe(e[r]));return t}return null}function hf(e,t){if(nv.test(e))for(let r=0;r<e.length;r+=1){let n=e.charCodeAt(r);if(n<55296||n>57343)continue;let s=e.charCodeAt(r+1);if(n<=56319&&s>=56320&&s<=57343){r+=1;continue}throw new TypeError(`Cannot encode ${t} containing an unpaired surrogate U+${n.toString(16).toUpperCase()} at index ${r}`)}}function Pe(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Tt(e){return e===null||Cr(e)||["string","number","boolean"].includes(typeof e)}function mn(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var nv,ps=h(()=>{is();nv=/[\uD800-\uDFFF]/});function Hc(e,t){let r=qc(e,t,[]),n=t("",r,[]);return n===void 0?r:Fe(n)}function qc(e,t,r){return Array.isArray(e)?ov(e,t,r):Pe(e)?sv(e,t,r):e}function sv(e,t,r){let n={};for(let[s,o]of Object.entries(e)){if(o===void 0)continue;let i=[...r,s],a=t(s,qc(o,t,i),i);a!==void 0&&mn(n,s,Fe(a))}return n}function ov(e,t,r){let n=[];for(let s=0;s<e.length;s+=1){let o=[...r,s],i=t(String(s),qc(e[s],t,o),o);i!==void 0&&n.push(Fe(i))}return n}var yf=h(()=>{ps()});function wf(e){let t=[],r,n=bf,s=o=>{let i=t[t.length-1];i===void 0?n=o:Array.isArray(i)?i.push(o):Object.defineProperty(i,r,{value:o,enumerable:!0,writable:!0,configurable:!0})};for(let o of e)switch(o.type){case"startObject":{let i={};s(i),t.push(i);break}case"startArray":{let i=[];s(i),t.push(i);break}case"endObject":case"endArray":t.pop();break;case"key":r=o.key;break;case"primitive":s(o.value);break}return n===bf?{}:n}function _f(e,t){let r=wf(Xm(e,t));return t?.reviver?Hc(r,t.reviver):r}function Yo(e,t){let{reviver:r,...n}=t??{},s;if(av(e)||t?.objectArrayColumns!==!1&&cv(e))s=Vo(e,{indent:t?.indentSize??t?.indent,strict:t?.strict,cyclicDiscriminatedArrays:!1,maxDepth:t?.maxDepth});else try{s=_f(iv(e),n)}catch(i){if(t?.objectArrayColumns===!1||!uv(e))throw i;s=Vo(e,{indent:t?.indentSize??t?.indent,strict:t?.strict,cyclicDiscriminatedArrays:!1,maxDepth:t?.maxDepth})}let o=t?.cyclicDiscriminatedArrays===!0?Uo(s):s;return r?Hc(o,r):o}function*iv(e){let t=0;for(;;){let r=e.indexOf(`
|
|
20
|
-
`,t);if(r===-1){yield e.slice(t);return}yield e.slice(t,r),t=r+1}}function
|
|
21
|
-
`);for(let[i,a]of Object.entries(r)){
|
|
17
|
+
`),r.common.length>0&&sf(e,"common",r.common,r.commonRows);for(let n of r.groups)sf(e,n.label,n.fields,n.rows)}function sf(e,t,r,n){e.push(" ",J(t),"[",String(n.length),Pr,"]{",r.map(J).join(Pr),`}:
|
|
18
|
+
`);for(let s of n)e.push(" ",r.map(o=>se(s[o],Pr)).join(Pr),`
|
|
19
|
+
`)}function HT(e){return e!==""&&Fc(e)}function Nc(e,t,r,n=new Set){if(!Fc(t))return!1;if(kt(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)=>Nc(o,`${t}.${i}`,r,n));return n.delete(e),s}if(ae(e)){if(n.has(e))return!1;n.add(e);let s=Object.entries(e).every(([o,i])=>!o.includes(".")&&Nc(i,`${t}.${o}`,r,n));return n.delete(e),s}return!1}function qT(e){let t=Object.keys(e[0]??{});if(e.every(r=>WT(Object.keys(r),t)))return t.every(Fc)?t:void 0}function WT(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Fc(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}var ls=y(()=>{Je();at();Ir();us()});function af(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 cf(e,t){let r=[],n=!1;return Mo(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 T(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw T(i,"invalid indentation");let c=Math.floor(a/t.indent);Tt(c,i,t),r.push({number:i,depth:c,content:s.slice(a),blankBefore:n}),n=!1}),r}function Tt(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw T(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function ps(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,Tt(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}var jc=y(()=>{Je();at();Ir()});function pn(e,t){let r=e[t]??e[e.length-1];return T(r===void 0?1:r.number,"array length mismatch")}function Vo(e,t){if(t===-1)throw T(0,"array header missing colon");let r=e.slice(0,t),n=Y(r,"[",0);if(n===-1)throw T(0,"invalid array header");let s,o;try{[s,o]=_e(r.slice(0,n),0)}catch{throw T(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw T(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 T(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 T(0,"invalid array header")}let p=i.slice(a+1),m,f;if(p==="")m=void 0,f=void 0;else if(p.startsWith("{")&&p.endsWith("}")&&p.length>=2)try{f=VT(p.slice(1,-1),d),m=Bc(f)}catch(b){throw T(0,b.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw T(0,"invalid array header");return{key:s,keyQuoted:o,len:l,delimiter:d,fields:m,fieldTree:f}}function uf(e){let t=Y(e,"{",0);if(t===-1||!e.endsWith("}"))throw T(0,"invalid keyed map header");let r,n;try{[r,n]=_e(e.slice(0,t),0)}catch{throw T(0,"invalid keyed map header")}if(r===""&&!n)throw T(0,"expected non-empty field name");let s=e.slice(t+1,-1),o=ne;(s.startsWith("|")||s.startsWith(" "))&&(o=s[0],s=s.slice(1));let i;try{i=JT(s,o,o)}catch(a){throw T(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:o,fields:i}}function JT(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 T(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,m]=_e(e.slice(d,s),0);if(p===""&&!m)throw T(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 T(0,"invalid array header");let b=e.slice(f,s);if(!lf(b,r))throw T(0,"invalid array header");s+=1,n.push({path:[...c,p],listDelimiter:b})}else if(e[s]==="{"){s+=1;let f=n.length;if(o([...c,p],!0),e[s]!=="}"||n.length===f)throw T(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 T(0,"invalid array header");continue}if(u?e[s]==="}":s===e.length)break;throw T(0,"invalid array header")}if(l===0)throw T(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 T(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(df(n[c].path,n[u].path)||ms(n[c].path,n[u].path)||ms(n[u].path,n[c].path))throw T(0,"duplicate key");for(let c of n){let l=c.path.join("\0");if(a.has(l))throw T(0,"duplicate key");a.add(l)}return n}function VT(e,t){if(t!==ne&&e.includes(ne)&&(e.includes("[")||e.includes("{")))return Mc(e,ne,t);try{return Mc(e,t,t)}catch(r){if(t!==ne&&r.reason!=="duplicate key")return Mc(e,ne,t);throw r}}function Mc(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 T(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]=_e(e.slice(l,n),0);if(d===""&&!p)throw T(0,"invalid array header");let m={key:d};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw T(0,"invalid array header");let b=e.slice(f,n);n+=1;let _=KT(b);if(_!==void 0){if(_.delimiter!==r)throw T(0,"invalid array header");m.fixedLength=_.len,m.fixedDelimiter=_.delimiter}else if(lf(b,r))m.listDelimiter=b;else throw T(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,m.children=s(!0),e[n]!=="}"||m.children.length===0)throw T(0,"invalid array header");n+=1}if(u.push(m),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw T(0,"invalid array header");continue}if(c?e[n]==="}":n===e.length)break;throw T(0,"invalid array header")}if(u.length===0)throw T(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 T(0,"invalid array header");let a=Bc(i);for(let c=0;c<a.length;c+=1)for(let u=c+1;u<a.length;u+=1)if(df(a[c].path,a[u].path)||ms(a[c].path,a[u].path)||ms(a[u].path,a[c].path))throw T(0,"duplicate key");return i}function KT(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=ne;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function Bc(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?Bc(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function Ko(e,t,r){return e.listDelimiter===void 0?ie(t,r):Ve(t,e.listDelimiter,r).map(n=>ie(n,r))}function lf(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function df(e,t){return e.length===t.length&&ms(e,t)}function ms(e,t){return t.every((r,n)=>e[n]===r)}function zo(e,t){return T(t,e.reason??String(e.message))}var pf=y(()=>{Je();at()});function Yo(e,t){let r=af(t),n=cf(e,r),s=n[0];if(s===void 0)return{};if(s.depth!==0)throw T(s.number,"invalid indentation");let o=n.length===1;if(o&&s.content.trim()==="[]")return[];if(s.content.startsWith("[")){ps(s.content,s.number,r);let u;try{u=Vo(s.content,Y(s.content,":",s.number))}catch(l){if(r.strict)throw zo(l,s.number);u=void 0}if(u!==void 0)return QT(u,n,r)}if(o&&Y(s.content,":",s.number)===-1)return ie(s.content.trim(),s.number);let i={index:0},a=Hc(n,i,0,r),c=n[i.index];if(c!==void 0)throw T(c.number,"expected end of document");return r.cyclicDiscriminatedArrays?Wo(a):a}function Hc(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 T(o.number,"invalid indentation");let{key:i,quoted:a,value:c}=zT(e,t,r,n);wf(s,i,a,c,n,o.number)}return s}function zT(e,t,r,n){let s=e[t.index],o=s.content,i=Y(o,":",s.number);if(i===-1)throw T(s.number,"expected `key: value`");let a=o.slice(0,i),c=o.slice(i+1),u=Y(a,"[",s.number),l=Y(a,"{",s.number);if(l!==-1&&(u===-1||l<u)){ps(a,s.number,n);let f;try{f=uf(a)}catch(_){if(n.strict)throw zo(_,s.number);t.index+=1;let h=Uc(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:h}}if(c.trim()!=="")throw T(s.number,"expected keyed map rows");let b=YT(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:b}}if(u!==-1){ps(a,s.number,n);let f;try{f=Vo(a,i)}catch(_){if(n.strict)throw zo(_,s.number);t.index+=1;let h=Uc(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:h}}if(f.key===""&&!f.keyQuoted)throw T(s.number,"expected non-empty field name");let b=qc(f,c,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:b}}let[d,p]=_e(a,s.number);if(d===""&&!p)throw T(s.number,"expected non-empty field name");t.index+=1;let m=Uc(e,t,r,c,s.number,n);return{key:d,quoted:p,value:m}}function Uc(e,t,r,n,s,o){let i=n.trim();if(i==="[]")return[];if(i!=="")return ie(i,s);let a=e[t.index];return a!==void 0&&a.depth>r?Hc(e,t,r+1,o):{}}function YT(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 T(i.number,"invalid indentation");if(i.blankBefore&&s.strict)throw T(i.number,"blank line inside keyed map");let a=Y(i.content,":",i.number);if(a===-1)throw T(i.number,"expected `key: value`");let[c,u]=_e(i.content.slice(0,a),i.number);if(c===""&&!u)throw T(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 T(i.number,"keyed map row length mismatch");let d={};e.fields.forEach((p,m)=>{fn(d,p.path,Ko(p,l[m],i.number),s,i.number)}),wf(o,c,u,d,s,i.number),r.index+=1}return o}function QT(e,t,r){let n=t[0],s=Y(n.content,":",n.number);if(s===-1)throw T(n.number,"expected `key: value`");let o=n.content.slice(s+1),i={index:0},a=qc(e,o,t,i,0,r),c=t[i.index];if(c!==void 0)throw T(c.number,"expected end of document");return a}function qc(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 T(i,"expected tabular rows");return XT(e,e.fields,r,n,s+1,o)}if(a!==""){let c=Ve(a,e.delimiter,i).map(u=>ie(u,i));if(c.length!==e.len)throw T(i,"array length mismatch");return c}return ov(e,r,n,s+1,o)}function XT(e,t,r,n,s,o){if(e.fieldTree!==void 0&&nv(e.fieldTree))return ZT(e,r,n,s,o);let i=[];for(;i.length<e.len;){let c=r[n.index];if(c===void 0)throw pn(r,n.index);if(c.depth<s)break;if(c.depth>s)throw T(c.number,"invalid indentation");if(c.blankBefore&&o.strict)throw T(c.number,"blank line inside array");if(!mn(c.content,e.delimiter,c.number))break;let u=Ve(c.content,e.delimiter,c.number);if(u.length!==t.length)throw T(c.number,"array row length mismatch");let l={};t.forEach((d,p)=>{fn(l,d.path,Ko(d,u[p],c.number),o,c.number)}),i.push(l),n.index+=1}if(i.length!==e.len)throw pn(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=s&&mn(a.content,e.delimiter,a.number))throw T(a.number,"array length mismatch");return i}function ZT(e,t,r,n,s){return mf(e.len,e.fieldTree,e.delimiter,t,r,n,s,!0)}function mf(e,t,r,n,s,o,i,a){let c=[],u=gf(e,t,r,n,s.index,o,i);for(;c.length<e;){let d=n[s.index];if(d===void 0)throw pn(n,s.index);if(d.depth<o)break;if(d.depth>o)throw T(d.number,"invalid indentation");if(d.blankBefore&&i.strict)throw T(d.number,"blank line inside array");if(!mn(d.content,r,d.number))break;let p=Ve(d.content,r,d.number),m={cellIndex:0,nextIndex:s.index+1,flatWidth:Qo(t),childTableFields:u},f=ff(t,p,d.number,n,m,o+1,r,i);if(m.cellIndex!==p.length)throw T(d.number,"array row length mismatch");c.push(rv(t,f,a)),s.index=m.nextIndex}if(c.length!==e)throw pn(n,s.index);let l=n[s.index];if(l!==void 0&&l.depth>=o&&mn(l.content,r,l.number))throw T(l.number,"array length mismatch");return c}function ff(e,t,r,n,s,o,i,a){let c={};return e.forEach((u,l)=>{let d=e.slice(l+1),p=ev(u,d,t,r,n,s,o,i,a);fn(c,[u.key],p,a,r)}),c}function ev(e,t,r,n,s,o,i,a,c){if(e.fixedLength!==void 0){if(o.cellIndex+e.fixedLength>r.length)throw T(n,"array row length mismatch");let l=r.slice(o.cellIndex,o.cellIndex+e.fixedLength).map(d=>ie(d,n));return o.cellIndex+=e.fixedLength,l}if(e.children!==void 0){let l=Qo(e.children),d=r[o.cellIndex],p=yf(d),m=r.length-o.cellIndex-1,f=s[o.nextIndex],b=f!==void 0&&f.depth===i,_=o.childTableFields===void 0?void 0:o.childTableFields.has(e);if(_===void 0?p!==void 0&&(b||r.length!==o.flatWidth&&m<l+sv(t)):_){if(p===void 0)throw T(n,"array row length mismatch");return o.cellIndex+=1,mf(p,e.children,a,s,{get index(){return o.nextIndex},set index(w){o.nextIndex=w}},i,c,!1)}return ff(e.children,r,n,s,o,i,a,c)}let u=r[o.cellIndex];if(u===void 0)throw T(n,"array row length mismatch");return o.cellIndex+=1,Ko(e,u,n)}function gf(e,t,r,n,s,o,i){let a=t.filter(l=>l.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let c,u=1<<a.length;for(let l=0;l<u;l+=1){let d=new Set;a.forEach((m,f)=>{l&1<<f&&d.add(m)});let p=hf(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 hf(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||!mn(p.content,n,p.number))return;let m=Ve(p.content,n,p.number),f=tv(t,r,m,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&&mn(l.content,n,l.number))return}catch{return}return{nextIndex:c,consumedChildRows:u}}function tv(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=yf(r[c]);if(p===void 0)return;c+=1;let m=gf(p,d.children,n,s,u,i,a);if(m===void 0)return;let f=hf(p,d.children,m,n,s,u,i,a);if(f===void 0)return;u=f.nextIndex,l+=p+f.consumedChildRows}else c+=Qo(d.children);else c+=1;if(c>r.length)return}if(c===r.length)return{nextIndex:u,consumedChildRows:l}}function rv(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function yf(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function nv(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Qo(e){return e.reduce((t,r)=>t+bf(r),0)}function bf(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Qo(e.children):1}function sv(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+bf(r),0)}function mn(e,t,r){let n=Y(e,":",r);if(n===-1)return!0;let s=Y(e,t,r);return s===-1?!1:s<n}function ov(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 pn(t,r.index);if(a.depth>n)throw T(a.number,"invalid indentation");if(a.blankBefore&&s.strict)throw T(a.number,"blank line inside array");o.push(iv(t,r,n,s))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw T(i.number,"array length mismatch");return o}function iv(e,t,r,n){let s=e[t.index];if(!s.content.startsWith("-"))throw T(s.number,"expected array item");let o=s.content.slice(1).replace(/^\s+/,"");if(o==="")return t.index+=1,{};if(o.startsWith("[")){let i=Y(o,":",s.number);ps(o,s.number,n);let a;try{a=Vo(o,i)}catch{a=void 0}if(a!==void 0){let c=o.slice(i+1);return qc(a,c,e,t,r,n)}}if(Y(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 Hc(i,{index:0},r+1,n)}return t.index+=1,ie(o,s.number)}function wf(e,t,r,n,s,o){if(s.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(av)){fn(e,i,n,s,o);return}}fn(e,[t],n,s,o)}function fn(e,t,r,n,s){Tt(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 T(s,"duplicate key");it(e,o,r);return}if(i&&!ae(e[o])){if(n.strict)throw T(s,"path expansion conflict");it(e,o,{})}else i||it(e,o,{});fn(e[o],t.slice(1),r,n,s)}function av(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var Xo=y(()=>{Je();at();us();jc();ls();pf()});function Fe(e){if(e===null)return null;if(Ar(e))return e;if(typeof e=="object"&&e!==null&&"toJSON"in e&&typeof e.toJSON=="function"){let t=e.toJSON();if(t!==e)return Fe(t)}if(typeof e=="string")return _f(e,"string value"),e;if(typeof e=="boolean")return e;if(typeof e=="number")return Object.is(e,-0)?0:Number.isFinite(e)?e:null;if(typeof e=="bigint")return e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER?Number(e):e.toString();if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Fe);if(e instanceof Set)return Array.from(e,Fe);if(e instanceof Map){let t={};for(let[r,n]of e)gn(t,String(r),Fe(n));return t}if(Pe(e)){let t={};for(let r of Object.keys(e))_f(r,"object key"),gn(t,r,Fe(e[r]));return t}return null}function _f(e,t){if(cv.test(e))for(let r=0;r<e.length;r+=1){let n=e.charCodeAt(r);if(n<55296||n>57343)continue;let s=e.charCodeAt(r+1);if(n<=56319&&s>=56320&&s<=57343){r+=1;continue}throw new TypeError(`Cannot encode ${t} containing an unpaired surrogate U+${n.toString(16).toUpperCase()} at index ${r}`)}}function Pe(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function vt(e){return e===null||Ar(e)||["string","number","boolean"].includes(typeof e)}function gn(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var cv,fs=y(()=>{cs();cv=/[\uD800-\uDFFF]/});function Wc(e,t){let r=Jc(e,t,[]),n=t("",r,[]);return n===void 0?r:Fe(n)}function Jc(e,t,r){return Array.isArray(e)?lv(e,t,r):Pe(e)?uv(e,t,r):e}function uv(e,t,r){let n={};for(let[s,o]of Object.entries(e)){if(o===void 0)continue;let i=[...r,s],a=t(s,Jc(o,t,i),i);a!==void 0&&gn(n,s,Fe(a))}return n}function lv(e,t,r){let n=[];for(let s=0;s<e.length;s+=1){let o=[...r,s],i=t(String(s),Jc(e[s],t,o),o);i!==void 0&&n.push(Fe(i))}return n}var Ef=y(()=>{fs()});function kf(e){let t=[],r,n=Rf,s=o=>{let i=t[t.length-1];i===void 0?n=o:Array.isArray(i)?i.push(o):Object.defineProperty(i,r,{value:o,enumerable:!0,writable:!0,configurable:!0})};for(let o of e)switch(o.type){case"startObject":{let i={};s(i),t.push(i);break}case"startArray":{let i=[];s(i),t.push(i);break}case"endObject":case"endArray":t.pop();break;case"key":r=o.key;break;case"primitive":s(o.value);break}return n===Rf?{}:n}function Sf(e,t){let r=kf(rf(e,t));return t?.reviver?Wc(r,t.reviver):r}function Zo(e,t){let{reviver:r,...n}=t??{},s;if(pv(e)||t?.objectArrayColumns!==!1&&mv(e))s=Yo(e,{indent:t?.indentSize??t?.indent,strict:t?.strict,cyclicDiscriminatedArrays:!1,maxDepth:t?.maxDepth});else try{s=Sf(dv(e),n)}catch(i){if(t?.objectArrayColumns===!1||!fv(e))throw i;s=Yo(e,{indent:t?.indentSize??t?.indent,strict:t?.strict,cyclicDiscriminatedArrays:!1,maxDepth:t?.maxDepth})}let o=t?.cyclicDiscriminatedArrays===!0?Wo(s):s;return r?Wc(o,r):o}function*dv(e){let t=0;for(;;){let r=e.indexOf(`
|
|
20
|
+
`,t);if(r===-1){yield e.slice(t);return}yield e.slice(t,r),t=r+1}}function pv(e){return Tf(e).some(t=>[...t.matchAll(/\[([^\]]*)\]/g)].some(([,r])=>!/^(?:0|[1-9]\d*)(?:\t|\|)?$/.test(r)))}function mv(e){return Tf(e).some(t=>/\[(?:0|[1-9]\d*)(?:\t|\|)?\]/.test(t))}function Tf(e){return e.split(/\r?\n/).flatMap(t=>{let r=t.indexOf("]");if(r===-1)return[];let n=t.indexOf("{",r+1);if(n===-1)return[];let s=t.lastIndexOf("}");return s>n?[t.slice(n+1,s)]:[]})}function fv(e){return e.split(/\r?\n/).some(t=>{let r=t.indexOf("{",t.indexOf("]")+1),n=t.lastIndexOf("}");if(r===-1||n<=r)return!1;let s=t.slice(r+1,n);return s.includes("{")||/\[(?:0|[1-9]\d*)(?:\t|\|)?\]/.test(s)})}var Rf,gs=y(()=>{Dc();ls();Xo();Ef();Rf=Symbol("unset")});function vf(e,t){let r=t("",e,[]);return r===void 0?Vc(e,t,[]):Kc(e,r,t,[])}function Kc(e,t,r,n){return Ar(t)&&(Array.isArray(e)||Pe(e))?Vc(e,r,n):Vc(Fe(t),r,n)}function Vc(e,t,r){return Array.isArray(e)?hv(e,t,r):Pe(e)?gv(e,t,r):e}function gv(e,t,r){let n={};for(let[s,o]of Object.entries(e)){let i=[...r,s],a=t(s,o,i);a!==void 0&&gn(n,s,Kc(o,a,t,i))}return n}function hv(e,t,r){let n=[];for(let s=0;s<e.length;s+=1){let o=[...r,s],i=t(String(s),e[s],o);i!==void 0&&n.push(Kc(e[s],i,t,o))}return n}var xf=y(()=>{fs();cs()});function hs(e){let t=Object.keys(e[0]??{});if(t.length===0)return;for(let n of e)if(!Pe(n)||Object.keys(n).length!==t.length||t.some(s=>!Object.prototype.hasOwnProperty.call(n,s)))return;let r=[];for(let n of t){let s=e.map(i=>i[n]);if(s.every(vt)){r.push({name:n});continue}if(!s.every(i=>Pe(i)&&Object.keys(i).length>0))return;let o=hs(s);if(o===void 0)return;r.push({name:n,children:o})}return r}function ei(e){let t=Object.values(e);if(!(t.length<2)&&t.every(r=>Pe(r)&&Object.keys(r).length>0))return hs(t)}function hn(e,t){let r=[];for(let n of t)n.children===void 0?r.push(e[n.name]):r.push(...hn(e[n.name],n.children));return r}var Of=y(()=>{fs()});function ti(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??ne;if(![ne,"|"," "].includes(n))throw T(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=Jo(e);if(i!==void 0)return i}let o=[];return Array.isArray(e)?Xc(o,void 0,e,0,!1,s):ae(e)?Cf(o,e,0,s):o.push(se(e,n)),o.join("")}function yn(e,t){e.push(" ".repeat(t*2))}function Cf(e,t,r,n){Tt(r,0,n);for(let[s,o]of Object.entries(t))yn(e,r),Yc(e,s,o,r,n)}function Yc(e,t,r,n,s){if(Tt(n,0,s),Array.isArray(r)){Xc(e,t,r,n,!1,s);return}if(ae(r)){let o=s.keyedMapCollapse?bv(r,s,n+1):void 0;if(o!==void 0){e.push(J(t),"{",Zc(s.delimiter),o.fields.map(i=>ru(i,s.delimiter)).join(s.delimiter),`}:
|
|
21
|
+
`);for(let[i,a]of Object.entries(r)){yn(e,n+1);let c=[];e.push(J(i),": ",o.paths.map(u=>nu(tu(a,u.path),u,s.delimiter,s,c,n+2)).join(s.delimiter),`
|
|
22
22
|
`),e.push(...c)}return}e.push(J(t),`:
|
|
23
|
-
`),
|
|
24
|
-
`)}function
|
|
23
|
+
`),Cf(e,r,n+1,s);return}e.push(J(t),": ",se(r,s.delimiter),`
|
|
24
|
+
`)}function Xc(e,t,r,n,s,o){if(Tt(n,0,o),r.length===0){t!==void 0?e.push(J(t),`: []
|
|
25
25
|
`):s?e.push(`[0]:
|
|
26
26
|
`):e.push(`[]
|
|
27
|
-
`);return}if(r.every(
|
|
28
|
-
`);return}let i=s?void 0:
|
|
29
|
-
`);for(let a of r){
|
|
30
|
-
`),e.push(...c)}return}
|
|
31
|
-
`);for(let a of r)
|
|
32
|
-
`);return}e.push("- "),
|
|
33
|
-
`)}function
|
|
34
|
-
`),e.push(...i)}}function
|
|
35
|
-
`)}function
|
|
36
|
-
`)}if(t.primitiveArrayColumns===!0||t.objectArrayColumns===!0){let u=
|
|
37
|
-
`)}return
|
|
38
|
-
`}function
|
|
39
|
-
`}function
|
|
40
|
-
`,f=()=>
|
|
41
|
-
`;return
|
|
42
|
-
`},end(){return d?"":(d=!0,m())}}}var
|
|
43
|
-
`)}function
|
|
44
|
-
`).trim()}var
|
|
45
|
-
`,{encoding:"utf8",mode:384}),
|
|
46
|
-
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=
|
|
27
|
+
`);return}if(r.every(kt)){zc(e,t,r.length,void 0,o.delimiter),e.push(" "),e.push(r.map(a=>se(a,o.delimiter)).join(o.delimiter)),e.push(`
|
|
28
|
+
`);return}let i=s?void 0:Af(r,o,n+1);if(i!==void 0){zc(e,t,r.length,i.fields,o.delimiter),e.push(`
|
|
29
|
+
`);for(let a of r){yn(e,n+1);let c=[];e.push(i.paths.map(u=>nu(tu(a,u.path),u,o.delimiter,o,c,n+2)).join(o.delimiter)),e.push(`
|
|
30
|
+
`),e.push(...c)}return}zc(e,t,r.length,void 0,o.delimiter),e.push(`
|
|
31
|
+
`);for(let a of r)yn(e,n+1),yv(e,a,n+1,o)}function yv(e,t,r,n){if(Tt(r,0,n),Array.isArray(t)){e.push("- "),Xc(e,void 0,t,r,!0,n);return}if(ae(t)){let s=Object.entries(t);if(s.length===0){e.push(`-
|
|
32
|
+
`);return}e.push("- "),Yc(e,s[0][0],s[0][1],r+1,n);for(let[o,i]of s.slice(1))yn(e,r+1),Yc(e,o,i,r+1,n);return}e.push("- ",se(t,n.delimiter),`
|
|
33
|
+
`)}function zc(e,t,r,n,s){t!==void 0&&e.push(J(t)),e.push("[",String(r),Zc(s),"]"),n!==void 0&&e.push("{",n.map(o=>ru(o,s)).join(s),"}"),e.push(":")}function Zc(e){return e===ne?"":e}function Af(e,t,r){let n=wv(e,t);if(n!==void 0)return n;let s=Qc(e.map(o=>({value:o})),t,r);return s===void 0?void 0:{fields:s,paths:eu(s)}}function bv(e,t,r){let n=Object.values(e);if(!(n.length<2))return Af(n,t,r)}function Qc(e,t,r){Tt(r,0,t);let n=e[0]?.value;if(!ae(n))return;let s=Object.keys(n).map(o=>({key:o}));if(s.length!==0){for(let{value:o}of e)if(!ae(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})=>kt(c)))continue;if(t.primitiveArrayColumns&&i.every(({value:c})=>Array.isArray(c)&&c.every(kt))){o.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:c})=>Array.isArray(c))){let c=Pf(i.map(({value:l})=>l));if(c!==void 0){o.fixedLength=c.fixedLength,o.fixedDelimiter=t.delimiter;continue}let u=Qc(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=Qc(i,t,r+1);if(a===void 0)return;o.children=a}return s}}function wv(e,t){if(!t.objectArrayColumns)return;let r=Pf(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function Pf(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(kt)))return{fixedLength:t}}function eu(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}]:eu(r.children,n)})}function tu(e,t){let r=e;for(let n of t)r=r[n];return r}function ru(e,t){return e.listDelimiter!==void 0?`${J(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${J(e.key)}[${e.fixedLength}${Zc(t)}]`:e.children===void 0?J(e.key):`${J(e.key)}{${e.children.map(r=>ru(r,t)).join(t)}}`}function nu(e,t,r,n,s,o){return t.childFields!==void 0?(_v(s,e,t.childFields,n,o),String(e.length)):t.fixedLength!==void 0?e.map(i=>se(i,r)).join(r):t.listDelimiter===void 0?se(e,r):e.map(i=>Ev(i,r,t.listDelimiter)).join(t.listDelimiter)}function _v(e,t,r,n,s){for(let o of t){yn(e,s);let i=[];e.push(eu(r).map(a=>nu(tu(o,a.path),a,n.delimiter,n,i,s+1)).join(n.delimiter)),e.push(`
|
|
34
|
+
`),e.push(...i)}}function Ev(e,t,r){return typeof e!="string"?se(e,t):Rc(e,t)||e.includes(r)?Bo(e):e}var su=y(()=>{Je();at();Ir();us();jc();ls()});function D(e,t={}){return Array.from(If(e,t)).join(`
|
|
35
|
+
`)}function If(e,t={}){let r=t.delimiter??",";if(![",","|"," "].includes(r))throw new TypeError("invalid delimiter");let n=Math.max(1,Math.floor(t.indentSize??t.indent??2)),s=t.maxDepth??1e3,o=s===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(s)),i=Fe(e),a=t.replacer?vf(i,t.replacer):i,c={delimiter:r,indentSize:n,maxDepth:o};if(t.cyclicDiscriminatedArrays===!0){let u=Jo(a);if(u!==void 0)return u.trimEnd().split(`
|
|
36
|
+
`)}if(t.primitiveArrayColumns===!0||t.objectArrayColumns===!0){let u=ti(a,{delimiter:r,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,maxDepth:o}),l=ti(a,{delimiter:r,maxDepth:o});if(u!==l)return u.trimEnd().split(`
|
|
37
|
+
`)}return Rv(a,c)}function Rv(e,t){if(vt(e))return[se(e,t.delimiter)];if(Array.isArray(e))return Gf(void 0,e,0,t);let r=ei(e);return r===void 0?ri(e,0,t):Lf(void 0,e,r,0,t)}function ri(e,t,r){return bn(t,r),Object.entries(e).flatMap(([n,s])=>kv(n,s,t,r))}function kv(e,t,r,n){let s=fe(r,n)+J(e);if(vt(t))return[`${s}: ${se(t,n.delimiter)}`];if(Array.isArray(t))return Gf(e,t,r,n);let o=ei(t);if(o!==void 0)return Lf(e,t,o,r,n);let i=[`${s}:`];return Object.keys(t).length>0&&i.push(...ri(t,r+1,n)),i}function Lf(e,t,r,n,s){bn(n,s);let o=Object.entries(t);ys(r,n+1,s);let i=[fe(n,s)+ct(e,o.length,r,s.delimiter,!0)];for(let[a,c]of o)i.push(fe(n+1,s)+J(a)+": "+Lr(hn(c,r),s.delimiter));return i}function Gf(e,t,r,n){bn(r,n);let s=fe(r,n);if(t.length===0)return[e===void 0?`${s}[]`:`${s}${J(e)}: []`];if(t.every(vt))return[s+ct(e,t.length,void 0,n.delimiter)+" "+Lr(t,n.delimiter)];if(t.every(Pe)){let i=hs(t);if(i!==void 0)return Sv(e,t,i,r,n)}let o=[s+ct(e,t.length,void 0,n.delimiter)];for(let i of t)o.push(...ou(i,r+1,n));return o}function Sv(e,t,r,n,s){ys(r,n+1,s);let o=[fe(n,s)+ct(e,t.length,r,s.delimiter)];for(let i of t)o.push(fe(n+1,s)+Lr(hn(i,r),s.delimiter));return o}function ou(e,t,r){bn(t,r);let n=fe(t,r)+"-";if(vt(e))return[`${n} ${se(e,r.delimiter)}`];if(Array.isArray(e)){if(e.length===0)return[`${n} ${ct(void 0,0,void 0,r.delimiter)}`];if(e.every(vt))return[`${n} ${ct(void 0,e.length,void 0,r.delimiter)} ${Lr(e,r.delimiter)}`];let s=[`${n} ${ct(void 0,e.length,void 0,r.delimiter)}`];for(let o of e)s.push(...ou(o,t+1,r));return s}return Tv(e,t,r)}function Tv(e,t,r){bn(t,r);let n=Object.entries(e);if(n.length===0)return[fe(t,r)+"-"];let[[s,o],...i]=n,a=vv(s,o,t,r),c;if(a!==void 0)c=a;else if(vt(o))c=[fe(t,r)+"- "+J(s)+": "+se(o,r.delimiter)];else if(Array.isArray(o))if(o.length===0)c=[fe(t,r)+"- "+J(s)+": []"];else{c=[fe(t,r)+"- "+ct(s,o.length,void 0,r.delimiter)];for(let u of o)c.push(...ou(u,t+2,r))}else c=[fe(t,r)+"- "+J(s)+":"],Object.keys(o).length>0&&c.push(...ri(o,t+2,r));return i.length>0&&c.push(...ri(Object.fromEntries(i),t+1,r)),c}function vv(e,t,r,n){if(Array.isArray(t)&&t.length>0&&t.every(vt))return[fe(r,n)+"- "+ct(e,t.length,void 0,n.delimiter)+" "+Lr(t,n.delimiter)];if(Array.isArray(t)&&t.every(Pe)){let s=hs(t);if(s!==void 0){ys(s,r+1,n);let o=[fe(r,n)+"- "+ct(e,t.length,s,n.delimiter)];for(let i of t)o.push(fe(r+2,n)+Lr(hn(i,s),n.delimiter));return o}}if(Pe(t)){let s=ei(t);if(s!==void 0){ys(s,r+1,n);let o=Object.entries(t),i=[fe(r,n)+"- "+ct(e,o.length,s,n.delimiter,!0)];for(let[a,c]of o)i.push(fe(r+2,n)+J(a)+": "+Lr(hn(c,s),n.delimiter));return i}}}function ct(e,t,r,n,s=!1){let o=e===void 0?"":J(e),i=s?":":"",a=n===","?"":n,c=r===void 0?"":`{${Df(r,n)}}`;return`${o}[${t}${i}${a}]${c}:`}function Df(e,t){return e.map(r=>J(r.name)+(r.children===void 0?"":`{${Df(r.children,t)}}`)).join(t)}function Lr(e,t){return e.map(r=>se(r,t)).join(t)}function fe(e,t){return" ".repeat(e*t.indentSize)}function bn(e,t){if(t.maxDepth!==0&&e>t.maxDepth)throw T(0,`maximum nesting depth exceeded (maxDepth ${t.maxDepth})`)}function ys(e,t,r){bn(t,r);for(let n of e)n.children!==void 0&&ys(n.children,t+1,r)}var bs=y(()=>{at();Je();Ir();fs();xf();Of();ls();su()});var $f=y(()=>{});var Nf=y(()=>{Ir();Xo();us();su()});var Ff,Ov,jf=y(()=>{Ff={comma:",",tab:" ",pipe:"|"},Ov=Ff.comma});var Mf=y(()=>{Je();at();Xo();gs()});var Bf=y(()=>{bs()});function Av(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 Xf(e,t){if(!Qf.test(e))throw B(t,"invalid tag")}function Pv(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!Qf.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 Iv(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(!zf.includes(i)&&i!=="")throw B(t,"invalid header delimiter");let a=i===""?ne: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),Xf(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=Ve(l,a,t).map(p=>_e(p,t)[0])}catch(p){throw dn(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 Lv(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 Uf(e,t,r,n){let s;try{s=Ve(e,t,n)}catch(o){throw dn(o)}if(s.length!==r)throw B(n,"row arity mismatch");for(let o of s)try{ie(o,n)}catch(i){throw dn(i)}return s}function Gv(e,t,r){let n={};return e.forEach((s,o)=>{try{it(n,s,ie(t[o],r))}catch(i){throw dn(i)}}),n}function Dv(e,t,r){if(e.startsWith("- "))throw B(t,"reserved line prefix");let n=Av(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=Iv(e,t);if(s!==null)return s.continuation?(Lv(r,s,t),{kind:"continuation"}):s.tag!==null?{kind:"tag-header",header:s}:{kind:"header",header:s};let o=Pv(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:Uf(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:Uf(e,r.delimiter,r.fields.length,t)}}function $v(e,t={}){let r=[],n=new Map,s=[],o=[],i=null,a=!1,c=!1;function u(m,f){let b=o.at(-1);if(b!==void 0&&b.lane===m.lane&&b.delimiter===m.delimiter&&b.fieldText===m.fieldText){b.rows.push(f);return}o.push({lane:m.lane,delimiter:m.delimiter,fields:m.fields,fieldText:m.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(m,f,b){let _=n.get(m);if(_===void 0){if(n.size>=Yf)throw B(b,"too many tagged lanes");_={segments:[],current:null},n.set(m,_),r.push(m)}else _.current!==null&&_.segments.push(_.current);_.current={lane:m,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},_.delimiter=f.delimiter,_.fields=f.fields,_.fieldText=f.fieldText}if(Mo(e).forEach((m,f)=>{let b=f+1;if(m==="")return;let _=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},h=Dv(m,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,b);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 w=n.get(h.tag).current;w.rows.push(h.cells),u(w,h.cells);return}if(i===null)throw B(b,"row before header");i.rows.push(h.cells),u(i,h.cells)}}),!c)return l(),t.preserveInterleaving===!0,s;let p=[];l();for(let m of r){if(m===null){p.push(...s);continue}let f=n.get(m);p.push(...f.segments),f.current!==null&&p.push(f.current)}return t.preserveInterleaving===!0?o:p}function je(e){return $v(e).flatMap(t=>t.rows.map(r=>Gv(t.fields,r,0)))}function Nv(e){if(!zf.includes(e))throw B(0,"invalid header delimiter")}function Hf(e,t,r=!1){return`[${`${r?"~":""}${e===ne?"":e}`}]{${t}}:
|
|
38
|
+
`}function qf(e,t){return`[]<${e}>{${t}}:
|
|
39
|
+
`}function iu(e,t){return t.map(J).join(e)}function Fv(e){if(!Array.isArray(e)||e.length===0)throw B(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=_e(String(t),0)}catch(n){throw dn(n)}if(r==="")throw B(0,"TOONL header requires fields");return r})}function Wf(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Jf(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw B(0,"TOONL continuation cadence must be positive")}function jv(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function Vf(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=>!kt(e[r])))throw B(0,"TOONL rows must be flat objects");return t}function Mv(e){return JSON.stringify([...e].sort())}function Kf(e,t){let r=Mv(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function Me({delimiter:e=ne,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){Nv(e),Jf(r),Jf(n);let s=null,o="",i=new Map,a=0,c=0,u=0,l=new Map,d=!1,p={continuationEveryRows:r,continuationEveryBytes:n},m=()=>s===null||!t?"":`[=${a}]
|
|
40
|
+
`,f=()=>jv(p,c,u)?(c=0,u=0,Hf(e,o,!0)):"",b=_=>{Xf(_,0);let h=l.get(_);if(h===void 0){if(l.size>=Yf)throw B(0,"too many tagged lanes");h={fields:null,fieldsByShape:new Map},l.set(_,h)}return h};return{push(_){if(d)throw B(0,"TOONL encoder is closed");let h=Kf(Vf(_),i),w="";(s===null||s.length!==h.length||s.some((A,N)=>A!==h[N]))&&(w+=m(),s=h,o=iu(e,s),a=0,c=0,u=0,w+=Hf(e,o));let k=s.map(A=>se(_[A],e));w+=f();let x=`${k.join(e)}
|
|
41
|
+
`;return w+=x,a+=1,c+=1,u+=x.length,w},declareLane(_,h){if(d)throw B(0,"TOONL encoder is closed");let w=Fv(h),k=iu(ne,w),x=b(_);return Wf(x.fields,w)?"":(x.fields=w,qf(_,k))},pushTagged(_,h){if(d)throw B(0,"TOONL encoder is closed");let w=b(_),k=Kf(Vf(h),w.fieldsByShape),x=iu(ne,k),A=k.map(U=>se(h[U],ne)),N="";return Wf(w.fields,k)||(w.fields=k,N+=qf(_,x)),`${N}${_}:${A.join(ne)}
|
|
42
|
+
`},end(){return d?"":(d=!0,m())}}}var zf,Yf,Qf,l1,d1,Zf=y(()=>{Je();gs();bs();at();zf=[ne,"|"," "],Yf=8,Qf=/^[A-Za-z0-9_-]+$/,l1=new TextEncoder,d1=new TextDecoder});var z,q=y(()=>{gs();bs();$f();Je();Nf();jf();Mf();bs();cs();at();Dc();gs();Bf();Zf();z=Zo});function Uv(e){return e==="no-op"?0:e==="usage"?2:1}function W(e){return Buffer.from(`${D(au(e))}
|
|
43
|
+
`)}function au(e){let t={command:e.command,category:e.category,exit_code:e.exitCode??Uv(e.category),error:e.error,help:[e.help]};return e.validFlags&&e.validFlags.length>0&&(t.valid_flags=[...e.validFlags]),e.diagnostics&&(t.diagnostics=Hv(e.diagnostics,3)),t}function Ie(e,t,r){let s=([r,t].find(i=>i.trim())??"").trim(),o=s.toLowerCase();return/\bgh\b/.test(e)&&Gm(s)?{command:e,category:"transient",error:ws(s)||"GitHub API rate limit exceeded",help:Lm,diagnostics:s}:/\bgh\b/.test(e)&&(o.includes("gh_token")||o.includes("not logged in")||o.includes("authentication"))?{command:e,category:"real-error",error:ws(s)||"GitHub authentication failed",help:"gh auth login",diagnostics:s}:o.includes("not a git repository")?{command:e,category:"real-error",error:ws(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:ws(s)||"repository is unavailable",help:e.startsWith("gh ")?"gh repo view":"git remote -v",diagnostics:s}:{command:e,category:"real-error",error:ws(s)||"command failed",help:`${e} --help`,diagnostics:s}}function eg(e,t,r,n){return W({command:e,category:"usage",error:`unknown flag: ${t}`,help:n,validFlags:r})}function ws(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function Hv(e,t){return e.split(/\r?\n/).slice(0,t).join(`
|
|
44
|
+
`).trim()}var ut=y(()=>{"use strict";Dm();q()});function oi(e){let t={app:e,version:ex(_n("__RED_BUILD_VERSION__",()=>"3.17.0")??"0.0.0-dev"),gitSha:_n("__RED_BUILD_GIT_SHA__",()=>"edf32ce97c253b427bb8401f7566bc84af6170b3")??"unknown",buildTime:_n("__RED_BUILD_TIME__",()=>"2026-08-12T01:46:36-03:00")??"unknown",bundleAsset:_n("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},r=_n("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=_n("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function ex(e){return e.startsWith("v")?e.slice(1):e}function ug(e){return`${e.app} ${e.version} ${e.gitSha}`}function _n(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var uu=y(()=>{});import{isAbsolute as tx,join as Bt,resolve as lu}from"node:path";function sx(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}function dg(e){return Bt(sx(e),lg)}function pg(e){return Bt(dg(e),"state")}function mg(e){return Bt(dg(e),"tmp")}function oe(e){return Bt(pg(e),"rsp")}function ox(e){return Bt(pg(e),"red-skills.rdb")}function ix(e){return Bt(mg(e),"red-skills.rdb")}function hg(e,t){let r=ox(e);if(t(r))return r;let n=ix(e);if(t(n))throw ax();return r}function ax(){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 yg(e){return Bt(mg(e),"waits")}function bg(e){let t=e.overrideEnvVars??du;for(let n of t){let s=e.env[n];if(s)return tx(s)?s:lu(e.startDir,s)}let r=lu(e.startDir);for(;;){if(e.exists(Bt(r,lg)))return r;let n=Bt(r,".."),s=lu(n);if(s===r)break;r=s}return e.startDir}var lg,rx,nx,du,fg,gg,Be=y(()=>{lg=".red",rx="MEMORY_ROOT",nx="RED_BRAIN_ROOT",du=[rx,nx];fg=".red/state/red-skills.rdb";gg=".red/tmp/red-skills.rdb"});function pe(e){return D(e)}var cx,ux,nU,Ut=y(()=>{q();Be();cx=[{id:"memory.config",plugin:"memory",legacyPath:".red/memory/config.json",toonPath:".red/memory/config.toon",kind:"toon"}],ux=[{id:"dev.afk-history",plugin:"dev",legacyPath:".red/state/afk-history.jsonl",toonPath:".red/state/castle/history.toonl",kind:"toonl"},{id:"dev.agent-log",plugin:"dev",legacyPath:".red/tmp/agent.log.toonl",toonPath:".red/tmp/agent.log.toonl",kind:"toonl"},{id:"dev.supervisor-firehose",plugin:"dev",legacyPath:".red/tmp/afk-supervisor.log.toonl",toonPath:".red/tmp/supervisors/default/supervisor.log.toonl",kind:"toonl",migration:"sniff-read"},{id:"dev.code-understanding-bench-runs",plugin:"dev",legacyPath:".red/tmp/bench/code-understanding/runs.jsonl",toonPath:".red/tmp/bench/code-understanding/runs.toonl",kind:"toonl"},{id:"dev.attempt-state",plugin:"dev",legacyPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",toonPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",kind:"toon"},{id:"dev.statusline-count-cache",plugin:"dev",legacyPath:".red/tmp/statusline-cache.json",toonPath:".red/state/statusline/statusline-cache.toon",kind:"toon"},{id:"dev.statusline-repo-cache",plugin:"dev",legacyPath:".red/tmp/statusline-repo-cache.json",toonPath:".red/state/statusline/statusline-repo-cache.toon",kind:"toon"},{id:"dev.rsp-resident-registry",plugin:"dev",legacyPath:".red/state/rsp/rsp-resident.pid.json",toonPath:".red/state/rsp/rsp-resident.pid.toon",kind:"toon"},{id:"dev.rsp-status-summary",plugin:"dev",legacyPath:".red/state/rsp/rsp-status-summary.json",toonPath:".red/state/rsp/rsp-status-summary.toon",kind:"toon"},{id:"dev.rsp-wait-registry",plugin:"dev",legacyPath:".red/tmp/waits/*.json",toonPath:".red/tmp/waits/*.toon",kind:"toon"}],nU=[...cx,...ux]});function _s(e){let{values:t,rest:r}=Or(e,{query:wg.query},_g);return{argv:r,query:t.query?.trim()||void 0}}function Eg(e){let{values:t,rest:r}=Or(e,wg,_g);return{argv:r,query:t.query?.trim()||void 0,full:t.full===!0}}function lx(e,t){if(!t)return!0;let r=pu(e).toLowerCase();return t.toLowerCase().split(/\s+/).filter(Boolean).every(n=>r.includes(n))}function Te(e,t){return t?e.filter(r=>lx(r,t)):[...e]}function Ht(e,t){return mu(e,t,{includeLegacyHelp:!0})}function mu(e,t,r={}){let n=t.filter(Boolean);return n.length===0?e:{...e,...r.includeLegacyHelp?{help:n}:{},next_steps:n}}function pu(e){return Array.isArray(e)?e.map(pu).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(pu).join(" "):String(e??"")}var wg,_g,Es=y(()=>{"use strict";_c();wg={query:{kind:"value",coerce:e=>e},full:{kind:"boolean"}},_g={stopAtSeparator:!1}});var mi={};Z(mi,{DEFAULT_RSP_MAX_OVERHEAD_MS:()=>ii,DEFAULT_RSP_MAX_SELF_STATE_BYTES:()=>ai,DEFAULT_RSP_OVERHEAD_CEILING:()=>qt,DEFAULT_RSP_OVERHEAD_CONSECUTIVE_BREACHES:()=>ui,DEFAULT_RSP_OVERHEAD_COOLDOWN_MS:()=>li,DEFAULT_RSP_OVERHEAD_NET_LOSS_FLOOR_BYTES:()=>ci,RSP_OVERHEAD_FAMILIES:()=>yx,RSP_OVERHEAD_LEDGER_FILE:()=>Sg,RSP_OVERHEAD_SCHEMA_VERSION:()=>Tg,classifyOverheadSample:()=>hu,noteChildProcessMs:()=>xg,noteSelfStateBytesRead:()=>ks,overheadCounters:()=>Eu,overheadFamilyDisabled:()=>bx,overheadHealth:()=>or,overheadLedgerPath:()=>yu,overheadMsOf:()=>vg,overheadTelemetryFields:()=>di,readOverheadLedger:()=>Rs,readSelfStateFile:()=>pi,readSelfStateFileSync:()=>Ex,recordOverheadSample:()=>bu,resetOverheadCounters:()=>_x,resetOverheadLedger:()=>wx,startChildProcessTimer:()=>Ue});import{existsSync as dx,mkdirSync as px,readFileSync as Rg,renameSync as mx,writeFileSync as fx}from"node:fs";import{readFile as gx}from"node:fs/promises";import{dirname as hx,join as kg}from"node:path";function vg(e){let t=e.wrapperMs-e.childMs;return Number.isFinite(t)?Math.max(0,gu(t)):0}function hu(e,t=qt){let r=vg(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 di(e,t=qt){let r=hu(e,t);return{wrapper_ms:gu(e.wrapperMs),overhead_ms:r.overhead_ms,child_ms:gu(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 yu(e){return kg(oe(e),Sg)}function Rs(e){try{let t=Rg(yu(e),"utf8"),r=Tx(t);if(vx(r))return r}catch{}return{version:1,families:{}}}function bu(e,t,r=qt,n=Date.now()){let s=Rs(e),o=hu(t,r),i=s.families[t.family]??Sx(t.family,n),a=Ru(i,n)?Og(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=Rx(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,Cg(e,s),u}function bx(e,t,r=Date.now()){let n=Rs(e).families[t];return!n?.disabled||Ru(n,r)?null:n}function wx(e,t){let r=Rs(e);return t?delete r.families[t]:r.families={},Cg(e,r),r}function or(e,t=qt,r=Date.now()){let n=Object.values(Rs(e).families).map(a=>Ru(a,r)?Og(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:Tg,verdict:i,summary:kx(i,s,o),ceiling:t,breaching_families:o,disabled_families:s,families:n}}function ks(e){Number.isFinite(e)&&e>0&&(wu+=e)}function xg(e){Number.isFinite(e)&&e>0&&(_u+=e)}function Eu(){return{selfStateBytesRead:wu,childMs:_u}}function _x(){wu=0,_u=0}function Ue(){let e=process.hrtime.bigint(),t=!1;return()=>{t||(t=!0,xg(Number(process.hrtime.bigint()-e)/1e6))}}async function pi(e){let t=await gx(e,"utf8");return ks(Buffer.byteLength(t)),t}function Ex(e){let t=Rg(e,"utf8");return ks(Buffer.byteLength(t)),t}function Rx(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 kx(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 Ru(e,t){if(!e.disabled||!e.disabled_until)return!1;let r=Date.parse(e.disabled_until);return Number.isFinite(r)&&r<=t}function Og(e){return{...e,disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,consecutive_breaches:0,breached:!1,reasons:[]}}function Sx(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 Cg(e,t){try{let r=yu(e);if(!dx(kg(e,".red")))return;px(hx(r),{recursive:!0});let n=`${r}.${process.pid}.tmp`;fx(n,`${D(t)}
|
|
45
|
+
`,{encoding:"utf8",mode:384}),mx(n,r)}catch{}}function Tx(e){try{return JSON.parse(e)}catch{return z(e)}}function vx(e){return!fu(e)||e.version!==1||!fu(e.families)?!1:Object.values(e.families).every(xx)}function xx(e){return fu(e)&&typeof e.family=="string"&&typeof e.consecutive_breaches=="number"&&typeof e.disabled=="boolean"}function fu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function gu(e){return Number.isFinite(e)?Math.round(e*1e3)/1e3:0}var Sg,Tg,ii,ai,ci,ui,li,yx,qt,wu,_u,ge=y(()=>{"use strict";Be();q();Sg="overhead-budget.toon",Tg="red.rsp.overhead.v1",ii=250,ai=1024*1024,ci=64*1024,ui=3,li=6*60*60*1e3,yx=["git","gh","gh-api-json","vitest","cargo","cat","exec","proxy"],qt={maxOverheadMs:ii,maxSelfStateBytes:ai,netLossFloorBytes:ci,consecutiveBreaches:ui,cooldownMs:li};wu=0,_u=0});function Ig(e){return e.trimStart().startsWith("{")?"json":"toon"}function Su(e){let t=0;for(;e[t]===`
|
|
46
|
+
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=Ig(r);if(n==="json"){let o=r.indexOf(`
|
|
47
47
|
`);return o<0?null:{frame:r.slice(0,o),dialect:n,rest:r.slice(o+1)}}let s=r.indexOf(`
|
|
48
48
|
|
|
49
|
-
`);return s<0?null:{frame:r.slice(0,s+1),dialect:n,rest:r.slice(s+2)}}function
|
|
49
|
+
`);return s<0?null:{frame:r.slice(0,s+1),dialect:n,rest:r.slice(s+2)}}function Tu(e){let t=Ig(e)==="json"?ku:Ag,r=t===ku?Ag:ku;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function ku(e){return JSON.parse(e)}function Ag(e){return z(e)}function vu(e,t){if(t==="toon"){let r=Cx(e);if(r!==null)return r.endsWith(`
|
|
50
50
|
`)?`${r}
|
|
51
51
|
`:`${r}
|
|
52
52
|
|
|
53
53
|
`}return`${JSON.stringify(e)}
|
|
54
|
-
`}function
|
|
55
|
-
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:c,reaped:i};let u=await
|
|
56
|
-
`,1)[0]?.trim()??"";if(!t.startsWith(
|
|
54
|
+
`}function Cx(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=D(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function Lg(e,t){return!Pg(e)||!Pg(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Pg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Dg(e){return Gg.has(e)?"json":Ox}function $g(e){Gg.add(e)}var Ox,Gg,Ng=y(()=>{q();Ox="toon";Gg=new Set});import{createHash as Ax}from"node:crypto";import{constants as xu}from"node:fs";import{mkdir as jg,open as Px,readFile as Ix,rm as Mg,stat as Lx}from"node:fs/promises";import{createConnection as Gx}from"node:net";import{tmpdir as Dx}from"node:os";import{dirname as Bg,join as Ss}from"node:path";async function Ug(e,t,r="resident server"){let n=e.wire,s=n??Dg(e.socketPath),o=await Fg(e,t,r,s);return n||s==="json"||!Lg(t,o)?o:($g(e.socketPath),await Fg(e,t,r,"json"))}async function Fg(e,t,r,n){let s=e.timeoutMs??1e3;return await new Promise((o,i)=>{let a=Gx(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(vu(t,n))}),a.on("data",p=>{u+=p.toString("utf8");let m=Su(u);m&&(u=m.rest,d(()=>{try{o(Tu(m.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 Hg(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",s=>{n+=s;let o=Su(n);if(!o)return;n=o.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(vu(a,o.dialect))}catch{}};(async()=>{let a;try{a=Tu(o.frame),await t(a,i)}catch(c){r(c,a,i)}finally{e.end()}})()})}async function Ou(e){await jg(Bg(e),{recursive:!0,mode:448});try{return await Px(e,xu.O_CREAT|xu.O_EXCL|xu.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}async function Wg(e,t={}){let r=t.maxAgeMs??Nx,n=t.now??Date.now,s=t.pid??process.pid,o=t.isPidAlive??ir;await jg(Bg(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let c=await Ou(e);if(c)return await c.writeFile(`${qg} pid=${s} taken=${new Date(n()).toISOString()}
|
|
55
|
+
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:c,reaped:i};let u=await Mx(e),l=await Ux(e,u,n());if(a>=Fx||l==null)return{acquired:!1,lockPath:e,holder:u,ageMs:l};let d=jx(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 Mg(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function Jg(e){await e.handle.close().catch(()=>{}),await Mg(e.lockPath,{force:!0})}function jx(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function Vg(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 Mx(e){try{return Bx(await Ix(e,"utf8"))}catch{return null}}function Bx(e){let t=e.split(`
|
|
56
|
+
`,1)[0]?.trim()??"";if(!t.startsWith(qg))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 Ux(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 Lx(e)).mtimeMs)}catch{return null}}function ir(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function Cu(e,t=1e3){if(!ir(e))return;try{process.kill(e,"SIGTERM")}catch{return}let r=Date.now()+t;for(;Date.now()<r;){if(!ir(e))return;await new Promise(n=>setTimeout(n,50))}try{process.kill(e,"SIGKILL")}catch{}}function Kg(e){let t=e.env??process.env,r=Ax("sha256").update(e.key).digest("hex").slice(0,20),n=c=>Ss(c,e.socketFileName).length<$x,s=t.XDG_RUNTIME_DIR;if(s){let c=Ss(s,"red-skills",r);if(n(c))return c}let o=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Ss(`red-skills-${o}`,r),a=Ss(Dx(),i);return n(a)||process.platform==="win32"?a:Ss(Hx,i)}var $x,Nx,qg,Fx,Hx,fi=y(()=>{Ng();$x=108;Nx=6e4,qg="resident-spawn-lock v1",Fx=3;Hx="/tmp"});async function En(e,t){return await Ug(e,t,"resident rsp server")}var Au=y(()=>{fi()});var zg=y(()=>{"use strict";Au()});import{existsSync as qx,readdirSync as Wx}from"node:fs";import{homedir as Jx}from"node:os";import{basename as Iu,dirname as Pu,join as Ke,resolve as gi}from"node:path";function Vx(e){return"command"in e}function hi(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??qx,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&&Yx(i))return a(gi(i),"caller-entry");let c=[];for(let[u,l]of Xx(i,t.rootDir,r,t.listDir??rO))if(c.push(u),n(u))return a(u,l);return{diagnostic:Wt,searched:c,...i?{callerEntry:gi(i)}:{}}}function Qg(e={},t={}){let r=hi(e,t);if(Vx(r))return r;throw new Rn(r)}function Yx(e){let t=Iu(e);return t===Gr||Lu.test(t)||t==="rsp"||t==="rsp.mjs"||t==="rsp.js"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:Qx(gi(e))}function Qx(e){let t=Pu(e);for(let r=0;r<4;r++){if(Iu(t)==="rsp")return!0;let n=Pu(t);if(n===t)return!1;t=n}return!1}function*Xx(e,t,r,n){if(e){let o=Pu(gi(e));yield[Ke(o,Gr),"caller-sibling-bundle"];let i=Kx.exec(Iu(e));i&&(yield[Ke(o,`rsp-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Ke(o,"..","dist",Gr),"caller-sibling-bundle"]}for(let o of zx){let i=r[o];i&&(yield[Ke(i,"dist",Gr),"plugin-root-bundle"],yield[Ke(i,"..","..","dist",Gr),"plugin-root-bundle"])}t&&(yield[Ke(t,"dist",Gr),"repo-bundle"],yield[Ke(t,"apps","rsp","dist","cli.js"),"workspace-entry"],yield[Ke(t,"node_modules","@reddb-io","rsp","dist","cli.js"),"node-modules-entry"]);let s=Zx(r);yield[Ke(s,Gr),"bundle-cache"];for(let o of eO(s,n))yield[Ke(s,o),"bundle-cache"]}function Zx(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Ke(e.HOME||Jx(),".cache");return Ke(t,"red-skills","bundles")}function eO(e,t){return t(e).filter(r=>Lu.test(r)).sort((r,n)=>tO(Yg(n),Yg(r)))}function Yg(e){return Lu.exec(e)?.[1]??""}function tO(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 rO(e){try{return Wx(e)}catch{return[]}}var Wt,Rn,Gr,Kx,Lu,zx,Gu=y(()=>{Wt="rsp-resident-entry-unresolved";Rn=class extends Error{code=Wt;searched;callerEntry;constructor(t){super(`${Wt}: no rsp entrypoint found for the resident auto-spawn${t.callerEntry?` (caller entry: ${t.callerEntry})`:""}
|
|
57
57
|
searched:
|
|
58
58
|
${t.searched.map(r=>` ${r}`).join(`
|
|
59
|
-
`)}`),this.name="RspResidentEntryError",this.searched=t.searched,this.callerEntry=t.callerEntry}},
|
|
60
|
-
`)});if(r.acquired)try{if(await
|
|
61
|
-
`,{encoding:"utf8",mode:384}),await
|
|
59
|
+
`)}`),this.name="RspResidentEntryError",this.searched=t.searched,this.callerEntry=t.callerEntry}},Gr="rsp.bundle.min.mjs",Kx=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Lu=/^rsp-(.+)\.bundle\.min\.mjs$/,zx=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});import{randomUUID as rh}from"node:crypto";import{spawn as nh}from"node:child_process";import{readFileSync as nO}from"node:fs";import{mkdir as Nu,readFile as sh,rename as sO,rm as Vt,stat as oO,writeFile as iO}from"node:fs/promises";import{dirname as Dr,join as Jt,resolve as Fu}from"node:path";import{fileURLToPath as aO}from"node:url";function ze(e){let t=wO(e)??Fu(e),r=bO(t),n=oe(t);return{rootDir:t,socketPath:Jt(r,"rsp.sock"),pidPath:Jt(r,"rsp.pid"),lockPath:Jt(r,"rsp.lock"),wakeLockPath:Jt(t,".red","tmp","rsp","wake.lock"),summaryPath:Jt(n,"rsp-status-summary.toon"),registryPath:Jt(n,"rsp-resident.pid.toon")}}async function yi(e,t){if(await Nu(Dr(e.socketPath),{recursive:!0,mode:448}),await eh(e.socketPath,t))return;await Zg(e,t);let r=await Wg(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)
|
|
60
|
+
`)});if(r.acquired)try{if(await eh(e.socketPath,t))return;await Zg(e,t),await lO(e.socketPath);let n=pO(e,t);await Xg(e.socketPath,n);return}finally{await Jg(r)}try{await Xg(e.socketPath)}catch(n){throw new Error(`${n instanceof Error?n.message:String(n)}; ${Vg(r)}`)}}async function $r(e,t=200){try{return await ih(e,t)!=null}catch{return!1}}async function ih(e,t=200){let r=await En({socketPath:e,timeoutMs:t},{id:rh(),op:"ping"});return r.ok?dh(r.value)?{version:kO(r.value.version)}:{}:null}async function bi(e,t){if(await Nu(Dr(e.socketPath),{recursive:!0,mode:448}),await $r(e.socketPath,50))return!1;let r=await dO(e.wakeLockPath);if(!r)return!1;await r.close();let[n,s]=uh(e,t);return nh(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 ah(e,t){try{await yi(e,t)}finally{await Vt(e.wakeLockPath,{force:!0})}}async function vs(e){try{let t=gO(await sh(e,"utf8"));return SO(t)?t:null}catch{return null}}async function wi(e,t){let r={version:oh,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 Nu(Dr(e),{recursive:!0});let n=`${e}.${process.pid}.${Date.now()}.tmp`;await iO(n,`${D(r)}
|
|
61
|
+
`,{encoding:"utf8",mode:384}),await sO(n,e)}async function _i(e,t=process.pid){try{let r=await vs(e);if(r&&r.pid!==t)return;await Vt(e,{force:!0})}catch{}}async function Ts(e){let t=await vs(e.registryPath);if(!t)try{return await sh(e.registryPath,"utf8"),{registry_path:e.registryPath,state:"invalid"}}catch{return{registry_path:e.registryPath,state:"missing"}}if(!ir(t.pid))return{registry_path:e.registryPath,state:"registered-dead",entry:t};let r=await $r(t.socket_path,100);return r&&await yO(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 ch(e){let t=await Ts(e);return t.state==="registered-dead"||t.state==="invalid"?(await Vt(e.registryPath,{force:!0}),await Ts(e)):(t.state==="registered-alive-socket-dead"||t.state==="registered-alive-store-missing")&&t.entry?(await Cu(t.entry.pid),await Vt(e.registryPath,{force:!0}),await Vt(t.entry.socket_path,{force:!0}),await Ts(e)):t}async function Xg(e,t){let r=Date.now()+uO(),n;for(;Date.now()<r;){if(await $r(e))return;if(t){let s=t.spawnError();if(s)throw new Error(Du("resident rsp server spawn failed",t,s));if(t.child.exitCode!=null||t.child.signalCode!=null)throw new Error(Du("resident rsp server exited before ready",t))}await new Promise(s=>setTimeout(s,50))}throw n instanceof Error?n:new Error(t?Du("resident rsp server did not start",t):"resident rsp server did not start")}function uO(){let e=Number(process.env.RSP_RESIDENT_READY_TIMEOUT_MS??"");return Number.isFinite(e)&&e>0?e:cO}async function lO(e){await Vt(e,{force:!0})}function pO(e,t){let[r,n]=uh(e,t),s=process.env.RSP_DEBUG==="1",o,i="",a=nh(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=fO(`${i}${c}`,mO)})),a.unref(),{child:a,stderrTail:()=>i,spawnError:()=>o}}function Du(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:
|
|
62
62
|
${s}`),n.join(`
|
|
63
|
-
`)}function
|
|
63
|
+
`)}function fO(e,t){let r=Buffer.byteLength(e,"utf8");return r<=t?e:Buffer.from(e,"utf8").subarray(r-t).toString("utf8").replace(/^\uFFFD+/,"")}function gO(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return z(t)}}async function Zg(e,t){try{let r=await vs(e.registryPath);if(!r||r.socket_path!==e.socketPath||r.store_uri!==t.storeUri)return;if(!ir(r.pid)){await Vt(e.registryPath,{force:!0});return}if(await $r(r.socket_path,100))return;if(lh(t.clientVersion,r.resident_version)&&(await hO(r.pid,1500),!ir(r.pid))){await Vt(e.registryPath,{force:!0});return}await Cu(r.pid),await Vt(e.registryPath,{force:!0})}catch{}}async function hO(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(!ir(e))return;await new Promise(n=>setTimeout(n,50))}}async function yO(e){if(!e.startsWith("file://"))return!1;try{return await oO(aO(e)),!1}catch(t){return t.code==="ENOENT"}}function uh(e,t){let r=Qg(t,{rootDir:e.rootDir});return[r.command,r.args]}function bO(e){return Kg({key:e,socketFileName:"rsp.sock"})}function wO(e){let t=Fu(e);for(let r=0;r<32;r++){try{let s=$u(Jt(t,".git"));if(s!=null)return _O(t,s)??t;if($u(Jt(t,".git","HEAD"))!=null||$u(Jt(t,".red","config.yaml"))!=null)return t}catch{}let n=Dr(t);if(n===t)return null;t=n}return null}function _O(e,t){let r=/^gitdir:\s*(.+?)\s*$/m.exec(t);if(!r)return null;let n=Fu(e,r[1]);return/[/\\]worktrees[/\\][^/\\]+$/.test(n)?Dr(Dr(Dr(n))):null}function $u(e){try{return nO(e,"utf8")}catch{return null}}async function eh(e,t){let r=await ih(e).catch(()=>null);return r?lh(t.clientVersion,r.version)?(await EO(e,t.clientVersion),await TO(e),!1):!0:!1}async function EO(e,t){try{await En({socketPath:e,timeoutMs:200},{id:rh(),op:"handover",clientVersion:t})}catch{}}function lh(e,t){return!e||!t?!1:RO(e,t)>0}function RO(e,t){let r=th(e),n=th(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}function th(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 dh(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function kO(e){return typeof e=="string"&&e.length>0?e:void 0}function SO(e){return dh(e)&&e.version===oh&&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 TO(e){let t=Date.now()+1e3;for(;Date.now()<t;){if(!await $r(e,50))return;await new Promise(r=>setTimeout(r,50))}}var oh,cO,dO,mO,Ei=y(()=>{q();Be();fi();Au();Gu();Gu();oh=1,cO=5e3;dO=Ou;mO=8*1024});var Nr={};Z(Nr,{RSP_ENTRY_UNRESOLVED:()=>Wt,ResidentRspElisionStore:()=>xs,RspResidentEntryError:()=>Rn,ensureResidentServer:()=>yi,kickResidentServer:()=>bi,pingResident:()=>$r,readResidentRegistry:()=>vs,removeResidentRegistry:()=>_i,residentRegistryStatus:()=>Ts,resolveResidentPaths:()=>ze,resolveRspEntry:()=>hi,sweepResidentRegistry:()=>ch,warmResidentServer:()=>ah,writeResidentRegistry:()=>wi});import{randomUUID as vO}from"node:crypto";function ph(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var xs,lt=y(()=>{"use strict";zg();Ei();xs=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?ph(r)&&r.status==="expired"?r:!ph(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 yi(this.paths,this.config);let r=await En(this.paths,{...t,id:vO()});if(!r.ok)throw new Error(r.error);return this.metrics={storeOpenCount:r.storeOpenCount,storeElapsedMs:r.storeElapsedMs},r.value}}});function Mu(e,t,r=mh){let n=Math.max(0,Math.floor(e)),s=r in fh?r:mh,o=fh[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:ju(n,o),dollars_saved_low_usd:i==null?null:ju(i,o),dollars_saved_high_usd:a==null?null:ju(a,o),pricing_model_family:s,pricing_input_usd_per_million_tokens:o,pricing_note:xO}}function ju(e,t){return OO(Math.max(0,e)/1e6*t)}function Os(e){return`$${e.toFixed(6)}`}function OO(e){return Math.round(e*1e6)/1e6}var mh,fh,xO,Bu=y(()=>{"use strict";mh="gpt-5",fh={"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},xO="estimate derived from byte-based token estimate when token counts are estimated"});var As={};Z(As,{isResidentEntryUnresolved:()=>yh,reportResidentEntryDiagnostic:()=>Uu,residentConfigFor:()=>hh,residentElisionStore:()=>Cs});function hh(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 Cs(e,t,r={}){let n=r.paths??ze(e);return new xs(n,hh(t,oi("rsp").version),{ensureResident:r.ensureResident})}function Uu(e){return yh(e)?(gh||(gh=!0,process.stderr.write(`rsp: ${Wt} \u2014 elision is off until an rsp entry is installed
|
|
64
64
|
`),process.env.RSP_DEBUG==="1"&&e instanceof Error&&process.stderr.write(`${e.message}
|
|
65
|
-
`)),!0):!1}function
|
|
66
|
-
`)}async function
|
|
67
|
-
`:`${
|
|
68
|
-
`}var
|
|
69
|
-
`)){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
|
|
70
|
-
`,{encoding:"utf8",mode:384}),await OC(r,e)}catch(n){throw await Vh(r,{force:!0}),n}}function NC(e){if(!/^[A-Za-z0-9_-]{1,128}$/.test(e))throw new Error(`unsafe gh etag cache key: ${e}`);return e}function ty(e){try{return JSON.parse(e)}catch{return z(e)}}function FC(e){return sl(e)&&e.version===1&&sl(e.entries)&&Object.values(e.entries).every(Li)}function Li(e){return sl(e)&&typeof e.key=="string"&&typeof e.request=="string"&&typeof e.etag=="string"&&typeof e.body=="string"&&typeof e.updated_at=="string"}function sl(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Yh,Qh,Xh,An,nl,Gi=h(()=>{"use strict";Be();q();me();Yh="gh-etag",Qh="gh-etag-cache.toon",Xh="gh-etag-cache.json",An=4*1024*1024;nl=new Set});var cy={};Y(cy,{DEFAULT_RSP_BYTE_BUDGET:()=>pt,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>dt,DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>Kt,DEFAULT_RSP_IDLE_MS:()=>Ni,DEFAULT_RSP_MEASUREMENT_HOLDOUT_SHARE:()=>ay,DEFAULT_RSP_STORE_PATH:()=>ul,DEFAULT_RSP_TELEMETRY_BYTE_BUDGET:()=>$i,DEFAULT_RSP_TELEMETRY_DRAIN_INTERVAL_MS:()=>sy,DEFAULT_RSP_TELEMETRY_DRAIN_TIMEOUT_MS:()=>oy,DEFAULT_RSP_TELEMETRY_TTL_DAYS:()=>Di,DEFAULT_RSP_TTL_DAYS:()=>lt,MIN_RSP_IDLE_MS:()=>iy,resolveRspConfig:()=>xe});import{existsSync as jC,readFileSync as MC}from"node:fs";import{join as BC,resolve as ny}from"node:path";function xe(e,t,r){let n=Wh(ny(e),BC(".red","config.yaml")),s=n?MC(n,"utf8"):"",o=Ci(s,"rsp.enabled")==="true",i=Ci(s,"rsp.proxy.enabled"),a=i===void 0?o:i==="true",c=ve(fe(s,"rsp.ttlDays"),lt),u=ve(vt(t.RSP_EPHEMERAL_TTL_HOURS)??fe(s,"rsp.ephemeralTtlHours"),dt),l=ve(fe(s,"rsp.byteBudget"),pt),d=ve(fe(s,"rsp.telemetryTtlDays"),Di),p=ve(fe(s,"rsp.telemetryByteBudget")??fe(s,"rsp.byteBudget"),$i),m=ve(vt(t.RSP_TELEMETRY_DRAIN_INTERVAL_MS)??fe(s,"rsp.telemetryDrainIntervalMs"),sy),f=ve(vt(t.RSP_TELEMETRY_DRAIN_TIMEOUT_MS)??fe(s,"rsp.telemetryDrainTimeoutMs"),oy),E=UC(vt(t.RSP_IDLE_MS)??fe(s,"rsp.idleMs"),Ni,iy),b=ve(vt(t.RSP_HEAVY_GIT_BYTE_THRESHOLD)??fe(s,"rsp.heavyGitByteThreshold"),Kt),y=HC(vt(t.RSP_MEASUREMENT_HOLDOUT_SHARE)??fe(s,"rsp.measurement.holdoutShare"),ay),R=ve(vt(t.RSP_GH_ETAG_CACHE_MAX_BYTES)??fe(s,"rsp.ghEtagCacheMaxBytes"),An),v={maxOverheadMs:ve(vt(t.RSP_MAX_OVERHEAD_MS)??fe(s,"rsp.overhead.maxOverheadMs"),ni),maxSelfStateBytes:ve(vt(t.RSP_MAX_SELF_STATE_BYTES)??fe(s,"rsp.overhead.maxSelfStateBytes"),si),netLossFloorBytes:ve(fe(s,"rsp.overhead.netLossFloorBytes"),oi),consecutiveBreaches:ve(vt(t.RSP_OVERHEAD_CONSECUTIVE_BREACHES)??fe(s,"rsp.overhead.consecutiveBreaches"),ii),cooldownMs:ve(fe(s,"rsp.overhead.cooldownMs"),ai)},O=ze(e).rootDir,L=r??t.RSP_STORE_URI??`file://${pg(ny(O),jC)}`;return{enabled:o,proxyEnabled:a,storeUri:L,ttlDays:c,ephemeralTtlHours:u,byteBudget:l,telemetryTtlDays:d,telemetryByteBudget:p,telemetryDrainIntervalMs:m,telemetryDrainTimeoutMs:f,idleMs:E,heavyGitByteThreshold:b,measurementHoldoutShare:y,ghEtagCacheMaxBytes:R,overhead:v}}function fe(e,t){let r=Ci(e,t);if(r==null)return;let n=Number(r);return Number.isFinite(n)?n:void 0}function ve(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function UC(e,t,r){let n=ve(e,t);return Math.max(n,r)}function HC(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e<=0?0:e>=1?1:e}function vt(e){if(e==null||e.trim()==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}var Kt,ul,lt,dt,pt,Di,$i,sy,oy,Ni,iy,ay,He=h(()=>{"use strict";Jh();Be();bi();me();Gi();Kt=8*1024,ul=lg,lt=7,dt=6,pt=64*1024*1024,Di=90,$i=4*1024*1024,sy=3e4,oy=2e3,Ni=5*6e4,iy=5e3,ay=0});function uy(e,t=process.env){return{async mint(r,n){let{residentElisionStore:s}=await Promise.resolve().then(()=>(ar(),Os)),o=s(e,xe(e,t));try{return await o.mint(r,n)}finally{await o.close()}}}}var ly=h(()=>{"use strict";He()});import{spawn as qC}from"node:child_process";async function py(e){let{commandLine:t,options:r,cwd:n,registryPath:s,entry:o,signal:i}=e;if(!t.trim())return{verdict:oe("missing command line")};let a=e.store??uy(n),c=Hh(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",E),await Si(s,o,y.verdict.status).catch(()=>{}),u(y))},m=qC(t,{cwd:n,shell:!0,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"});m.stdout?.on("data",y=>c.stdout.write(Buffer.from(y))),m.stderr?.on("data",y=>c.stderr.write(Buffer.from(y)));let f=async(y,R)=>{if(l||d)return;d=!0,clearTimeout(b);let v=await Rn(m,r.terminateGraceMs),O=await dy(null,null,c,a,t);await p({verdict:{status:y,exitCode:2,summary:R,details:O},cleanupProven:v.cleaned,survivors:v.survivors})},E=()=>void f("indeterminate","command interrupted");i.addEventListener("abort",E,{once:!0});let b=setTimeout(()=>{f("timeout",`command timed out after ${my(r.timeoutMs)}`)},r.timeoutMs);m.once("error",y=>{clearTimeout(b),c.stdout.discard(),c.stderr.discard(),p({verdict:{status:"failure",exitCode:1,summary:y.message}})}),m.once("close",(y,R)=>{if(clearTimeout(b),l||d)return;let v=y===0;dy(y,R,c,a,t).then(O=>p({verdict:{status:v?"success":"failure",exitCode:v?0:1,summary:v?"command exited successfully":`command exited with ${R??y??"unknown"}`,details:O}}))}),i.aborted&&E()})}async function Ns(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:WC(u,c,o.last_poll_at)};let l;try{l=await t()}catch(E){l=oe(E instanceof Error?E.message:String(E))}if(u=l,o.attempts=++c,o.last_poll_at=new Date().toISOString(),o.last_observation=ll(l),await vn(s,o).catch(()=>{}),l.status!=="running"&&l.status!=="indeterminate")return await Si(s,o,l.status).catch(()=>{}),{verdict:l};let d=Math.min(n*4,Math.round(n*Math.pow(1.25,c-1))),p=Math.floor(Math.random()*1e3),m=Math.min(d+p,Math.max(0,a-Date.now())),f=e.makeWakeSignal?.();await JC(m,i,f)}return await Si(s,o,"timeout").catch(()=>{}),{verdict:{status:"timeout",exitCode:2,summary:`timed out after ${my(r)}`,details:u?{attempts:c,last_poll_at:o.last_poll_at??null,last_observation:ll(u)}:{attempts:c}}}}async function dy(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 ll(e){return{status:e.status,exit_code:e.exitCode,summary:e.summary,...e.details?{details:e.details}:{}}}function WC(e,t,r){return oe("wait interrupted",{attempts:t,last_poll_at:r??null,...e?{last_observation:ll(e)}:{}})}async function JC(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 my(e){return e%36e5===0?`${e/36e5}h`:e%6e4===0?`${e/6e4}m`:e%1e3===0?`${e/1e3}s`:`${e}ms`}var fy=h(()=>{"use strict";qh();ly();Nr();Vt();Ls()});var gy={};Y(gy,{readGhConditionalJson:()=>Xe,readGhEtagCache:()=>Ii,sweepGhEtagCache:()=>al});import{execFileSync as VC}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=YC(t),s={...n?{owner:n.owner,repo:n.repo}:{},...e.params??{}},o={args:e.args??zC(e.path),path:e.path,actor:KC(r),...Object.keys(s).length>0?{params:s}:{}};try{let i;if(e.residentRead)i=await e.residentRead(o);else{let a=xe(t,r),c=xs(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 KC(e){let t=(e.RED_AFK_GH_ACTOR??"").trim();return t===""?"session":`proxied-agent:${t}`}function zC(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 YC(e){let t="";try{t=String(VC("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 Fs=h(()=>{"use strict";He();ar();Gi()});function hy(e){return e==="single-object"?"rest":"graphql"}function yy(e,t){return e==="stable-poll"?"rest":hy(t)}function Ze(e){return{none:e}}function ie(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??yy(r,t),budget:n,...a,...i?{only:i}:{},why:o}}function Le(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 wy(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 dl(e){let t=wy(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 _y(e){return QC.get(dl(e))??null}function pl(e){let t=_y(e);if(!t)throw new Fi(e);return t}var by,QC,Fi,Ey=h(()=>{by=[ie("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),ie("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),ie("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),ie("run view","single-object","stable-poll","rest",Ze("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),ie("release view","single-object","stable-poll","rest",Ze("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),ie("pr diff","single-object","one-shot","rest",Ze("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),ie("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),ie("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),ie("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),ie("release list","multi-node","stable-poll","rest",Ze("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),ie("run list","multi-node","stable-poll","rest",Ze("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),ie("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),ie("issue list (search)","multi-node","stable-poll","search",Ze("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),ie("pr list (search)","multi-node","stable-poll","search",Ze("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),ie("search issues","multi-repository","one-shot","search",Ze("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ie("search prs","multi-repository","one-shot","search",Ze("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ie("search repos","multi-repository","one-shot","search",Ze("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ie("api graphql","multi-node","one-shot","graphql",Ze("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),ie("api rest","single-object","one-shot","rest",Ze("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Le("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Le("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Le("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Le("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Le("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Le("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Le("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Le("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Le("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Le("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Le("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Le("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Le("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Le("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],QC=new Map(by.map(e=>[e.key,e]));Fi=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=dl(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{execFile as XC}from"node:child_process";import{renameSync as ZC,rmSync as e0,statSync as t0,writeFileSync as r0}from"node:fs";import{readdir as wq,readFile as n0,rename as s0,rm as o0,stat as i0,writeFile as a0}from"node:fs/promises";import{promisify as c0}from"node:util";function ky(e){let t=e.maxBytes;if(t!==void 0&&(!Number.isSafeInteger(t)||t<0))throw new Error("lane retention maxBytes must be a non-negative safe integer");return t}function Sy(e){return e.code==="ENOENT"}async function js(e,t,r,n=i0){let s=ky(r);if(s===void 0)return!1;let o=0;try{o=(await n(e)).size}catch(i){if(!Sy(i))throw i}return o+t>s}function Ty(e,t,r,n=t0){let s=ky(r);if(s===void 0)return!1;let o=0;try{o=n(e).size}catch(i){if(!Sy(i))throw i}return o+t>s}async function d0(e,t,r){try{return await u0("tq",["trim","--keep-last",String(t),"--in-place",e],{timeout:r,windowsHide:!0}),!0}catch{return!1}}function p0(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("lane retention keepLast must be a non-negative safe integer")}function m0(e){if(e.length===0)return"";let t=Me({trailer:!1});return e.map(r=>t.push(r)).join("")}async function f0(e,t){let r=`${e}.retaining-${process.pid}`;try{await a0(r,t,{encoding:"utf8",mode:384}),await s0(r,e)}finally{await o0(r,{force:!0})}}function vy(e,t){let r=`${e}.retaining-${process.pid}`;try{r0(r,t,{encoding:"utf8",mode:384}),ZC(r,e)}finally{e0(r,{force:!0})}}async function Ms(e,t,r={}){p0(t);let n=r.timeoutMs??l0;if(await(r.runTq??d0)(e,t,n))return"tq";let o=await n0(e,"utf8"),i=o.endsWith(`
|
|
65
|
+
`)),!0):!1}function yh(e){return typeof e=="object"&&e!==null&&e.code===Wt}var gh,ar=y(()=>{"use strict";uu();lt();gh=!1});function Qu(e){return e==="success"?0:e==="failure"?1:2}function Xu(e){return e==="cmd"||e==="pr"||e==="run"||e==="job"||e==="release"}function Ye(e,t,r){return{status:e,exitCode:Qu(e),summary:t,...r?{details:r}:{}}}function ce(e,t){return{status:"indeterminate",exitCode:2,summary:e,...t?{details:t}:{}}}function Kt(e,t){return{status:"running",exitCode:2,summary:e,...t?{details:t}:{}}}var Rh,kh,Sh,zu,Th,vh,xh,Oh,Yu,Fr=y(()=>{"use strict";Rh="rsp.wait.result",kh="rsp.wait.registry",Sh="rsp.wait.list",zu={cmd:18e5,pr:27e5,run:27e5,job:27e5,release:72e5},Th=16*1024,vh=1e4,xh=2e3,Oh=6e4,Yu={cmd:"local-cmd:event-driven",pr:"github-pr:15-20s-backoff-jitter",run:"github-run:15-20s-backoff-jitter",job:"github-job:15-20s-backoff-jitter",release:"release:60s"}});import{readdir as GO,readFile as DO}from"node:fs/promises";async function Sn(e,t){let r=e.pid;if(!r)return{cleaned:!0,escalation:"none",survivors:[]};let n=await Si(r),s=[r,...n];if(s.every(c=>!jr(c)))return{cleaned:!0,escalation:"none",survivors:[]};if(Ch(e,"SIGTERM"),ki(n,"SIGTERM"),await Ah(s,t))return{cleaned:!0,escalation:"term",survivors:[]};let o=[...new Set([...s,...await Si(r)])];Ch(e,"SIGKILL"),ki(o,"SIGKILL");let i=Math.max(1e3,t);await $O(e,i);let a=await Ah(o,i);return{cleaned:a,escalation:"kill",survivors:a?[]:o.filter(jr)}}function Ch(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 ki(e,t){for(let r of e)try{process.kill(r,t)}catch{}}async function $O(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 Ah(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(e.every(n=>!jr(n)))return!0;await NO(Math.min(25,Math.max(1,r-Date.now())))}return e.every(n=>!jr(n))}async function Si(e){if(process.platform!=="linux")return[];let t=new Map;for(let s of await GO("/proc").catch(()=>[])){if(!/^[1-9][0-9]*$/.test(s))continue;let o=Number(s),i=await Ph(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 Ps(e){return(await Ph(e))?.[19]}async function Tn(e,t){if(!jr(e))return!1;if(!t)return!0;let r=await Ps(e);return r===void 0?process.platform!=="linux":r===t}function jr(e){try{return process.kill(e,0),!0}catch{return!1}}async function Ph(e){if(process.platform!=="linux")return null;try{let t=await DO(`/proc/${e}/stat`,"utf8"),r=t.lastIndexOf(")");return r<0?null:t.slice(r+2).trim().split(/\s+/)}catch{return null}}async function NO(e){await new Promise(t=>setTimeout(t,e))}var zt=y(()=>{"use strict"});import{constants as FO}from"node:os";async function Ih(e){let t=e[1],r={timeoutMs:zu.cmd,reason:"",signal:"SIGUSR1",notifyTimeoutMs:vh,terminateGraceMs:xh,probeTimeoutMs:Oh,format:"toon",captureBytes:Th},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!=="job"&&t!=="release")return{...n,kind:void 0};t!=="ls"&&(r.timeoutMs=zu[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=BO(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=MO(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]??"":t==="release"&&a==="--existing"?n.existing=!0:!a.startsWith("--")&&!n.target&&(n.target=a)}return await jO(r),t==="cmd"&&(n.commandLine=s>=0?e.slice(s+1).join(" "):""),n}async function jO(e){if(!(e.signal in FO.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(!jr(e.signalPid))throw new Error(`signal pid is not running: ${e.signalPid}`);e.signalPidStartTime=await Ps(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 vn(e,t,r=process.env){let n=r[e];if(!n)return t;try{return Is(n)}catch{return t}}function MO(e,t){if(!/^[1-9][0-9]*$/.test(e))throw new Error(`invalid ${t}: ${e}`);return Number(e)}function BO(e){return e.startsWith("SIG")?e:`SIG${e}`}var Lh=y(()=>{"use strict";Fr();zt()});import{existsSync as Zu,readFileSync as UO,statSync as HO}from"node:fs";import{basename as Gh,dirname as Ti,isAbsolute as qO,join as Dh,resolve as Ls}from"node:path";function vi(e,t=process.env){let r=Ls(e);if(du.map(i=>t[i]).find(Boolean))return bg({startDir:r,env:t,exists:Zu});let s=JO(r),o=WO(r,s);return o||(s??r)}function WO(e,t){let r=e;for(;;){if(Zu(Dh(r,".red")))return r;if(t&&r===t)return null;let n=Ls(r,"..");if(n===r)return null;r=n}}function JO(e){let t=e;for(;;){let r=Dh(t,".git");if(Zu(r))return zO(r)?t:VO(r)??t;let n=Ls(t,"..");if(n===t)return null;t=n}}function VO(e){let t=KO(e);if(!t)return null;let r=Ti(t),n=Ti(r);return Gh(r)!=="worktrees"||Gh(n)!==".git"?null:Ti(n)}function KO(e){let t;try{t=UO(e,"utf8")}catch{return null}let r=/^gitdir:\s*(.+)$/m.exec(t.trim());if(!r)return null;let n=r[1].trim();return qO(n)?Ls(n):Ls(Ti(e),n)}function zO(e){try{return HO(e).isDirectory()}catch{return!1}}var el=y(()=>{Be()});import{join as YO}from"node:path";function XO(e,t=process.env){return vi(e,t)}function xn(e,t=process.env){return yg(XO(e,t))}function $h(e,t=process.env){return YO(xn(e,t),QO)}var QO,tl=y(()=>{"use strict";Be();el();QO="spool"});import{randomUUID as ZO}from"node:crypto";import{existsSync as eC}from"node:fs";import{mkdir as tC,readdir as rC,readFile as nC,rename as sC,rm as rl,writeFile as oC}from"node:fs/promises";import{dirname as iC,join as Fh}from"node:path";function jh(e,t,r=process.env){return Fh(xn(e,r),`${t}${aC}`)}async function On(e,t){await nl(e,`${pe(t)}
|
|
66
|
+
`)}async function xi(e,t,r){t.status=r,await On(e,t)}async function Oi(e,t=process.env){let r=xn(e,t);if(!eC(r))return[];let n=await rC(r).catch(()=>[]),s=[];for(let o of n.filter(i=>cC.some(a=>i.endsWith(a)))){let i=Fh(r,o),a=await uC(i);if(!a){await rl(i,{force:!0});continue}if(!await lC(a)){await rl(i,{force:!0});continue}s.push(a)}return s}async function uC(e){let t;try{t=await nC(e,"utf8")}catch{return null}let r=t.trim();if(!r)return null;let n=dC(r);return n&&Object.keys(n).length>0?n:null}async function lC(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 Tn(t,r)}function dC(e){try{let t=z(e);if(Nh(t))return t}catch{}try{let t=JSON.parse(e);if(Nh(t))return t}catch{}return null}async function nl(e,t){await tC(iC(e),{recursive:!0});let r=`${e}.tmp-${process.pid}-${ZO()}`;try{await oC(r,t,"utf8"),await sC(r,e)}finally{await rl(r,{force:!0})}}function sl(e){return{schema:kh,version:1,...e}}function Nh(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var aC,cC,Ds=y(()=>{"use strict";q();Ut();Fr();tl();zt();aC=".toon",cC=[".toon",".json"]});function Cn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Qe(e){return Cn(e)?e:{}}function Mr(e){return Array.isArray(e)?e.filter(Cn):[]}function ee(e,t){let r=e[t];return typeof r=="string"?r:""}function Br(e,t){let r=e[t];return typeof r=="number"?r:0}function $s(e){let t=JSON.parse(e);if(!Cn(t))throw new Error("expected JSON object");return t}function Ci(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}var Ai=y(()=>{"use strict"});import{spawn as pC}from"node:child_process";import{resolve as mC}from"node:path";async function Mh(e,t,r){let n=[];if(e.signalPid){let s=await fC(e);s&&n.push(s)}if(e.notifyCmd?.trim()){let s=await gC(e,t,r);s&&n.push({hook:"notify-cmd",...s})}return n.length===0?{status:"success"}:{status:"failure",errors:n}}async function fC(e){let t=e.signalPid;if(!await Tn(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:Bh(r),pid:t,signal:e.signal}}}async function gC(e,t,r){let n=Qe(t.wait),s=Qe(t.verdict);return await hC(e.notifyCmd,r,e.notifyTimeoutMs,e.terminateGraceMs,{...process.env,RSP_WAIT_RESULT_JSON:JSON.stringify(t),RSP_WAIT_RESULT_FILE:e.resultFile?mC(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 hC(e,t,r,n,s){return await new Promise(o=>{let i=!1,a=!1,c=d=>{i||(i=!0,o(d))},u=pC(e,{cwd:t,shell:!0,stdio:"ignore",env:s,detached:process.platform!=="win32"}),l=setTimeout(()=>{a=!0,Sn(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:Bh(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 Bh(e){return e instanceof Error?e.message:String(e)}var Uh=y(()=>{"use strict";Ai();zt()});import{resolve as yC}from"node:path";async function Hh(e){let{kind:t,entry:r,options:n,cwd:s}=e,o=bC(e.verdict,e.cleanupProven,e.survivors),i=new Date().toISOString(),a=Ns(t,r,o,{status:"pending"},i);await Fs(n.resultFile,a,n.format);let c=await Mh(n,a,s),u=Ns(t,r,o,c,i);return await Fs(n.resultFile,u,n.format),{result:u,exitCode:qh(o,c)}}function qh(e,t){return t.status!=="success"||e.status==="running"?2:Qu(e.status)}function bC(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 Ns(e,t,r,n,s){return{schema:Rh,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:qh(r,n),target_exit_code:r.exitCode,summary:r.summary,delivery:n,...r.details?{details:r.details}:{}}}}async function Fs(e,t,r){e&&await nl(yC(e),An(t,r))}function An(e,t){return t==="json"?`${JSON.stringify(e,null,2)}
|
|
67
|
+
`:`${pe(e)}
|
|
68
|
+
`}var Wh=y(()=>{"use strict";Ut();Fr();Ds();Uh()});import{createWriteStream as wC,mkdirSync as _C}from"node:fs";import{readFile as EC,rm as RC}from"node:fs/promises";import{dirname as kC}from"node:path";import{join as Jh}from"node:path";function Vh(e,t,r){return{stdout:new Pi(r,Jh(e,`${t}.stdout.bin`)),stderr:new Pi(r,Jh(e,`${t}.stderr.bin`))}}function SC(e){let t=e.toString("utf8");return Buffer.from(t,"utf8").equals(e)&&!TC(e)?{inline:t}:{inline:e.toString("base64"),inline_encoding:"base64"}}function TC(e){for(let t of e)if(t<=8||t>=11&&t<=31&&t!==13||t===127)return!0;return!1}var Pi,Kh=y(()=>{"use strict";Pi=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,...SC(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 EC(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{_C(kC(this.spoolPath),{recursive:!0}),t=wC(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 RC(this.spoolPath,{force:!0}).catch(()=>{})}}});import{existsSync as vC,readFileSync as qH}from"node:fs";import{dirname as xC,join as OC}from"node:path";function zh(e,t){let r=e;for(let n=0;n<16;n++){let s=OC(r,t);if(vC(s))return s;let o=xC(r);if(o===r)break;r=o}return null}function CC(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function Ii(e,t){let r=[];for(let n of e.split(`
|
|
69
|
+
`)){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 CC(u)}}var Yh=y(()=>{});var iy={};Z(iy,{DEFAULT_GH_ETAG_CACHE_MAX_BYTES:()=>In,GH_ETAG_CACHE_DIR_NAME:()=>ey,LEGACY_GH_ETAG_CACHE_FILE:()=>ty,LEGACY_GH_ETAG_CACHE_JSON_FILE:()=>ry,enforceGhEtagCacheCeiling:()=>cl,ghEtagCacheDir:()=>Li,ghEtagEntryPath:()=>Gi,isCacheEntry:()=>$i,legacyGhEtagCachePaths:()=>al,migrateLegacyGhEtagCache:()=>ll,readGhEtagCache:()=>Di,readGhEtagEntry:()=>$C,resetGhEtagCacheMigrationMemo:()=>FC,sweepGhEtagCache:()=>ul,writeGhEtagEntry:()=>NC});import{existsSync as AC}from"node:fs";import{mkdir as PC,readdir as IC,rename as LC,rm as Qh,stat as Xh,unlink as Zh,writeFile as GC}from"node:fs/promises";import{dirname as DC,join as Pn}from"node:path";function Li(e){return Pn(oe(e),ey)}function Gi(e,t){return Pn(Li(e),`${UC(t)}.toon`)}function al(e){let t=oe(e);return[Pn(t,ty),Pn(t,ry)]}async function $C(e,t){await ll(e);try{let r=oy(await pi(Gi(e,t)));return $i(r)?r:void 0}catch{return}}async function NC(e,t,r={}){return await sy(Gi(e,t.key),t),await cl(e,r.maxBytes??In)}async function cl(e,t=In){let r=await MC(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 Zh(o.path),n-=o.bytes,s+=1}catch{}}return{evictedEntries:s,bytes:n}}async function ul(e,t={}){let r=await ll(e,{force:!0}),n=await jC(e);return{...await cl(e,t.maxBytes??In),reclaimedTmp:n,migratedEntries:r}}async function Di(e){for(let t of al(e))try{let r=oy(await pi(t));if(HC(r))return r}catch{}return{version:1,entries:{}}}async function ll(e,t={}){if(!t.force&&ol.has(e))return 0;ol.add(e);let r=al(e).filter(o=>AC(o));if(r.length===0)return 0;let n=await Di(e),s=0;for(let[o,i]of Object.entries(n.entries)){if(!$i(i))continue;let a=Gi(e,o);await BC(a)||(await sy(a,{...i,key:o}),s+=1)}for(let o of r)await Qh(o,{force:!0});return s}function FC(){ol.clear()}async function jC(e){let t=0;for(let r of[oe(e),Li(e)])for(let n of await ny(r))if(n.endsWith(".tmp"))try{await Zh(Pn(r,n)),t+=1}catch{}return t}async function MC(e){let t=Li(e),r=[];for(let n of await ny(t)){if(!n.endsWith(".toon"))continue;let s=Pn(t,n);try{let o=await Xh(s);o.isFile()&&r.push({path:s,bytes:o.size,mtimeMs:o.mtimeMs})}catch{}}return r}async function ny(e){try{return await IC(e)}catch{return[]}}async function BC(e){try{return await Xh(e),!0}catch{return!1}}async function sy(e,t){await PC(DC(e),{recursive:!0});let r=`${e}.${process.pid}.${Date.now()}.tmp`;try{await GC(r,`${D(t)}
|
|
70
|
+
`,{encoding:"utf8",mode:384}),await LC(r,e)}catch(n){throw await Qh(r,{force:!0}),n}}function UC(e){if(!/^[A-Za-z0-9_-]{1,128}$/.test(e))throw new Error(`unsafe gh etag cache key: ${e}`);return e}function oy(e){try{return JSON.parse(e)}catch{return z(e)}}function HC(e){return il(e)&&e.version===1&&il(e.entries)&&Object.values(e.entries).every($i)}function $i(e){return il(e)&&typeof e.key=="string"&&typeof e.request=="string"&&typeof e.etag=="string"&&typeof e.body=="string"&&typeof e.updated_at=="string"}function il(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ey,ty,ry,In,ol,Ni=y(()=>{"use strict";Be();q();ge();ey="gh-etag",ty="gh-etag-cache.toon",ry="gh-etag-cache.json",In=4*1024*1024;ol=new Set});var py={};Z(py,{DEFAULT_RSP_BYTE_BUDGET:()=>mt,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>pt,DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>Yt,DEFAULT_RSP_IDLE_MS:()=>Mi,DEFAULT_RSP_MEASUREMENT_HOLDOUT_SHARE:()=>dy,DEFAULT_RSP_STORE_PATH:()=>dl,DEFAULT_RSP_TELEMETRY_BYTE_BUDGET:()=>ji,DEFAULT_RSP_TELEMETRY_DRAIN_INTERVAL_MS:()=>cy,DEFAULT_RSP_TELEMETRY_DRAIN_TIMEOUT_MS:()=>uy,DEFAULT_RSP_TELEMETRY_TTL_DAYS:()=>Fi,DEFAULT_RSP_TTL_DAYS:()=>dt,MIN_RSP_IDLE_MS:()=>ly,resolveRspConfig:()=>xe});import{existsSync as qC,readFileSync as WC}from"node:fs";import{join as JC,resolve as ay}from"node:path";function xe(e,t,r){let n=zh(ay(e),JC(".red","config.yaml")),s=n?WC(n,"utf8"):"",o=Ii(s,"rsp.enabled")==="true",i=Ii(s,"rsp.proxy.enabled"),a=i===void 0?o:i==="true",c=ve(he(s,"rsp.ttlDays"),dt),u=ve(xt(t.RSP_EPHEMERAL_TTL_HOURS)??he(s,"rsp.ephemeralTtlHours"),pt),l=ve(he(s,"rsp.byteBudget"),mt),d=ve(he(s,"rsp.telemetryTtlDays"),Fi),p=ve(he(s,"rsp.telemetryByteBudget")??he(s,"rsp.byteBudget"),ji),m=ve(xt(t.RSP_TELEMETRY_DRAIN_INTERVAL_MS)??he(s,"rsp.telemetryDrainIntervalMs"),cy),f=ve(xt(t.RSP_TELEMETRY_DRAIN_TIMEOUT_MS)??he(s,"rsp.telemetryDrainTimeoutMs"),uy),b=VC(xt(t.RSP_IDLE_MS)??he(s,"rsp.idleMs"),Mi,ly),_=ve(xt(t.RSP_HEAVY_GIT_BYTE_THRESHOLD)??he(s,"rsp.heavyGitByteThreshold"),Yt),h=KC(xt(t.RSP_MEASUREMENT_HOLDOUT_SHARE)??he(s,"rsp.measurement.holdoutShare"),dy),w=ve(xt(t.RSP_GH_ETAG_CACHE_MAX_BYTES)??he(s,"rsp.ghEtagCacheMaxBytes"),In),k={maxOverheadMs:ve(xt(t.RSP_MAX_OVERHEAD_MS)??he(s,"rsp.overhead.maxOverheadMs"),ii),maxSelfStateBytes:ve(xt(t.RSP_MAX_SELF_STATE_BYTES)??he(s,"rsp.overhead.maxSelfStateBytes"),ai),netLossFloorBytes:ve(he(s,"rsp.overhead.netLossFloorBytes"),ci),consecutiveBreaches:ve(xt(t.RSP_OVERHEAD_CONSECUTIVE_BREACHES)??he(s,"rsp.overhead.consecutiveBreaches"),ui),cooldownMs:ve(he(s,"rsp.overhead.cooldownMs"),li)},x=ze(e).rootDir,A=r??t.RSP_STORE_URI??`file://${hg(ay(x),qC)}`;return{enabled:o,proxyEnabled:a,storeUri:A,ttlDays:c,ephemeralTtlHours:u,byteBudget:l,telemetryTtlDays:d,telemetryByteBudget:p,telemetryDrainIntervalMs:m,telemetryDrainTimeoutMs:f,idleMs:b,heavyGitByteThreshold:_,measurementHoldoutShare:h,ghEtagCacheMaxBytes:w,overhead:k}}function he(e,t){let r=Ii(e,t);if(r==null)return;let n=Number(r);return Number.isFinite(n)?n:void 0}function ve(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function VC(e,t,r){let n=ve(e,t);return Math.max(n,r)}function KC(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e<=0?0:e>=1?1:e}function xt(e){if(e==null||e.trim()==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}var Yt,dl,dt,pt,mt,Fi,ji,cy,uy,Mi,ly,dy,He=y(()=>{"use strict";Yh();Be();Ei();ge();Ni();Yt=8*1024,dl=fg,dt=7,pt=6,mt=64*1024*1024,Fi=90,ji=4*1024*1024,cy=3e4,uy=2e3,Mi=5*6e4,ly=5e3,dy=0});function my(e,t=process.env){return{async mint(r,n){let{residentElisionStore:s}=await Promise.resolve().then(()=>(ar(),As)),o=s(e,xe(e,t));try{return await o.mint(r,n)}finally{await o.close()}}}}var fy=y(()=>{"use strict";He()});import{spawn as zC}from"node:child_process";async function hy(e){let{commandLine:t,options:r,cwd:n,registryPath:s,entry:o,signal:i}=e;if(!t.trim())return{verdict:ce("missing command line")};let a=e.store??my(n),c=Vh(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",b),await xi(s,o,h.verdict.status).catch(()=>{}),u(h))},m=zC(t,{cwd:n,shell:!0,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"});m.stdout?.on("data",h=>c.stdout.write(Buffer.from(h))),m.stderr?.on("data",h=>c.stderr.write(Buffer.from(h)));let f=async(h,w)=>{if(l||d)return;d=!0,clearTimeout(_);let k=await Sn(m,r.terminateGraceMs),x=await gy(null,null,c,a,t);await p({verdict:{status:h,exitCode:2,summary:w,details:x},cleanupProven:k.cleaned,survivors:k.survivors})},b=()=>void f("indeterminate","command interrupted");i.addEventListener("abort",b,{once:!0});let _=setTimeout(()=>{f("timeout",`command timed out after ${yy(r.timeoutMs)}`)},r.timeoutMs);m.once("error",h=>{clearTimeout(_),c.stdout.discard(),c.stderr.discard(),p({verdict:{status:"failure",exitCode:1,summary:h.message}})}),m.once("close",(h,w)=>{if(clearTimeout(_),l||d)return;let k=h===0;gy(h,w,c,a,t).then(x=>p({verdict:{status:k?"success":"failure",exitCode:k?0:1,summary:k?"command exited successfully":`command exited with ${w??h??"unknown"}`,details:x}}))}),i.aborted&&b()})}async function js(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:YC(u,c,o.last_poll_at)};let l;try{l=await t()}catch(b){l=ce(b instanceof Error?b.message:String(b))}if(u=l,o.attempts=++c,o.last_poll_at=new Date().toISOString(),o.last_observation=pl(l),await On(s,o).catch(()=>{}),l.status!=="running"&&l.status!=="indeterminate")return await xi(s,o,l.status).catch(()=>{}),{verdict:l};let d=Math.min(n*4,Math.round(n*Math.pow(1.25,c-1))),p=Math.floor(Math.random()*1e3),m=Math.min(d+p,Math.max(0,a-Date.now())),f=e.makeWakeSignal?.();await QC(m,i,f)}return await xi(s,o,"timeout").catch(()=>{}),{verdict:{status:"timeout",exitCode:2,summary:`timed out after ${yy(r)}`,details:u?{attempts:c,last_poll_at:o.last_poll_at??null,last_observation:pl(u)}:{attempts:c}}}}async function gy(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 pl(e){return{status:e.status,exit_code:e.exitCode,summary:e.summary,...e.details?{details:e.details}:{}}}function YC(e,t,r){return ce("wait interrupted",{attempts:t,last_poll_at:r??null,...e?{last_observation:pl(e)}:{}})}async function QC(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 yy(e){return e%36e5===0?`${e/36e5}h`:e%6e4===0?`${e/6e4}m`:e%1e3===0?`${e/1e3}s`:`${e}ms`}var by=y(()=>{"use strict";Kh();fy();Fr();zt();Ds()});var wy={};Z(wy,{readGhConditionalJson:()=>Xe,readGhEtagCache:()=>Di,sweepGhEtagCache:()=>ul});import{execFileSync as XC}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=t0(t),s={...n?{owner:n.owner,repo:n.repo}:{},...e.params??{}},o={args:e.args??e0(e.path),path:e.path,actor:ZC(r),...Object.keys(s).length>0?{params:s}:{}};try{let i;if(e.residentRead)i=await e.residentRead(o);else{let a=xe(t,r),c=Cs(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 ZC(e){let t=(e.RED_AFK_GH_ACTOR??"").trim();return t===""?"session":`proxied-agent:${t}`}function e0(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 t0(e){let t="";try{t=String(XC("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 Ms=y(()=>{"use strict";He();ar();Ni()});function _y(e){return e==="single-object"?"rest":"graphql"}function Ey(e,t){return e==="stable-poll"?"rest":_y(t)}function Ze(e){return{none:e}}function ue(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??Ey(r,t),budget:n,...a,...i?{only:i}:{},why:o}}function Le(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 ky(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 ml(e){let t=ky(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 Sy(e){return r0.get(ml(e))??null}function fl(e){let t=Sy(e);if(!t)throw new Bi(e);return t}var Ry,r0,Bi,Ty=y(()=>{Ry=[ue("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),ue("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),ue("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),ue("run view","single-object","stable-poll","rest",Ze("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),ue("release view","single-object","stable-poll","rest",Ze("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),ue("pr diff","single-object","one-shot","rest",Ze("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),ue("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),ue("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),ue("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),ue("release list","multi-node","stable-poll","rest",Ze("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),ue("run list","multi-node","stable-poll","rest",Ze("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),ue("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),ue("issue list (search)","multi-node","stable-poll","search",Ze("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),ue("pr list (search)","multi-node","stable-poll","search",Ze("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),ue("search issues","multi-repository","one-shot","search",Ze("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ue("search prs","multi-repository","one-shot","search",Ze("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ue("search repos","multi-repository","one-shot","search",Ze("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ue("api graphql","multi-node","one-shot","graphql",Ze("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),ue("api rest","single-object","one-shot","rest",Ze("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Le("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Le("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Le("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Le("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Le("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Le("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Le("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Le("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Le("pr merge","rest","rest","the default merge uses PUT `repos/{o}/{r}/pulls/{n}/merge` so a dry GraphQL pool cannot strand a finished Worker"),Le("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Le("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Le("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Le("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Le("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],r0=new Map(Ry.map(e=>[e.key,e]));Bi=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=ml(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{execFile as n0}from"node:child_process";import{renameSync as s0,rmSync as o0,statSync as i0,writeFileSync as a0}from"node:fs";import{readdir as Sq,readFile as c0,rename as u0,rm as l0,stat as d0,writeFile as p0}from"node:fs/promises";import{promisify as m0}from"node:util";function xy(e){let t=e.maxBytes;if(t!==void 0&&(!Number.isSafeInteger(t)||t<0))throw new Error("lane retention maxBytes must be a non-negative safe integer");return t}function Oy(e){return e.code==="ENOENT"}async function Bs(e,t,r,n=d0){let s=xy(r);if(s===void 0)return!1;let o=0;try{o=(await n(e)).size}catch(i){if(!Oy(i))throw i}return o+t>s}function Cy(e,t,r,n=i0){let s=xy(r);if(s===void 0)return!1;let o=0;try{o=n(e).size}catch(i){if(!Oy(i))throw i}return o+t>s}async function h0(e,t,r){try{return await f0("tq",["trim","--keep-last",String(t),"--in-place",e],{timeout:r,windowsHide:!0}),!0}catch{return!1}}function y0(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("lane retention keepLast must be a non-negative safe integer")}function b0(e){if(e.length===0)return"";let t=Me({trailer:!1});return e.map(r=>t.push(r)).join("")}async function w0(e,t){let r=`${e}.retaining-${process.pid}`;try{await p0(r,t,{encoding:"utf8",mode:384}),await u0(r,e)}finally{await l0(r,{force:!0})}}function Ay(e,t){let r=`${e}.retaining-${process.pid}`;try{a0(r,t,{encoding:"utf8",mode:384}),s0(r,e)}finally{o0(r,{force:!0})}}async function Us(e,t,r={}){y0(t);let n=r.timeoutMs??g0;if(await(r.runTq??h0)(e,t,n))return"tq";let o=await c0(e,"utf8"),i=o.endsWith(`
|
|
71
71
|
`)?o:o.slice(0,o.lastIndexOf(`
|
|
72
|
-
`)+1),a=i===""?[]:je(i),c=t===0?[]:a.slice(-t);return await
|
|
72
|
+
`)+1),a=i===""?[]:je(i),c=t===0?[]:a.slice(-t);return await w0(e,b0(c)),"js"}var f0,et,g0,xq,Ur,vy,Ot,Ln=y(()=>{q();f0=m0(n0),et=.5,g0=5e3,xq=256*1024*1024,Ur=1024*1024,vy=14*24*60*60*1e3,Ot={"process-deaths":{maxBytes:4*Ur,maxAgeMs:vy,targetRatio:et},"github-spend":{maxBytes:8*Ur,targetRatio:et},"github-balance":{maxBytes:64*1024,targetRatio:et},"castle-singleton-events":{maxBytes:2*Ur,targetRatio:et},"rsp-telemetry-spool":{maxBytes:8*Ur,targetRatio:et},"rsp-telemetry-corrections":{maxBytes:Ur,targetRatio:et},"death-attributions":{maxBytes:Ur,maxAgeMs:vy,targetRatio:et},"worker-log":{maxLines:5e4,targetRatio:et},"worker-liveness":{maxBytes:Ur,targetRatio:et},"castle-history":{maxLines:1e4,targetRatio:et}}});import{appendFile as _0,mkdir as E0,readFile as Py}from"node:fs/promises";import{dirname as R0}from"node:path";function hl(e){let t=e.now??(()=>new Date().toISOString()),r=Ot["github-spend"],n={...r,...e.maxBytes===void 0?{}:{maxBytes:e.maxBytes}},s=Promise.resolve();return{record(o){let i=v0(o.operation,o.cost,o.observedAt??t(),o.actor),a=Me().push(O0(i));return s=s.then(async()=>{await E0(R0(e.path),{recursive:!0});let c=Buffer.byteLength(a);if(await Bs(e.path,c,n)){let u=n.maxBytes;if(c>u)throw new Error(`GitHub spend observation exceeds its ${u}-byte lane ceiling`);let l=await k0(e.path),d=Math.max(Math.floor(u*r.targetRatio),c);await Us(e.path,S0(l,c,d))}await _0(e.path,a,"utf8")}),s},async report(o){await s;let i=gl(o.from,"report window start"),a=gl(o.to,"report window end");if(a<=i)throw new Error("GitHub attribution report window end must be after its start");let c=await x0(e.path),u=new Map;for(let d of c.observations){let p=Date.parse(d.observed_at);if(p<i||p>=a||o.pool!==void 0&&d.pool!==o.pool)continue;let m=`${d.pool}\0${d.operation_key}\0${d.actor??""}`,f=u.get(m);u.set(m,{operation_key:d.operation_key,pool:d.pool,...d.actor===void 0?{}:{actor:d.actor},count:(f?.count??0)+1,cost:(f?.cost??0)+d.cost})}let l=[...u.values()].sort((d,p)=>p.cost-d.cost||p.count-d.count||d.operation_key.localeCompare(p.operation_key)||d.pool.localeCompare(p.pool)||(d.actor??"").localeCompare(p.actor??""));return{version:1,origin:"process-attribution",window:{from:o.from,to:o.to},pool:o.pool??null,total_count:l.reduce((d,p)=>d+p.count,0),total_cost:l.reduce((d,p)=>d+p.cost,0),operations:l,unreadable_records:c.unreadable}}}}async function k0(e){try{let t=await Py(e,"utf8");return t.trim()===""?[]:je(t)}catch(t){if(Iy(t)&&t.code==="ENOENT")return[];throw t}}function S0(e,t,r){let n=0,s=e.length;for(;n<s;){let o=Math.ceil((n+s)/2),i=T0(e.slice(-o));Buffer.byteLength(i)+t<=r?n=o:s=o-1}return n}function T0(e){return e.map(t=>Me({trailer:!1}).push(t)).join("")}function v0(e,t,r,n){if(gl(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 x0(e){let t;try{t=await Py(e,"utf8")}catch(o){if(Iy(o)&&o.code==="ENOENT")return{observations:[],unreadable:0};throw o}let r=[],n=0,s=t.split(`
|
|
73
73
|
`);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=je(`${i}
|
|
74
74
|
${a}
|
|
75
|
-
`)[0]}catch{n+=1,o+=1;continue}if(!S0(c)){n+=1,o+=1;continue}r.push(c),o+=1}return{observations:r,unreadable:n}}function k0(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 S0(e){return T0(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 ml(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 T0(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Oy(e){return e instanceof Error&&"code"in e}var Cy=h(()=>{Bs();q()});var yl=Sm((gl,hl)=>{(function(e,t){typeof gl=="object"&&typeof hl<"u"?hl.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(gl,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,g={}){var _,k,T;for(_ in w)T=w[_],g[_]=(k=I[_])!=null?k:T;return g},n=function(I,w,g={}){var _,k;for(_ in I)k=I[_],w[_]!==void 0&&(g[_]=k);return g},s={load:r,overwrite:n},o;o=class{constructor(w,g){this.incr=w,this.decr=g,this._first=null,this._last=null,this.length=0}push(w){var g;this.length++,typeof this.incr=="function"&&this.incr(),g={value:w,prev:this._last,next:null},this._last!=null?(this._last.next=g,this._last=g):this._first=this._last=g}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,g,_;for(w=this._first,_=[];w!=null;)_.push((g=w,w=w.next,g.value));return _}forEachShift(w){var g;for(g=this.shift();g!=null;)w(g),g=this.shift()}debug(){var w,g,_,k,T;for(w=this._first,T=[];w!=null;)T.push((g=w,w=w.next,{value:g.value,prev:(_=g.prev)!=null?_.value:void 0,next:(k=g.next)!=null?k.value:void 0}));return T}};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=(g,_)=>this._addListener(g,"many",_),this.instance.once=(g,_)=>this._addListener(g,"once",_),this.instance.removeAllListeners=(g=null)=>g!=null?delete this._events[g]:this._events={}}_addListener(w,g,_){var k;return(k=this._events)[w]==null&&(k[w]=[]),this._events[w].push({cb:_,status:g}),this.instance}listenerCount(w){return this._events[w]!=null?this._events[w].length:0}async trigger(w,...g){var _,k;try{return w!=="debug"&&this.trigger("debug",`Event triggered: ${w}`,g),this._events[w]==null?void 0:(this._events[w]=this._events[w].filter(function(T){return T.status!=="none"}),k=this._events[w].map(async T=>{var x,A;if(T.status!=="none"){T.status==="once"&&(T.status="none");try{return A=typeof T.cb=="function"?T.cb(...g):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(T){return T!=null}))}catch(T){return _=T,this.trigger("error",_),null}}};var c=a,u,l,d;u=i,l=c,d=class{constructor(w){var g;this.Events=new l(this),this._length=0,this._lists=function(){var _,k,T;for(T=[],g=_=1,k=w;1<=k?_<=k:_>=k;g=1<=k?++_:--_)T.push(new u(()=>this.incr(),()=>this.decr()));return T}.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(g){return g.forEachShift(w)})}getFirst(w=this._lists){var g,_,k;for(g=0,_=w.length;g<_;g++)if(k=w[g],k.length>0)return k;return[]}shiftLastFrom(w){return this.getFirst(this._lists.slice(w).reverse()).shift()}};var p=d,m;m=class extends Error{};var f=m,E,b,y,R,v;R=10,b=5,v=s,E=f,y=class{constructor(w,g,_,k,T,x,A,U){this.task=w,this.args=g,this.rejectOnDrop=T,this.Events=x,this._states=A,this.Promise=U,this.options=v.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((de,we)=>{this._resolve=de,this._reject=we}),this.retryCount=0}_sanitizePriority(w){var g;return g=~~w!==w?b:w,g<0?0:g>R-1?R-1:g}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:w,message:g="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(w??new E(g)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(w){var g;if(g=this._states.jobStatus(this.options.id),!(g===w||w==="DONE"&&g===null))throw new E(`Invalid job status ${g}, 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,g){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:w,blocked:g})}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,g,_,k){var T,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)),g())return this.doDone(x),await k(this.options,x),this._assertStatus("DONE"),this._resolve(A)}catch(U){return T=U,this._onFailure(T,x,g,_,k)}}doExpire(w,g,_){var k,T;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),T={args:this.args,options:this.options,retryCount:this.retryCount},k=new E(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(k,T,w,g,_)}async _onFailure(w,g,_,k,T){var x,A;if(_())return x=await this.Events.trigger("failed",w,g),x!=null?(A=~~x,this.Events.trigger("retry",`Retrying ${this.options.id} after ${A} ms`,g),this.retryCount++,k(A)):(this.doDone(g),await T(this.options,g),this._assertStatus("DONE"),this._reject(w))}doDone(w){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",w)}};var O=y,L,F,W;W=s,L=f,F=class{constructor(w,g,_){this.instance=w,this.storeOptions=g,this.clientId=this.instance._randomIndex(),W.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 g,_,k,T,x;if(T=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&T>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=T,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&T>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:g,reservoirIncreaseMaximum:k,reservoir:x}=this.storeOptions,this._lastReservoirIncrease=T,_=k!=null?Math.min(g,k-x):g,_>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(g,_){return setTimeout(g,w)})}computePenalty(){var w;return(w=this.storeOptions.penalty)!=null?w:15*this.storeOptions.minTime||5e3}async __updateSettings__(w){return await this.yieldLoop(),W.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,g;return{maxConcurrent:w,reservoir:g}=this.storeOptions,w!=null&&g!=null?Math.min(w-this._running,g):w!=null?w-this._running:g??null}conditionsCheck(w){var g;return g=this.computeCapacity(),g==null||w<=g}async __incrementReservoir__(w){var g;return await this.yieldLoop(),g=this.storeOptions.reservoir+=w,this.instance._drainAll(this.computeCapacity()),g}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(w){return this._unblockTime>=w}check(w,g){return this.conditionsCheck(w)&&this._nextRequest-g<=0}async __check__(w){var g;return await this.yieldLoop(),g=Date.now(),this.check(w,g)}async __register__(w,g,_){var k,T;return await this.yieldLoop(),k=Date.now(),this.conditionsCheck(g)?(this._running+=g,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=g),T=Math.max(this._nextRequest-k,0),this._nextRequest=k+T+this.storeOptions.minTime,{success:!0,wait:T,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(w,g){var _,k,T;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&g>this.storeOptions.maxConcurrent)throw new L(`Impossible to add a job having a weight of ${g} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return k=Date.now(),T=this.storeOptions.highWater!=null&&w===this.storeOptions.highWater&&!this.check(g,k),_=this.strategyIsBlock()&&(T||this.isBlocked(k)),_&&(this._unblockTime=k+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:T,blocked:_,strategy:this.storeOptions.strategy}}async __free__(w,g){return await this.yieldLoop(),this._running-=g,this._done+=g,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var le=F,ce,ye;ce=f,ye=class{constructor(w){this.status=w,this._jobs={},this.counts=this.status.map(function(){return 0})}next(w){var g,_;if(g=this._jobs[w],_=g+1,g!=null&&_<this.status.length)return this.counts[g]--,this.counts[_]++,this._jobs[w]++;if(g!=null)return this.counts[g]--,delete this._jobs[w]}start(w){var g;return g=0,this._jobs[w]=g,this.counts[g]++}remove(w){var g;return g=this._jobs[w],g!=null&&(this.counts[g]--,delete this._jobs[w]),g!=null}jobStatus(w){var g;return(g=this.status[this._jobs[w]])!=null?g:null}statusJobs(w){var g,_,k,T,x;if(w!=null){if(_=this.status.indexOf(w),_<0)throw new ce(`status must be one of ${this.status.join(", ")}`);k=this._jobs,T=[];for(g in k)x=k[g],x===_&&T.push(g);return T}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((w,g,_)=>(w[this.status[_]]=g,w),{})}};var be=ye,er,P;er=i,P=class{constructor(w,g){this.schedule=this.schedule.bind(this),this.name=w,this.Promise=g,this._running=0,this._queue=new er}isEmpty(){return this._queue.length===0}async _tryToRun(){var w,g,_,k,T,x,A;if(this._running<1&&this._queue.length>0)return this._running++,{task:A,args:w,resolve:T,reject:k}=this._queue.shift(),g=await async function(){try{return x=await A(...w),function(){return T(x)}}catch(U){return _=U,function(){return k(_)}}}(),this._running--,this._tryToRun(),g()}schedule(w,...g){var _,k,T;return T=k=null,_=new this.Promise(function(x,A){return T=x,k=A}),this._queue.push({task:w,args:g,resolve:T,reject:k}),this._tryToRun(),_}};var M=P,We="2.19.5",Gt={version:We},tr=Object.freeze({version:We,default:Gt}),C=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),N=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Dt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),wt,Ce,Ae,$t,on,rr;rr=s,wt=c,$t=C,Ae=N,on=Dt,Ce=function(){class I{constructor(g={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=g,rr.load(this.limiterOptions,this.defaults,this),this.Events=new wt(this),this.instances={},this.Bottleneck=Rm,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new $t(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new Ae(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(g=""){var _;return(_=this.instances[g])!=null?_:(()=>{var k;return k=this.instances[g]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${g}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",k,g),k})()}async deleteKey(g=""){var _,k;return k=this.instances[g],this.connection&&(_=await this.connection.__runCommand__(["del",...on.allKeys(`${this.id}-${g}`)])),k!=null&&(delete this.instances[g],await k.disconnect()),k!=null||_>0}limiters(){var g,_,k,T;_=this.instances,k=[];for(g in _)T=_[g],k.push({key:g,limiter:T});return k}keys(){return Object.keys(this.instances)}async clusterKeys(){var g,_,k,T,x,A,U,de,we;if(this.connection==null)return this.Promise.resolve(this.keys());for(A=[],g=null,we=`b_${this.id}-`.length,_=9;g!==0;)for([de,k]=await this.connection.__runCommand__(["scan",g??0,"match",`b_${this.id}-*_settings`,"count",1e4]),g=~~de,T=0,U=k.length;T<U;T++)x=k[T],A.push(x.slice(we,-_));return A}_startAutoCleanup(){var g;return clearInterval(this.interval),typeof(g=this.interval=setInterval(async()=>{var _,k,T,x,A,U;A=Date.now(),T=this.instances,x=[];for(k in T){U=T[k];try{await U._store.__groupCheck__(A)?x.push(this.deleteKey(k)):x.push(void 0)}catch(de){_=de,x.push(U.Events.trigger("error",_))}}return x},this.timeout/2)).unref=="function"?g.unref():void 0}updateSettings(g={}){if(rr.overwrite(g,this.defaults,this),rr.overwrite(g,g,this.limiterOptions),g.timeout!=null)return this._startAutoCleanup()}disconnect(g=!0){var _;if(!this.sharedConnection)return(_=this.connection)!=null?_.disconnect(g):void 0}}return I.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},I}.call(e);var ts=Ce,Tr,rs,fm;fm=s,rs=c,Tr=function(){class I{constructor(g={}){this.options=g,fm.load(this.options,this.defaults,this),this.Events=new rs(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((g,_)=>this._resolve=g)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(g){var _;return this._arr.push(g),_=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 SS=Tr,TS=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),vS=t(tr),gm,hm,uc,lc,ym,dc,bm,wm,_m,pc,_t,Em=[].splice;dc=10,hm=5,_t=s,bm=p,lc=O,ym=le,wm=TS,uc=c,_m=be,pc=M,gm=function(){class I{constructor(g={},..._){var k,T;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(g,_),_t.load(g,this.instanceDefaults,this),this._queues=new bm(dc),this._scheduled={},this._states=new _m(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new uc(this),this._submitLock=new pc("submit",this.Promise),this._registerLock=new pc("register",this.Promise),T=_t.load(g,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return k=_t.load(g,this.redisStoreDefaults,{}),new wm(this,T,k);if(this.datastore==="local")return k=_t.load(g,this.localStoreDefaults,{}),new ym(this,T,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(g,_){if(!(g!=null&&typeof g=="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(g){return this._store.__publish__(g)}disconnect(g=!0){return this._store.__disconnect__(g)}chain(g){return this._limiter=g,this}queued(g){return this._queues.queued(g)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(g){return this._states.jobStatus(g)}jobs(g){return this._states.statusJobs(g)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(g=1){return this._store.__check__(g)}_clearGlobalState(g){return this._scheduled[g]!=null?(clearTimeout(this._scheduled[g].expiration),delete this._scheduled[g],!0):!1}async _free(g,_,k,T){var x,A;try{if({running:A}=await this._store.__free__(g,k.weight),this.Events.trigger("debug",`Freed ${k.id}`,T),A===0&&this.empty())return this.Events.trigger("idle")}catch(U){return x=U,this.Events.trigger("error",x)}}_run(g,_,k){var T,x,A;return _.doRun(),T=this._clearGlobalState.bind(this,g),A=this._run.bind(this,g,_),x=this._free.bind(this,g,_),this._scheduled[g]={timeout:setTimeout(()=>_.doExecute(this._limiter,T,A,x),k),expiration:_.options.expiration!=null?setTimeout(function(){return _.doExpire(T,A,x)},k+_.options.expiration):void 0,job:_}}_drainOne(g){return this._registerLock.schedule(()=>{var _,k,T,x,A;return this.queued()===0?this.Promise.resolve(null):(A=this._queues.getFirst(),{options:x,args:_}=T=A.first(),g!=null&&x.weight>g?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:de,reservoir:we})=>{var ns;return this.Events.trigger("debug",`Drained ${x.id}`,{success:U,args:_,options:x}),U?(A.shift(),ns=this.empty(),ns&&this.Events.trigger("empty"),we===0&&this.Events.trigger("depleted",ns),this._run(k,T,de),this.Promise.resolve(x.weight)):this.Promise.resolve(null)})))})}_drainAll(g,_=0){return this._drainOne(g).then(k=>{var T;return k!=null?(T=g!=null?g-k:g,this._drainAll(T,_+k)):this.Promise.resolve(_)}).catch(k=>this.Events.trigger("error",k))}_dropAllQueued(g){return this._queues.shiftAll(function(_){return _.doDrop({message:g})})}stop(g={}){var _,k;return g=_t.load(g,this.stopDefaults),k=T=>{var x;return x=()=>{var A;return A=this._states.counts,A[0]+A[1]+A[2]+A[3]===T},new this.Promise((A,U)=>x()?A():this.on("done",()=>{if(x())return this.removeAllListeners("done"),A()}))},_=g.dropWaitingJobs?(this._run=function(T,x){return x.doDrop({message:g.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var T,x,A;x=this._scheduled;for(T in x)A=x[T],this.jobStatus(A.job.options.id)==="RUNNING"&&(clearTimeout(A.timeout),clearTimeout(A.expiration),A.job.doDrop({message:g.dropErrorMessage}));return this._dropAllQueued(g.dropErrorMessage),k(0)}))):this.schedule({priority:dc-1,weight:0},()=>k(1)),this._receive=function(T){return T._reject(new I.prototype.BottleneckError(g.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new I.prototype.BottleneckError("stop() has already been called")),_}async _addToQueue(g){var _,k,T,x,A,U,de;({args:_,options:x}=g);try{({reachedHWM:A,blocked:k,strategy:de}=await this._store.__submit__(this.queued(),x.weight))}catch(we){return T=we,this.Events.trigger("debug",`Could not queue ${x.id}`,{args:_,options:x,error:T}),g.doDrop({error:T}),!1}return k?(g.doDrop(),!0):A&&(U=de===I.prototype.strategy.LEAK?this._queues.shiftLastFrom(x.priority):de===I.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(x.priority+1):de===I.prototype.strategy.OVERFLOW?g:void 0,U?.doDrop(),U==null||de===I.prototype.strategy.OVERFLOW)?(U==null&&g.doDrop(),A):(g.doQueue(A,k),this._queues.push(g),await this._drainAll(),A)}_receive(g){return this._states.jobStatus(g.options.id)!=null?(g._reject(new I.prototype.BottleneckError(`A job with the same id already exists (id=${g.options.id})`)),!1):(g.doReceive(),this._submitLock.schedule(this._addToQueue,g))}submit(...g){var _,k,T,x,A,U,de;return typeof g[0]=="function"?(A=g,[k,...g]=A,[_]=Em.call(g,-1),x=_t.load({},this.jobDefaults)):(U=g,[x,k,...g]=U,[_]=Em.call(g,-1),x=_t.load(x,this.jobDefaults)),de=(...we)=>new this.Promise(function(ns,OS){return k(...we,function(...km){return(km[0]!=null?OS:ns)(km)})}),T=new lc(de,g,x,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),T.promise.then(function(we){return typeof _=="function"?_(...we):void 0}).catch(function(we){return Array.isArray(we)?typeof _=="function"?_(...we):void 0:typeof _=="function"?_(we):void 0}),this._receive(T)}schedule(...g){var _,k,T;return typeof g[0]=="function"?([T,...g]=g,k={}):[k,T,...g]=g,_=new lc(T,g,k,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(_),_.promise}wrap(g){var _,k;return _=this.schedule.bind(this),k=function(...T){return _(g.bind(this),...T)},k.withOptions=function(T,...x){return _(T,g,...x)},k}async updateSettings(g={}){return await this._store.__updateSettings__(_t.overwrite(g,this.storeDefaults)),_t.overwrite(g,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(g=0){return this._store.__incrementReservoir__(g)}}return I.default=I,I.Events=uc,I.version=I.prototype.version=vS.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=ts,I.RedisConnection=I.prototype.RedisConnection=C,I.IORedisConnection=I.prototype.IORedisConnection=N,I.Batcher=I.prototype.Batcher=SS,I.prototype.jobDefaults={priority:hm,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 Rm=gm,xS=Rm;return xS})});var Yt,bl=h(()=>{Yt=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 x0(e){return e.request!==void 0}async function Ay(e,t,r,n){if(!x0(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 O0(e,t,r,n){let s=new Py.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(C0.bind(null,e,t,r),n)}async function C0(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 Yt(s.data.errors[0].message,500,{request:n,response:s});return Ay(e,t,o,n)}return s}function wl(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",Ay.bind(null,r,n)),e.hook.wrap("request",O0.bind(null,r,n))),n}var Py,v0,Iy=h(()=>{Py=fc(yl(),1);bl();v0="0.0.0-development";wl.VERSION=v0});function P0(e,t,r){return e.retryLimiter.schedule(I0,e,t,r)}async function I0(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),s=L0(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,_l),o&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(u,_l),i&&await e.search.key(e.id).schedule(u,_l);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 L0(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 D0(e){let r=`^(?:${e.map(n=>n.split("/").map(s=>s.startsWith("{")?"(?:.+?)":s).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}function ji(e,t){let{enabled:r=!0,Bottleneck:n=Gy.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:Dy,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:s},t.throttle);if(typeof c.onSecondaryRateLimit!="function"||typeof c.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
|
|
75
|
+
`)[0]}catch{n+=1,o+=1;continue}if(!C0(c)){n+=1,o+=1;continue}r.push(c),o+=1}return{observations:r,unreadable:n}}function O0(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 C0(e){return A0(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 gl(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 A0(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Iy(e){return e instanceof Error&&"code"in e}var Ly=y(()=>{Ln();q()});var wl=Om((yl,bl)=>{(function(e,t){typeof yl=="object"&&typeof bl<"u"?bl.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(yl,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(L){return L&&L.default||L}var r=function(L,E,g={}){var R,S,v;for(R in E)v=E[R],g[R]=(S=L[R])!=null?S:v;return g},n=function(L,E,g={}){var R,S;for(R in L)S=L[R],E[R]!==void 0&&(g[R]=S);return g},s={load:r,overwrite:n},o;o=class{constructor(E,g){this.incr=E,this.decr=g,this._first=null,this._last=null,this.length=0}push(E){var g;this.length++,typeof this.incr=="function"&&this.incr(),g={value:E,prev:this._last,next:null},this._last!=null?(this._last.next=g,this._last=g):this._first=this._last=g}shift(){var E;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),E=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,E}first(){if(this._first!=null)return this._first.value}getArray(){var E,g,R;for(E=this._first,R=[];E!=null;)R.push((g=E,E=E.next,g.value));return R}forEachShift(E){var g;for(g=this.shift();g!=null;)E(g),g=this.shift()}debug(){var E,g,R,S,v;for(E=this._first,v=[];E!=null;)v.push((g=E,E=E.next,{value:g.value,prev:(R=g.prev)!=null?R.value:void 0,next:(S=g.next)!=null?S.value:void 0}));return v}};var i=o,a;a=class{constructor(E){if(this.instance=E,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=(g,R)=>this._addListener(g,"many",R),this.instance.once=(g,R)=>this._addListener(g,"once",R),this.instance.removeAllListeners=(g=null)=>g!=null?delete this._events[g]:this._events={}}_addListener(E,g,R){var S;return(S=this._events)[E]==null&&(S[E]=[]),this._events[E].push({cb:R,status:g}),this.instance}listenerCount(E){return this._events[E]!=null?this._events[E].length:0}async trigger(E,...g){var R,S;try{return E!=="debug"&&this.trigger("debug",`Event triggered: ${E}`,g),this._events[E]==null?void 0:(this._events[E]=this._events[E].filter(function(v){return v.status!=="none"}),S=this._events[E].map(async v=>{var O,P;if(v.status!=="none"){v.status==="once"&&(v.status="none");try{return P=typeof v.cb=="function"?v.cb(...g):void 0,typeof P?.then=="function"?await P:P}catch(H){return O=H,this.trigger("error",O),null}}}),(await Promise.all(S)).find(function(v){return v!=null}))}catch(v){return R=v,this.trigger("error",R),null}}};var c=a,u,l,d;u=i,l=c,d=class{constructor(E){var g;this.Events=new l(this),this._length=0,this._lists=function(){var R,S,v;for(v=[],g=R=1,S=E;1<=S?R<=S:R>=S;g=1<=S?++R:--R)v.push(new u(()=>this.incr(),()=>this.decr()));return v}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(E){return this._lists[E.options.priority].push(E)}queued(E){return E!=null?this._lists[E].length:this._length}shiftAll(E){return this._lists.forEach(function(g){return g.forEachShift(E)})}getFirst(E=this._lists){var g,R,S;for(g=0,R=E.length;g<R;g++)if(S=E[g],S.length>0)return S;return[]}shiftLastFrom(E){return this.getFirst(this._lists.slice(E).reverse()).shift()}};var p=d,m;m=class extends Error{};var f=m,b,_,h,w,k;w=10,_=5,k=s,b=f,h=class{constructor(E,g,R,S,v,O,P,H){this.task=E,this.args=g,this.rejectOnDrop=v,this.Events=O,this._states=P,this.Promise=H,this.options=k.load(R,S),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===S.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((me,we)=>{this._resolve=me,this._reject=we}),this.retryCount=0}_sanitizePriority(E){var g;return g=~~E!==E?_:E,g<0?0:g>w-1?w-1:g}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:E,message:g="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(E??new b(g)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(E){var g;if(g=this._states.jobStatus(this.options.id),!(g===E||E==="DONE"&&g===null))throw new b(`Invalid job status ${g}, expected ${E}. 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(E,g){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:E,blocked:g})}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(E,g,R,S){var v,O,P;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),O={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",O);try{if(P=await(E!=null?E.schedule(this.options,this.task,...this.args):this.task(...this.args)),g())return this.doDone(O),await S(this.options,O),this._assertStatus("DONE"),this._resolve(P)}catch(H){return v=H,this._onFailure(v,O,g,R,S)}}doExpire(E,g,R){var S,v;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),v={args:this.args,options:this.options,retryCount:this.retryCount},S=new b(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(S,v,E,g,R)}async _onFailure(E,g,R,S,v){var O,P;if(R())return O=await this.Events.trigger("failed",E,g),O!=null?(P=~~O,this.Events.trigger("retry",`Retrying ${this.options.id} after ${P} ms`,g),this.retryCount++,S(P)):(this.doDone(g),await v(this.options,g),this._assertStatus("DONE"),this._reject(E))}doDone(E){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",E)}};var x=h,A,N,U;U=s,A=f,N=class{constructor(E,g,R){this.instance=E,this.storeOptions=g,this.clientId=this.instance._randomIndex(),U.load(R,R,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 E;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(E=this.heartbeat=setInterval(()=>{var g,R,S,v,O;if(v=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&v>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=v,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&v>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:g,reservoirIncreaseMaximum:S,reservoir:O}=this.storeOptions,this._lastReservoirIncrease=v,R=S!=null?Math.min(g,S-O):g,R>0))return this.storeOptions.reservoir+=R,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?E.unref():void 0:clearInterval(this.heartbeat)}async __publish__(E){return await this.yieldLoop(),this.instance.Events.trigger("message",E.toString())}async __disconnect__(E){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(E=0){return new this.Promise(function(g,R){return setTimeout(g,E)})}computePenalty(){var E;return(E=this.storeOptions.penalty)!=null?E:15*this.storeOptions.minTime||5e3}async __updateSettings__(E){return await this.yieldLoop(),U.overwrite(E,E,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__(E){return await this.yieldLoop(),this._nextRequest+this.timeout<E}computeCapacity(){var E,g;return{maxConcurrent:E,reservoir:g}=this.storeOptions,E!=null&&g!=null?Math.min(E-this._running,g):E!=null?E-this._running:g??null}conditionsCheck(E){var g;return g=this.computeCapacity(),g==null||E<=g}async __incrementReservoir__(E){var g;return await this.yieldLoop(),g=this.storeOptions.reservoir+=E,this.instance._drainAll(this.computeCapacity()),g}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(E){return this._unblockTime>=E}check(E,g){return this.conditionsCheck(E)&&this._nextRequest-g<=0}async __check__(E){var g;return await this.yieldLoop(),g=Date.now(),this.check(E,g)}async __register__(E,g,R){var S,v;return await this.yieldLoop(),S=Date.now(),this.conditionsCheck(g)?(this._running+=g,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=g),v=Math.max(this._nextRequest-S,0),this._nextRequest=S+v+this.storeOptions.minTime,{success:!0,wait:v,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(E,g){var R,S,v;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&g>this.storeOptions.maxConcurrent)throw new A(`Impossible to add a job having a weight of ${g} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return S=Date.now(),v=this.storeOptions.highWater!=null&&E===this.storeOptions.highWater&&!this.check(g,S),R=this.strategyIsBlock()&&(v||this.isBlocked(S)),R&&(this._unblockTime=S+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:v,blocked:R,strategy:this.storeOptions.strategy}}async __free__(E,g){return await this.yieldLoop(),this._running-=g,this._done+=g,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var Q=N,X,de;X=f,de=class{constructor(E){this.status=E,this._jobs={},this.counts=this.status.map(function(){return 0})}next(E){var g,R;if(g=this._jobs[E],R=g+1,g!=null&&R<this.status.length)return this.counts[g]--,this.counts[R]++,this._jobs[E]++;if(g!=null)return this.counts[g]--,delete this._jobs[E]}start(E){var g;return g=0,this._jobs[E]=g,this.counts[g]++}remove(E){var g;return g=this._jobs[E],g!=null&&(this.counts[g]--,delete this._jobs[E]),g!=null}jobStatus(E){var g;return(g=this.status[this._jobs[E]])!=null?g:null}statusJobs(E){var g,R,S,v,O;if(E!=null){if(R=this.status.indexOf(E),R<0)throw new X(`status must be one of ${this.status.join(", ")}`);S=this._jobs,v=[];for(g in S)O=S[g],O===R&&v.push(g);return v}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((E,g,R)=>(E[this.status[R]]=g,E),{})}};var V=de,wt,I;wt=i,I=class{constructor(E,g){this.schedule=this.schedule.bind(this),this.name=E,this.Promise=g,this._running=0,this._queue=new wt}isEmpty(){return this._queue.length===0}async _tryToRun(){var E,g,R,S,v,O,P;if(this._running<1&&this._queue.length>0)return this._running++,{task:P,args:E,resolve:v,reject:S}=this._queue.shift(),g=await async function(){try{return O=await P(...E),function(){return v(O)}}catch(H){return R=H,function(){return S(R)}}}(),this._running--,this._tryToRun(),g()}schedule(E,...g){var R,S,v;return v=S=null,R=new this.Promise(function(O,P){return v=O,S=P}),this._queue.push({task:E,args:g,resolve:v,reject:S}),this._tryToRun(),R}};var M=I,We="2.19.5",$t={version:We},tr=Object.freeze({version:We,default:$t}),C=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),F=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Nt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),_t,Ce,Ae,Ft,cn,rr;rr=s,_t=c,Ft=C,Ae=F,cn=Nt,Ce=function(){class L{constructor(g={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=g,rr.load(this.limiterOptions,this.defaults,this),this.Events=new _t(this),this.instances={},this.Bottleneck=vm,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Ft(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new Ae(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(g=""){var R;return(R=this.instances[g])!=null?R:(()=>{var S;return S=this.instances[g]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${g}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",S,g),S})()}async deleteKey(g=""){var R,S;return S=this.instances[g],this.connection&&(R=await this.connection.__runCommand__(["del",...cn.allKeys(`${this.id}-${g}`)])),S!=null&&(delete this.instances[g],await S.disconnect()),S!=null||R>0}limiters(){var g,R,S,v;R=this.instances,S=[];for(g in R)v=R[g],S.push({key:g,limiter:v});return S}keys(){return Object.keys(this.instances)}async clusterKeys(){var g,R,S,v,O,P,H,me,we;if(this.connection==null)return this.Promise.resolve(this.keys());for(P=[],g=null,we=`b_${this.id}-`.length,R=9;g!==0;)for([me,S]=await this.connection.__runCommand__(["scan",g??0,"match",`b_${this.id}-*_settings`,"count",1e4]),g=~~me,v=0,H=S.length;v<H;v++)O=S[v],P.push(O.slice(we,-R));return P}_startAutoCleanup(){var g;return clearInterval(this.interval),typeof(g=this.interval=setInterval(async()=>{var R,S,v,O,P,H;P=Date.now(),v=this.instances,O=[];for(S in v){H=v[S];try{await H._store.__groupCheck__(P)?O.push(this.deleteKey(S)):O.push(void 0)}catch(me){R=me,O.push(H.Events.trigger("error",R))}}return O},this.timeout/2)).unref=="function"?g.unref():void 0}updateSettings(g={}){if(rr.overwrite(g,this.defaults,this),rr.overwrite(g,g,this.limiterOptions),g.timeout!=null)return this._startAutoCleanup()}disconnect(g=!0){var R;if(!this.sharedConnection)return(R=this.connection)!=null?R.disconnect(g):void 0}}return L.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},L}.call(e);var ns=Ce,vr,ss,bm;bm=s,ss=c,vr=function(){class L{constructor(g={}){this.options=g,bm.load(this.options,this.defaults,this),this.Events=new ss(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((g,R)=>this._resolve=g)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(g){var R;return this._arr.push(g),R=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),R}}return L.prototype.defaults={maxTime:null,maxSize:null,Promise},L}.call(e);var CS=vr,AS=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),PS=t(tr),wm,_m,dc,pc,Em,mc,Rm,km,Sm,fc,Et,Tm=[].splice;mc=10,_m=5,Et=s,Rm=p,pc=x,Em=Q,km=AS,dc=c,Sm=V,fc=M,wm=function(){class L{constructor(g={},...R){var S,v;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(g,R),Et.load(g,this.instanceDefaults,this),this._queues=new Rm(mc),this._scheduled={},this._states=new Sm(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new dc(this),this._submitLock=new fc("submit",this.Promise),this._registerLock=new fc("register",this.Promise),v=Et.load(g,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return S=Et.load(g,this.redisStoreDefaults,{}),new km(this,v,S);if(this.datastore==="local")return S=Et.load(g,this.localStoreDefaults,{}),new Em(this,v,S);throw new L.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var O;return(O=this._store.heartbeat)!=null&&typeof O.ref=="function"?O.ref():void 0}),this._queues.on("zero",()=>{var O;return(O=this._store.heartbeat)!=null&&typeof O.unref=="function"?O.unref():void 0})}_validateOptions(g,R){if(!(g!=null&&typeof g=="object"&&R.length===0))throw new L.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(g){return this._store.__publish__(g)}disconnect(g=!0){return this._store.__disconnect__(g)}chain(g){return this._limiter=g,this}queued(g){return this._queues.queued(g)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(g){return this._states.jobStatus(g)}jobs(g){return this._states.statusJobs(g)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(g=1){return this._store.__check__(g)}_clearGlobalState(g){return this._scheduled[g]!=null?(clearTimeout(this._scheduled[g].expiration),delete this._scheduled[g],!0):!1}async _free(g,R,S,v){var O,P;try{if({running:P}=await this._store.__free__(g,S.weight),this.Events.trigger("debug",`Freed ${S.id}`,v),P===0&&this.empty())return this.Events.trigger("idle")}catch(H){return O=H,this.Events.trigger("error",O)}}_run(g,R,S){var v,O,P;return R.doRun(),v=this._clearGlobalState.bind(this,g),P=this._run.bind(this,g,R),O=this._free.bind(this,g,R),this._scheduled[g]={timeout:setTimeout(()=>R.doExecute(this._limiter,v,P,O),S),expiration:R.options.expiration!=null?setTimeout(function(){return R.doExpire(v,P,O)},S+R.options.expiration):void 0,job:R}}_drainOne(g){return this._registerLock.schedule(()=>{var R,S,v,O,P;return this.queued()===0?this.Promise.resolve(null):(P=this._queues.getFirst(),{options:O,args:R}=v=P.first(),g!=null&&O.weight>g?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${O.id}`,{args:R,options:O}),S=this._randomIndex(),this._store.__register__(S,O.weight,O.expiration).then(({success:H,wait:me,reservoir:we})=>{var os;return this.Events.trigger("debug",`Drained ${O.id}`,{success:H,args:R,options:O}),H?(P.shift(),os=this.empty(),os&&this.Events.trigger("empty"),we===0&&this.Events.trigger("depleted",os),this._run(S,v,me),this.Promise.resolve(O.weight)):this.Promise.resolve(null)})))})}_drainAll(g,R=0){return this._drainOne(g).then(S=>{var v;return S!=null?(v=g!=null?g-S:g,this._drainAll(v,R+S)):this.Promise.resolve(R)}).catch(S=>this.Events.trigger("error",S))}_dropAllQueued(g){return this._queues.shiftAll(function(R){return R.doDrop({message:g})})}stop(g={}){var R,S;return g=Et.load(g,this.stopDefaults),S=v=>{var O;return O=()=>{var P;return P=this._states.counts,P[0]+P[1]+P[2]+P[3]===v},new this.Promise((P,H)=>O()?P():this.on("done",()=>{if(O())return this.removeAllListeners("done"),P()}))},R=g.dropWaitingJobs?(this._run=function(v,O){return O.doDrop({message:g.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var v,O,P;O=this._scheduled;for(v in O)P=O[v],this.jobStatus(P.job.options.id)==="RUNNING"&&(clearTimeout(P.timeout),clearTimeout(P.expiration),P.job.doDrop({message:g.dropErrorMessage}));return this._dropAllQueued(g.dropErrorMessage),S(0)}))):this.schedule({priority:mc-1,weight:0},()=>S(1)),this._receive=function(v){return v._reject(new L.prototype.BottleneckError(g.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new L.prototype.BottleneckError("stop() has already been called")),R}async _addToQueue(g){var R,S,v,O,P,H,me;({args:R,options:O}=g);try{({reachedHWM:P,blocked:S,strategy:me}=await this._store.__submit__(this.queued(),O.weight))}catch(we){return v=we,this.Events.trigger("debug",`Could not queue ${O.id}`,{args:R,options:O,error:v}),g.doDrop({error:v}),!1}return S?(g.doDrop(),!0):P&&(H=me===L.prototype.strategy.LEAK?this._queues.shiftLastFrom(O.priority):me===L.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(O.priority+1):me===L.prototype.strategy.OVERFLOW?g:void 0,H?.doDrop(),H==null||me===L.prototype.strategy.OVERFLOW)?(H==null&&g.doDrop(),P):(g.doQueue(P,S),this._queues.push(g),await this._drainAll(),P)}_receive(g){return this._states.jobStatus(g.options.id)!=null?(g._reject(new L.prototype.BottleneckError(`A job with the same id already exists (id=${g.options.id})`)),!1):(g.doReceive(),this._submitLock.schedule(this._addToQueue,g))}submit(...g){var R,S,v,O,P,H,me;return typeof g[0]=="function"?(P=g,[S,...g]=P,[R]=Tm.call(g,-1),O=Et.load({},this.jobDefaults)):(H=g,[O,S,...g]=H,[R]=Tm.call(g,-1),O=Et.load(O,this.jobDefaults)),me=(...we)=>new this.Promise(function(os,LS){return S(...we,function(...xm){return(xm[0]!=null?LS:os)(xm)})}),v=new pc(me,g,O,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),v.promise.then(function(we){return typeof R=="function"?R(...we):void 0}).catch(function(we){return Array.isArray(we)?typeof R=="function"?R(...we):void 0:typeof R=="function"?R(we):void 0}),this._receive(v)}schedule(...g){var R,S,v;return typeof g[0]=="function"?([v,...g]=g,S={}):[S,v,...g]=g,R=new pc(v,g,S,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(R),R.promise}wrap(g){var R,S;return R=this.schedule.bind(this),S=function(...v){return R(g.bind(this),...v)},S.withOptions=function(v,...O){return R(v,g,...O)},S}async updateSettings(g={}){return await this._store.__updateSettings__(Et.overwrite(g,this.storeDefaults)),Et.overwrite(g,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(g=0){return this._store.__incrementReservoir__(g)}}return L.default=L,L.Events=dc,L.version=L.prototype.version=PS.version,L.strategy=L.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},L.BottleneckError=L.prototype.BottleneckError=f,L.Group=L.prototype.Group=ns,L.RedisConnection=L.prototype.RedisConnection=C,L.IORedisConnection=L.prototype.IORedisConnection=F,L.Batcher=L.prototype.Batcher=CS,L.prototype.jobDefaults={priority:_m,weight:1,expiration:null,id:"<no-id>"},L.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:L.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},L.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},L.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},L.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},L.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},L}.call(e);var vm=wm,IS=vm;return IS})});var Qt,_l=y(()=>{Qt=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 I0(e){return e.request!==void 0}async function Gy(e,t,r,n){if(!I0(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 L0(e,t,r,n){let s=new Dy.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(G0.bind(null,e,t,r),n)}async function G0(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 Qt(s.data.errors[0].message,500,{request:n,response:s});return Gy(e,t,o,n)}return s}function El(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",Gy.bind(null,r,n)),e.hook.wrap("request",L0.bind(null,r,n))),n}var Dy,P0,$y=y(()=>{Dy=hc(wl(),1);_l();P0="0.0.0-development";El.VERSION=P0});function $0(e,t,r){return e.retryLimiter.schedule(N0,e,t,r)}async function N0(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),s=F0(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,Rl),o&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(u,Rl),i&&await e.search.key(e.id).schedule(u,Rl);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 F0(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 M0(e){let r=`^(?:${e.map(n=>n.split("/").map(s=>s.startsWith("{")?"(?:.+?)":s).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}function Ui(e,t){let{enabled:r=!0,Bottleneck:n=Fy.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:jy,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:s},t.throttle);if(typeof c.onSecondaryRateLimit!="function"||typeof c.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
|
|
76
76
|
You must pass the onSecondaryRateLimit and onRateLimit error handlers.
|
|
77
77
|
See https://octokit.github.io/rest.js/#throttling
|
|
78
78
|
|
|
@@ -82,114 +82,114 @@ ${a}
|
|
|
82
82
|
onRateLimit: (retryAfter, options) => {/* ... */}
|
|
83
83
|
}
|
|
84
84
|
})
|
|
85
|
-
`);let u=!1,l=()=>{if(u)return;u=!0,ft.global==null&&$0(n,a),c.global=c.global??ft.global,c.auth=c.auth??ft.auth,c.search=c.search??ft.search,c.write=c.write??ft.write,c.notifications=c.notifications??ft.notifications,c.retryLimiter=c.retryLimiter??new n;let d={},p=new n.Events(d);d.on("secondary-limit",c.onSecondaryRateLimit),d.on("rate-limit",c.onRateLimit),d.on("error",m=>e.log.warn("Error in throttling-plugin limit handler",m)),c.retryLimiter.on("failed",async function(m,f){let[E,b,y]=f.args,{pathname:R}=new URL(y.url,"http://github.test");if(!(R.startsWith("/graphql")&&m.status!==401||m.status===403||m.status===429))return;let O=~~b.retryCount;b.retryCount=O,y.request.retryCount=O;let{wantRetry:L,retryAfter:F=0}=await async function(){if(/\bsecondary rate\b/i.test(m.message)){let W=Number(m.response.headers["retry-after"])||E.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",W,y,e,O),retryAfter:W}}if(m.response.headers!=null&&m.response.headers["x-ratelimit-remaining"]==="0"||(m.response.data?.errors??[]).some(W=>W.type==="RATE_LIMITED")){let W=new Date(~~m.response.headers["x-ratelimit-reset"]*1e3).getTime(),le=Math.max(Math.ceil((W-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",le,y,e,O),retryAfter:le}}return{}}();if(L)return b.retryCount++,F*E.retryAfterBaseValue})};return e.hook.wrap("request",(d,p)=>(l(),P0(c,d,p))),{}}var Gy,A0,_l,G0,Ly,Dy,ft,$0,$y=h(()=>{Gy=fc(yl(),1),A0="0.0.0-development",_l=()=>Promise.resolve();G0=["/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"];Ly=D0(G0),Dy=Ly.test.bind(Ly),ft={},$0=function(e,t){ft.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),ft.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),ft.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),ft.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),ft.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};ji.VERSION=A0;ji.triggersNotification=Dy});function cr(){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 Us=h(()=>{});function Mi(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)=>Mi.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 Ny=h(()=>{});function Fy(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 jy=h(()=>{});function My(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 By=h(()=>{});function qy(e,t,r){let n=Hy(My,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]=Hy(Fy,null).apply(null,o)})}function N0(){let e=Symbol("Singular"),t={registry:{}},r=Mi.bind(null,t,e);return qy(r,t,e),r}function F0(){let e={registry:{}},t=Mi.bind(null,e);return qy(t,e),t}var Uy,Hy,Wy,Jy=h(()=>{Ny();jy();By();Uy=Function.bind,Hy=Uy.bind(Uy);Wy={Singular:N0,Collection:F0}});function U0(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function H0(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 zy(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{H0(t[n])?n in e?r[n]=zy(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Vy(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Rl(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=U0(r.headers),Vy(r),Vy(r.headers);let n=zy(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 q0(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 J0(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function V0(e){let t=e.match(W0);return t?t.map(J0).reduce((r,n)=>r.concat(n),[]):[]}function Ky(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Yy(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 In(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Hs(e,t,r){return t=e==="+"||e==="#"?Yy(t):In(t),r?In(r)+"="+t:t}function Pn(e){return e!=null}function El(e){return e===";"||e==="&"||e==="?"}function K0(e,t,r,n){var s=e[r],o=[];if(Pn(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,El(t)?r:""));else if(n==="*")Array.isArray(s)?s.filter(Pn).forEach(function(i){o.push(Hs(t,i,El(t)?r:""))}):Object.keys(s).forEach(function(i){Pn(s[i])&&o.push(Hs(t,s[i],i))});else{let i=[];Array.isArray(s)?s.filter(Pn).forEach(function(a){i.push(Hs(t,a))}):Object.keys(s).forEach(function(a){Pn(s[a])&&(i.push(In(a)),i.push(Hs(t,s[a].toString())))}),El(t)?o.push(In(r)+"="+i.join(",")):i.length!==0&&o.push(i.join(","))}else t===";"?Pn(s)&&o.push(In(r)):s===""&&(t==="&"||t==="?")?o.push(In(r)+"="):s===""&&o.push("");return o}function z0(e){return{expand:Y0.bind(null,e)}}function Y0(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(K0(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 Yy(o)}),e==="/"?e:e.replace(/\/$/,"")}function Qy(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),s,o=Ky(e,["method","baseUrl","url","headers","request","mediaType"]),i=V0(r);r=z0(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=Ky(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=q0(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 Q0(e,t,r){return Qy(Rl(e,t,r))}function Xy(e,t){let r=Rl(e,t),n=Q0.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Xy.bind(null,r),merge:Rl.bind(null,r),parse:Qy})}var j0,M0,B0,W0,Zy,eb=h(()=>{Us();j0="0.0.0-development",M0=`octokit-endpoint.js/${j0} ${cr()}`,B0={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":M0},mediaType:{format:""}};W0=/\{[^{}}]+\}/g;Zy=Xy(null,B0)});var ab=Sm(Bi=>{"use strict";Object.defineProperty(Bi,"__esModule",{value:!0});Bi.format=tA;Bi.parse=rA;var X0=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,rb=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Z0=/[\\"]/g,eA=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,nb=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function tA(e){let{type:t,parameters:r}=e;if(!t||!eA.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let s of Object.keys(r)){if(!rb.test(s))throw new TypeError(`Invalid parameter name: ${s}`);n+=`; ${s}=${iA(r[s])}`}return n}function rA(e,t){let r=e.length,n=Sl(e,0,r),s=n;n=kl(e,n,r);let o=Tl(e,s,n),i=e.slice(s,o).toLowerCase(),a=t?.parameters===!1?new nb:oA(e,n,r);return{type:i,parameters:a}}var sb=32,ob=9,ib=59,nA=61,tb=34,sA=92;function oA(e,t,r){let n=new nb;e:for(;t<r;){t=Sl(e,t+1,r);let s=t;for(;t<r;){let o=e.charCodeAt(t);if(o===ib)continue e;if(o===nA){let i=Tl(e,s,t),a=e.slice(s,i).toLowerCase();if(t=Sl(e,t+1,r),t<r&&e.charCodeAt(t)===tb){t++;let u="";for(;t<r;){let l=e.charCodeAt(t++);if(l===tb){t=kl(e,t,r),n[a]===void 0&&(n[a]=u);break}if(l===sA&&t<r){u+=e[t++];continue}u+=String.fromCharCode(l)}continue e}let c=t;if(t=kl(e,t,r),n[a]===void 0){let u=Tl(e,c,t);n[a]=e.slice(c,u)}continue e}t++}}return n}function kl(e,t,r){for(;t<r&&e.charCodeAt(t)!==ib;)t++;return t}function Sl(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==sb&&n!==ob)break;t++}return t}function Tl(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==sb&&n!==ob)break;r--}return r}function iA(e){if(rb.test(e))return e;if(X0.test(e))return`"${e.replace(Z0,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});var aA,Hi,ur,vl,pb,cb,ub,xl,Ol,cA,mb,Ui,uA,lA,dA,fb,lb,pA,mA,fA,db,gb,hb=h(()=>{aA=/^-?\d+$/,Hi=/^-?\d+n+$/,ur=JSON.stringify,vl=JSON.parse,pb=/^-?\d+n$/,cb=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,ub=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,xl=e=>e===void 0||typeof e=="function"||typeof e=="symbol",Ol=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",cA=(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,E,b)=>(b!==null&&typeof b=="object"&&typeof b.toJSON=="function"&&(b=b.toJSON(E)),typeof b=="string"&&Hi.test(b)?b+"n":typeof b=="bigint"?"rawJSON"in JSON?JSON.rawJSON(b.toString()):b.toString()+"n":(s&&(b=t.call(f,E,b)),b!==null&&typeof b=="object"&&(b instanceof Number||b instanceof String||b instanceof Boolean)&&(b=b.valueOf()),b)),a=i({"":e},"",e);if(xl(a))return;let c=a===null||typeof a!="object",u=Ol(a);if(c||u)return ur(a);let l=[],d=0,p=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],m=new WeakSet([a]);for(;p.length>0;){let f=p[p.length-1];f.index===0&&(l.push(f.isArray?"[":"{"),d++);let E=!1;if(f.isArray)if(f.index<f.val.length){f.first||l.push(","),n&&l.push(`
|
|
86
|
-
`+n.repeat(d));let
|
|
87
|
-
`+n.repeat(d)+ur(
|
|
88
|
-
`+n.repeat(d)),l.push(f.isArray?"]":"}"),m.delete(f.val),p.pop())}return l.join("")},
|
|
85
|
+
`);let u=!1,l=()=>{if(u)return;u=!0,ft.global==null&&B0(n,a),c.global=c.global??ft.global,c.auth=c.auth??ft.auth,c.search=c.search??ft.search,c.write=c.write??ft.write,c.notifications=c.notifications??ft.notifications,c.retryLimiter=c.retryLimiter??new n;let d={},p=new n.Events(d);d.on("secondary-limit",c.onSecondaryRateLimit),d.on("rate-limit",c.onRateLimit),d.on("error",m=>e.log.warn("Error in throttling-plugin limit handler",m)),c.retryLimiter.on("failed",async function(m,f){let[b,_,h]=f.args,{pathname:w}=new URL(h.url,"http://github.test");if(!(w.startsWith("/graphql")&&m.status!==401||m.status===403||m.status===429))return;let x=~~_.retryCount;_.retryCount=x,h.request.retryCount=x;let{wantRetry:A,retryAfter:N=0}=await async function(){if(/\bsecondary rate\b/i.test(m.message)){let U=Number(m.response.headers["retry-after"])||b.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",U,h,e,x),retryAfter:U}}if(m.response.headers!=null&&m.response.headers["x-ratelimit-remaining"]==="0"||(m.response.data?.errors??[]).some(U=>U.type==="RATE_LIMITED")){let U=new Date(~~m.response.headers["x-ratelimit-reset"]*1e3).getTime(),Q=Math.max(Math.ceil((U-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",Q,h,e,x),retryAfter:Q}}return{}}();if(A)return _.retryCount++,N*b.retryAfterBaseValue})};return e.hook.wrap("request",(d,p)=>(l(),$0(c,d,p))),{}}var Fy,D0,Rl,j0,Ny,jy,ft,B0,My=y(()=>{Fy=hc(wl(),1),D0="0.0.0-development",Rl=()=>Promise.resolve();j0=["/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"];Ny=M0(j0),jy=Ny.test.bind(Ny),ft={},B0=function(e,t){ft.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),ft.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),ft.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),ft.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),ft.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};Ui.VERSION=D0;Ui.triggersNotification=jy});function cr(){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 Hs=y(()=>{});function Hi(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((s,o)=>Hi.bind(null,e,o,s,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((s,o)=>o.hook.bind(null,s,n),r)():r(n))}var By=y(()=>{});function Uy(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 Hy=y(()=>{});function qy(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 Wy=y(()=>{});function Ky(e,t,r){let n=Vy(qy,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]=Vy(Uy,null).apply(null,o)})}function U0(){let e=Symbol("Singular"),t={registry:{}},r=Hi.bind(null,t,e);return Ky(r,t,e),r}function H0(){let e={registry:{}},t=Hi.bind(null,e);return Ky(t,e),t}var Jy,Vy,zy,Yy=y(()=>{By();Hy();Wy();Jy=Function.bind,Vy=Jy.bind(Jy);zy={Singular:U0,Collection:H0}});function V0(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function K0(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 Zy(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{K0(t[n])?n in e?r[n]=Zy(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Qy(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Sl(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=V0(r.headers),Qy(r),Qy(r.headers);let n=Zy(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 z0(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 Q0(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function X0(e){let t=e.match(Y0);return t?t.map(Q0).reduce((r,n)=>r.concat(n),[]):[]}function Xy(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function eb(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 qs(e,t,r){return t=e==="+"||e==="#"?eb(t):Dn(t),r?Dn(r)+"="+t:t}function Gn(e){return e!=null}function kl(e){return e===";"||e==="&"||e==="?"}function Z0(e,t,r,n){var s=e[r],o=[];if(Gn(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(qs(t,s,kl(t)?r:""));else if(n==="*")Array.isArray(s)?s.filter(Gn).forEach(function(i){o.push(qs(t,i,kl(t)?r:""))}):Object.keys(s).forEach(function(i){Gn(s[i])&&o.push(qs(t,s[i],i))});else{let i=[];Array.isArray(s)?s.filter(Gn).forEach(function(a){i.push(qs(t,a))}):Object.keys(s).forEach(function(a){Gn(s[a])&&(i.push(Dn(a)),i.push(qs(t,s[a].toString())))}),kl(t)?o.push(Dn(r)+"="+i.join(",")):i.length!==0&&o.push(i.join(","))}else t===";"?Gn(s)&&o.push(Dn(r)):s===""&&(t==="&"||t==="?")?o.push(Dn(r)+"="):s===""&&o.push("");return o}function eA(e){return{expand:tA.bind(null,e)}}function tA(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(Z0(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 eb(o)}),e==="/"?e:e.replace(/\/$/,"")}function tb(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),s,o=Xy(e,["method","baseUrl","url","headers","request","mediaType"]),i=X0(r);r=eA(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=Xy(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=z0(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 rA(e,t,r){return tb(Sl(e,t,r))}function rb(e,t){let r=Sl(e,t),n=rA.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:rb.bind(null,r),merge:Sl.bind(null,r),parse:tb})}var q0,W0,J0,Y0,nb,sb=y(()=>{Hs();q0="0.0.0-development",W0=`octokit-endpoint.js/${q0} ${cr()}`,J0={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":W0},mediaType:{format:""}};Y0=/\{[^{}}]+\}/g;nb=rb(null,J0)});var db=Om(qi=>{"use strict";Object.defineProperty(qi,"__esModule",{value:!0});qi.format=iA;qi.parse=aA;var nA=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,ib=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,sA=/[\\"]/g,oA=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,ab=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function iA(e){let{type:t,parameters:r}=e;if(!t||!oA.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let s of Object.keys(r)){if(!ib.test(s))throw new TypeError(`Invalid parameter name: ${s}`);n+=`; ${s}=${dA(r[s])}`}return n}function aA(e,t){let r=e.length,n=vl(e,0,r),s=n;n=Tl(e,n,r);let o=xl(e,s,n),i=e.slice(s,o).toLowerCase(),a=t?.parameters===!1?new ab:lA(e,n,r);return{type:i,parameters:a}}var cb=32,ub=9,lb=59,cA=61,ob=34,uA=92;function lA(e,t,r){let n=new ab;e:for(;t<r;){t=vl(e,t+1,r);let s=t;for(;t<r;){let o=e.charCodeAt(t);if(o===lb)continue e;if(o===cA){let i=xl(e,s,t),a=e.slice(s,i).toLowerCase();if(t=vl(e,t+1,r),t<r&&e.charCodeAt(t)===ob){t++;let u="";for(;t<r;){let l=e.charCodeAt(t++);if(l===ob){t=Tl(e,t,r),n[a]===void 0&&(n[a]=u);break}if(l===uA&&t<r){u+=e[t++];continue}u+=String.fromCharCode(l)}continue e}let c=t;if(t=Tl(e,t,r),n[a]===void 0){let u=xl(e,c,t);n[a]=e.slice(c,u)}continue e}t++}}return n}function Tl(e,t,r){for(;t<r&&e.charCodeAt(t)!==lb;)t++;return t}function vl(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==cb&&n!==ub)break;t++}return t}function xl(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==cb&&n!==ub)break;r--}return r}function dA(e){if(ib.test(e))return e;if(nA.test(e))return`"${e.replace(sA,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});var pA,Ji,ur,Ol,hb,pb,mb,Cl,Al,mA,yb,Wi,fA,gA,hA,bb,fb,yA,bA,wA,gb,wb,_b=y(()=>{pA=/^-?\d+$/,Ji=/^-?\d+n+$/,ur=JSON.stringify,Ol=JSON.parse,hb=/^-?\d+n$/,pb=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,mb=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Cl=e=>e===void 0||typeof e=="function"||typeof e=="symbol",Al=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",mA=(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,b,_)=>(_!==null&&typeof _=="object"&&typeof _.toJSON=="function"&&(_=_.toJSON(b)),typeof _=="string"&&Ji.test(_)?_+"n":typeof _=="bigint"?"rawJSON"in JSON?JSON.rawJSON(_.toString()):_.toString()+"n":(s&&(_=t.call(f,b,_)),_!==null&&typeof _=="object"&&(_ instanceof Number||_ instanceof String||_ instanceof Boolean)&&(_=_.valueOf()),_)),a=i({"":e},"",e);if(Cl(a))return;let c=a===null||typeof a!="object",u=Al(a);if(c||u)return ur(a);let l=[],d=0,p=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],m=new WeakSet([a]);for(;p.length>0;){let f=p[p.length-1];f.index===0&&(l.push(f.isArray?"[":"{"),d++);let b=!1;if(f.isArray)if(f.index<f.val.length){f.first||l.push(","),n&&l.push(`
|
|
86
|
+
`+n.repeat(d));let _=f.val[f.index],h=i(f.val,String(f.index),_);if(Cl(h))l.push("null"),f.first=!1,f.index++;else{let w=h!==null&&typeof h=="object",k=Al(h);if(w&&!k){if(m.has(h))throw new TypeError("Converting circular structure to JSON");m.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(ur(h)),f.first=!1,f.index++}}else b=!0;else{for(;f.index<f.keys.length;){let h=f.keys[f.index++];if(o&&!o.has(h))continue;let k=f.val[h],x=i(f.val,h,k);if(Cl(x))continue;f.first||l.push(","),n?l.push(`
|
|
87
|
+
`+n.repeat(d)+ur(h)+": "):l.push(ur(h)+":");let A=x!==null&&typeof x=="object",N=Al(x);if(A&&!N){if(m.has(x))throw new TypeError("Converting circular structure to JSON");m.add(x),p.push({parent:f.val,key:h,val:x,isArray:Array.isArray(x),keys:Array.isArray(x)?null:Object.keys(x),index:0,first:!0}),f.first=!1;break}else l.push(ur(x)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(b=!0)}b&&(d--,!f.first&&n&&l.push(`
|
|
88
|
+
`+n.repeat(d)),l.push(f.isArray?"]":"}"),m.delete(f.val),p.pop())}return l.join("")},yb=(e,t,r)=>{try{return"rawJSON"in JSON?ur(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?ur(e,(a,c)=>typeof c=="string"&&Ji.test(c)||typeof c=="bigint"?c.toString()+"n":typeof t=="function"?t(a,c):(Array.isArray(t)&&t.includes(a),c),r).replace(pb,"$1$2$3").replace(mb,"$1$2$3"):ur(e,t,r)}catch(n){if(n instanceof RangeError){let s=mA(e,t,r);return s===void 0?void 0:"rawJSON"in JSON?s:s.replace(pb,"$1$2$3").replace(mb,"$1$2$3")}throw n}},Wi=new Map,fA=()=>{let e=JSON.parse.toString();if(Wi.has(e))return Wi.get(e);try{let t=JSON.parse("1",(r,n,s)=>!!s?.source&&s.source==="1");return Wi.set(e,t),t}catch{return Wi.set(e,!1),!1}},gA=(e,t,r,n)=>typeof t=="string"&&hb.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&Ji.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,hA=(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&&pA.test(s.source);return a&&c?BigInt(s.source):typeof t=="function"?t(r,n,s):n}),bb=Number.MAX_SAFE_INTEGER.toString(),fb=bb.length,yA=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,bA=/^"-?\d+n+"$/,wA=(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"&&(hb.test(a)?a=BigInt(a.slice(0,-1)):Ji.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[""]},gb=e=>e.replace(yA,(t,r,n,s)=>{let o=t[0]==='"';if(o&&bA.test(t))return t.substring(0,t.length-1)+'n"';let a=n||s,c=r&&(r.length<fb||r.length===fb&&r<=bb);return o||a||c?t:'"'+t+'n"'}),wb=(e,t)=>{if(!e)return Ol(e,t);try{if(fA())return hA(e,t);let r=gb(e);return Ol(r,(n,s,o)=>gA(n,s,o,t))}catch(r){if(r instanceof RangeError){let n=gb(e),s=Ol(n);return wA(s,t)}throw r}}});function RA(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}async function Rb(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let r=e.request?.log||console,n=e.request?.parseSuccessResponseBody!==!1,s=RA(e.body)||Array.isArray(e.body)?yb(e.body):e.body,o=Object.fromEntries(Object.entries(e.headers).map(([d,p])=>[d,String(p)])),i;try{i=await t(e.url,{method:e.method,body:s,redirect:e.request?.redirect,headers:o,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(d){let p="Unknown Error";if(d instanceof Error){if(d.name==="AbortError")throw d.status=500,d;p=d.message,d.name==="TypeError"&&"cause"in d&&(d.cause instanceof Error?p=d.cause.message:typeof d.cause=="string"&&(p=d.cause))}let m=new Qt(p,500,{request:e});throw m.cause=d,m}let a=i.status,c=i.url,u={};for(let[d,p]of i.headers)u[d]=p;let l={url:c,status:a,headers:u,data:""};if("deprecation"in u){let d=u.link&&u.link.match(/<([^<>]+)>; rel="deprecation"/),p=d&&d.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${u.sunset}${p?`. See ${p}`:""}`)}if(a===204||a===205)return l;if(e.method==="HEAD"){if(a<400)return l;throw new Qt(i.statusText,a,{response:l,request:e})}if(a===304)throw l.data=await Pl(i),new Qt("Not modified",a,{response:l,request:e});if(a>=400)throw l.data=await Pl(i),new Qt(SA(l.data),a,{response:l,request:e});return l.data=n?await Pl(i):i.body,l}async function Pl(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(Eb);let r=(0,kb.parse)(t);if(kA(r)){let n="";try{return n=await e.text(),wb(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(Eb):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function kA(e){return e.type==="application/json"||e.type==="application/scim+json"}function SA(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 Il(e,t){let r=e.defaults(t);return Object.assign(function(s,o){let i=r.merge(s,o);if(!i.request||!i.request.hook)return Rb(r.parse(i));let a=(c,u)=>Rb(r.parse(r.merge(c,u)));return Object.assign(a,{endpoint:r,defaults:Il.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:Il.bind(null,r)})}var kb,_A,EA,Eb,Ws,Ll=y(()=>{sb();Hs();kb=hc(db(),1);_b();_l();_A="10.0.13",EA={headers:{"user-agent":`octokit-request.js/${_A} ${cr()}`}};Eb=()=>"";Ws=Il(nb,EA);});function vA(e){return`Request failed due to following response errors:
|
|
89
89
|
`+e.errors.map(t=>` - ${t.message}`).join(`
|
|
90
|
-
`)}function TA(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(SA.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)=>kA.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 _b.test(o)&&(s.url=o.replace(_b,"/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 RA(s,a,i.data)}return i.data.data})}function Il(e,t){let r=e.defaults(t);return Object.assign((s,o)=>TA(r,s,o),{defaults:Il.bind(null,r),endpoint:r.endpoint})}function Eb(e){return Il(e,{method:"POST",url:"/graphql"})}var _A,RA,kA,SA,_b,iW,Rb=h(()=>{Pl();Us();_A="0.0.0-development";RA=class extends Error{constructor(e,t,r){super(EA(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},kA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],SA=["query","method","url"],_b=/\/api\/v3\/?$/;iW=Il(qs,{headers:{"user-agent":`octokit-graphql.js/${_A} ${cr()}`},method:"POST",url:"/graphql"});});async function xA(e){let t=vA(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 OA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function CA(e,t,r,n){let s=t.endpoint.merge(r,n);return s.headers.authorization=OA(e),t(s)}var Ll,kb,Sb,vA,Tb,vb=h(()=>{Ll="(?:[a-zA-Z0-9_-]+)",kb="\\.",Sb=new RegExp(`^${Ll}${kb}${Ll}${kb}${Ll}$`),vA=Sb.test.bind(Sb);Tb=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(xA.bind(null,t),{hook:CA.bind(null,t)})}});var Gl,xb=h(()=>{Gl="7.0.7"});function IA(e={}){return typeof e.debug!="function"&&(e.debug=Ob),typeof e.info!="function"&&(e.info=Ob),typeof e.warn!="function"&&(e.warn=AA),typeof e.error!="function"&&(e.error=PA),e}var Ob,AA,PA,Cb,qi,Ab=h(()=>{Us();Jy();Pl();Rb();vb();xb();Ob=()=>{},AA=console.warn.bind(console),PA=console.error.bind(console);Cb=`octokit-core.js/${Gl} ${cr()}`,qi=class{static VERSION=Gl;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 Wy.Collection,n={baseUrl:qs.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} ${Cb}`:Cb,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=qs.defaults(n),this.graphql=Eb(this.request).defaults(n),this.log=IA(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=Tb(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 Pb,Ib=h(()=>{Pb="6.0.0"});function Dl(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 Lb=h(()=>{Ib();Dl.VERSION=Pb});function GA(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 $l(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=GA(c);if(a=((u.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in u.data){let l=new URL(u.url),d=l.searchParams,p=parseInt(d.get("page")||"1",10),m=parseInt(d.get("per_page")||"250",10);p*m<u.data.total_commits&&(d.set("page",String(p+1)),a=l.toString())}return{value:u}}catch(c){if(c.status!==409)throw c;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function Gb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),Db(e,[],$l(e,t,r)[Symbol.asyncIterator](),n)}function Db(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:Db(e,t,r,n)})}function Nl(e){return{paginate:Object.assign(Gb.bind(null,e),{iterator:$l.bind(null,e)})}}var LA,kW,$b=h(()=>{LA="0.0.0-development";kW=Object.assign(Gb,{iterator:$l});Nl.VERSION=LA});var Fl,Nb=h(()=>{Fl="17.0.0"});var DA,Fb,jb=h(()=>{DA={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"]}},Fb=DA});function jl(e){let t={};for(let r of Ur.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},$A);return t}function NA(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 Ur,$A,Mb=h(()=>{jb();Ur=new Map;for(let[e,t]of Object.entries(Fb))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);Ur.has(e)||Ur.set(e,new Map),Ur.get(e).set(r,{scope:e,methodName:r,endpointDefaults:u,decorations:i})}$A={has({scope:e},t){return Ur.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[...Ur.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=Ur.get(t).get(n);if(!s)return;let{endpointDefaults:o,decorations:i}=s;return i?r[n]=NA(e,t,n,o,i):r[n]=e.request.defaults(o),r[n]}}});function FA(e){return{rest:jl(e)}}function Ml(e){let t=jl(e);return{...t,rest:t}}var Bb=h(()=>{Nb();Mb();FA.VERSION=Fl;Ml.VERSION=Fl});var Ub,Hb=h(()=>{Ub="22.0.1"});var qb,Wb=h(()=>{Ab();Lb();$b();Bb();Hb();qb=qi.plugin(Dl,Ml,Nl).defaults({userAgent:`octokit-rest.js/${Ub}`})});function jA(e){return`r${e}`}function Jb(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=jA(i);return r[c]=o,[` ${c}: repository(owner: ${JSON.stringify(o.owner)}, name: ${JSON.stringify(o.repo)}) {`,` object: ${n}(number: ${o.number}) { ${a} }`," }"].join(`
|
|
90
|
+
`)}function AA(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(CA.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)=>OA.includes(a)?(i[a]=n[a],i):(i.variables||(i.variables={}),i.variables[a]=n[a],i),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return Sb.test(o)&&(s.url=o.replace(Sb,"/api/graphql")),e(s).then(i=>{if(i.data.errors){let a={};for(let c of Object.keys(i.headers))a[c]=i.headers[c];throw new xA(s,a,i.data)}return i.data.data})}function Gl(e,t){let r=e.defaults(t);return Object.assign((s,o)=>AA(r,s,o),{defaults:Gl.bind(null,r),endpoint:r.endpoint})}function Tb(e){return Gl(e,{method:"POST",url:"/graphql"})}var TA,xA,OA,CA,Sb,dW,vb=y(()=>{Ll();Hs();TA="0.0.0-development";xA=class extends Error{constructor(e,t,r){super(vA(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},OA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],CA=["query","method","url"],Sb=/\/api\/v3\/?$/;dW=Gl(Ws,{headers:{"user-agent":`octokit-graphql.js/${TA} ${cr()}`},method:"POST",url:"/graphql"});});async function IA(e){let t=PA(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 LA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function GA(e,t,r,n){let s=t.endpoint.merge(r,n);return s.headers.authorization=LA(e),t(s)}var Dl,xb,Ob,PA,Cb,Ab=y(()=>{Dl="(?:[a-zA-Z0-9_-]+)",xb="\\.",Ob=new RegExp(`^${Dl}${xb}${Dl}${xb}${Dl}$`),PA=Ob.test.bind(Ob);Cb=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(IA.bind(null,t),{hook:GA.bind(null,t)})}});var $l,Pb=y(()=>{$l="7.0.7"});function NA(e={}){return typeof e.debug!="function"&&(e.debug=Ib),typeof e.info!="function"&&(e.info=Ib),typeof e.warn!="function"&&(e.warn=DA),typeof e.error!="function"&&(e.error=$A),e}var Ib,DA,$A,Lb,Vi,Gb=y(()=>{Hs();Yy();Ll();vb();Ab();Pb();Ib=()=>{},DA=console.warn.bind(console),$A=console.error.bind(console);Lb=`octokit-core.js/${$l} ${cr()}`,Vi=class{static VERSION=$l;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 zy.Collection,n={baseUrl:Ws.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} ${Lb}`:Lb,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Ws.defaults(n),this.graphql=Tb(this.request).defaults(n),this.log=NA(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=Cb(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 Db,$b=y(()=>{Db="6.0.0"});function Nl(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 Nb=y(()=>{$b();Nl.VERSION=Db});function jA(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 Fl(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=jA(c);if(a=((u.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in u.data){let l=new URL(u.url),d=l.searchParams,p=parseInt(d.get("page")||"1",10),m=parseInt(d.get("per_page")||"250",10);p*m<u.data.total_commits&&(d.set("page",String(p+1)),a=l.toString())}return{value:u}}catch(c){if(c.status!==409)throw c;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function Fb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),jb(e,[],Fl(e,t,r)[Symbol.asyncIterator](),n)}function jb(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:jb(e,t,r,n)})}function jl(e){return{paginate:Object.assign(Fb.bind(null,e),{iterator:Fl.bind(null,e)})}}var FA,OW,Mb=y(()=>{FA="0.0.0-development";OW=Object.assign(Fb,{iterator:Fl});jl.VERSION=FA});var Ml,Bb=y(()=>{Ml="17.0.0"});var MA,Ub,Hb=y(()=>{MA={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"]}},Ub=MA});function Bl(e){let t={};for(let r of Hr.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},BA);return t}function UA(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 Hr,BA,qb=y(()=>{Hb();Hr=new Map;for(let[e,t]of Object.entries(Ub))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);Hr.has(e)||Hr.set(e,new Map),Hr.get(e).set(r,{scope:e,methodName:r,endpointDefaults:u,decorations:i})}BA={has({scope:e},t){return Hr.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[...Hr.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=Hr.get(t).get(n);if(!s)return;let{endpointDefaults:o,decorations:i}=s;return i?r[n]=UA(e,t,n,o,i):r[n]=e.request.defaults(o),r[n]}}});function HA(e){return{rest:Bl(e)}}function Ul(e){let t=Bl(e);return{...t,rest:t}}var Wb=y(()=>{Bb();qb();HA.VERSION=Ml;Ul.VERSION=Ml});var Jb,Vb=y(()=>{Jb="22.0.1"});var Kb,zb=y(()=>{Gb();Nb();Mb();Wb();Vb();Kb=Vi.plugin(Nl,Ul,jl).defaults({userAgent:`octokit-rest.js/${Jb}`})});function qA(e){return`r${e}`}function Yb(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=qA(i);return r[c]=o,[` ${c}: repository(owner: ${JSON.stringify(o.owner)}, name: ${JSON.stringify(o.repo)}) {`,` object: ${n}(number: ${o.number}) { ${a} }`," }"].join(`
|
|
91
91
|
`)})," rateLimit { cost }","}"].join(`
|
|
92
|
-
`),aliases:r}}function Vb(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 Kb=h(()=>{});function zb(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function Yb(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 Bl(e){let t=e.etags??zb(),r=new MA({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{request:{fetch:e.fetchImpl}}:{},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),n=async l=>{let d=t.get(l.cacheKey),p={...l.parameters??{}},m=lr(p.headers)?p.headers:{};p.headers={...m,...d?{"if-none-match":d.etag}:{}};try{let f=await r.request(l.route,p),E=f.headers,b=Wi(E,"etag");return b!==void 0&&t.set(l.cacheKey,{etag:b,data:f.data,headers:E}),await e.attribution?.record({operation:l.operation,cost:1,actor:l.actor}),{data:f.data,headers:E,quotaFree:!1}}catch(f){if(Ws(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 E=Qb(f),b={...d.headers,...E},y=Wi(b,"etag")??d.etag;return t.set(l.cacheKey,{etag:y,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 Ws(f)===401?new Ln({cause:f}):f}},s=new Map,o=!1,i=async l=>{let d=l.input,p=d.kind==="pr";try{let m=await n({cacheKey:d.cacheKey,route:p?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:d.owner,repo:d.repo,...p?{pull_number:d.number}:{issue_number:d.number}},operation:d.operation,actor:d.actor});l.resolve({data:d.project?d.project(m.data,"rest"):m.data,surface:"rest",quotaFree:m.quotaFree})}catch(m){l.reject(m)}},a=async l=>{try{let d=Jb(l.map(({input:b})=>b)),p=await r.graphql(d.query),m=Vb(d,p),f=UA(p),E=l[0].input;await e.attribution?.record({operation:{key:E.operation.key,budget:"graphql"},cost:f,actor:HA(l.map(({input:b})=>b.actor))}),m.forEach((b,y)=>{let R=l[y];b.value===null?R.reject(new Error(`GitHub returned no ${b.read.kind} #${b.read.number} from the coalesced query`)):R.resolve({data:R.input.project?R.input.project(b.value,"graphql"):b.value,surface:"graphql",quotaFree:!1})})}catch(d){let p=Ws(d)===401?new Ln({cause:d}):d;l.forEach(m=>m.reject(p))}},c=async()=>{let l=null;try{l=await e.balance?.()??null}catch{}let d=Yb(l);o=!1;let p=[...s.values()];s.clear(),await Promise.all(p.map(async m=>{m.length>d?await a(m):await Promise.all(m.map(i))}))};return{conditionalRest:n,singleObject:l=>t.get(l.cacheKey)!==void 0?new Promise((d,p)=>{i({input:l,resolve:d,reject:p})}):new Promise((d,p)=>{let m=s.get(l.kind)??[];m.push({input:l,resolve:d,reject:p}),s.set(l.kind,m),o||(o=!0,setTimeout(()=>void c(),0))}),async conditionalPaginate(l){let d=[],p={},m=0,f=!0,E=1;for(;;){let b=await n({...l,cacheKey:`${l.cacheKey}:page:${E}`,parameters:{...l.parameters??{},per_page:100,page:E}});if(m+=1,f=f&&b.quotaFree,!Array.isArray(b.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(l.cacheKey)} page ${E}`);if(d.push(...b.data),p=b.headers,!BA(b.headers))break;E+=1}return{data:d,headers:p,requestCount:m,quotaFree:f}},async graphql(l,d={},p){try{let m=await r.graphql(l,d);return p&&await e.attribution?.record({operation:p.operation,cost:1,actor:p.actor}),m}catch(m){throw Ws(m)===401?new Ln({cause:m}):m}}}}function BA(e){let t=Wi(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Ul(e){let t=Ws(e),r=Qb(e);return t===429||t===403&&Wi(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function Ws(e){if(lr(e))return typeof e.status=="number"?e.status:void 0}function Qb(e){return!lr(e)||!lr(e.response)||!lr(e.response.headers)?{}:e.response.headers}function Wi(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function lr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function UA(e){let t=lr(e)?e:{},r=lr(t.data)?t.data:t,s=(lr(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 HA(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 MA,Ln,Xb=h(()=>{Iy();$y();Wb();Kb();MA=qb.plugin(wl,ji);Ln=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 nw(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:[...Gn],detail:t??"no balance has been asked for yet, so none is known"}}function sw(e,t){let r=ew(e),n=ew(r.resources),s={rest:null,graphql:null,search:null},o=[];for(let a of Gn){let c=rw[a],u=n[c],l=qA(a,c,u);s[a]=l,l==null&&o.push(a)}let i=Gn.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 ${Gn.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function Wl(e){try{let t=await e.transport();return sw(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...nw(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function ow(e){let t=null;for(let r of Gn){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function Jl(e,t){let r=ow(e);if(r==null)return Zb(ql).every_ms;let n=Zb(r.fraction);if(r.remaining>0)return n.every_ms;let s=WA(t.now,r.reset_at);return s==null?n.every_ms:Math.max(Hl,Math.min(n.every_ms,s))}function Zb(e){for(let t of Vi)if(e<=t.at_or_below_fraction)return t;return Vi[Vi.length-1]}function qA(e,t,r){if(!iw(r))return null;let n=Ji(r.limit),s=Ji(r.remaining),o=Ji(r.used),i=Ji(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 Vl(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${tw}`,{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 WA(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 Ji(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function ew(e){return iw(e)?e:{}}function iw(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var tw,rw,Gn,Hl,ql,Vi,WW,aw=h(()=>{tw="rate_limit",rw={rest:"core",graphql:"graphql",search:"search"},Gn=["rest","graphql","search"];Hl=15e3,ql=.15,Vi=[{at_or_below_fraction:0,every_ms:Hl,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:ql,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"}],WW=60*6e4});var cw=h(()=>{});var uw=h(()=>{});var Kl=h(()=>{Ey();Cy();Xb();aw();cw();uw()});import{join as VA}from"node:path";function Ki(e,t){let r=Vl({token:e,...t?{origin:t}:{}}),n=null,s=0,o=null;return async()=>{let i=Date.now();if(i<s)return n;if(o!==null)return await o;let a=new Date(i).toISOString();return o=Wl({transport:r,now:a}).then(c=>(n=c,s=Date.now()+Jl(c,{now:new Date().toISOString()}),n)).finally(()=>{o=null}),await o}}function zi(e){let t=fl({path:VA(re(e.rootDir),"github","spend.toonl")}),r=Bl({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 KA(r)}function KA(e){return{async read(t){let r=pl(t.args);if(r.kind!=="read")return Js(r,"github-write-passthrough","writes are executed by the original gh command unchanged");if(t.actor.trim()==="")return Js(r,"github-actor-missing","retry through rsp so the caller can be attributed");if(r.budget==="search")return Js(r,"github-search-not-routable","search reads are never a fallback; narrow the read to a classified object");try{let n=zA(r,t);if(n){let o=await e.singleObject({cacheKey:dw(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=QA(r,t);if(!o)return Js(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:dw(t.path,t.params),route:`GET /${t.path.replace(/^\/+/,"")}`,parameters:eP(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 Ul(n)?Js(r,"github-budget-refused","wait for the reported GitHub rate-limit reset, then retry"):{status:tP(n),stdout:"",stderr:n instanceof Error?n.message:String(n),surface:r.surface,pool:r.budget,quotaFree:!1}}}}}function zA(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=Vs(t.params,"owner")||r[1],s=Vs(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"?xt(i)??{}:pw(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"?xt(i)??{}:YA(i)}}function pw(e){let t=xt(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:xt(t.author)??{},labels:zl(t.labels).map(r=>({name:r.name}))}}function YA(e){let t=xt(e)??{};return{...pw(t),draft:t.isDraft===!0,base:{ref:t.baseRefName},head:{ref:t.headRefName}}}function QA(e,t){let r=Vs(t.params,"owner"),n=Vs(t.params,"repo");if(!r||!n)return null;let s=XA(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!]) {
|
|
92
|
+
`),aliases:r}}function Qb(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 Xb=y(()=>{});function ew(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function tw(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 ql(e){let t=e.etags??ew(),r=e.now??(()=>new Date().toISOString()),n=new WA({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}}),s=async()=>{try{return await e.balance?.()??null}catch{return null}},o=(m,f)=>{let b=m?.pools[f]??null;if(b!==null&&b.remaining<=0)throw new lr(f,b.reset_at)},i=async m=>{let f=t.get(m.cacheKey),b=(await s())?.pools[m.operation.budget]??null;if(b!==null&&b.remaining<=0){if(f!==void 0)return Zb(f,m.operation.budget,b.reset_at,r());throw new lr(m.operation.budget,b.reset_at)}let _={...m.parameters??{}},h=dr(_.headers)?_.headers:{};_.headers={...h,...f?{"if-none-match":f.etag}:{}};try{let w=await n.request(m.route,_),k=w.headers,x=Ks(k,"etag");return x!==void 0&&t.set(m.cacheKey,{etag:x,data:w.data,headers:k,storedAt:r()}),await e.attribution?.record({operation:m.operation,cost:1,actor:m.actor}),{data:w.data,headers:k,quotaFree:!1}}catch(w){if(Js(w)===304){if(f===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(m.cacheKey)} without a held answer to reuse`,{cause:w});let k=Wl(w),x={...f.headers,...k},A=Ks(x,"etag")??f.etag;return t.set(m.cacheKey,{etag:A,data:f.data,headers:x,...f.storedAt?{storedAt:f.storedAt}:{}}),await e.attribution?.record({operation:m.operation,cost:0,actor:m.actor}),{data:f.data,headers:x,quotaFree:!0}}if(Js(w)===401)throw new $n({cause:w});if(Vs(w)){if(f!==void 0){let k=Hl(m.operation.budget,w);return Zb(f,m.operation.budget,k.resetAt,r())}throw Hl(m.operation.budget,w)}throw w}},a=new Map,c=!1,u=async(m,f)=>{let b=m.input,_=b.kind==="pr";try{let h=await i({cacheKey:b.cacheKey,route:_?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:b.owner,repo:b.repo,..._?{pull_number:b.number}:{issue_number:b.number}},operation:b.operation,actor:b.actor});m.resolve({data:b.project?b.project(h.data,"rest"):h.data,surface:"rest",quotaFree:h.quotaFree,...f?{routing:f}:{}})}catch(h){m.reject(h)}},l=async(m,f)=>{try{let b=Yb(m.map(({input:x})=>x)),_=await n.graphql(b.query),h=Qb(b,_),w=VA(_),k=m[0].input;await e.attribution?.record({operation:{key:k.operation.key,budget:"graphql"},cost:w,actor:KA(m.map(({input:x})=>x.actor))}),h.forEach((x,A)=>{let N=m[A];x.value===null?N.reject(new Error(`GitHub returned no ${x.read.kind} #${x.read.number} from the coalesced query`)):N.resolve({data:N.input.project?N.input.project(x.value,"graphql"):x.value,surface:"graphql",quotaFree:!1,...f?{routing:f}:{}})})}catch(b){let _=Js(b)===401?new $n({cause:b}):b;m.forEach(h=>h.reject(_))}},d=async()=>{let m=await s(),f=tw(m);c=!1;let b=[...a.values()];a.clear(),await Promise.all(b.map(async _=>{let h=_[0].input.rail,w=h??"rest",k=m?.pools[w]??null,x=w==="rest"?"graphql":"rest",A=m?.pools[x]??null,N=w==="rest"&&_.every(({input:V})=>t.get(V.cacheKey)!==void 0),U=x==="rest"&&_.every(({input:V})=>t.get(V.cacheKey)!==void 0),Q=w,X;if(k!==null&&k.remaining<=0){if(A!==null&&A.remaining>0||U)Q=x,X={requestedRail:w,selectedRail:Q,rerouted:!0,pool:w,resetAt:k.reset_at,reason:`${w} pool is exhausted until ${k.reset_at}; used the equivalent ${Q} rail`};else if(!N){let V=new lr(w,k.reset_at,"the equivalent rail has no known budget");_.forEach(wt=>wt.reject(V));return}}else h!==void 0&&(X={requestedRail:w,selectedRail:Q,rerouted:!1,pool:w,resetAt:k?.reset_at??null,reason:k===null?`${w} pool balance is unknown, so the explicit rail is honored reactively`:`${w} pool has ${k.remaining} remaining, so the explicit rail is honored`});let de=_.some(({input:V})=>t.get(V.cacheKey)!==void 0);Q==="graphql"||h===void 0&&!de&&_.length>f?await l(_,X):await Promise.all(_.map(V=>u(V,X)))}))};return{conditionalRest:i,singleObject:m=>new Promise((f,b)=>{let _=`${m.kind}:${m.rail??"default"}`,h=a.get(_)??[];h.push({input:m,resolve:f,reject:b}),a.set(_,h),c||(c=!0,setTimeout(()=>void d(),0))}),async conditionalPaginate(m){let f=[],b={},_=0,h=!0,w=1;for(;;){let k=await i({...m,cacheKey:`${m.cacheKey}:page:${w}`,parameters:{...m.parameters??{},per_page:100,page:w}});if(_+=1,h=h&&k.quotaFree,!Array.isArray(k.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(m.cacheKey)} page ${w}`);if(f.push(...k.data),b=k.headers,!JA(k.headers))break;w+=1}return{data:f,headers:b,requestCount:_,quotaFree:h}},async graphql(m,f={},b){try{o(await s(),b?.operation.budget??"graphql");let _=await n.graphql(m,f);return b&&await e.attribution?.record({operation:b.operation,cost:1,actor:b.actor}),_}catch(_){throw Js(_)===401?new $n({cause:_}):Vs(_)?Hl(b?.operation.budget??"graphql",_):_}}}}function Zb(e,t,r,n){let s=Date.parse(n),o=e.storedAt===void 0?Number.NaN:Date.parse(e.storedAt);return{data:e.data,headers:e.headers,quotaFree:!0,degraded:{source:"cache",pool:t,resetAt:r,ageMs:Number.isFinite(s)&&Number.isFinite(o)?Math.max(0,s-o):null,reason:`${t} pool is exhausted until ${r}; serving the last-known answer instead of going dark`}}}function Hl(e,t){let r=Wl(t),n=Number(Ks(r,"x-ratelimit-reset")),s=Number.isFinite(n)&&n>0?new Date(n*1e3).toISOString():"an unknown reset instant";return new lr(e,s,"GitHub refused the live request",{cause:t})}function JA(e){let t=Ks(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Vs(e){if(e instanceof lr)return!0;let t=Js(e),r=Wl(e);return t===429||t===403&&Ks(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function Js(e){if(dr(e))return typeof e.status=="number"?e.status:void 0}function Wl(e){return!dr(e)||!dr(e.response)||!dr(e.response.headers)?{}:e.response.headers}function Ks(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function dr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function VA(e){let t=dr(e)?e:{},r=dr(t.data)?t.data:t,s=(dr(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 KA(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 WA,$n,lr,rw=y(()=>{$y();My();zb();Xb();WA=Kb.plugin(El,Ui);$n=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"}},lr=class extends Error{pool;resetAt;constructor(t,r,n,s){super(`${t} pool is exhausted; parked until ${r}${n?` (${n})`:""}`,s),this.name="GithubPoolUnavailableError",this.pool=t,this.resetAt=r}}});function aw(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:[...qr],detail:t??"no balance has been asked for yet, so none is known"}}function cw(e,t){let r=sw(e),n=sw(r.resources),s={rest:null,graphql:null,search:null},o=[];for(let a of qr){let c=iw[a],u=n[c],l=zA(a,c,u);s[a]=l,l==null&&o.push(a)}let i=qr.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 ${qr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function Kl(e){try{let t=await e.transport();return cw(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...aw(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function uw(e){let t=null;for(let r of qr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function zl(e,t){let r=uw(e);if(r==null)return nw(Vl).every_ms;let n=nw(r.fraction);if(r.remaining>0)return n.every_ms;let s=YA(t.now,r.reset_at);return s==null?n.every_ms:Math.max(Jl,Math.min(n.every_ms,s))}function nw(e){for(let t of zi)if(e<=t.at_or_below_fraction)return t;return zi[zi.length-1]}function zA(e,t,r){if(!lw(r))return null;let n=Ki(r.limit),s=Ki(r.remaining),o=Ki(r.used),i=Ki(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 Yl(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${ow}`,{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 YA(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 Ki(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function sw(e){return lw(e)?e:{}}function lw(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ow,iw,qr,Jl,Vl,zi,YW,Ql=y(()=>{ow="rate_limit",iw={rest:"core",graphql:"graphql",search:"search"},qr=["rest","graphql","search"];Jl=15e3,Vl=.15,zi=[{at_or_below_fraction:0,every_ms:Jl,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:Vl,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"}],YW=60*6e4});var dw=y(()=>{q();Ln();Ql()});var pw=y(()=>{});var mw=y(()=>{});var fw=y(()=>{});var Xl=y(()=>{Ty();Ly();rw();dw();Ql();pw();mw();fw()});import{join as XA}from"node:path";function Yi(e,t){let r=Yl({token:e,...t?{origin:t}:{}}),n=null,s=0,o=null;return async()=>{let i=Date.now();if(i<s)return n;if(o!==null)return await o;let a=new Date(i).toISOString();return o=Kl({transport:r,now:a}).then(c=>(n=c,s=Date.now()+zl(c,{now:new Date().toISOString()}),n)).finally(()=>{o=null}),await o}}function Qi(e){let t=hl({path:XA(oe(e.rootDir),"github","spend.toonl")}),r=ql({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 ZA(r)}function ZA(e){return{async read(t){let r=fl(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{let n=eP(r,t);if(n){let o=await e.singleObject({cacheKey:hw(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=rP(r,t);if(!o)return zs(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:hw(t.path,t.params),route:`GET /${t.path.replace(/^\/+/,"")}`,parameters:oP(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 Vs(n)?zs(r,"github-budget-refused","wait for the reported GitHub rate-limit reset, then retry"):{status:iP(n),stdout:"",stderr:n instanceof Error?n.message:String(n),surface:r.surface,pool:r.budget,quotaFree:!1}}}}}function eP(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=Ys(t.params,"owner")||r[1],s=Ys(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"?Ct(i)??{}:yw(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"?Ct(i)??{}:tP(i)}}function yw(e){let t=Ct(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:Ct(t.author)??{},labels:Zl(t.labels).map(r=>({name:r.name}))}}function tP(e){let t=Ct(e)??{};return{...yw(t),draft:t.isDraft===!0,base:{ref:t.baseRefName},head:{ref:t.headRefName}}}function rP(e,t){let r=Ys(t.params,"owner"),n=Ys(t.params,"repo");if(!r||!n)return null;let s=nP(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!]) {
|
|
93
93
|
repository(owner: $owner, name: $repo) {
|
|
94
94
|
issues(first: $first, states: $states, labels: $labels, orderBy: {field: UPDATED_AT, direction: DESC}) {
|
|
95
95
|
nodes { number title body state url updatedAt author { login } labels(first: 100) { nodes { name } } }
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
-
}`,variables:{owner:r,repo:n,first:s,states:o,labels:
|
|
98
|
+
}`,variables:{owner:r,repo:n,first:s,states:o,labels:sP(t.params,"labels")},decode:i=>gw(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:Zl(a.labels)}))}:e.key==="pr list"?{query:`query RspPrList($owner: String!, $repo: String!, $first: Int!, $states: [PullRequestState!]) {
|
|
99
99
|
repository(owner: $owner, name: $repo) {
|
|
100
100
|
pullRequests(first: $first, states: $states, orderBy: {field: UPDATED_AT, direction: DESC}) {
|
|
101
101
|
nodes { number title body state url updatedAt isDraft author { login } baseRefName headRefName labels(first: 100) { nodes { name } } }
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
-
}`,variables:{owner:r,repo:n,first:s,states:o},decode:i=>
|
|
105
|
-
`),stdout:JSON.stringify({number:
|
|
106
|
-
`)}var Ql=h(()=>{"use strict"});var kw=h(()=>{"use strict";q()});var Sw=h(()=>{"use strict"});function gP(e){return Object.keys(e)}function Dn(e){return{...e,fields:gP(e.fields)}}var Tw,vw,xw,hP,yP,bP,Ow,Xl=h(()=>{"use strict";Tw="red.castle.lane.v1",vw="red.castle.state.v1",xw="red.castle.history.v1",hP="red.castle.validation.v2",yP="red.castle.envelope.v1",bP="red.castle.hitl-card.v1",Ow=[Dn({schemaId:Tw,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}}),Dn({schemaId:vw,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}}),Dn({schemaId:xw,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}}),Dn({schemaId:hP,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}}),Dn({schemaId:yP,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}}),Dn({schemaId:bP,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 WJ,Yi=h(()=>{"use strict";Bs();q();Xl();WJ=new Map(Ow.map(e=>[e.schemaId,new Set(e.fields)]))});var Cw=h(()=>{"use strict";Sw();Yi()});var Aw=h(()=>{"use strict"});var Qi=h(()=>{"use strict"});var Zl=h(()=>{"use strict";Qi()});var Xi=h(()=>{"use strict"});import{appendFile as EP,mkdir as RP,readFile as kP}from"node:fs/promises";import{dirname as SP,join as TP}from"node:path";function ed(e,t){if(typeof e!="string"||e.length===0)throw new Error(`singleton event ${t} must be a non-empty string`);return e}function Pw(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:ed(t.at,"at"),singleton:ed(t.singleton,"singleton"),kind:ed(t.kind,"kind"),...t.payload===void 0?{}:{payload:t.payload}}}function vP(e){return{at:e.at,singleton:e.singleton,kind:e.kind,...e.payload===void 0?{}:{payload:JSON.stringify(e.payload)}}}function xP(e){if(e!==void 0&&(!Number.isSafeInteger(e)||e<0))throw new Error("singleton event tail must be a non-negative integer")}function OP(e){if(e.length===0)return"";let t=Me({trailer:!1});return e.map(r=>t.push(r)).join("")}function CP(e,t,r){let n=0,s=e.length;for(;n<s;){let o=Math.ceil((n+s)/2),i=e.slice(-o);Buffer.byteLength(OP(i))+t<=r?n=o:s=o-1}return n}function AP(e){return TP(e.castleStateRoot,"singleton-events.toonl")}function td(e,t={}){let r=t.fs??{appendFile:EP,mkdir:RP,readFile:kP},n=t.clock??(()=>new Date().toISOString()),s=AP(e),o=zt["castle-singleton-events"],i={...o,...t.maxBytes===void 0?{}:{maxBytes:t.maxBytes}};return{path:s,async append(a){let c=Pw({at:a.at??n(),...a}),u=Me().push(vP(c)),l=Buffer.byteLength(u);if(await r.mkdir(SP(s),{recursive:!0}),await js(s,l,i)){let d=i.maxBytes;if(l>d)throw new Error(`singleton event exceeds its ${d}-byte lane ceiling`);let p=await r.readFile(s,"utf8"),m=je(p),f=Math.floor(d*o.targetRatio),E=Math.max(f,l),b=CP(m,l,E);await Ms(s,b)}return await r.appendFile(s,u,"utf8"),c},async read(a={}){xP(a.tail);let c;try{c=await r.readFile(s,"utf8")}catch(l){if(l.code==="ENOENT")return[];throw l}let u=je(c).map(Pw);return a.tail===void 0?u:a.tail===0?[]:u.slice(-a.tail)}}}var rd=h(()=>{"use strict";Bs();q()});var Zi=h(()=>{"use strict";q();Xi();rd()});var Iw=h(()=>{"use strict";Qi();Zl();Zi()});var Lw=h(()=>{"use strict"});var AV,Gw=h(()=>{"use strict";q();AV=24*60*60*1e3});var Dw=h(()=>{"use strict";Yi()});var GV,DV,$w=h(()=>{"use strict";GV=15*6e4,DV=30*6e4});var Nw=h(()=>{"use strict"});var IP,LP,FV,jV,Fw=h(()=>{"use strict";IP=["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"],LP={pre_worktree:["cargo","gradle"]},FV=Object.values(LP).flat(),jV=new Set(IP)});var jw=h(()=>{"use strict"});var Mw=h(()=>{"use strict";Zi()});var Bw=h(()=>{"use strict"});var Uw=h(()=>{});var Hw=h(()=>{"use strict";Uw()});var qw=h(()=>{"use strict"});var Ww=h(()=>{"use strict"});var nd=h(()=>{"use strict"});var Jw=h(()=>{"use strict";q();nd()});var Vw=h(()=>{"use strict";q()});var sd=h(()=>{"use strict"});var od=h(()=>{"use strict"});import{resolve as Re}from"node:path";function Kw(e){let t=Re(e),r=Re(t,"state"),n=Re(r,"castle"),s=Re(t,"tmp"),o=Re(s,"supervisors"),i=Re(s,"workers"),a=Re(s,"monitors"),c=Re(s,"worktrees");return{redRoot:t,stateRoot:r,castleStateRoot:n,castleHistory:Re(n,"history.toonl"),castleValidation:Re(n,"validation.toonl"),tmpRoot:s,supervisorsRoot:o,supervisor:u=>Re(o,u),projectSupervisor:Re(o,GP),workersRoot:i,worker:u=>Re(i,u),workerSteerFile:u=>Re(i,u,"steer.toon"),monitorsRoot:a,monitor:u=>Re(a,u),worktreesRoot:c,worktreeLane:u=>Re(c,u)}}var GP,zw=h(()=>{"use strict";GP="default"});var Yw=h(()=>{"use strict";Xi()});var Qw=h(()=>{"use strict"});var Xw=h(()=>{"use strict";sd();od()});import{mkdir as DP,readFile as $P,rename as NP,rm as FP,writeFile as jP}from"node:fs/promises";import{dirname as MP,join as BP}from"node:path";function HP(e){if(!UP.test(e)||e==="."||e==="..")throw new Error(`invalid singleton name ${JSON.stringify(e)}`)}function qP(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function WP(e){return e.code==="ENOENT"}function JP(e){return e.code==="EEXIST"}function VP(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 id(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function ea(e,t){return HP(t),BP(e.castleStateRoot,"singletons",t,"lease.toon")}function Zw(e,t={}){let r=t.fs??{mkdir:DP,readFile:$P,rename:NP,rm:FP,writeFile:jP},n=t.clock??(()=>new Date().toISOString()),s=t.isPidAlive??qP;async function o(a){try{return VP(z(await r.readFile(a,"utf8")))}catch(c){if(WP(c))return;throw c}}async function i(a,c){let u=`${a}.tmp-${c.pid}-${crypto.randomUUID()}`;await r.writeFile(u,$(c),{encoding:"utf8"}),await r.rename(u,a)}return{read(a){return o(ea(e,a))},async acquire(a,c){let u=ea(e,a);await r.mkdir(MP(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),{encoding:"utf8",flag:"wx"}),{acquired:!0,reaped:l,lease:p}}catch(f){if(!JP(f))throw f}let m=await o(u);if(m){if(id(m,c))return{acquired:!0,reaped:l,lease:m};if(await s(m.pid))return{acquired:!1,lease:m};await r.rm(u,{force:!0}),l=!0}}},async renew(a,c){let u=ea(e,a),l=await o(u);if(!l||!id(l,c))throw new ta(a);let d={...l,renewed_at:n()};return await i(u,d),d},async release(a,c){let u=ea(e,a),l=await o(u);if(!l)return!1;if(!id(l,c))throw new ta(a);return await r.rm(u,{force:!0}),!0}}}var ta,UP,e_=h(()=>{"use strict";q();ta=class extends Error{constructor(t){super(`singleton lease ${JSON.stringify(t)} is held by another owner`),this.name="SingletonLeaseOwnershipError"}},UP=/^[a-z0-9][a-z0-9._-]{0,63}$/});var ad=h(()=>{"use strict"});var t_=h(()=>{"use strict"});var KP,zP,YP,x2,r_=h(()=>{"use strict";KP={refreshCadenceS:270,tolerance:3},zP=270,YP=2700,x2={...KP,claimGraceS:zP,recentCommitProtectionS:YP}});var n_=h(()=>{"use strict"});import{execFile as eI}from"node:child_process";import{promisify as tI}from"node:util";var L2,s_=h(()=>{"use strict";Kl();ad();L2=tI(eI)});var o_=h(()=>{"use strict";kw();Cw();Aw();Qi();Iw();Lw();Gw();Dw();Yi();$w();Nw();Fw();jw();Zl();Mw();Bw();Hw();qw();Ww();Zi();Jw();Vw();Xl();sd();od();zw();Yw();Qw();Xw();Xi();nd();rd();e_();ad();t_();r_();n_();s_()});import{EventEmitter as rI}from"node:events";import{spawn as nI}from"node:child_process";function na(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 sa(e,t){return e.workflow_run!=null&&String(e.workflow_run.id)===t}var zs,cd,sI,oI,iI,aI,ra,ud=h(()=>{zs="github-webhook",cd="github.webhook.delivery";sI="pull_request,pull_request_review,check_run,check_suite,workflow_run",oI=3,iI=1e3,aI=/no extension matched|unknown command|command not found/i,ra=class extends rI{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,iI).then(()=>{}),await this.stopping)}makeWakeSignalFor(r,n){return()=>{if(this._mode!=="webhook"||this._dead)return;let s=new AbortController,o=c=>{(r==="pr"?na(c,n):sa(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=nI(r,["webhook","forward",`--events=${sI}`],{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(`
|
|
107
|
-
`))>=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");aI.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>=oI)return;let r=Math.min(500*Math.pow(2,this.restarts),5e3);this.restarts++,setTimeout(()=>this.spawnChild(),r).unref()}}});var oa,i_=h(()=>{"use strict";ud();ud();Vt();oa=class extends ra{constructor(t){super(t,Rn)}}});import{EventEmitter as cI}from"node:events";import{join as uI}from"node:path";function dd(e){let t=ki(e.cwd),r=Kw(uI(t,".red"));return new ld({...e,leases:e.leases??Zw(r),lane:e.lane??td(r),makeForwarder:e.makeForwarder??((n,s)=>new oa({cwd:n,cancelSignal:s})),isLeaseHolderLive:e.isLeaseHolderLive??(n=>kn(n.pid,n.start_time))})}var ld,a_=h(()=>{"use strict";o_();i_();Vt();Xu();ld=class extends cI{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(zs).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"?na(a,n):sa(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===zs&&o.kind===cd&&o.payload&&this.emit("delivery",o.payload);let s=await this.options.leases.read(zs);(!s||!await this.options.isLeaseHolderLive(s))&&this.degradeToFallback()}finally{this.syncing=!1}}}}});var pd={};Y(pd,{listWaits:()=>Ti,renderWaitHelp:()=>Ks,runWait:()=>pI});import{randomUUID as c_}from"node:crypto";import{mkdir as lI,rm as dI}from"node:fs/promises";async function pI(e,t=process.cwd()){let r;try{r=await Oh(e)}catch(n){return await yI(e,n)}if(r.kind==="help"||e.includes("--help")||e.includes("-h"))return process.stdout.write(Ks()),0;if(r.kind==="ls"){let n={schema:_h,version:1,waits:await Ti(t)};return process.stdout.write(On(n,r.options.format)),0}return Yu(r.kind)?await mI({...r,kind:r.kind},t):(process.stdout.write(Ks()),2)}async function mI(e,t){let r=e.kind,n=rl({id:c_(),kind:r,target:hI(e),reason:e.options.reason,pid:process.pid,pid_start_time:await Cs(process.pid),started_at:new Date().toISOString(),deadline_at:new Date(Date.now()+e.options.timeoutMs).toISOString(),timeout_ms:e.options.timeoutMs,poll_tier:Ku[r],status:"running",attempts:0}),s=Dh(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 lI(Tn(t),{recursive:!0}),await vn(s,n);let l=await fI(e,t,s,n,o.signal);i&&(l={...l,verdict:oe(`wait interrupted by ${i}`,l.verdict.details)});let d=await jh({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=oe(l instanceof Error?l.message:String(l)),p=Ds(r,n,d,{status:"success"},new Date().toISOString());return await $s(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 dI(s,{force:!0}).catch(()=>{})}}async function fI(e,t,r,n,s){let o={cwd:t,signal:s,timeoutMs:e.options.probeTimeoutMs};switch(e.kind){case"cmd":return await py({commandLine:e.commandLine??"",options:e.options,cwd:t,spoolDir:Ih(t),registryPath:r,entry:n,signal:s});case"pr":{let i=e.target??"";if(!/^[1-9][0-9]*$/.test(i))return{verdict:oe("missing PR number")};n.webhook_mode="polling";let a=dd({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await Ns({probe:yw(i,o,{emptyChecksGraceMs:Sn("RSP_WAIT_PR_EMPTY_CHECKS_GRACE_MS",3e4)}),timeoutMs:e.options.timeoutMs,baseSleepMs:Sn("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 gI(e,o,r,n);if(!i.ok)return{verdict:oe(i.reason)};n.webhook_mode="polling";let a=dd({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await Ns({probe:()=>bw(i.value,o),timeoutMs:e.options.timeoutMs,baseSleepMs:Sn("RSP_WAIT_RUN_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("run",i.value),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"job":{let i=e.target??"";return/^[1-9][0-9]*$/.test(i)?await Ns({probe:()=>ww(i,o),timeoutMs:e.options.timeoutMs,baseSleepMs:Sn("RSP_WAIT_JOB_POLL_MS",15e3),registryPath:r,entry:n,signal:s}):{verdict:oe("missing job id")}}case"release":return await Ns({probe:()=>Ew(e.tagGlob,new Date(n.started_at),o,e.existing),timeoutMs:e.options.timeoutMs,baseSleepMs:Sn("RSP_WAIT_RELEASE_POLL_MS",6e4),registryPath:r,entry:n,signal:s})}}async function gI(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 _w(e.branch,t);return s?(e.target=s,n.target=`run:${s}`,await vn(r,n),{ok:!0,value:s}):{ok:!1,reason:`no run found for branch ${e.branch}`}}function hI(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 yI(e,t){let r=e.includes("--json")?"json":"toon",n=e.indexOf("--result-file"),s=n>=0?e[n+1]:void 0,o=Yu(e[1])?e[1]:"cmd",i=new Date().toISOString(),a=rl({id:c_(),kind:o,target:`${o}:`,reason:"",pid:process.pid,started_at:i,deadline_at:i,timeout_ms:0,poll_tier:Ku[o],status:"indeterminate",attempts:0}),c=Ds(o,a,oe(t instanceof Error?t.message:String(t)),{status:"success"},i);return await $s(s,c,r).catch(()=>{}),process.stdout.write(On(c,r)),2}var md=h(()=>{"use strict";Ch();Bh();fy();Nr();Zu();Rw();Vt();Ls();Ql();a_();Ls();Ql()});var fd,gd,hd,Ge,De,et,gt,Ys,ia=h(()=>{"use strict";fd="rsp-telemetry.spool.toonl",gd="rsp-telemetry.spool.jsonl",hd="rsp-telemetry.spool.corrections.toonl",Ge="rsp_accounting_events_v1",De="rsp_decisions_v1",et="rsp_telemetry_invocations_v1",gt="rsp_telemetry_degradations_v1",Ys="rsp_telemetry_index_v1"});function $n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function tt(e){return pr(e)??0}function pr(e){return typeof e=="number"&&Number.isFinite(e)?e:null}var yd=h(()=>{"use strict"});import{randomUUID as Qs,createHash as RI}from"node:crypto";import{appendFileSync as kI,closeSync as SI,existsSync as TI,fstatSync as vI,mkdirSync as h_,openSync as xI,readFileSync as OI,statSync as CI,writeSync as AI}from"node:fs";import{mkdir as y_,readdir as PI,readFile as b_,rename as II,rm as w_,writeFile as __}from"node:fs/promises";import{basename as bd,dirname as Xs,join as Nn,resolve as d_}from"node:path";function ca(e){if(!e)return null;let t=d_(e);for(;;){if(TI(Nn(t,".red")))return t;let r=d_(Nn(t,".."));if(r===t)break;t=r}return null}function Qt(e){return Nn(re(e),fd)}function Ed(e){return Nn(re(e),gd)}function Rd(e){return Nn(re(e),hd)}async function qr(e,t,r=zt["rsp-telemetry-spool"]){mr(e,t,r)}function mr(e,t,r=zt["rsp-telemetry-spool"],n={}){try{let s=ca(e);if(!s)return;let o=Qt(s);h_(Xs(o),{recursive:!0});let i=f_({spool_id:Qs(),event:DI(t)}),a=S_(o,i,r,Sd,f_);GI(o,i,n),a>0&&k_(s,"telemetry spool retention",a)}catch{}}function GI(e,t,r){let n=0;for(;;){let s=xI(e,"a",384);try{AI(s,t,void 0,"utf8"),n+=1,r.afterWrite?.(e,n);let o=vI(s),i=CI(e);if(o.dev===i.dev&&o.ino===i.ino)return}catch(o){if(o.code!=="ENOENT")throw o}finally{SI(s)}}}function DI(e){return p_(p_(e,"raw_text","raw_bytes"),"emitted_text","emitted_bytes")}function p_(e,t,r){let n=e[t];if(typeof n!="string")return e;let s=Buffer.byteLength(n,"utf8");if(s<=LI)return e;let o={...e};return delete o[t],tt(o[r])===0&&(o[r]=s),o.estimated=!0,o}async function $I(e){let t=ca(e);if(!t)return[];let r=Qt(t);await y_(Xs(r),{recursive:!0}).catch(()=>{});let n=await T_(t),s=[...await v_(t),...await MI(n)];return await Promise.all(n.map(o=>w_(o,{force:!0}))),s.map(o=>JSON.stringify(o.event))}async function kd(e,t){let r=ca(e);if(!r)return;let n=Qt(r);await y_(Xs(n),{recursive:!0}).catch(()=>{}),await jI(r);for(let s of await NI(r))await m_(r,s,t);for(let s of await v_(r))await E_(r,s,t,!0);for(let s of await T_(r))await m_(r,s,t)}async function NI(e){let t=[Qt(e),Ed(e)],r=Xs(t[0]);return(await PI(r).catch(()=>[])).filter(s=>t.some(o=>s.startsWith(`${bd(o)}.`)&&s.endsWith(".drain"))).filter(s=>{let o=t.find(c=>s.startsWith(`${bd(c)}.`));if(!o)return!1;let i=`${bd(o)}.`,a=Number(s.slice(i.length).split(".")[0]);return!(Number.isInteger(a)&&a!==process.pid&&FI(a))}).sort().map(s=>Nn(r,s))}function FI(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function m_(e,t,r){try{let n=await R_(t);for(let s of Sd(n))await E_(e,s,r,!1)}finally{await w_(t,{force:!0})}}async function E_(e,t,r,n){let s=t.event?JSON.stringify(t.event):t.raw_line??"";try{if(await r(s)){n&&wd(e,{correction_id:Qs(),target_spool_id:t.spool_id,action:"resolved",created_at:new Date().toISOString()});return}}catch{}wd(e,{correction_id:Qs(),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 R_(e){let t="";for(let r=0;r<5;r++){let n=await b_(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!$n(t)||t.collection!==Ge&&t.collection!==De&&t.collection!==et&&t.collection!==gt?null:t}catch{return null}}function f_(e){return Me().push(UI(e))}function wd(e,t,r=!0){try{let n=ca(e);if(!n)return;let s=Rd(n);h_(Xs(s),{recursive:!0});let o=g_(t),i=S_(s,o,zt["rsp-telemetry-corrections"],x_,g_);kI(s,o,{encoding:"utf8",mode:384}),r&&i>0&&k_(n,"telemetry corrections retention",i,!1)}catch{}}function k_(e,t,r,n=!0){let s=Qs();wd(e,{correction_id:Qs(),target_spool_id:s,action:"retry",created_at:new Date().toISOString(),event_json:JSON.stringify({collection:gt,id:s,created_at:new Date().toISOString(),reason:t,bytes:r})},n)}function g_(e){return Me().push({correction_id:e.correction_id,target_spool_id:e.target_spool_id,action:e.action,created_at:e.created_at,event_json:e.event_json??null})}function S_(e,t,r,n,s){let o=Buffer.byteLength(t);if(!Ty(e,o,r))return 0;let i;try{i=OI(e,"utf8")}catch(m){if(m.code==="ENOENT")return 0;throw m}let a=r.maxBytes;if(a===void 0)return 0;let c=Math.max(0,Math.floor(a*(r.targetRatio??mt))-o),u=n(i),l=[],d=0;for(let m=u.length-1;m>=0;m-=1){let f=s(u[m]),E=Buffer.byteLength(f);if(d+E>c)break;l.unshift(f),d+=E}let p=l.join("");return vy(e,p),Math.max(0,Buffer.byteLength(i)-Buffer.byteLength(p))}async function T_(e){let t=Qt(e),r=[t,Ed(e)],n=[];for(let s of r){let o=`${s}.${process.pid}.${Date.now()}.drain`;try{await II(s,o),s===t&&await __(s,"",{flag:"wx"}).catch(()=>{}),n.push(o)}catch(i){if(i.code!=="ENOENT")continue}}return n}async function jI(e){await __(Qt(e),"",{flag:"a"}).catch(()=>{})}async function MI(e){let t=[];for(let r of e)t.push(...Sd(await R_(r)));return t}async function v_(e){let t=await b_(Rd(e),"utf8").catch(()=>""),r=new Map;for(let n of x_(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 Sd(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s){try{let o=JSON.parse(s);if($n(o)){let i=Fn(JSON.stringify(o));t.push(i?{spool_id:aa(JSON.stringify(o)),event:i}:{spool_id:aa(s),raw_line:s})}continue}catch{}if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r){t.push({spool_id:aa(s),raw_line:s});continue}try{for(let o of je(`${r}
|
|
104
|
+
}`,variables:{owner:r,repo:n,first:s,states:o},decode:i=>gw(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:Zl(a.labels)}))}:null}function gw(e,t){let r=Ct(e.repository),n=Ct(r?.[t]);return Array.isArray(n?.nodes)?n.nodes.map(Ct).filter(s=>s!==null):[]}function Zl(e){let t=Ct(e);return Array.isArray(t?.nodes)?t.nodes.map(Ct).filter(r=>r!==null):[]}function Ct(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Ys(e,t){let r=e?.[t];return typeof r=="string"?r.trim():""}function nP(e,t,r){let n=Number(e?.[t]);return Number.isSafeInteger(n)&&n>0?n:r}function sP(e,t){let r=Ys(e,t);return r===""?null:r.split(",").map(n=>n.trim()).filter(Boolean)}function zs(e,t,r){return{status:75,stdout:"",stderr:JSON.stringify({refused:!0,reason:t,operation:e.key,pool:e.budget,repair:r}),surface:e.surface,pool:e.budget,quotaFree:!1,refused:!0}}function hw(e,t){return JSON.stringify({path:e,params:Object.entries(t??{}).filter(r=>r[1]!==void 0).sort(([r],[n])=>r.localeCompare(n))})}function oP(e){return Object.fromEntries(Object.entries(e??{}).filter(t=>t[1]!==void 0))}function iP(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 ed=y(()=>{"use strict";Xl();Be()});import{execFileSync as aP,spawn as cP}from"node:child_process";async function pr(e){let t=e.cwd??process.cwd(),r=e.env??process.env,n=ze(t).rootDir;if(xe(n,r).enabled&&!ww.has(n)){let s=await Xe(e);if(!lP(s))return s;ww.add(n)}return await Xe({...e,residentRead:async s=>await uP(n,r).read(s)})}function uP(e,t){let r=bw.get(e);if(r)return r;let n=String(t.GH_TOKEN??t.GITHUB_TOKEN??aP("gh",["auth","token"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})).trim();if(!n)throw new Error("rsp wait could not obtain a GitHub credential");let s=String(t.GITHUB_API_URL??"").trim()||void 0,o=Qi({rootDir:e,token:n,balance:Yi(n,s),...s?{baseUrl:s}:{}});return bw.set(e,o),o}function lP(e){if(e.status!==75)return!1;try{return JSON.parse(e.stderr).reason==="rsp-github-resident-unavailable"}catch{return!1}}async function Wr(e,t){return await dP(t,async r=>{let n=await mP(e,t.cwd,r);return n||await pP(e,t.cwd,r)})}async function dP(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 pP(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=cP("gh",e,{cwd:t,stdio:["ignore","pipe","pipe"]});function a(){let l=i.pid;l&&Si(l).then(d=>ki(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 mP(e,t,r){if(e[0]==="pr"&&e[1]==="view"&&e[2])return await fP(e[2],t,r);if(e[0]==="run"&&e[1]==="view"&&e[2]){let n=await pr({path:`repos/{owner}/{repo}/actions/runs/${e[2]}`,cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(n.status!==0)return n;let s=Qe(JSON.parse(n.stdout));return{status:0,stderr:n.stderr,stdout:JSON.stringify({databaseId:Br(s,"database_id")||Br(s,"id"),status:ee(s,"status").toUpperCase(),conclusion:ee(s,"conclusion").toUpperCase(),workflowName:ee(s,"workflow_name")||ee(s,"name"),headBranch:ee(s,"head_branch"),url:ee(s,"html_url")})}}if(e[0]==="job"&&e[1]==="view"&&e[2]){let n=await pr({path:`repos/{owner}/{repo}/actions/jobs/${e[2]}`,args:["run","view",e[2]],cwd:t,signal:r,command:`gh api repos/{owner}/{repo}/actions/jobs/${e[2]}`});if(n.status!==0)return n;let s=Qe(JSON.parse(n.stdout));return{status:0,stderr:n.stderr,stdout:JSON.stringify({databaseId:Br(s,"id"),name:ee(s,"name"),status:ee(s,"status").toUpperCase(),conclusion:ee(s,"conclusion").toUpperCase(),url:ee(s,"html_url")})}}if(e[0]==="run"&&e[1]==="list"){let n=Ci(e,"--branch"),s=Ci(e,"--limit")??"20",o=await pr({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=Mr(Qe(JSON.parse(o.stdout)).workflow_runs).map(a=>({databaseId:Br(a,"database_id")||Br(a,"id")}));return{status:0,stdout:JSON.stringify(i),stderr:o.stderr}}if(e[0]==="release"&&e[1]==="list"){let n=Ci(e,"--limit")??"20",s=await pr({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=Mr(JSON.parse(s.stdout)).map(i=>({tagName:ee(i,"tag_name"),publishedAt:ee(i,"published_at"),isDraft:i.draft===!0}));return{status:0,stdout:JSON.stringify(o),stderr:s.stderr}}if(e[0]==="release"&&e[1]==="view"&&e[2]){let n=e[2],s=await pr({path:`repos/{owner}/{repo}/releases/tags/${encodeURIComponent(n)}`,args:["release","view",n],cwd:t,signal:r,command:`gh release view ${n}`});if(s.status!==0)return s;let o=Qe(JSON.parse(s.stdout));return{status:0,stderr:s.stderr,stdout:JSON.stringify({tagName:ee(o,"tag_name"),publishedAt:ee(o,"published_at"),isDraft:o.draft===!0})}}return null}async function fP(e,t,r){let n=await pr({path:`repos/{owner}/{repo}/pulls/${e}`,cwd:t,signal:r,command:`gh pr view ${e}`});if(n.status!==0)return n;let s=Qe(JSON.parse(n.stdout));if(Array.isArray(s.statusCheckRollup))return{status:0,stdout:n.stdout,stderr:n.stderr};let o=ee(Qe(s.head),"sha"),[i,a]=o?await Promise.all([pr({path:`repos/{owner}/{repo}/commits/${o}/status`,cwd:t,signal:r,command:`gh pr view ${e} status`}),pr({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?Mr(Qe(JSON.parse(i.stdout)).statuses):[],u=a.status===0?Mr(Qe(JSON.parse(a.stdout)).check_runs):[];return{status:0,stderr:[n.stderr,i.stderr,a.stderr].filter(Boolean).join(`
|
|
105
|
+
`),stdout:JSON.stringify({number:Br(s,"number"),state:ee(s,"state").toUpperCase(),mergeable:gP(s),statusCheckRollup:[...c.map(l=>({conclusion:ee(l,"state").toUpperCase()})),...u.map(l=>({status:ee(l,"status").toUpperCase(),conclusion:ee(l,"conclusion").toUpperCase()}))],url:ee(s,"html_url")})}}function gP(e){let t=ee(e,"mergeable_state").toUpperCase();return t==="CLEAN"?"MERGEABLE":t==="DIRTY"?"CONFLICTING":t&&t!=="UNKNOWN"?t:e.mergeable===!0?"MERGEABLE":e.mergeable===!1?"CONFLICTING":"UNKNOWN"}var bw,ww,_w=y(()=>{"use strict";He();Ms();ed();lt();Ai();zt();bw=new Map,ww=new Set});function Rw(e,t,r){let n=Date.now();return()=>hP(e,t,r,n)}async function hP(e,t,r,n){if(!/^[1-9][0-9]*$/.test(e))return ce("missing PR number");let s=await Wr(["pr","view",e,"--json","number,state,mergeable,statusCheckRollup,url"],t);if(s.status!==0)return ce(s.stderr||"gh pr view failed");let o=$s(s.stdout),i=Array.isArray(o.statusCheckRollup)?o.statusCheckRollup:[],a=String(o.mergeable??""),c=i.map(bP),u=c.filter(d=>d==="failure").length,l=c.filter(d=>d==="pending").length;if(String(o.state)!=="OPEN")return Ye("failure",`PR #${e} is ${String(o.state).toLowerCase()}`,{mergeable:a});if(a==="CONFLICTING")return Ye("failure",`PR #${e} has merge conflicts`,{failing:u,pending:l,mergeable:a});if(u>0)return Ye("failure",`PR #${e} has failing checks`,{failing:u,pending:l,mergeable:a});if(l>0)return Kt(`PR #${e} has ${l} pending checks`);if(i.length===0){let d=Date.now()-n;return a==="UNKNOWN"||a==="BLOCKED"||d<r.emptyChecksGraceMs?Kt(`PR #${e} has no registered checks yet`,{checks:0,mergeable:a,empty_checks_elapsed_ms:d}):Ye("success",`PR #${e} has no checks configured`,{checks:0,mergeable:a})}return a==="UNKNOWN"?Kt(`PR #${e} mergeability is still unknown`,{checks:i.length,mergeable:a}):Ye("success",`PR #${e} checks passed`,{checks:i.length,mergeable:a})}async function kw(e,t){if(!e)return ce("missing run id");let r=await Wr(["run","view",e,"--json","databaseId,status,conclusion,workflowName,headBranch,url"],t);if(r.status!==0)return ce(r.stderr||"gh run view failed");let n=$s(r.stdout),s=String(n.status??"").toLowerCase(),o=String(n.conclusion??"").toLowerCase();return s!=="completed"?Kt(`run ${e} is ${s||"pending"}`):o==="success"?Ye("success",`run ${e} succeeded`,Ew(n)):Ye("failure",`run ${e} concluded ${o||"unknown"}`,Ew(n))}async function Sw(e,t){if(!/^[1-9][0-9]*$/.test(e))return ce("missing job id");let r=await Wr(["job","view",e],t);return r.status!==0?ce(r.stderr||"GitHub Actions job read failed"):yP(e,$s(r.stdout))}function yP(e,t){let r=String(t.status??"").toLowerCase(),n=String(t.conclusion??"").toLowerCase();if(r!=="completed")return Kt(`job ${e} is ${r||"pending"}`);let s={job_id:typeof t.databaseId=="number"?t.databaseId:e,conclusion:n,name:String(t.name??""),url:String(t.url??"")};return n==="success"?Ye("success",`job ${e} succeeded`,s):Ye("failure",`job ${e} concluded ${n||"unknown"}`,s)}async function Tw(e,t){let r=await Wr(["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 Cn(s)&&s.databaseId!=null?String(s.databaseId):""}async function vw(e,t,r,n=!1){if(n&&e&&!/[?*]/.test(e)){let a=await Wr(["release","view",e,"--json","tagName,publishedAt,isDraft"],r);if(a.status!==0)return Kt(`release ${e} is not published yet`);let c=$s(a.stdout);return c.isDraft===!0?Kt(`release ${e} is still a draft`):Ye("success",`release ${String(c.tagName||e)} published`,{tag:String(c.tagName||e),published_at:String(c.publishedAt??"")})}let s=await Wr(["release","list","--limit","20","--json","tagName,publishedAt,isDraft"],r);if(s.status!==0)return ce(s.stderr||"gh release list failed");let i=Mr(JSON.parse(s.stdout)).find(a=>{let c=String(a.tagName??""),u=new Date(String(a.publishedAt??""));return a.isDraft!==!0&&(!e||wP(e,c))&&(n||u>=t)});return i?Ye("success",`release ${String(i.tagName)} published`,{tag:String(i.tagName),published_at:String(i.publishedAt??"")}):Kt("no matching release is published yet")}function bP(e){let t=Cn(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 Ew(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 wP(e,t){let r=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${r}$`).test(t)}var xw=y(()=>{"use strict";Fr();_w();Ai()});function Qs(){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 job <id> [--timeout 45m]"," rsp wait release [--tag <glob>] [--existing] [--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 job 93919316178",' rsp wait release --tag "v2.*" --existing',' 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(`
|
|
106
|
+
`)}var td=y(()=>{"use strict"});var Ow=y(()=>{"use strict";q()});var Cw=y(()=>{"use strict"});function _P(e){return Object.keys(e)}function Nn(e){return{...e,fields:_P(e.fields)}}var Aw,Pw,Iw,EP,RP,kP,Lw,rd=y(()=>{"use strict";Aw="red.castle.lane.v1",Pw="red.castle.state.v1",Iw="red.castle.history.v1",EP="red.castle.validation.v2",RP="red.castle.envelope.v1",kP="red.castle.hitl-card.v1",Lw=[Nn({schemaId:Aw,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}}),Nn({schemaId:Pw,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}}),Nn({schemaId:Iw,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}}),Nn({schemaId:EP,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}}),Nn({schemaId:RP,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}}),Nn({schemaId:kP,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 oV,Xi=y(()=>{"use strict";Ln();q();rd();oV=new Map(Lw.map(e=>[e.schemaId,new Set(e.fields)]))});var Gw=y(()=>{"use strict";Cw();Xi()});var Dw=y(()=>{"use strict"});var Zi=y(()=>{"use strict"});var nd=y(()=>{"use strict";Zi()});var ea=y(()=>{"use strict"});import{appendFile as vP,mkdir as xP,readFile as OP}from"node:fs/promises";import{dirname as CP,join as AP}from"node:path";function sd(e,t){if(typeof e!="string"||e.length===0)throw new Error(`singleton event ${t} must be a non-empty string`);return e}function $w(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:sd(t.at,"at"),singleton:sd(t.singleton,"singleton"),kind:sd(t.kind,"kind"),...t.payload===void 0?{}:{payload:t.payload}}}function PP(e){return{at:e.at,singleton:e.singleton,kind:e.kind,...e.payload===void 0?{}:{payload:JSON.stringify(e.payload)}}}function IP(e){if(e!==void 0&&(!Number.isSafeInteger(e)||e<0))throw new Error("singleton event tail must be a non-negative integer")}function LP(e){if(e.length===0)return"";let t=Me({trailer:!1});return e.map(r=>t.push(r)).join("")}function GP(e,t,r){let n=0,s=e.length;for(;n<s;){let o=Math.ceil((n+s)/2),i=e.slice(-o);Buffer.byteLength(LP(i))+t<=r?n=o:s=o-1}return n}function DP(e){return AP(e.castleStateRoot,"singleton-events.toonl")}function od(e,t={}){let r=t.fs??{appendFile:vP,mkdir:xP,readFile:OP},n=t.clock??(()=>new Date().toISOString()),s=DP(e),o=Ot["castle-singleton-events"],i={...o,...t.maxBytes===void 0?{}:{maxBytes:t.maxBytes}};return{path:s,async append(a){let c=$w({at:a.at??n(),...a}),u=Me().push(PP(c)),l=Buffer.byteLength(u);if(await r.mkdir(CP(s),{recursive:!0}),await Bs(s,l,i)){let d=i.maxBytes;if(l>d)throw new Error(`singleton event exceeds its ${d}-byte lane ceiling`);let p=await r.readFile(s,"utf8"),m=je(p),f=Math.floor(d*o.targetRatio),b=Math.max(f,l),_=GP(m,l,b);await Us(s,_)}return await r.appendFile(s,u,"utf8"),c},async read(a={}){IP(a.tail);let c;try{c=await r.readFile(s,"utf8")}catch(l){if(l.code==="ENOENT")return[];throw l}let u=je(c).map($w);return a.tail===void 0?u:a.tail===0?[]:u.slice(-a.tail)}}}var id=y(()=>{"use strict";Ln();q()});var ta=y(()=>{"use strict";q();ea();id()});var Nw=y(()=>{"use strict";Zi();nd();ta()});var Fw=y(()=>{"use strict"});var qV,jw=y(()=>{"use strict";q();qV=24*60*60*1e3});var Mw=y(()=>{"use strict";Xi()});var KV,zV,Bw=y(()=>{"use strict";KV=15*6e4,zV=30*6e4});var Uw=y(()=>{"use strict"});var NP,FP,XV,ZV,Hw=y(()=>{"use strict";NP=["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"],FP={pre_worktree:["cargo","gradle"]},XV=Object.values(FP).flat(),ZV=new Set(NP)});var qw=y(()=>{"use strict"});var Ww=y(()=>{"use strict";ta()});var Jw=y(()=>{"use strict"});var Vw=y(()=>{});var Kw=y(()=>{"use strict";Vw()});var zw=y(()=>{"use strict"});var Yw=y(()=>{"use strict"});var ad=y(()=>{"use strict"});var Qw=y(()=>{"use strict";q();ad()});var Xw=y(()=>{"use strict";q()});var cd=y(()=>{"use strict"});var ud=y(()=>{"use strict"});import{resolve as Re}from"node:path";function Zw(e){let t=Re(e),r=Re(t,"state"),n=Re(r,"castle"),s=Re(t,"tmp"),o=Re(s,"supervisors"),i=Re(s,"workers"),a=Re(s,"monitors"),c=Re(s,"worktrees");return{redRoot:t,stateRoot:r,castleStateRoot:n,castleHistory:Re(n,"history.toonl"),castleValidation:Re(n,"validation.toonl"),tmpRoot:s,supervisorsRoot:o,supervisor:u=>Re(o,u),projectSupervisor:Re(o,jP),workersRoot:i,worker:u=>Re(i,u),workerSteerFile:u=>Re(i,u,"steer.toon"),monitorsRoot:a,monitor:u=>Re(a,u),worktreesRoot:c,worktreeLane:u=>Re(c,u)}}var jP,e_=y(()=>{"use strict";jP="default"});var t_=y(()=>{"use strict";ea()});var r_=y(()=>{"use strict"});var n_=y(()=>{"use strict";cd();ud()});import{mkdir as MP,readFile as BP,rename as UP,rm as HP,writeFile as qP}from"node:fs/promises";import{dirname as WP,join as JP}from"node:path";function KP(e){if(!VP.test(e)||e==="."||e==="..")throw new Error(`invalid singleton name ${JSON.stringify(e)}`)}function zP(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function YP(e){return e.code==="ENOENT"}function QP(e){return e.code==="EEXIST"}function XP(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 ld(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function ra(e,t){return KP(t),JP(e.castleStateRoot,"singletons",t,"lease.toon")}function s_(e,t={}){let r=t.fs??{mkdir:MP,readFile:BP,rename:UP,rm:HP,writeFile:qP},n=t.clock??(()=>new Date().toISOString()),s=t.isPidAlive??zP;async function o(a){try{return XP(z(await r.readFile(a,"utf8")))}catch(c){if(YP(c))return;throw c}}async function i(a,c){let u=`${a}.tmp-${c.pid}-${crypto.randomUUID()}`;await r.writeFile(u,D(c),{encoding:"utf8"}),await r.rename(u,a)}return{read(a){return o(ra(e,a))},async acquire(a,c){let u=ra(e,a);await r.mkdir(WP(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,D(p),{encoding:"utf8",flag:"wx"}),{acquired:!0,reaped:l,lease:p}}catch(f){if(!QP(f))throw f}let m=await o(u);if(m){if(ld(m,c))return{acquired:!0,reaped:l,lease:m};if(await s(m.pid))return{acquired:!1,lease:m};await r.rm(u,{force:!0}),l=!0}}},async renew(a,c){let u=ra(e,a),l=await o(u);if(!l||!ld(l,c))throw new na(a);let d={...l,renewed_at:n()};return await i(u,d),d},async release(a,c){let u=ra(e,a),l=await o(u);if(!l)return!1;if(!ld(l,c))throw new na(a);return await r.rm(u,{force:!0}),!0}}}var na,VP,o_=y(()=>{"use strict";q();na=class extends Error{constructor(t){super(`singleton lease ${JSON.stringify(t)} is held by another owner`),this.name="SingletonLeaseOwnershipError"}},VP=/^[a-z0-9][a-z0-9._-]{0,63}$/});var dd=y(()=>{"use strict"});var i_=y(()=>{"use strict"});var ZP,eI,tI,B2,a_=y(()=>{"use strict";ZP={refreshCadenceS:270,tolerance:3},eI=270,tI=2700,B2={...ZP,claimGraceS:eI,recentCommitProtectionS:tI}});var c_=y(()=>{"use strict"});import{execFile as oI}from"node:child_process";import{promisify as iI}from"node:util";var V2,u_=y(()=>{"use strict";Xl();dd();V2=iI(oI)});var l_=y(()=>{"use strict";Ow();Gw();Dw();Zi();Nw();Fw();jw();Mw();Xi();Bw();Uw();Hw();qw();nd();Ww();Jw();Kw();zw();Yw();ta();Qw();Xw();rd();cd();ud();e_();t_();r_();n_();ea();ad();id();o_();dd();i_();a_();c_();u_()});import{EventEmitter as aI}from"node:events";import{spawn as cI}from"node:child_process";function oa(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 ia(e,t){return e.workflow_run!=null&&String(e.workflow_run.id)===t}var Xs,pd,uI,lI,dI,pI,sa,md=y(()=>{Xs="github-webhook",pd="github.webhook.delivery";uI="pull_request,pull_request_review,check_run,check_suite,workflow_run",lI=3,dI=1e3,pI=/no extension matched|unknown command|command not found/i,sa=class extends aI{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,dI).then(()=>{}),await this.stopping)}makeWakeSignalFor(r,n){return()=>{if(this._mode!=="webhook"||this._dead)return;let s=new AbortController,o=c=>{(r==="pr"?oa(c,n):ia(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=cI(r,["webhook","forward",`--events=${uI}`],{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(`
|
|
107
|
+
`))>=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");pI.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>=lI)return;let r=Math.min(500*Math.pow(2,this.restarts),5e3);this.restarts++,setTimeout(()=>this.spawnChild(),r).unref()}}});var aa,d_=y(()=>{"use strict";md();md();zt();aa=class extends sa{constructor(t){super(t,Sn)}}});import{EventEmitter as mI}from"node:events";import{join as fI}from"node:path";function gd(e){let t=vi(e.cwd),r=Zw(fI(t,".red"));return new fd({...e,leases:e.leases??s_(r),lane:e.lane??od(r),makeForwarder:e.makeForwarder??((n,s)=>new aa({cwd:n,cancelSignal:s})),isLeaseHolderLive:e.isLeaseHolderLive??(n=>Tn(n.pid,n.start_time))})}var fd,p_=y(()=>{"use strict";l_();d_();zt();el();fd=class extends mI{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(Xs).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"?oa(a,n):ia(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===Xs&&o.kind===pd&&o.payload&&this.emit("delivery",o.payload);let s=await this.options.leases.read(Xs);(!s||!await this.options.isLeaseHolderLive(s))&&this.degradeToFallback()}finally{this.syncing=!1}}}}});var hd={};Z(hd,{listWaits:()=>Oi,renderWaitHelp:()=>Qs,runWait:()=>yI});import{randomUUID as m_}from"node:crypto";import{mkdir as gI,rm as hI}from"node:fs/promises";async function yI(e,t=process.cwd()){let r;try{r=await Ih(e)}catch(n){return await RI(e,n)}if(r.kind==="help"||e.includes("--help")||e.includes("-h"))return process.stdout.write(Qs()),0;if(r.kind==="ls"){let n={schema:Sh,version:1,waits:await Oi(t)};return process.stdout.write(An(n,r.options.format)),0}return Xu(r.kind)?await bI({...r,kind:r.kind},t):(process.stdout.write(Qs()),2)}async function bI(e,t){let r=e.kind,n=sl({id:m_(),kind:r,target:EI(e),reason:e.options.reason,pid:process.pid,pid_start_time:await Ps(process.pid),started_at:new Date().toISOString(),deadline_at:new Date(Date.now()+e.options.timeoutMs).toISOString(),timeout_ms:e.options.timeoutMs,poll_tier:Yu[r],status:"running",attempts:0}),s=jh(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 gI(xn(t),{recursive:!0}),await On(s,n);let l=await wI(e,t,s,n,o.signal);i&&(l={...l,verdict:ce(`wait interrupted by ${i}`,l.verdict.details)});let d=await Hh({kind:r,entry:n,verdict:l.verdict,options:e.options,cwd:t,cleanupProven:l.cleanupProven,survivors:l.survivors});return process.stdout.write(An(d.result,e.options.format)),d.exitCode}catch(l){let d=ce(l instanceof Error?l.message:String(l)),p=Ns(r,n,d,{status:"success"},new Date().toISOString());return await Fs(e.options.resultFile,p,e.options.format).catch(()=>{}),process.stdout.write(An(p,e.options.format)),2}finally{process.removeListener("SIGINT",c),process.removeListener("SIGTERM",u),await hI(s,{force:!0}).catch(()=>{})}}async function wI(e,t,r,n,s){let o={cwd:t,signal:s,timeoutMs:e.options.probeTimeoutMs};switch(e.kind){case"cmd":return await hy({commandLine:e.commandLine??"",options:e.options,cwd:t,spoolDir:$h(t),registryPath:r,entry:n,signal:s});case"pr":{let i=e.target??"";if(!/^[1-9][0-9]*$/.test(i))return{verdict:ce("missing PR number")};n.webhook_mode="polling";let a=gd({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await js({probe:Rw(i,o,{emptyChecksGraceMs:vn("RSP_WAIT_PR_EMPTY_CHECKS_GRACE_MS",3e4)}),timeoutMs:e.options.timeoutMs,baseSleepMs:vn("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 _I(e,o,r,n);if(!i.ok)return{verdict:ce(i.reason)};n.webhook_mode="polling";let a=gd({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await js({probe:()=>kw(i.value,o),timeoutMs:e.options.timeoutMs,baseSleepMs:vn("RSP_WAIT_RUN_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("run",i.value),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"job":{let i=e.target??"";return/^[1-9][0-9]*$/.test(i)?await js({probe:()=>Sw(i,o),timeoutMs:e.options.timeoutMs,baseSleepMs:vn("RSP_WAIT_JOB_POLL_MS",15e3),registryPath:r,entry:n,signal:s}):{verdict:ce("missing job id")}}case"release":return await js({probe:()=>vw(e.tagGlob,new Date(n.started_at),o,e.existing),timeoutMs:e.options.timeoutMs,baseSleepMs:vn("RSP_WAIT_RELEASE_POLL_MS",6e4),registryPath:r,entry:n,signal:s})}}async function _I(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 Tw(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 EI(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 RI(e,t){let r=e.includes("--json")?"json":"toon",n=e.indexOf("--result-file"),s=n>=0?e[n+1]:void 0,o=Xu(e[1])?e[1]:"cmd",i=new Date().toISOString(),a=sl({id:m_(),kind:o,target:`${o}:`,reason:"",pid:process.pid,started_at:i,deadline_at:i,timeout_ms:0,poll_tier:Yu[o],status:"indeterminate",attempts:0}),c=Ns(o,a,ce(t instanceof Error?t.message:String(t)),{status:"success"},i);return await Fs(s,c,r).catch(()=>{}),process.stdout.write(An(c,r)),2}var yd=y(()=>{"use strict";Lh();Wh();by();Fr();tl();xw();zt();Ds();td();p_();Ds();td()});var bd,wd,_d,Ge,De,tt,gt,Zs,ca=y(()=>{"use strict";bd="rsp-telemetry.spool.toonl",wd="rsp-telemetry.spool.jsonl",_d="rsp-telemetry.spool.corrections.toonl",Ge="rsp_accounting_events_v1",De="rsp_decisions_v1",tt="rsp_telemetry_invocations_v1",gt="rsp_telemetry_degradations_v1",Zs="rsp_telemetry_index_v1"});function Fn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function rt(e){return mr(e)??0}function mr(e){return typeof e=="number"&&Number.isFinite(e)?e:null}var Ed=y(()=>{"use strict"});import{randomUUID as eo,createHash as xI}from"node:crypto";import{appendFileSync as OI,closeSync as CI,existsSync as AI,fstatSync as PI,mkdirSync as E_,openSync as II,readFileSync as LI,statSync as GI,writeSync as DI}from"node:fs";import{mkdir as R_,readdir as $I,readFile as k_,rename as NI,rm as S_,writeFile as T_}from"node:fs/promises";import{basename as Rd,dirname as to,join as jn,resolve as h_}from"node:path";function la(e){if(!e)return null;let t=h_(e);for(;;){if(AI(jn(t,".red")))return t;let r=h_(jn(t,".."));if(r===t)break;t=r}return null}function Xt(e){return jn(oe(e),bd)}function Td(e){return jn(oe(e),wd)}function vd(e){return jn(oe(e),_d)}async function Jr(e,t,r=Ot["rsp-telemetry-spool"]){fr(e,t,r)}function fr(e,t,r=Ot["rsp-telemetry-spool"],n={}){try{let s=la(e);if(!s)return;let o=Xt(s);E_(to(o),{recursive:!0});let i=w_({spool_id:eo(),event:MI(t)}),a=C_(o,i,r,Od,w_);jI(o,i,n),a>0&&O_(s,"telemetry spool retention",a)}catch{}}function jI(e,t,r){let n=0;for(;;){let s=II(e,"a",384);try{DI(s,t,void 0,"utf8"),n+=1,r.afterWrite?.(e,n);let o=PI(s),i=GI(e);if(o.dev===i.dev&&o.ino===i.ino)return}catch(o){if(o.code!=="ENOENT")throw o}finally{CI(s)}}}function MI(e){return y_(y_(e,"raw_text","raw_bytes"),"emitted_text","emitted_bytes")}function y_(e,t,r){let n=e[t];if(typeof n!="string")return e;let s=Buffer.byteLength(n,"utf8");if(s<=FI)return e;let o={...e};return delete o[t],rt(o[r])===0&&(o[r]=s),o.estimated=!0,o}async function BI(e){let t=la(e);if(!t)return[];let r=Xt(t);await R_(to(r),{recursive:!0}).catch(()=>{});let n=await A_(t),s=[...await P_(t),...await WI(n)];return await Promise.all(n.map(o=>S_(o,{force:!0}))),s.map(o=>JSON.stringify(o.event))}async function xd(e,t){let r=la(e);if(!r)return;let n=Xt(r);await R_(to(n),{recursive:!0}).catch(()=>{}),await qI(r);for(let s of await UI(r))await b_(r,s,t);for(let s of await P_(r))await v_(r,s,t,!0);for(let s of await A_(r))await b_(r,s,t)}async function UI(e){let t=[Xt(e),Td(e)],r=to(t[0]);return(await $I(r).catch(()=>[])).filter(s=>t.some(o=>s.startsWith(`${Rd(o)}.`)&&s.endsWith(".drain"))).filter(s=>{let o=t.find(c=>s.startsWith(`${Rd(c)}.`));if(!o)return!1;let i=`${Rd(o)}.`,a=Number(s.slice(i.length).split(".")[0]);return!(Number.isInteger(a)&&a!==process.pid&&HI(a))}).sort().map(s=>jn(r,s))}function HI(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function b_(e,t,r){try{let n=await x_(t);for(let s of Od(n))await v_(e,s,r,!1)}finally{await S_(t,{force:!0})}}async function v_(e,t,r,n){let s=t.event?JSON.stringify(t.event):t.raw_line??"";try{if(await r(s)){n&&kd(e,{correction_id:eo(),target_spool_id:t.spool_id,action:"resolved",created_at:new Date().toISOString()});return}}catch{}kd(e,{correction_id:eo(),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 x_(e){let t="";for(let r=0;r<5;r++){let n=await k_(e,"utf8").catch(()=>"");if(n===t)return n;t=n,await new Promise(s=>setTimeout(s,2))}return t}function Mn(e){try{let t=JSON.parse(e);return!Fn(t)||t.collection!==Ge&&t.collection!==De&&t.collection!==tt&&t.collection!==gt?null:t}catch{return null}}function w_(e){return Me().push(VI(e))}function kd(e,t,r=!0){try{let n=la(e);if(!n)return;let s=vd(n);E_(to(s),{recursive:!0});let o=__(t),i=C_(s,o,Ot["rsp-telemetry-corrections"],I_,__);OI(s,o,{encoding:"utf8",mode:384}),r&&i>0&&O_(n,"telemetry corrections retention",i,!1)}catch{}}function O_(e,t,r,n=!0){let s=eo();kd(e,{correction_id:eo(),target_spool_id:s,action:"retry",created_at:new Date().toISOString(),event_json:JSON.stringify({collection:gt,id:s,created_at:new Date().toISOString(),reason:t,bytes:r})},n)}function __(e){return Me().push({correction_id:e.correction_id,target_spool_id:e.target_spool_id,action:e.action,created_at:e.created_at,event_json:e.event_json??null})}function C_(e,t,r,n,s){let o=Buffer.byteLength(t);if(!Cy(e,o,r))return 0;let i;try{i=LI(e,"utf8")}catch(m){if(m.code==="ENOENT")return 0;throw m}let a=r.maxBytes;if(a===void 0)return 0;let c=Math.max(0,Math.floor(a*(r.targetRatio??et))-o),u=n(i),l=[],d=0;for(let m=u.length-1;m>=0;m-=1){let f=s(u[m]),b=Buffer.byteLength(f);if(d+b>c)break;l.unshift(f),d+=b}let p=l.join("");return Ay(e,p),Math.max(0,Buffer.byteLength(i)-Buffer.byteLength(p))}async function A_(e){let t=Xt(e),r=[t,Td(e)],n=[];for(let s of r){let o=`${s}.${process.pid}.${Date.now()}.drain`;try{await NI(s,o),s===t&&await T_(s,"",{flag:"wx"}).catch(()=>{}),n.push(o)}catch(i){if(i.code!=="ENOENT")continue}}return n}async function qI(e){await T_(Xt(e),"",{flag:"a"}).catch(()=>{})}async function WI(e){let t=[];for(let r of e)t.push(...Od(await x_(r)));return t}async function P_(e){let t=await k_(vd(e),"utf8").catch(()=>""),r=new Map;for(let n of I_(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:Mn(n.event_json)??void 0})).filter(n=>n.event!==void 0)}function Od(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(Fn(o)){let i=Mn(JSON.stringify(o));t.push(i?{spool_id:ua(JSON.stringify(o)),event:i}:{spool_id:ua(s),raw_line:s})}continue}catch{}if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r){t.push({spool_id:ua(s),raw_line:s});continue}try{for(let o of je(`${r}
|
|
108
108
|
${s}
|
|
109
|
-
`))
|
|
109
|
+
`))Sd(o)&&KI(o)&&t.push({spool_id:o.spool_id,event:L_(o)})}catch{s.startsWith("{")&&t.push({spool_id:ua(s),raw_line:s})}}}return t}function I_(e){return JI(e).map(zI).filter(t=>t!==null)}function JI(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s)try{let o=JSON.parse(s);Sd(o)&&t.push(o)}catch{if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r)continue;try{for(let o of je(`${r}
|
|
110
110
|
${s}
|
|
111
|
-
`))
|
|
112
|
-
`,"utf8"),t]):null}function
|
|
113
|
-
`,"utf8"),await
|
|
111
|
+
`))Sd(o)&&t.push(o)}catch{}}}return t}function ua(e){return`legacy:${xI("sha256").update(e).digest("hex").slice(0,24)}`}function VI(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 L_(e){let{spool_id:t,...r}=e;return Mn(JSON.stringify(r))}function KI(e){return typeof e.spool_id=="string"&&L_(e)!==null}function zI(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 Sd(e){return Fn(e)?Object.values(e).every(t=>typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null):!1}var FI,G_=y(()=>{"use strict";Be();Ln();q();ca();Ed();FI=64*1024});function da(e){return e.trim().split(/\s+/).filter(Boolean)}function ro(e){return e.split(/&&|[;|]/).map(t=>t.trim()).filter(Boolean)}function no(e){return e.split(/[ \t]+/).filter(Boolean).map(t=>t.replace(/^env$/,""))}function nt(e){let t=da(e);return t.length===0?"unknown":t[0]==="git"&&t[1]?`git ${t[1]}`:Vr(t)&&t[1]&&t[2]?`gh ${t[1]} ${t[2]} json-jq`:Vr(t)&&t[1]?`gh ${t[1]} json-jq`:Vr(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 Vr(e){return e[0]==="gh"&&e.some(YI)}function YI(e){return e==="--json"||e==="--jq"||e.startsWith("--json=")||e.startsWith("--jq=")}function Bn(e){return/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(e)}var so=y(()=>{"use strict"});var ye,pa=y(()=>{"use strict";He();ye="rsp_elisions_v1"});import{spawnSync as ao}from"node:child_process";import{createHash as Pd}from"node:crypto";import{existsSync as QI}from"node:fs";import{mkdir as XI,readFile as ZI,readdir as D_,rename as eL,writeFile as tL}from"node:fs/promises";import{homedir as rL}from"node:os";import{basename as nL,dirname as sL,join as oo}from"node:path";import{fileURLToPath as oL}from"node:url";import{gunzipSync as iL,gzipSync as aL}from"node:zlib";function co(e,t){return`el:${Pd("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 gr(e){return`record:${e.slice(3)}`}function zr(e){return`expired:${e.slice(3)}`}function ga(){return"index:v1"}function cL(e){return`blob:${e}`}function $_(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid RedDB identifier: ${e}`);return e}function Zt(e){let t=da(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":ha(t)?"re-executable":"ephemeral"}return"ephemeral"}function uo(e){return _a(e.storage_class)?e.storage_class:Zt(e.command)}function N_(e){return _a(e.storage_class)?e.storage_class:Zt(e.command)}function Id(e){let t=dL(),r={derivable:new Set,"re-executable":new Set,ephemeral:new Set};for(let n of e){let s=N_(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 Ld(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:uL(o),storage_class:N_(s),recover:`rsp show ${s.handle}`}})}function uL(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 Gd(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 Yr(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 Dd(e,t){let r=process.cwd(),n=ao("git",["rev-parse","--is-inside-work-tree"],{cwd:r,encoding:"utf8"});if(n.status!==0||n.stdout.trim()!=="true")return null;let s=ao("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:lL(r),original_bytes:e.length}:null}function lL(e){let t=Cd(e,["rev-parse","HEAD"])||"unborn",r=Cd(e,["write-tree"])||"no-index",n=Cd(e,["status","--porcelain=v1","-z"])||"";return Pd("sha256").update(t).update("\0").update(r).update("\0").update(n).digest("hex")}function Cd(e,t){let r=ao("git",t,{cwd:e,encoding:"utf8"});return r.status===0?r.stdout.trim():null}function $d(e,t){let r=da(t);if(!ha(r))return null;let n=B_(process.cwd(),r,e.length);return!n||Kr(n)!==Kr(e)?null:{kind:"command",command:t,cwd:process.cwd(),argv:r,original_bytes:e.length,content_hash:Kr(e)}}function ha(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 Kr(e){return Pd("sha256").update("rsp-reexecutable-content-v1\0").update(e).digest("hex")}function Nd(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 Fd(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 jd(e,t,r){let n=aL(e);return{key:cL(t),content_hash:t,encoding:"gzip+base64",bytes:n.toString("base64"),original_bytes:e.length,stored_bytes:n.length,created_at:r}}function F_(e){try{let t=iL(Buffer.from(e.bytes,"base64"));return t.length===e.original_bytes?t:null}catch{return null}}function j_(e){let t=e.object_ids[0];if(!t)return null;let r=ao("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 M_(e){if(!ha(e.argv))return null;let t=B_(e.cwd,e.argv,e.original_bytes);return t?Kr(t)===e.content_hash?t:Buffer.concat([Buffer.from(`reconstructed after state moved - current snapshot follows
|
|
112
|
+
`,"utf8"),t]):null}function B_(e,t,r){let n=t[0];if(!n)return null;let s=ao(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 dL(){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 lo(e){return/^el:[a-f0-9]{12}$/.test(e)}function fa(e){return/^blob:[a-f0-9]{64}$/.test(e)}function U_(e){if(!io(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:io(e.scope)?e.scope:void 0,ranking:io(e.ranking)?e.ranking:void 0}}}function H_(e){if(!io(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 io(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function q_(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 D_(i,{withFileTypes:!0}).catch(()=>[]);for(let c of a){if(n.length>=t)return;if(s.has(c.name))continue;let u=oo(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 W_(e,t){let r=Number(e.red_entity_id??e.rid);if(!Number.isFinite(r))return null;let n=e.properties??e.PROPERTIES,s=io(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 ya(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function po(e){if(!st(e))return!1;let t=typeof e.original=="string"&&e.original_encoding==="base64",r=mL(e.derivation_recipe),n=fL(e.reexecution_recipe),s=e.blob_key,o=typeof s=="string"&&fa(s);return e.collection===ye&&typeof e.handle=="string"&&lo(e.handle)&&(t||r||n||o)&&typeof e.original_bytes=="number"&&(e.content_hash===void 0||Bd(e.content_hash))&&(e.stored_bytes===void 0||typeof e.stored_bytes=="number")&&(s===void 0||typeof s=="string"&&fa(s))&&typeof e.command=="string"&&typeof e.created_at=="string"&&typeof e.expires_at=="string"&&pL(e.loss)&&(e.storage_class===void 0||_a(e.storage_class))}function Md(e){return!st(e)||e.version!==1||!Array.isArray(e.records)?!1:e.records.every(t=>{if(!st(t))return!1;let r=t.blob_key;return typeof t.handle=="string"&&lo(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||_a(t.storage_class))&&(r===void 0||typeof r=="string"&&fa(r))})}function ba(e){return st(e)&&typeof e.key=="string"&&fa(e.key)&&Bd(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 wa(e){return st(e)&&e.status==="expired"&&typeof e.expired_at=="string"&&typeof e.command=="string"}function pL(e){return st(e)&&typeof e.level=="string"&&typeof e.bytes_elided=="number"}function _a(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"}function mL(e){return st(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 fL(e){return st(e)&&e.kind==="command"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.argv)&&e.argv.every(t=>typeof t=="string")&&ha(e.argv)&&typeof e.original_bytes=="number"&&Bd(e.content_hash)}function Bd(e){return typeof e=="string"&&/^[0-9a-f]{64}$/.test(e)}function st(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function J_(e){try{let n=(await ZI(e,"utf8")).trim();if(n==="")return ma();let s;try{s=JSON.parse(n)}catch{s=z(n)}if(gL(s))return{...s,blobs:s.blobs??{}}}catch(r){if(r.code==="ENOENT"){let s=ma();return await Un(e,s),s}let n=ma();return await Un(e,n),n}let t=ma();return await Un(e,t),t}async function V_(e){try{return e}catch(t){if(t.code==="ENOENT")return e;throw t}}function K_(e){return nL(e)==="red-skills.rdb"}async function Ea(){if(process.env.REDDB_BIN)return;let e=process.env.RED_SKILLS_CACHE_DIR??(process.env.XDG_CACHE_HOME?oo(process.env.XDG_CACHE_HOME,"red-skills","bundles"):oo(rL(),".cache","red-skills","bundles")),t=oo(e,"reddb"),r;try{r=await D_(t)}catch{return}r.sort().reverse();for(let n of r){let s=oo(t,n,process.platform==="win32"?"red.exe":"red");if(QI(s)){process.env.REDDB_BIN=s;return}}}async function Un(e,t){await XI(sL(e),{recursive:!0});let r=`${e}.${process.pid}.tmp`;await tL(r,`${D(Ad(t))}
|
|
113
|
+
`,"utf8"),await eL(r,e)}function Ad(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=>Ad(t));if(typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))n!==void 0&&(t[r]=Ad(n));return t}return String(e)}function ma(){return{version:1,records:{},blobs:{},tombstones:{},index:{version:1,records:[]}}}function gL(e){return st(e)&&e.version===1&&st(e.records)&&Object.values(e.records).every(po)&&(e.blobs===void 0||st(e.blobs)&&Object.values(e.blobs).every(ba))&&st(e.tombstones)&&Object.values(e.tombstones).every(wa)&&Md(e.index)}function z_(e){if(!e.startsWith("file://"))throw new Error("rsp elision store requires a file:// URI");return oL(e)}var Ra=y(()=>{"use strict";q();so();pa()});async function Y_(e,t){return hL?wL(e,t):yL?EL(e,t):bL(e,t)}async function bL(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 wL(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:_L(r.stdout),kill(){r.kill()},wait(){return r.exited}}}async function*_L(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 EL(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:RL(n.stdout),kill(){try{n.kill("SIGTERM")}catch{}},async wait(){return(await n.status).code??0}}}async function*RL(e){let t=e.getReader();try{for(;;){let{value:r,done:n}=await t.read();if(n)return;yield r}}finally{t.releaseLock()}}var hL,yL,Q_=y(()=>{hL=typeof globalThis.Bun<"u"&&typeof globalThis.Bun.spawn=="function",yL=typeof globalThis.Deno<"u"&&typeof globalThis.Deno.Command=="function"});import{existsSync as kL}from"node:fs";import{join as SL}from"node:path";function X_(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=SL(r,"bin",t);if(kL(o))return o;throw new Error(`reddb: binary "${t}" not found.
|
|
114
114
|
expected at: ${o}
|
|
115
115
|
override: set ${n}=/path/to/${t}
|
|
116
116
|
fix: re-run \`pnpm install\` (the postinstall script downloads it),
|
|
117
|
-
or check the postinstall log for a download error.`)}var
|
|
118
|
-
`)).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(
|
|
117
|
+
or check the postinstall log for a download error.`)}var Z_=y(()=>{});import{fileURLToPath as TL}from"node:url";import{dirname as vL,resolve as xL,join as o8}from"node:path";function AL(){return typeof process<"u"&&process.platform==="win32"?"red.exe":"red"}function eE(){let e=process.env?.REDDB_BINARY_PATH;return typeof e=="string"&&e!==""&&!process.env?.REDDB_BIN?e:X_({name:AL(),packageRoot:CL,envVar:"REDDB_BIN"})}var OL,CL,tE=y(()=>{Z_();OL=vL(TL(import.meta.url)),CL=xL(OL,"..")});var PL,IL,$,ka,hr=y(()=>{PL=new TextEncoder,IL=new TextDecoder("utf-8"),$=class extends Error{constructor(t,r,n){super(r),this.name="RedDBError",this.code=t,this.data=n??null}},ka=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 $("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(PL.encode(s+`
|
|
118
|
+
`)).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(IL.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 $(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 $("CLIENT_CLOSED",t);for(let{reject:n}of this.pending.values())n(r);this.pending.clear()}}});function Hd(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:/"?LL(e):GL(e)}function LL(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 $("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=DL(s),a=r.port?Number(r.port):Ud(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 GL(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 $("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):Ud(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 $("UNPARSEABLE_URI",`failed to parse '${e}': ${r.message}`)}return{kind:t.protocol==="https:"?"https":"http",host:t.hostname,port:t.port?Number(t.port):Ud(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 $("UNSUPPORTED_SCHEME",`unsupported URI: '${e}'. Use 'red://...' or one of memory://, file://, grpc://, http(s)://`)}function DL(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 $("UNSUPPORTED_PROTO",`unknown proto='${e}'. Supported: red | reds | grpc | grpcs | http | https | pg`)}}function Ud(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 qd=y(()=>{hr()});function NL(e){if(typeof e=="string"){let t=new TextEncoder().encode(e);return rE(t)}if(e instanceof Uint8Array||typeof Buffer<"u"&&Buffer.isBuffer(e))return rE(e);throw new TypeError("cache value must be a string, Uint8Array, or Buffer")}function rE(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 FL(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 $L,mo,Wd=y(()=>{hr();$L=new Set(["embedded"]),mo=class{constructor(t,r){this._client=t,this._transport=r??null}_guard(t){if(this._transport&&$L.has(this._transport))throw new $("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:FL(n.value)}async put(t,r,n,s={}){this._guard("put");let o=NL(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 Jd(e,t){return`${Vd(e)}.${jL(t)}`}function Vd(e){let t=String(e),r=t.match(/[^A-Za-z0-9_]/);if(r)throw new $("INVALID_KV_KEY",`invalid KV key "${t}": character "${r[0]}" is not supported`);return t}function jL(e){let t=String(e);return/^[A-Za-z0-9_]+$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function ML(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 nE(e){return`'${String(e).replace(/'/g,"''")}'`}var Hn,Kd=y(()=>{hr();Hn=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(nE).join(", ")}]`:"",i=n.expireMs!=null?` EXPIRE ${Number(n.expireMs)} ms`:"";return this.client.call("query",{sql:`KV PUT ${Jd(s,t)} = ${ML(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 ${Jd(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 ${Jd(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 $("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 ${Vd(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(nE).join(", ")}] FROM ${Vd(n)}`});return s.affected??s.affected_rows??s.rows?.[0]?.invalidated??0}async*watch(t,r={}){if(!this.client.baseUrl)throw new $("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 $("HTTP_ERROR",`kv.watch failed with HTTP ${a.status}`);let c=await a.text();for(let u of c.split(`
|
|
119
119
|
|
|
120
120
|
`)){let l=u.split(`
|
|
121
|
-
`).find(d=>d.startsWith("data: "));l&&(yield JSON.parse(l.slice(6)))}}watchPrefix(t,r={}){return this.watch(`${t}.*`,r)}}});function $L(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=Zt(e),a=Zt(t),c=s!=null?` GROUP ${Zt(s)}`:"",u=o!=null?Jd(o):"";return`QUEUE READ ${i}${c} CONSUMER ${a}${u} WAIT ${n}ms`}function Zt(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 Jd(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 NL(e){if(!Number.isInteger(e))throw new D("INVALID_QUEUE_PRIORITY","queue priority must be an integer");return String(e)}function FL(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 ${NL(e.priority)}`),e.key!=null&&(t+=` KEY ${Vd(e.key)}`),e.dedup!=null&&(t+=` DEDUP ${Vd(e.dedup)}`),e.delay!=null&&(t+=` DELAY ${e.delay}`),e.at!=null&&(t+=` AVAILABLE AT ${e.at}`),t}function jL(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="string"?Vd(e):JSON.stringify(e)}function Vd(e){return`'${String(e).replace(/'/g,"''")}'`}function Wd(e){return Array.isArray(e?.rows)?e.rows.map(t=>t.payload):[]}var lo,Kd=h(()=>{gr();lo=class{constructor(t){this.client=t}create(t){return this.client.call("query",{sql:`CREATE QUEUE IF NOT EXISTS ${Zt(t)}`})}push(t,r,n={}){let s=FL(n);return this.client.call("query",{sql:`QUEUE PUSH ${Zt(t)} ${jL(r)}${s}`})}async pop(t,r){let n=await this.client.call("query",{sql:`QUEUE POP ${Zt(t)}${Jd(r)}`});return Wd(n)}async peek(t,r){let n=await this.client.call("query",{sql:`QUEUE PEEK ${Zt(t)}${Jd(r)}`});return Wd(n)}async len(t){let r=await this.client.call("query",{sql:`QUEUE LEN ${Zt(t)}`});return Number(r?.rows?.[0]?.len??0)}purge(t){return this.client.call("query",{sql:`QUEUE PURGE ${Zt(t)}`})}async readWait(t,r,n={}){let s=$L(t,r,n),o=await this.client.call("query",{sql:s});return Wd(o)}}});function Z_(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new D("INVALID_ARGUMENT",`${t} must be an object`)}function ML(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 Ra(e){return String(e).split(".").map(eE).join(".")}function eE(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 BL(e){return tE(JSON.stringify(e))}function UL(e){return JSON.stringify(e)}function HL(e){return e==null?"NULL":typeof e=="number"||typeof e=="boolean"?String(e):typeof e=="object"?BL(e):tE(e)}function tE(e){return`'${String(e).replace(/'/g,"''")}'`}var po,zd=h(()=>{gr();po=class{constructor(t){this.db=t}async insert(t,r){Z_(r,"documents.insert document"),await this.ensureCollection(t);let n=await this.db.query(`INSERT INTO ${Ra(t)} DOCUMENT VALUES (${UL(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=ML(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 ${Ra(t)}${o} ORDER BY ${s} LIMIT ${n}`)).rows??[]}}async patch(t,r,n){Z_(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])=>`${eE(c)} = ${HL(u)}`).join(", "),a=(await this.db.query(`UPDATE ${Ra(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 ${Ra(t)}`)}catch(r){if(!String(r?.message??"").includes("already exists"))throw r}}}});function qL(e,t){if(t.secretRef){let{collection:r,key:n}=t.secretRef;return`SECRET_REF(vault, ${hr(r)}.${hr(n)})`}return JL(e)}function WL(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 hr(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 JL(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):rE(e)}function rE(e){return`'${String(e).replace(/'/g,"''")}'`}var mo,Yd=h(()=>{mo=class{constructor(t,r="red.config"){this.client=t,this.collection=r}put(t,r,n={}){WL(n,"config");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(rE).join(", ")}]`:"";return this.client.call("query",{sql:`PUT CONFIG ${hr(s)} ${hr(t)} = ${qL(r,n)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`GET CONFIG ${hr(n)} ${hr(t)}`})}resolve(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`RESOLVE CONFIG ${hr(n)} ${hr(t)}`})}}});function VL(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 Un(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 KL(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):nE(e)}function nE(e){return`'${String(e).replace(/'/g,"''")}'`}var fo,Qd=h(()=>{fo=class{constructor(t,r="red.vault"){this.client=t,this.collection=r}put(t,r,n={}){VL(n,"vault");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(nE).join(", ")}]`:"";return this.client.call("query",{sql:`VAULT PUT ${Un(s)}.${Un(t)} = ${KL(r)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`VAULT GET ${Un(n)}.${Un(t)}`})}unseal(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`UNSEAL VAULT ${Un(n)}.${Un(t)}`})}}});async function oE(e){return((await e.query("SHOW COLLECTIONS")).rows??[]).map(zL)}async function iE(e,t){return((await e.query(`SHOW COLLECTIONS WHERE name = ${QL(t)}`)).rows??[]).some(n=>n.name===String(t))}function zL(e){return{...e,name:String(e.name),model:String(e.model),capabilities:Array.isArray(e.capabilities)?e.capabilities:[]}}function sE(e){return String(e).split(".").map(YL).join(".")}function YL(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 QL(e){return`'${String(e).replace(/'/g,"''")}'`}var go,Xd=h(()=>{gr();go=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(sE).join(", "),r=this.whereClauses.length>0?` WHERE ${this.whereClauses.map(i=>`(${i})`).join(" AND ")}`:"",n=`SELECT ${t} FROM ${sE(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 Ta(e,t={}){let r=jd(e);if(aG(r),r.kind==="embedded"){let n=iG(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=oG(r),o=t.binary??z_(),i=await W_(o,s),a=new Ea(i);return await a.call("version",{}),new ep(a,{transport:"embedded"})}}function cE(e){return eG(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:rG(e)}:typeof e=="number"&&!Number.isFinite(e)?Number.isNaN(e)?{$float:"NaN"}:{$float:e>0?"Infinity":"-Infinity"}:typeof e=="string"&&sG(e)?{$uuid:e}:e}function eG(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 tG(e){return e.length===0?null:e.length===1&&Array.isArray(e[0])?e[0].map(cE):e.map(cE)}function rG(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 nG(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 sG(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}function ka(e){if(Array.isArray(e))return e.map(ka);if(e&&typeof e=="object"){if(Object.keys(e).length===1){if(typeof e.$bytes=="string")return nG(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]=ka(s);return r}return e}function oG(e){return e.path?["rpc","--stdio","--path",e.path]:["rpc","--stdio"]}function iG(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 aG(e){if(e.kind!=="embedded")throw new D("EMBEDDED_ONLY",XL)}function tp(){return new D(aE,`${aE}: nested transactions are not supported on one connection`)}function lE(e,t){if(e&&typeof e=="object")try{e.rollbackError=t}catch{}}function cG(e,t){if(!e||typeof e!="object"||e.rid==null&&e.id==null)throw new D("ENGINE_TOO_OLD",`${t}() requires RedDB engine >= ${uE} with insert id support`);return e.rid==null&&(e.rid=e.id),e.id==null&&(e.id=e.rid),e}function uG(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 >= ${uE} 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 XL,ZL,uE,aE,Sa,Zd,ep,dE=h(()=>{J_();Y_();gr();Md();Bd();qd();Kd();zd();Yd();Qd();Xd();Bd();qd();Kd();zd();Yd();Qd();Xd();Md();XL="remote URIs are not supported in @reddb-io/sdk; install @reddb-io/client for grpc/http/red transports",ZL="1.0",uE="1.0.9",aE="NESTED_TX_NOT_SUPPORTED";Sa=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 tp()}},Zd=class{constructor(t){this.db=t,this.active=!1}async begin(){if(this.db.inTransaction)throw tp();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 Sa(this.db));return await this.commit(),r}catch(r){if(this.active)try{await this.rollback()}catch(n){lE(r,n)}throw r}}},ep=class{constructor(t,r={}){this.client=t,this.transport=r.transport??null,this.helperSpecVersion=ZL,this.cache=new uo(t,this.transport),this.queue=new lo(t),this.queues=this.queue,this.documents=new po(this);let n=new Bn(t);this.kv=Object.assign((s="kv_default")=>new Bn(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 mo(t,s),this.vault=(s="red.vault")=>new fo(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=tG(r);return n==null?this.client.call("query",{sql:t}).then(ka):this.client.call("query",{sql:t,params:n}).then(ka)}execute(t,...r){return this.query(t,...r)}async insert(t,r){let n=await this.client.call("insert",{collection:t,payload:r});return cG(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 uG(n,r.length)}tx(){return new Zd(this)}async transaction(t){if(this.inTransaction)throw tp();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 Sa(this));return await this.query("COMMIT"),n}catch(n){if(r)try{await this.query("ROLLBACK")}catch(s){lE(n,s)}throw n}finally{this.inTransaction=!1}}exists(t){return iE(this,t)}list(){return oE(this)}from(t){return new go(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 lG}from"node:crypto";import{existsSync as pE}from"node:fs";import{mkdir as dG,readFile as pG,rename as rp,rm as ho,stat as np}from"node:fs/promises";import{basename as mG,dirname as fG}from"node:path";async function mE(e){await(await zr.open({...e,allowResidentOpen:!0})).close()}var zr,fE=h(()=>{"use strict";dE();la();_a();zr=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=q_(t.uri),n=await U_(r),s=new e(n,{uri:t.uri,ttlDays:ga(t.ttlDays,lt),ephemeralTtlHours:ga(t.ephemeralTtlHours,dt),byteBudget:ga(t.byteBudget,pt),now:t.now??(()=>new Date)});return H_(n)?(await wa(),await dG(fG(n),{recursive:!0}),s.db=await Ta(`file://${n}`),await s.ensureRedDbCollections(),await s.ensureRedDbStore()):s.document=await B_(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=oo(n,r),a=fr(i),c=Xt(r.command),u=c==="derivable"?Pd(n,r.command):null,l=c==="re-executable"?Id(n,r.command):null,d=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,p=Ad(s,d,this.opts.ttlDays,this.opts.ephemeralTtlHours),m=Jr(n),f=d==="ephemeral"?Dd(n,m,o):null,E=Ld(n,u,l,f);f&&!this.document.blobs[f.key]&&(this.document.blobs[f.key]=f,this.dirty=!0);let b={collection:ge,handle:i,original_bytes:n.length,stored_bytes:E,command:r.command,created_at:o,expires_at:p,loss:r.loss,storage_class:d,content_hash:m,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};return delete this.document.tombstones[Vr(i)],this.document.records[a]=b,this.upsertIndex({handle:i,key:a,bytes:E,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(!ao(t))return null;let r=this.tombstone(t);if(r)return r;let n=this.document.records[fr(t)];if(!co(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:fr(n.handle),bytes:Gd(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:io(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:ge,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:io(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:Kr(r),oldest:r.reduce((n,s)=>n==null||s.created_at<n?s.created_at:n,null),budget:this.opts.byteBudget,storage_classes:Od(r)}}async recoveryHandles(t=5){return this.db?await this.recoveryHandlesRedDb(t):(this.prune(),await this.flush(),Cd(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=Kr(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=Kr(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 ya(r)?r:null}async readOriginal(t){if(t.original)return Buffer.from(t.original,"base64");if(t.derivation_recipe)return G_(t.derivation_recipe);if(t.reexecution_recipe)return D_(t.reexecution_recipe);if(t.blob_key){let r=this.db?await this.kvGet(t.blob_key):this.document.blobs[t.blob_key];return ha(r)?L_(r):null}return null}deleteUnreferencedLocalBlobs(t){let r=new Set(t.map(n=>n.blob_key).filter(n=>typeof n=="string"));for(let n of Object.keys(this.document.blobs))r.has(n)||(delete this.document.blobs[n],this.dirty=!0)}async flush(){this.dirty&&(await Mn(this.path,this.document),this.dirty=!1),await this.rotateLocalGenerationIfOversized()}async rotateLocalGenerationIfOversized(){let t=await np(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)}
|
|
122
|
-
`,"utf8");i>this.opts.byteBudget||i>=t||(this.document=o,await
|
|
123
|
-
`),diagnostics:{vector:{status:"unavailable",candidates:0,contributed:0,reason:"resident-basic-recall"}}}}async readRedDbIndex(){let t=await this.kvGet(ma());return $d(t)?t:{version:1,records:[]}}async writeRedDbIndex(t){await this.kv().put(ma(),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=Kr(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=Kr(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 np(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 ho(o,{force:!0}),await ho(i,{force:!0});let a=await Ta(`file://${o}`);try{for(let u of n){await a.query(`CREATE KV IF NOT EXISTS ${P_(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 np(o).then(u=>u.size,()=>0);if(c===0||c>this.opts.byteBudget||c>=r){await ho(o,{force:!0});return}await this.db.close(),this.db=void 0;try{await rp(this.path,i),await rp(o,this.path),await ho(i,{force:!0})}catch(u){throw!pE(this.path)&&pE(i)&&await rp(i,this.path),await ho(o,{force:!0}),u}finally{this.db=await Ta(`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===ge){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:ma(),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:ge,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(fr(t));if(!co(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 gE={};Y(gE,{DEFAULT_RSP_BYTE_BUDGET:()=>pt,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>dt,DEFAULT_RSP_TTL_DAYS:()=>lt,RSP_ELISION_COLLECTION:()=>ge,RspElisionStore:()=>zr,contentHandle:()=>oo,ensureReddbBinaryFromWarmCache:()=>wa,provisionElisionStore:()=>mE,storageClassForCommand:()=>Xt});var va=h(()=>{"use strict";la();_a();_a();fE()});async function xa(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:30,s=r.getTime()-n*24*60*60*1e3,o=await bE(e,s),i=(await yo(e,De)).filter(P=>qn(P)>=s),a=o.filter(P=>j(P.event_type)!=="show"&&j(P.degradation_reason)===""),c=o.filter(P=>j(P.event_type)==="show"),u=o.filter(P=>j(P.degradation_reason)!==""),l=0,d=0,p=0,m=0,f=!1,E=new Map,b=new Map,y=[],R=0,v=0,O=0;for(let P of a){P.elided===!0&&l++;let M=tt(P.raw_bytes),We=tt(P.emitted_bytes),Gt=Math.max(0,M-We),tr=Wn(P,"raw"),C=Wn(P,"emitted"),N=Math.max(0,tr.tokens-C.tokens);f||=(P.estimated===!0||tr.estimated||C.estimated)&&N>0,d+=M,p+=We,m+=N;let Dt=Yr(P).slice(0,10);Dt&&E.set(Dt,(E.get(Dt)??0)+N);let wt=j(P.command)||"unknown",Ce=b.get(wt)??{command:wt,invocations:0,bytes_saved:0,tokens_saved:0};Ce.invocations++,Ce.bytes_saved+=Gt,Ce.tokens_saved+=N,b.set(wt,Ce);let Ae=pr(P.wrapper_ms);Ae!=null&&y.push(Ae),R+=tt(P.store_open_count);let $t=pr(P.store_elapsed_ms);$t!=null&&(v+=$t,O++)}let L=new Map,F=new Map,W=[],le=null;for(let P of u){let M=j(P.degradation_reason)||j(P.reason)||"unknown",We=j(P.wrapper_family)||rt(j(P.command));L.set(M,(L.get(M)??0)+1),F.set(We,(F.get(We)??0)+1);let Gt=Yr(P);W.push({timestamp:Gt,family:We,command:j(P.command)||"unknown",reason:M,exit_code:pr(P.wrapper_exit_code),stderr_head:j(P.stderr_head)||null}),(!le||Gt>le.timestamp)&&(le={timestamp:Gt,reason:M,command:j(P.command)||"unknown"})}let ce=a.length+u.length,ye=c.filter(P=>P.hit===!0).length,be=Fu(m,f),er=gG(i);return{window_days:n,empty:o.length===0,savings:{invocations:a.length,elided:l,raw_bytes:d,emitted_bytes:p,bytes_saved:Math.max(0,d-p),tokens_saved:m,tokens_saved_estimated:be.tokens_saved_estimated,token_estimate_range_pct:be.token_estimate_range_pct,tokens_saved_low:be.tokens_saved_low,tokens_saved_high:be.tokens_saved_high,dollars_saved_estimate_usd:be.dollars_saved_estimate_usd,dollars_saved_low_usd:be.dollars_saved_low_usd,dollars_saved_high_usd:be.dollars_saved_high_usd,pricing_model_family:be.pricing_model_family,pricing_input_usd_per_million_tokens:be.pricing_input_usd_per_million_tokens,pricing_note:be.pricing_note,daily_tokens_saved:[...E.entries()].sort(([P],[M])=>P.localeCompare(M)).map(([P,M])=>({date:P,tokens_saved:M})),top_commands:[...b.values()].sort((P,M)=>M.bytes_saved-P.bytes_saved||M.tokens_saved-P.tokens_saved||P.command.localeCompare(M.command))},health:{degradations:u.length,degradation_rate:ce===0?0:u.length/ce,show_total:c.length,show_hits:ye,show_misses:Math.max(0,c.length-ye),show_hit_rate:c.length===0?0:ke(ye/c.length),by_reason:[...L.entries()].sort((P,M)=>M[1]-P[1]||P[0].localeCompare(M[0])).map(([P,M])=>({reason:P,count:M})),by_family:[...F.entries()].sort((P,M)=>M[1]-P[1]||P[0].localeCompare(M[0])).map(([P,M])=>({family:P,count:M})),recent_failures:W.sort((P,M)=>M.timestamp.localeCompare(P.timestamp)).slice(0,20),most_recent:le},latency:{wrapper_ms_p50:Hn(y,.5),wrapper_ms_p95:Hn(y,.95),store_open_count_sum:R,store_elapsed_ms_sum:ke(v),store_elapsed_ms_avg:O===0?null:ke(v/O)},decisions:er}}function gG(e){let t=0,r=0,n=0,s=0,o=new Map,i=new Map;for(let a of e){let c=j(a.decision);if(c==="contributed"?t++:c==="failed-open"?n++:r++,a.quota_free===!0&&(s+=Math.max(1,tt(a.saved_units))),c!=="contributed"){let d=j(a.reason)||"unknown";o.set(d,(o.get(d)??0)+1)}let u=j(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:ke(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:ke(c.contributed/u)}})}}async function sp(e,t,r=new Date){let s=(await yo(e,Ge)).filter(o=>qn(o)<=r.getTime()||Yr(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=Yr(i);return a&&(o==null||a<o)?a:o},null),budget:t,storage_classes:SG(s)}}async function op(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 bE(e,i),c=a.filter(C=>j(C.event_type)!=="show"&&j(C.event_type)!=="control_holdout"&&C.control_holdout!==!0&&j(C.degradation_reason)===""),u=a.filter(C=>j(C.event_type)==="control_holdout"||C.control_holdout===!0),l=a.filter(C=>j(C.event_type)==="show"),d=a.filter(C=>j(C.degradation_reason)!==""),p=[...c,...d].map(qn).filter(C=>Number.isFinite(C)&&C>0),m=p.length===0?null:Math.min(...p),f=m==null?0:Math.max(1,Math.min(n,Math.ceil((r.getTime()-m)/LG()))),E=[],b=new Map,y=new Map,R=new Map,v=new Map,O=new Map,L=new Map,F=0,W=!1,le=0,ce=null,ye=0,be=0;for(let C of c){let N=Yr(C),Dt=N.slice(0,10),wt=N.slice(0,16),Ce=rt(j(C.command)),Ae=Math.max(0,Wn(C,"raw").tokens-Wn(C,"emitted").tokens);F+=Ae,W||=C.estimated===!0&&Ae>0;let $t=Math.max(0,tt(C.raw_bytes)-tt(C.emitted_bytes)),on=pr(C.wrapper_ms);if(on!=null){E.push(on);let rs=b.get(Ce)??[];rs.push(on),b.set(Ce,rs)}Dt&&y.set(Dt,(y.get(Dt)??0)+1),wt&&R.set(wt,(R.get(wt)??0)+1);let rr=OG(N);rr&&v.set(rr,(v.get(rr)??0)+1);let ts=PG(N);ts&&O.set(ts,(O.get(ts)??0)+Ae);let Tr=L.get(Ce)??{command_family:Ce,invocations:0,tokens_saved:0,bytes_saved:0};Tr.invocations++,Tr.tokens_saved+=Ae,Tr.bytes_saved+=$t,L.set(Ce,Tr),C.elided===!0&&le++,(C.store_open_count!=null||C.store_elapsed_ms!=null)&&(ye++,tt(C.store_open_count)>0&&be++),Ae>0&&(!ce||Ae>ce.tokens_saved||Ae===ce.tokens_saved&&$t>ce.bytes_saved)&&(ce={timestamp:N,command_family:Ce,tokens_saved:Ae,bytes_saved:$t})}let er=d.map(C=>({timestamp:Yr(C),command_family:rt(j(C.command)),reason:j(C.degradation_reason)||j(C.reason)||"unknown"})).sort((C,N)=>C.timestamp.localeCompare(N.timestamp)),P=new Map;for(let C of er)P.set(C.reason,(P.get(C.reason)??0)+1);let M=wG(er),We=bG(l),Gt=EG([...L.values()],We,M),tr=[...R.entries()].sort((C,N)=>N[1]-C[1]||C[0].localeCompare(N[0]))[0];return{schema_version:"red.rsp.gains.v1",window:{requested_days:n,data_days: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:yE(E),by_command_family:[...b.entries()].sort((C,N)=>N[1].length-C[1].length||C[0].localeCompare(N[0])).map(([C,N])=>({command_family:C,count:N.length,...yE(N)}))},throughput:{requests_per_day:[...y.entries()].sort(([C],[N])=>C.localeCompare(N)).map(([C,N])=>({date:C,requests:N})),active_minute_avg:R.size===0?null:ke([...R.values()].reduce((C,N)=>C+N,0)/R.size),peak_minute:tr?{minute:tr[0],requests:tr[1]}:null,hour_weekday_heatmap:CG(v)},savings:{tokens:Fu(F,W),measured_control_holdout:hG(c,u),weekly_tokens_saved:IG(O),elision_rate:c.length===0?0:ke(le/c.length),top_commands_by_tokens_saved:[...L.values()].sort((C,N)=>N.tokens_saved-C.tokens_saved||N.bytes_saved-C.bytes_saved||C.command_family.localeCompare(N.command_family)).slice(0,10),top_commands_by_invocation_count:[...L.values()].sort((C,N)=>N.invocations-C.invocations||N.tokens_saved-C.tokens_saved||C.command_family.localeCompare(N.command_family)).slice(0,10),single_biggest_elision:ce},health:{degradation_timeline:er,degradations_by_reason:[...P.entries()].sort((C,N)=>N[1]-C[1]||C[0].localeCompare(N[0])).map(([C,N])=>({reason:C,count:N})),cold_boots:ye===0?null:be,warm_hits:ye===0?null:Math.max(0,ye-be)},mining:{recovery_usage_by_family:We,degradation_clusters:M,threshold_tuning_suggestions:Gt}}}async function bE(e,t){let r=(await yo(e,Ge)).filter(i=>qn(i)>=t),n=r.some(i=>j(i.event_type)!=="show"||j(i.degradation_reason)!==""),s=(await yo(e,et)).filter(i=>qn(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:j(i.event_type)||"invocation"})),o=(await yo(e,gt)).filter(i=>qn(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:"invocation",degradation_reason:j(i.reason)||"unknown"}));return[...r,...s,...o]}function Wn(e,t){let r=pr(e[t==="raw"?"tokens_raw":"tokens_emitted"]);if(r!=null)return{tokens:r,estimated:!1};let n=tt(e[t==="raw"?"raw_bytes":"emitted_bytes"]);return{tokens:Math.ceil(n/4),estimated:n>0}}function hG(e,t){let r=kG(t.map(a=>pr(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(hE).filter(a=>a!=null),s=t.map(hE).filter(a=>a!=null),o=n.length>0?n:s,i=o.length===0?null:ke(RG(o));return{enabled:!0,holdout_share:ke(r),holdout_invocations:t.length,compressed_invocations:e.length,savings_rate:i,confidence_interval_95:i==null?null:yG(o,i),note:"measured from opt-in uncompressed control holdout; report proposes, it does not tune automatically"}}function hE(e){let t=Wn(e,"raw").tokens;if(t<=0)return null;let r=Wn(e,"emitted").tokens;return Math.max(0,t-r)/t}function yG(e,t){if(e.length<=1)return{low:ke(Math.max(0,t)),high:ke(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:ke(Math.max(0,t-n)),high:ke(Math.min(1,t+n))}}function bG(e){let t=new Map;for(let r of e){let n=rt(j(r.recovered_command)||j(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:ke(r.show_hits/r.show_total)}))}function wG(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:_G(r)}))}function _G(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 EG(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 RG(e){return e.reduce((t,r)=>t+r,0)/e.length}function kG(e){let t=e.filter(r=>r!=null);return t.length===0?null:Math.max(...t)}function SG(e){let t=vG();for(let r of e){if(j(r.event_type)==="show"||j(r.degradation_reason)!==""||r.elided!==!0)continue;let n=TG(r.storage_class)??Xt(j(r.command));t[n].records+=1;let s=tt(r.raw_bytes);t[n].bytes+=s,t[n].raw_bytes+=s}return t}function TG(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"?e:null}function vG(){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 yo(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=>xG(n.value)).filter(n=>$n(n))}function xG(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function qn(e){let t=Date.parse(Yr(e));return Number.isFinite(t)?t:0}function Yr(e){return j(e.created_at)||j(e.ts)||""}function j(e){return typeof e=="string"?e:""}function Hn(e,t){if(e.length===0)return null;let r=[...e].sort((s,o)=>s-o),n=Math.min(r.length-1,Math.max(0,Math.ceil(r.length*t)-1));return ke(r[n])}function yE(e){return{wrapper_ms_p50:Hn(e,.5),wrapper_ms_p90:Hn(e,.9),wrapper_ms_p95:Hn(e,.95),wrapper_ms_p99:Hn(e,.99)}}function ke(e){return Math.round(e*100)/100}function OG(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${AG(t.getUTCDay())}:${t.getUTCHours()}`:null}function CG(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 AG(e){return["sun","mon","tue","wed","thu","fri","sat"][e]??"unknown"}function PG(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 IG(e){let t=null;return[...e.entries()].sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>{let s=t==null||t===0?null:ke((n-t)/t*100);return t=n,{week_start:r,tokens_saved:n,wow_delta_pct:s}})}function LG(){return 24*60*60*1e3}var wE=h(()=>{"use strict";to();va();ju();ia();yd()});var bo={};Y(bo,{RSP_ACCOUNTING_EVENTS_COLLECTION:()=>Ge,RSP_DECISIONS_COLLECTION:()=>De,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:()=>gt,RSP_TELEMETRY_INDEX_COLLECTION:()=>Ys,RSP_TELEMETRY_INVOCATIONS_COLLECTION:()=>et,RSP_TELEMETRY_LEGACY_SPOOL_FILE:()=>gd,RSP_TELEMETRY_SPOOL_CORRECTIONS_FILE:()=>hd,RSP_TELEMETRY_SPOOL_FILE:()=>fd,appendTelemetryEvent:()=>qr,appendTelemetryEventSync:()=>mr,drainTelemetrySpool:()=>kd,parseTelemetryEvent:()=>Fn,readAccountingLaneStats:()=>sp,readTelemetryGainsReport:()=>op,readTelemetryStats:()=>xa,takeTelemetrySpool:()=>$I,telemetryLegacySpoolPath:()=>Ed,telemetrySpoolCorrectionsPath:()=>Rd,telemetrySpoolPath:()=>Qt});var Ot=h(()=>{"use strict";ia();C_();wE()});import{existsSync as GG}from"node:fs";import{join as DG}from"node:path";function $G(){for(let e of(process.env.PATH??"").split(":"))if(e&&GG(DG(e,"rsp")))return!0;return!1}function wo(){return $G()?["rsp"]:[process.execPath,process.argv[1]]}var ip=h(()=>{"use strict"});var Oa={};Y(Oa,{parseProxyCommandLine:()=>RE,rewriteProxyCommandLine:()=>EE,runProxy:()=>jG});import{spawn as NG}from"node:child_process";function FG(e){return/[^\w@%+=:,./-]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}async function jG(e,t){let r="",n="",s=[],o=process.hrtime.bigint();try{if(r=RE(e),process.env.RSP_PROXY_FAIL_INTERNAL==="1")throw new Error("forced proxy failure");let c=EE(r,t.level??"lossless");n=c.commandLine,s=c.matches}catch(c){if(r)return await MG(t.telemetryRoot,r,c),await _E(r);throw c}for(let c of s)await BG(t.telemetryRoot,c);let i=await _E(n||r),a=Number(process.hrtime.bigint()-o)/1e6;return await qr(t.telemetryRoot,{collection:et,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 EE(e,t="lossless",r=wo()){let n=VG(e),s=[];return{commandLine:n.map((i,a)=>{if(i.kind==="operator"||JG(n,a)==="|")return i.text;let c=UG(i.text,t,r);return c?(s.push(c.match),c.text):i.text}).join(""),matches:s}}function RE(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 MG(e,t,r){await qr(e,{collection:De,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t,command_family:rt(t),decision:"failed-open",reason:"proxy-internal-error",error:r instanceof Error?r.name:typeof r})}async function BG(e,t){await qr(e,{collection:De,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 _E(e){let t=NG(e,{shell:!0,stdio:"inherit"}),r=Ue();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)}
|
|
124
|
-
`),n(127)}),t.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}function
|
|
125
|
-
`;return{stdout:Buffer.from(`${
|
|
126
|
-
${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 ht(e){return e.startsWith("el:")?`rsp show ${e}`:e}function
|
|
127
|
-
`)[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
|
|
128
|
-
`).filter(Boolean),n=r.find(c=>c.startsWith("To "))?.slice(3)??"",s=r.filter(c=>c.includes(" ")).map(c=>{let[u,l,d=""]=c.split(" "),[p,m]=(l??"").split(":");return{flag:u??"",from:p??"",to:m??"",summary:d}}),o=s.find(c=>c.flag!=="=")??s[0],i=o?.to.startsWith("refs/heads/")?o.to.slice(11):o?.to??"",a=o?.summary.includes("..")?1:0;return s.length>0&&s.every(c=>c.flag==="=")?{command:e.join(" "),category:"no-op",exit_code:0,noop:!0,remote:n,refs:s,summary:`push already satisfied for ${i} -> ${n}`,help:["rsp gh pr list --query <branch>"]}:{command:e.join(" "),remote:n,refs:s,summary:`pushed ${i} -> ${n} +${a} commits`}}function
|
|
129
|
-
`),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=Te(s,r),a=
|
|
130
|
-
`).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=Te(n,r),o=s.find(i=>i.current)?.name??"";return
|
|
131
|
-
`)){let
|
|
132
|
-
`).length:0,files:f,summary:`${r?`${f.length}/${m.length}`:f.length} files, ${
|
|
133
|
-
`),detected:!0,lossy:!0,totalItems:s,keptItems:u.length,handle:p}}function
|
|
121
|
+
`).find(d=>d.startsWith("data: "));l&&(yield JSON.parse(l.slice(6)))}}watchPrefix(t,r={}){return this.watch(`${t}.*`,r)}}});function BL(e,t,r){let{waitMs:n,group:s=null,count:o=null}=r??{};if(!Number.isInteger(n)||n<0)throw new $("INVALID_QUEUE_WAIT","queue readWait requires an explicit non-negative integer waitMs (no infinite wait)");let i=er(e),a=er(t),c=s!=null?` GROUP ${er(s)}`:"",u=o!=null?Yd(o):"";return`QUEUE READ ${i}${c} CONSUMER ${a}${u} WAIT ${n}ms`}function er(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new $("INVALID_QUEUE_NAME",`invalid queue name "${t}": expected an SQL identifier`);return t}function Yd(e){if(e==null)return"";if(!Number.isInteger(e)||e<0)throw new $("INVALID_QUEUE_COUNT","queue count must be a non-negative integer");return` COUNT ${e}`}function UL(e){if(!Number.isInteger(e))throw new $("INVALID_QUEUE_PRIORITY","queue priority must be an integer");return String(e)}function HL(e){if(e.key!=null&&(e.delay!=null||e.at!=null))throw new $("INVALID_ARGUMENT","QUEUE PUSH KEY cannot be combined with DELAY / AVAILABLE AT");let t="";return e.priority!=null&&(t+=` PRIORITY ${UL(e.priority)}`),e.key!=null&&(t+=` KEY ${Qd(e.key)}`),e.dedup!=null&&(t+=` DEDUP ${Qd(e.dedup)}`),e.delay!=null&&(t+=` DELAY ${e.delay}`),e.at!=null&&(t+=` AVAILABLE AT ${e.at}`),t}function qL(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="string"?Qd(e):JSON.stringify(e)}function Qd(e){return`'${String(e).replace(/'/g,"''")}'`}function zd(e){return Array.isArray(e?.rows)?e.rows.map(t=>t.payload):[]}var fo,Xd=y(()=>{hr();fo=class{constructor(t){this.client=t}create(t){return this.client.call("query",{sql:`CREATE QUEUE IF NOT EXISTS ${er(t)}`})}push(t,r,n={}){let s=HL(n);return this.client.call("query",{sql:`QUEUE PUSH ${er(t)} ${qL(r)}${s}`})}async pop(t,r){let n=await this.client.call("query",{sql:`QUEUE POP ${er(t)}${Yd(r)}`});return zd(n)}async peek(t,r){let n=await this.client.call("query",{sql:`QUEUE PEEK ${er(t)}${Yd(r)}`});return zd(n)}async len(t){let r=await this.client.call("query",{sql:`QUEUE LEN ${er(t)}`});return Number(r?.rows?.[0]?.len??0)}purge(t){return this.client.call("query",{sql:`QUEUE PURGE ${er(t)}`})}async readWait(t,r,n={}){let s=BL(t,r,n),o=await this.client.call("query",{sql:s});return zd(o)}}});function sE(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new $("INVALID_ARGUMENT",`${t} must be an object`)}function WL(e){if(e==null)return 100;if(!Number.isInteger(e)||e<=0)throw new $("INVALID_ARGUMENT","limit must be a positive integer");return e}function Sa(e){return String(e).split(".").map(oE).join(".")}function oE(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new $("INVALID_ARGUMENT",`invalid SQL identifier "${t}"`);return t}function JL(e){return iE(JSON.stringify(e))}function VL(e){return JSON.stringify(e)}function KL(e){return e==null?"NULL":typeof e=="number"||typeof e=="boolean"?String(e):typeof e=="object"?JL(e):iE(e)}function iE(e){return`'${String(e).replace(/'/g,"''")}'`}var go,Zd=y(()=>{hr();go=class{constructor(t){this.db=t}async insert(t,r){sE(r,"documents.insert document"),await this.ensureCollection(t);let n=await this.db.query(`INSERT INTO ${Sa(t)} DOCUMENT VALUES (${VL(r)}) RETURNING *`),s=n.rows?.[0];if(!s||s.rid==null)throw new $("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 $("NOT_FOUND",`document ${String(r)} was not found`);return n.entity}async list(t,r={}){let n=WL(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 ${Sa(t)}${o} ORDER BY ${s} LIMIT ${n}`)).rows??[]}}async patch(t,r,n){sE(n,"documents.patch patch");let s=Object.entries(n);if(s.length===0)throw new $("INVALID_ARGUMENT","documents.patch patch must be a non-empty object");for(let[c]of s)if(c.includes("/"))throw new $("INVALID_ARGUMENT","documents.patch currently accepts top-level document fields");let o=s.map(([c,u])=>`${oE(c)} = ${KL(u)}`).join(", "),a=(await this.db.query(`UPDATE ${Sa(t)} SET ${o} WHERE rid = $1 RETURNING *`,r)).rows?.[0];if(!a)throw new $("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 ${Sa(t)}`)}catch(r){if(!String(r?.message??"").includes("already exists"))throw r}}}});function zL(e,t){if(t.secretRef){let{collection:r,key:n}=t.secretRef;return`SECRET_REF(vault, ${yr(r)}.${yr(n)})`}return QL(e)}function YL(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 yr(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 QL(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):aE(e)}function aE(e){return`'${String(e).replace(/'/g,"''")}'`}var ho,ep=y(()=>{ho=class{constructor(t,r="red.config"){this.client=t,this.collection=r}put(t,r,n={}){YL(n,"config");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(aE).join(", ")}]`:"";return this.client.call("query",{sql:`PUT CONFIG ${yr(s)} ${yr(t)} = ${zL(r,n)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`GET CONFIG ${yr(n)} ${yr(t)}`})}resolve(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`RESOLVE CONFIG ${yr(n)} ${yr(t)}`})}}});function XL(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 qn(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 ZL(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):cE(e)}function cE(e){return`'${String(e).replace(/'/g,"''")}'`}var yo,tp=y(()=>{yo=class{constructor(t,r="red.vault"){this.client=t,this.collection=r}put(t,r,n={}){XL(n,"vault");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(cE).join(", ")}]`:"";return this.client.call("query",{sql:`VAULT PUT ${qn(s)}.${qn(t)} = ${ZL(r)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`VAULT GET ${qn(n)}.${qn(t)}`})}unseal(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`UNSEAL VAULT ${qn(n)}.${qn(t)}`})}}});async function lE(e){return((await e.query("SHOW COLLECTIONS")).rows??[]).map(eG)}async function dE(e,t){return((await e.query(`SHOW COLLECTIONS WHERE name = ${rG(t)}`)).rows??[]).some(n=>n.name===String(t))}function eG(e){return{...e,name:String(e.name),model:String(e.model),capabilities:Array.isArray(e.capabilities)?e.capabilities:[]}}function uE(e){return String(e).split(".").map(tG).join(".")}function tG(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new $("INVALID_IDENTIFIER",`invalid SQL identifier "${t}"`);return t}function rG(e){return`'${String(e).replace(/'/g,"''")}'`}var bo,rp=y(()=>{hr();bo=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 $("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(uE).join(", "),r=this.whereClauses.length>0?` WHERE ${this.whereClauses.map(i=>`(${i})`).join(" AND ")}`:"",n=`SELECT ${t} FROM ${uE(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 xa(e,t={}){let r=Hd(e);if(pG(r),r.kind==="embedded"){let n=dG(r,t.auth);if(n.token||n.username)throw new $("AUTH_NOT_APPLICABLE","auth is only meaningful for remote connections; embedded modes inherit caller privileges.");let s=lG(r),o=t.binary??eE(),i=await Y_(o,s),a=new ka(i);return await a.call("version",{}),new sp(a,{transport:"embedded"})}}function mE(e){return oG(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:aG(e)}:typeof e=="number"&&!Number.isFinite(e)?Number.isNaN(e)?{$float:"NaN"}:{$float:e>0?"Infinity":"-Infinity"}:typeof e=="string"&&uG(e)?{$uuid:e}:e}function oG(e){if(e!=null&&!(typeof e=="boolean"||typeof e=="number"||typeof e=="string")){if(e instanceof Date){if(Number.isNaN(e.getTime()))throw new $("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 $("UNSUPPORTED_PARAM","array query parameters must contain only numbers")}if(!(typeof e=="object"&&Object.getPrototypeOf(e)===Object.prototype))throw new $("UNSUPPORTED_PARAM",`cannot encode query parameter of type ${typeof e}`)}}}function iG(e){return e.length===0?null:e.length===1&&Array.isArray(e[0])?e[0].map(mE):e.map(mE)}function aG(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 cG(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 uG(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}function Ta(e){if(Array.isArray(e))return e.map(Ta);if(e&&typeof e=="object"){if(Object.keys(e).length===1){if(typeof e.$bytes=="string")return cG(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]=Ta(s);return r}return e}function lG(e){return e.path?["rpc","--stdio","--path",e.path]:["rpc","--stdio"]}function dG(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 pG(e){if(e.kind!=="embedded")throw new $("EMBEDDED_ONLY",nG)}function op(){return new $(pE,`${pE}: nested transactions are not supported on one connection`)}function gE(e,t){if(e&&typeof e=="object")try{e.rollbackError=t}catch{}}function mG(e,t){if(!e||typeof e!="object"||e.rid==null&&e.id==null)throw new $("ENGINE_TOO_OLD",`${t}() requires RedDB engine >= ${fE} with insert id support`);return e.rid==null&&(e.rid=e.id),e.id==null&&(e.id=e.rid),e}function fG(e,t){if(!e||typeof e!="object"||!Array.isArray(e.rids)&&!Array.isArray(e.ids))throw new $("ENGINE_TOO_OLD",`bulkInsert() requires RedDB engine >= ${fE} 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 $("INVALID_RESPONSE",`bulkInsert() expected ${t} rids, got ${e.rids.length}`);return e}var nG,sG,fE,pE,va,np,sp,hE=y(()=>{Q_();tE();hr();qd();Wd();Kd();Xd();Zd();ep();tp();rp();Wd();Kd();Xd();Zd();ep();tp();rp();qd();nG="remote URIs are not supported in @reddb-io/sdk; install @reddb-io/client for grpc/http/red transports",sG="1.0",fE="1.0.9",pE="NESTED_TX_NOT_SUPPORTED";va=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 op()}},np=class{constructor(t){this.db=t,this.active=!1}async begin(){if(this.db.inTransaction)throw op();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 $("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 $("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 $("INVALID_ARGUMENT","nested tx.run() is not supported; issue savepoints via tx.query() instead");await this.begin();try{let r=await t(new va(this.db));return await this.commit(),r}catch(r){if(this.active)try{await this.rollback()}catch(n){gE(r,n)}throw r}}},sp=class{constructor(t,r={}){this.client=t,this.transport=r.transport??null,this.helperSpecVersion=sG,this.cache=new mo(t,this.transport),this.queue=new fo(t),this.queues=this.queue,this.documents=new go(this);let n=new Hn(t);this.kv=Object.assign((s="kv_default")=>new Hn(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 ho(t,s),this.vault=(s="red.vault")=>new yo(t,s),this.inTransaction=!1}query(t,...r){if(typeof t!="string"||t.trim().length===0)return Promise.reject(new $("INVALID_ARGUMENT","query() requires a non-empty SQL string"));let n=iG(r);return n==null?this.client.call("query",{sql:t}).then(Ta):this.client.call("query",{sql:t,params:n}).then(Ta)}execute(t,...r){return this.query(t,...r)}async insert(t,r){let n=await this.client.call("insert",{collection:t,payload:r});return mG(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 fG(n,r.length)}tx(){return new np(this)}async transaction(t){if(this.inTransaction)throw op();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 va(this));return await this.query("COMMIT"),n}catch(n){if(r)try{await this.query("ROLLBACK")}catch(s){gE(n,s)}throw n}finally{this.inTransaction=!1}}exists(t){return dE(this,t)}list(){return lE(this)}from(t){return new bo(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 gG}from"node:crypto";import{existsSync as yE}from"node:fs";import{mkdir as hG,readFile as yG,rename as ip,rm as wo,stat as ap}from"node:fs/promises";import{basename as bG,dirname as wG}from"node:path";async function bE(e){await(await Qr.open({...e,allowResidentOpen:!0})).close()}var Qr,wE=y(()=>{"use strict";hE();pa();Ra();Qr=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=z_(t.uri),n=await V_(r),s=new e(n,{uri:t.uri,ttlDays:ya(t.ttlDays,dt),ephemeralTtlHours:ya(t.ephemeralTtlHours,pt),byteBudget:ya(t.byteBudget,mt),now:t.now??(()=>new Date)});return K_(n)?(await Ea(),await hG(wG(n),{recursive:!0}),s.db=await xa(`file://${n}`),await s.ensureRedDbCollections(),await s.ensureRedDbStore()):s.document=await J_(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=co(n,r),a=gr(i),c=Zt(r.command),u=c==="derivable"?Dd(n,r.command):null,l=c==="re-executable"?$d(n,r.command):null,d=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,p=Gd(s,d,this.opts.ttlDays,this.opts.ephemeralTtlHours),m=Kr(n),f=d==="ephemeral"?jd(n,m,o):null,b=Nd(n,u,l,f);f&&!this.document.blobs[f.key]&&(this.document.blobs[f.key]=f,this.dirty=!0);let _={collection:ye,handle:i,original_bytes:n.length,stored_bytes:b,command:r.command,created_at:o,expires_at:p,loss:r.loss,storage_class:d,content_hash:m,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};return delete this.document.tombstones[zr(i)],this.document.records[a]=_,this.upsertIndex({handle:i,key:a,bytes:b,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(!lo(t))return null;let r=this.tombstone(t);if(r)return r;let n=this.document.records[gr(t)];if(!po(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:gr(n.handle),bytes:Fd(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:uo(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:ye,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:uo(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:Yr(r),oldest:r.reduce((n,s)=>n==null||s.created_at<n?s.created_at:n,null),budget:this.opts.byteBudget,storage_classes:Id(r)}}async recoveryHandles(t=5){return this.db?await this.recoveryHandlesRedDb(t):(this.prune(),await this.flush(),Ld(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=Yr(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=Yr(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[zr(t.handle)]={status:"expired",expired_at:r,command:t.command},this.dirty=!0}tombstone(t){let r=this.document.tombstones[zr(t)];return wa(r)?r:null}async readOriginal(t){if(t.original)return Buffer.from(t.original,"base64");if(t.derivation_recipe)return j_(t.derivation_recipe);if(t.reexecution_recipe)return M_(t.reexecution_recipe);if(t.blob_key){let r=this.db?await this.kvGet(t.blob_key):this.document.blobs[t.blob_key];return ba(r)?F_(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 Un(this.path,this.document),this.dirty=!1),await this.rotateLocalGenerationIfOversized()}async rotateLocalGenerationIfOversized(){let t=await ap(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)}
|
|
122
|
+
`,"utf8");i>this.opts.byteBudget||i>=t||(this.document=o,await Un(this.path,this.document))}kv(){if(!this.db)throw new Error("rsp RedDB store is not open");return this.db.kv(ye)}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===ye);if(!t){await this.db.query(`CREATE KV IF NOT EXISTS ${ye}`);return}if(t.model!=="kv"){if(t.model!=="table")throw new Error(`cannot self-heal elision collection ${ye}: unsupported model ${t.model}`);await this.db.query(`DROP TABLE ${ye}`),await this.db.query(`CREATE KV IF NOT EXISTS ${ye}`)}}async mintRedDb(t,r){let n=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=co(n,r),a=gr(i),c=Zt(r.command),u=c==="derivable"?Dd(n,r.command):null,l=c==="re-executable"?$d(n,r.command):null,d=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,p=Gd(s,d,this.opts.ttlDays,this.opts.ephemeralTtlHours),m=Kr(n),f=d==="ephemeral"?jd(n,m,o):null,b=Nd(n,u,l,f);f&&!ba(await this.kvGet(f.key))&&await this.kv().put(f.key,f);let _={collection:ye,handle:i,original_bytes:n.length,stored_bytes:b,command:r.command,created_at:o,expires_at:p,loss:r.loss,storage_class:d,content_hash:m,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};await this.kv().delete(zr(i)),await this.kv().put(a,_);let w=(await this.readRedDbIndex()).records.filter(k=>k.handle!==i);return w.push({handle:i,key:a,bytes:b,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:w},!0),await this.assertRedDbMintPersisted(i,b),i}async getRedDb(t){if(!lo(t))return null;let r=await this.kvGet(zr(t));if(wa(r))return r;let n=await this.kvGet(gr(t));if(!po(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:gr(n.handle),bytes:Fd(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:uo(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:ye,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:uo(n)}:null}async statsRedDb(){let t=await this.pruneRedDb(await this.readRedDbIndex());return{records:t.records.length,bytes:Yr(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:Id(t.records)}}async recoveryHandlesRedDb(t){let r=await this.pruneRedDb(await this.readRedDbIndex());return Ld(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=U_(r);return await this.memoryRecallRedDb(n.query,n.limit)}if(t==="ingest"){let n=H_(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 q_(t.cwd,t.maxFiles??200,t.ignore??[]),n=0;for(let s of r){let i=(await yG(s,"utf8").catch(()=>"")).trim();if(!i)continue;let a=bG(s),c=gG("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=>W_(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(`
|
|
123
|
+
`),diagnostics:{vector:{status:"unavailable",candidates:0,contributed:0,reason:"resident-basic-recall"}}}}async readRedDbIndex(){let t=await this.kvGet(ga());return Md(t)?t:{version:1,records:[]}}async writeRedDbIndex(t){await this.kv().put(ga(),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=Yr(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=Yr(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 ap(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 wo(o,{force:!0}),await wo(i,{force:!0});let a=await xa(`file://${o}`);try{for(let u of n){await a.query(`CREATE KV IF NOT EXISTS ${$_(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 ap(o).then(u=>u.size,()=>0);if(c===0||c>this.opts.byteBudget||c>=r){await wo(o,{force:!0});return}await this.db.close(),this.db=void 0;try{await ip(this.path,i),await ip(o,this.path),await wo(i,{force:!0})}catch(u){throw!yE(this.path)&&yE(i)&&await ip(i,this.path),await wo(o,{force:!0}),u}finally{this.db=await xa(`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===ye){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:ga(),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:ye,items:r}}async expireRedDbEntry(t,r){await this.kv().delete(t.key),await this.kv().put(zr(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(gr(t));if(!po(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 _E={};Z(_E,{DEFAULT_RSP_BYTE_BUDGET:()=>mt,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>pt,DEFAULT_RSP_TTL_DAYS:()=>dt,RSP_ELISION_COLLECTION:()=>ye,RspElisionStore:()=>Qr,contentHandle:()=>co,ensureReddbBinaryFromWarmCache:()=>Ea,provisionElisionStore:()=>bE,storageClassForCommand:()=>Zt});var Oa=y(()=>{"use strict";pa();Ra();Ra();wE()});async function Ca(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:30,s=r.getTime()-n*24*60*60*1e3,o=await kE(e,s),i=(await _o(e,De)).filter(I=>Jn(I)>=s),a=o.filter(I=>j(I.event_type)!=="show"&&j(I.degradation_reason)===""),c=o.filter(I=>j(I.event_type)==="show"),u=o.filter(I=>j(I.degradation_reason)!==""),l=0,d=0,p=0,m=0,f=!1,b=new Map,_=new Map,h=[],w=0,k=0,x=0;for(let I of a){I.elided===!0&&l++;let M=rt(I.raw_bytes),We=rt(I.emitted_bytes),$t=Math.max(0,M-We),tr=Vn(I,"raw"),C=Vn(I,"emitted"),F=Math.max(0,tr.tokens-C.tokens);f||=(I.estimated===!0||tr.estimated||C.estimated)&&F>0,d+=M,p+=We,m+=F;let Nt=Xr(I).slice(0,10);Nt&&b.set(Nt,(b.get(Nt)??0)+F);let _t=j(I.command)||"unknown",Ce=_.get(_t)??{command:_t,invocations:0,bytes_saved:0,tokens_saved:0};Ce.invocations++,Ce.bytes_saved+=$t,Ce.tokens_saved+=F,_.set(_t,Ce);let Ae=mr(I.wrapper_ms);Ae!=null&&h.push(Ae),w+=rt(I.store_open_count);let Ft=mr(I.store_elapsed_ms);Ft!=null&&(k+=Ft,x++)}let A=new Map,N=new Map,U=[],Q=null;for(let I of u){let M=j(I.degradation_reason)||j(I.reason)||"unknown",We=j(I.wrapper_family)||nt(j(I.command));A.set(M,(A.get(M)??0)+1),N.set(We,(N.get(We)??0)+1);let $t=Xr(I);U.push({timestamp:$t,family:We,command:j(I.command)||"unknown",reason:M,exit_code:mr(I.wrapper_exit_code),stderr_head:j(I.stderr_head)||null}),(!Q||$t>Q.timestamp)&&(Q={timestamp:$t,reason:M,command:j(I.command)||"unknown"})}let X=a.length+u.length,de=c.filter(I=>I.hit===!0).length,V=Mu(m,f),wt=_G(i);return{window_days:n,empty:o.length===0,savings:{invocations:a.length,elided:l,raw_bytes:d,emitted_bytes:p,bytes_saved:Math.max(0,d-p),tokens_saved:m,tokens_saved_estimated:V.tokens_saved_estimated,token_estimate_range_pct:V.token_estimate_range_pct,tokens_saved_low:V.tokens_saved_low,tokens_saved_high:V.tokens_saved_high,dollars_saved_estimate_usd:V.dollars_saved_estimate_usd,dollars_saved_low_usd:V.dollars_saved_low_usd,dollars_saved_high_usd:V.dollars_saved_high_usd,pricing_model_family:V.pricing_model_family,pricing_input_usd_per_million_tokens:V.pricing_input_usd_per_million_tokens,pricing_note:V.pricing_note,daily_tokens_saved:[...b.entries()].sort(([I],[M])=>I.localeCompare(M)).map(([I,M])=>({date:I,tokens_saved:M})),top_commands:[..._.values()].sort((I,M)=>M.bytes_saved-I.bytes_saved||M.tokens_saved-I.tokens_saved||I.command.localeCompare(M.command))},health:{degradations:u.length,degradation_rate:X===0?0:u.length/X,show_total:c.length,show_hits:de,show_misses:Math.max(0,c.length-de),show_hit_rate:c.length===0?0:ke(de/c.length),by_reason:[...A.entries()].sort((I,M)=>M[1]-I[1]||I[0].localeCompare(M[0])).map(([I,M])=>({reason:I,count:M})),by_family:[...N.entries()].sort((I,M)=>M[1]-I[1]||I[0].localeCompare(M[0])).map(([I,M])=>({family:I,count:M})),recent_failures:U.sort((I,M)=>M.timestamp.localeCompare(I.timestamp)).slice(0,20),most_recent:Q},latency:{wrapper_ms_p50:Wn(h,.5),wrapper_ms_p95:Wn(h,.95),store_open_count_sum:w,store_elapsed_ms_sum:ke(k),store_elapsed_ms_avg:x===0?null:ke(k/x)},decisions:wt}}function _G(e){let t=0,r=0,n=0,s=0,o=new Map,i=new Map;for(let a of e){let c=j(a.decision);if(c==="contributed"?t++:c==="failed-open"?n++:r++,a.quota_free===!0&&(s+=Math.max(1,rt(a.saved_units))),c!=="contributed"){let d=j(a.reason)||"unknown";o.set(d,(o.get(d)??0)+1)}let u=j(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:ke(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:ke(c.contributed/u)}})}}async function cp(e,t,r=new Date){let s=(await _o(e,Ge)).filter(o=>Jn(o)<=r.getTime()||Xr(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=Xr(i);return a&&(o==null||a<o)?a:o},null),budget:t,storage_classes:CG(s)}}async function up(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 kE(e,i),c=a.filter(C=>j(C.event_type)!=="show"&&j(C.event_type)!=="control_holdout"&&C.control_holdout!==!0&&j(C.degradation_reason)===""),u=a.filter(C=>j(C.event_type)==="control_holdout"||C.control_holdout===!0),l=a.filter(C=>j(C.event_type)==="show"),d=a.filter(C=>j(C.degradation_reason)!==""),p=[...c,...d].map(Jn).filter(C=>Number.isFinite(C)&&C>0),m=p.length===0?null:Math.min(...p),f=m==null?0:Math.max(1,Math.min(n,Math.ceil((r.getTime()-m)/FG()))),b=[],_=new Map,h=new Map,w=new Map,k=new Map,x=new Map,A=new Map,N=0,U=!1,Q=0,X=null,de=0,V=0;for(let C of c){let F=Xr(C),Nt=F.slice(0,10),_t=F.slice(0,16),Ce=nt(j(C.command)),Ae=Math.max(0,Vn(C,"raw").tokens-Vn(C,"emitted").tokens);N+=Ae,U||=C.estimated===!0&&Ae>0;let Ft=Math.max(0,rt(C.raw_bytes)-rt(C.emitted_bytes)),cn=mr(C.wrapper_ms);if(cn!=null){b.push(cn);let ss=_.get(Ce)??[];ss.push(cn),_.set(Ce,ss)}Nt&&h.set(Nt,(h.get(Nt)??0)+1),_t&&w.set(_t,(w.get(_t)??0)+1);let rr=LG(F);rr&&k.set(rr,(k.get(rr)??0)+1);let ns=$G(F);ns&&x.set(ns,(x.get(ns)??0)+Ae);let vr=A.get(Ce)??{command_family:Ce,invocations:0,tokens_saved:0,bytes_saved:0};vr.invocations++,vr.tokens_saved+=Ae,vr.bytes_saved+=Ft,A.set(Ce,vr),C.elided===!0&&Q++,(C.store_open_count!=null||C.store_elapsed_ms!=null)&&(de++,rt(C.store_open_count)>0&&V++),Ae>0&&(!X||Ae>X.tokens_saved||Ae===X.tokens_saved&&Ft>X.bytes_saved)&&(X={timestamp:F,command_family:Ce,tokens_saved:Ae,bytes_saved:Ft})}let wt=d.map(C=>({timestamp:Xr(C),command_family:nt(j(C.command)),reason:j(C.degradation_reason)||j(C.reason)||"unknown"})).sort((C,F)=>C.timestamp.localeCompare(F.timestamp)),I=new Map;for(let C of wt)I.set(C.reason,(I.get(C.reason)??0)+1);let M=SG(wt),We=kG(l),$t=vG([...A.values()],We,M),tr=[...w.entries()].sort((C,F)=>F[1]-C[1]||C[0].localeCompare(F[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:RE(b),by_command_family:[..._.entries()].sort((C,F)=>F[1].length-C[1].length||C[0].localeCompare(F[0])).map(([C,F])=>({command_family:C,count:F.length,...RE(F)}))},throughput:{requests_per_day:[...h.entries()].sort(([C],[F])=>C.localeCompare(F)).map(([C,F])=>({date:C,requests:F})),active_minute_avg:w.size===0?null:ke([...w.values()].reduce((C,F)=>C+F,0)/w.size),peak_minute:tr?{minute:tr[0],requests:tr[1]}:null,hour_weekday_heatmap:GG(k)},savings:{tokens:Mu(N,U),measured_control_holdout:EG(c,u),weekly_tokens_saved:NG(x),elision_rate:c.length===0?0:ke(Q/c.length),top_commands_by_tokens_saved:[...A.values()].sort((C,F)=>F.tokens_saved-C.tokens_saved||F.bytes_saved-C.bytes_saved||C.command_family.localeCompare(F.command_family)).slice(0,10),top_commands_by_invocation_count:[...A.values()].sort((C,F)=>F.invocations-C.invocations||F.tokens_saved-C.tokens_saved||C.command_family.localeCompare(F.command_family)).slice(0,10),single_biggest_elision:X},health:{degradation_timeline:wt,degradations_by_reason:[...I.entries()].sort((C,F)=>F[1]-C[1]||C[0].localeCompare(F[0])).map(([C,F])=>({reason:C,count:F})),cold_boots:de===0?null:V,warm_hits:de===0?null:Math.max(0,de-V)},mining:{recovery_usage_by_family:We,degradation_clusters:M,threshold_tuning_suggestions:$t}}}async function kE(e,t){let r=(await _o(e,Ge)).filter(i=>Jn(i)>=t),n=r.some(i=>j(i.event_type)!=="show"||j(i.degradation_reason)!==""),s=(await _o(e,tt)).filter(i=>Jn(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:j(i.event_type)||"invocation"})),o=(await _o(e,gt)).filter(i=>Jn(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:"invocation",degradation_reason:j(i.reason)||"unknown"}));return[...r,...s,...o]}function Vn(e,t){let r=mr(e[t==="raw"?"tokens_raw":"tokens_emitted"]);if(r!=null)return{tokens:r,estimated:!1};let n=rt(e[t==="raw"?"raw_bytes":"emitted_bytes"]);return{tokens:Math.ceil(n/4),estimated:n>0}}function EG(e,t){let r=OG(t.map(a=>mr(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(EE).filter(a=>a!=null),s=t.map(EE).filter(a=>a!=null),o=n.length>0?n:s,i=o.length===0?null:ke(xG(o));return{enabled:!0,holdout_share:ke(r),holdout_invocations:t.length,compressed_invocations:e.length,savings_rate:i,confidence_interval_95:i==null?null:RG(o,i),note:"measured from opt-in uncompressed control holdout; report proposes, it does not tune automatically"}}function EE(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 RG(e,t){if(e.length<=1)return{low:ke(Math.max(0,t)),high:ke(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:ke(Math.max(0,t-n)),high:ke(Math.min(1,t+n))}}function kG(e){let t=new Map;for(let r of e){let n=nt(j(r.recovered_command)||j(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:ke(r.show_hits/r.show_total)}))}function SG(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:TG(r)}))}function TG(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 vG(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 xG(e){return e.reduce((t,r)=>t+r,0)/e.length}function OG(e){let t=e.filter(r=>r!=null);return t.length===0?null:Math.max(...t)}function CG(e){let t=PG();for(let r of e){if(j(r.event_type)==="show"||j(r.degradation_reason)!==""||r.elided!==!0)continue;let n=AG(r.storage_class)??Zt(j(r.command));t[n].records+=1;let s=rt(r.raw_bytes);t[n].bytes+=s,t[n].raw_bytes+=s}return t}function AG(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"?e:null}function PG(){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 _o(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=>IG(n.value)).filter(n=>Fn(n))}function IG(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function Jn(e){let t=Date.parse(Xr(e));return Number.isFinite(t)?t:0}function Xr(e){return j(e.created_at)||j(e.ts)||""}function j(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 ke(r[n])}function RE(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 ke(e){return Math.round(e*100)/100}function LG(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${DG(t.getUTCDay())}:${t.getUTCHours()}`:null}function GG(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 DG(e){return["sun","mon","tue","wed","thu","fri","sat"][e]??"unknown"}function $G(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 NG(e){let t=null;return[...e.entries()].sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>{let s=t==null||t===0?null:ke((n-t)/t*100);return t=n,{week_start:r,tokens_saved:n,wow_delta_pct:s}})}function FG(){return 24*60*60*1e3}var SE=y(()=>{"use strict";so();Oa();Bu();ca();Ed()});var Eo={};Z(Eo,{RSP_ACCOUNTING_EVENTS_COLLECTION:()=>Ge,RSP_DECISIONS_COLLECTION:()=>De,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:()=>gt,RSP_TELEMETRY_INDEX_COLLECTION:()=>Zs,RSP_TELEMETRY_INVOCATIONS_COLLECTION:()=>tt,RSP_TELEMETRY_LEGACY_SPOOL_FILE:()=>wd,RSP_TELEMETRY_SPOOL_CORRECTIONS_FILE:()=>_d,RSP_TELEMETRY_SPOOL_FILE:()=>bd,appendTelemetryEvent:()=>Jr,appendTelemetryEventSync:()=>fr,drainTelemetrySpool:()=>xd,parseTelemetryEvent:()=>Mn,readAccountingLaneStats:()=>cp,readTelemetryGainsReport:()=>up,readTelemetryStats:()=>Ca,takeTelemetrySpool:()=>BI,telemetryLegacySpoolPath:()=>Td,telemetrySpoolCorrectionsPath:()=>vd,telemetrySpoolPath:()=>Xt});var At=y(()=>{"use strict";ca();G_();SE()});import{existsSync as jG}from"node:fs";import{join as MG}from"node:path";function BG(){for(let e of(process.env.PATH??"").split(":"))if(e&&jG(MG(e,"rsp")))return!0;return!1}function Ro(){return BG()?["rsp"]:[process.execPath,process.argv[1]]}var lp=y(()=>{"use strict"});var Aa={};Z(Aa,{parseProxyCommandLine:()=>xE,rewriteProxyCommandLine:()=>vE,runProxy:()=>qG});import{spawn as UG}from"node:child_process";function HG(e){return/[^\w@%+=:,./-]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}async function qG(e,t){let r="",n="",s=[],o=process.hrtime.bigint();try{if(r=xE(e),process.env.RSP_PROXY_FAIL_INTERNAL==="1")throw new Error("forced proxy failure");let c=vE(r,t.level??"lossless");n=c.commandLine,s=c.matches}catch(c){if(r)return await WG(t.telemetryRoot,r,c),await TE(r);throw c}for(let c of s)await JG(t.telemetryRoot,c);let i=await TE(n||r),a=Number(process.hrtime.bigint()-o)/1e6;return await Jr(t.telemetryRoot,{collection:tt,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 vE(e,t="lossless",r=Ro()){let n=XG(e),s=[];return{commandLine:n.map((i,a)=>{if(i.kind==="operator"||QG(n,a)==="|")return i.text;let c=VG(i.text,t,r);return c?(s.push(c.match),c.text):i.text}).join(""),matches:s}}function xE(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 WG(e,t,r){await Jr(e,{collection:De,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t,command_family:nt(t),decision:"failed-open",reason:"proxy-internal-error",error:r instanceof Error?r.name:typeof r})}async function JG(e,t){await Jr(e,{collection:De,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 TE(e){let t=UG(e,{shell:!0,stdio:"inherit"}),r=Ue();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)}
|
|
124
|
+
`),n(127)}),t.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}function VG(e,t,r){let n=e.match(/^\s*/)?.[0]??"",s=e.match(/\s*$/)?.[0]??"",o=e.trim();if(!o)return null;let i=eD(o);if(!i)return null;let a=YG(i);if(a>=i.length)return null;let c=i.slice(a),u=c.map(f=>f.value);if(Vr(u))return{text:e,match:{command:c.map(f=>f.raw).join(" "),commandFamily:nt(u.join(" ")),decision:"passed",reason:"lossless-gh-json-jq"}};let l=KG(c);if(!l)return null;let d=i.slice(0,a).map(f=>f.raw),p=t==="lossless"?[]:[`--${t}`],m=[...d,...r.map(HG),...p,...l.wrapperWords].join(" ");return{text:`${n}${m}${s}`,match:{command:c.map(f=>f.raw).join(" "),commandFamily:nt(u.join(" ")),decision:"contributed",reason:"proxy-segment",capabilityId:l.capabilityId}}}function KG(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}:zG(t,r)}function zG(e,t){return e[0]==="cat"&&e.length===2&&dp(e[1])?{capabilityId:"cat:file",wrapperWords:["cat",t[1]]}:(e[0]==="head"||e[0]==="tail")&&e.length===2&&dp(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])&&dp(e[3])?{capabilityId:`cat:${e[0]}`,wrapperWords:["cat",`--${e[0]}`,e[2],t[3]]}:null}function dp(e){return!!e&&!e.startsWith("-")}function YG(e){let t=0;for(;t<e.length&&Bn(e[t].value);)t+=1;if(e[t]?.value!=="env")return t;for(t+=1;t<e.length&&Bn(e[t].value);)t+=1;return t}function QG(e,t){for(let r=t+1;r<e.length;r+=1)if(e[r].kind==="operator")return e[r].text}function XG(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=ZG(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 ZG(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 eD(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 Pa=y(()=>{"use strict";ge();so();lp();At()});function AE(e,t={}){let r=tD(e);if(r.length<12)return[];let n=new Map,s=new Map;for(let p of r){s.set(p.signature,(s.get(p.signature)??0)+1);for(let m of new Set(p.tokens))n.set(m,(n.get(m)??0)+1)}let o=r.map(p=>p.length),i=r.map(p=>p.tokens.length),a=r.map(p=>p.numbers.length===0?0:Math.max(...p.numbers.map(Math.abs))),c=pp(o),u=pp(i),l=pp(a),d=t.excludedByteRanges??[];return r.filter(p=>p.text.trim().length>0).filter(p=>!d.some(m=>aD(p.start,p.end,m.start,m.end))).map(p=>({line:p,score:mp(p.length,c)+mp(p.tokens.length,u)+mp(p.numbers.length===0?0:Math.max(...p.numbers.map(Math.abs)),l)+oD(p.tokens,n,r.length)+iD(p.signature,s,r.length)})).filter(p=>p.score>=(t.minScore??7)).sort((p,m)=>m.score-p.score||p.line.index-m.line.index).slice(0,t.maxOutliers??3).sort((p,m)=>p.line.index-m.line.index).map(p=>({lineNumber:p.line.index+1,score:Math.round(p.score*100)/100,text:p.line.text}))}function tD(e){let t=[],r=0,n=0;for(let s of e.matchAll(/\n/g)){let o=s.index??e.length;t.push(OE(n++,r,o,e.slice(r,o).replace(/\r$/,""))),r=o+1}return(r<e.length||e.length===0)&&t.push(OE(n,r,e.length,e.slice(r).replace(/\r$/,""))),t}function OE(e,t,r,n){return{index:e,start:t,end:r,text:n,signature:rD(n),tokens:nD(n),numbers:sD(n),length:n.length}}function rD(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 nD(e){return e.toLowerCase().match(/[a-z0-9_.:/-]{3,}/g)??[]}function sD(e){return[...e.matchAll(/[-+]?\d+(?:\.\d+)?/g)].map(t=>Number(t[0])).filter(t=>Number.isFinite(t))}function oD(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 iD(e,t,r){return Math.log2(r/Math.max(1,t.get(e)??r))}function pp(e){let t=CE(e),r=CE(e.map(n=>Math.abs(n-t)))||1;return{median:t,mad:r}}function mp(e,t){return Math.abs(e-t.median)/t.mad}function CE(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 aD(e,t,r,n){return e<n&&r<t}var PE=y(()=>{"use strict"});var fp={};Z(fp,{DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>Yt,GIT_LOG_MACHINE_FIELDS:()=>LE,StructuredUsageError:()=>Ia,cleanStatusPayload:()=>NE,recoveryInstruction:()=>ht,renderGitContract:()=>GE,runGitWrapper:()=>uD});import{spawn as cD}from"node:child_process";async function uD(e,t){let r=DE(e),n=$E(r.argv),s=await mD(n,r.argv.slice(1));return GE(e,s,t)}async function GE(e,t,r){let n=DE(e);if((t.status??0)!==0||t.signal){let d=Ie(e.join(" "),t.stdout,t.stderr);return{stdout:W(d),stderr:Buffer.from(t.stderr),status:d.exitCode??1,signal:t.signal}}let s=$E(n.argv),o;try{o=fD(s,n.argv,t.stdout,n.query)}catch(d){if(d instanceof La)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=D(o);if(lD(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=ID(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 ${ht(u)}
|
|
125
|
+
`;return{stdout:Buffer.from(`${D(a.payload)}
|
|
126
|
+
${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 ht(e){return e.startsWith("el:")?`rsp show ${e}`:e}function DE(e){let{argv:t,query:r,full:n}=Eg(e),s=t.slice(2).find(o=>o.startsWith("--rsp-"));if(s)throw new Ia(e.join(" "),s,["--full","--brief","--terse","--query"]);return{argv:t,query:r,full:n}}function lD(e,t,r,n){if(n.level==="terse")return!1;if(r||n.level==="full"||!dD(e)||n.level!=="lossless")return!0;let s=PD(n.heavyGitByteThreshold,Yt);return Buffer.byteLength(t)<=s}function dD(e){return e==="diff"||e==="log"||e==="blame"||e==="show"}function $E(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 pD(e,t){let r=t.slice(1);switch(e){case"status":return["status","--porcelain=v2","-z","-b",...r];case"log":return["log",`--format=%x1e${LE.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 mD(e,t){let r=cD("git",pD(e,t),{stdio:["ignore","pipe","pipe"]}),n=Ue();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 fD(e,t,r,n){switch(e){case"status":return gD(t,r,n);case"log":return kD(t,r,n);case"diff":return SD(t,r,n);case"commit":return br(TD(t,r),n,["rsp git status --query <path-or-state>"]);case"push":return br(vD(t,r),n,["rsp gh pr list --query <branch>"]);case"blame":return xD(t,r,n);case"branch":return OD(t,r,n);case"show":return CD(t,r,n)}}function gD(e,t,r){let n="",s=[],o=!1,i=!1;for(let u of hD(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=wD(u),o=!0;continue}let l=yD(u);if(l){o=!0,s.push(l);continue}let d=bD(u);d&&(o=!0,s.push(d))}if(s.length===0){if(!i||o)return NE(e.join(" "),n);throw new La("git-status-unparseable")}let a=Te(s,r),c=FE(a,"state");return br({command:e.join(" "),branch:n,rows:a,summary:RD(a.length,s.length,c,r)},r,["rsp git diff --query <path>","rsp git log --query <subject>"])}function hD(e){return e.includes("\0")?e.split("\0"):e.split(/\r?\n/)}function yD(e){if(e.startsWith("1 ")){let t=e.split(" "),r=t[1]??"..",n=t.slice(8).join(" ");return ko(n,r)}if(e.startsWith("2 ")){let t=e.split(" "),r=t[1]??"..";return ko(t.slice(9).join(" "),r)}if(e.startsWith("u ")){let t=e.split(" "),r=t[1]??"..";return ko(t.slice(10).join(" "),r)}return e.startsWith("? ")?ko(e.slice(2),"??"):null}function bD(e){if(e.length<4||e[2]!==" ")return null;let t=e.slice(0,2);return/^[ MADRCU?!][ MADRCU?!?]$/.test(t)?ko(_D(e.slice(3),t),t):null}function ko(e,t){let r=IE(t[0]??"."),n=IE(t[1]??".");return{path:ED(e),index:r,worktree:n,state:AD(`${r}${n}`)}}function IE(e){return e===" "?".":e}function wD(e){let t=e.slice(3).split("...")[0]?.trim()??"";return t==="HEAD (no branch)"?"HEAD":t}function _D(e,t){if(!t.includes("R")&&!t.includes("C"))return e;let r=e.lastIndexOf(" -> ");return r>=0?e.slice(r+4):e}function ED(e){let t=e.trim();if(!t.startsWith('"')||!t.endsWith('"'))return t;try{return JSON.parse(t)}catch{return t.slice(1,-1)}}function RD(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 NE(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 kD(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=Te(n,r);return br({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 SD(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=Te(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 br({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 TD(e,t){let r=t.split(`
|
|
127
|
+
`)[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 vD(e,t){let r=t.split(`
|
|
128
|
+
`).filter(Boolean),n=r.find(c=>c.startsWith("To "))?.slice(3)??"",s=r.filter(c=>c.includes(" ")).map(c=>{let[u,l,d=""]=c.split(" "),[p,m]=(l??"").split(":");return{flag:u??"",from:p??"",to:m??"",summary:d}}),o=s.find(c=>c.flag!=="=")??s[0],i=o?.to.startsWith("refs/heads/")?o.to.slice(11):o?.to??"",a=o?.summary.includes("..")?1:0;return s.length>0&&s.every(c=>c.flag==="=")?{command:e.join(" "),category:"no-op",exit_code:0,noop:!0,remote:n,refs:s,summary:`push already satisfied for ${i} -> ${n}`,help:["rsp gh pr list --query <branch>"]}:{command:e.join(" "),remote:n,refs:s,summary:`pushed ${i} -> ${n} +${a} commits`}}function xD(e,t,r){let n=t.split(`
|
|
129
|
+
`),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=Te(s,r),a=FE(i,"author");return br({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 OD(e,t,r){let n=t.split(`
|
|
130
|
+
`).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=Te(n,r),o=s.find(i=>i.current)?.name??"";return br({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 CD(e,t,r){let n=t.indexOf(""),s=n>=0?t.indexOf("",n+1):-1,o=n>=0&&s>=0?t.slice(n+1,s):"",i=s>=0?t.slice(s+1):t,[a,c,u,l,d,p=""]=o.split(""),m=[];for(let w of i.split(`
|
|
131
|
+
`)){let k=/^\s*(.+?)\s+\|\s+(\d+)\s+([+\-]+|Bin.*)$/.exec(w);if(!k)continue;let x=k[3]??"";m.push({path:(k[1]??"").trim(),changed:Number(k[2]??0),added:[...x].filter(A=>A==="+").length,deleted:[...x].filter(A=>A==="-").length,binary:x.startsWith("Bin")})}let f=Te(m,r),b=0,_=0,h=0;for(let w of f)b+=typeof w.changed=="number"?w.changed:0,_+=typeof w.added=="number"?w.added:0,h+=typeof w.deleted=="number"?w.deleted:0;return br({command:e.join(" "),commit:a??"",short:c??"",author:u??"",date:l??"",subject:d??"",body_lines:p.trim()?p.trim().split(`
|
|
132
|
+
`).length:0,files:f,summary:`${r?`${f.length}/${m.length}`:f.length} files, ${b} changed, +${_} -${h}`},r,["rsp git blame --query <author-or-path>","rsp git diff --query <path>"])}function br(e,t,r){return t?Ht(e,r):e}function AD(e){return e==="??"?"untracked":e.includes("A")?"added":e.includes("D")?"deleted":e.includes("R")?"renamed":e.includes("M")?"modified":"changed"}function FE(e,t){let r={};for(let n of e){let s=String(n[t]??"");r[s]=(r[s]??0)+1}return r}function PD(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function ID(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 LE,Ia,La,Zr=y(()=>{"use strict";ge();q();He();Es();ut();He();LE=["%h","%an","%as","%s"];Ia=class extends Error{constructor(r,n,s){super(`unknown flag: ${n}`);this.command=r;this.flag=n;this.validFlags=s}render(){return eg(this.command,this.flag,this.validFlags,`${this.command} --help`)}},La=class extends Error{constructor(r){super("git status output was not recognized; passing raw stdout through");this.reason=r}}});var bp={};Z(bp,{NORMALIZATION_ALLOWLIST:()=>WE,NORMALIZE_ANSI:()=>Da,NORMALIZE_BLANK_LINES:()=>Fa,NORMALIZE_CR_PROGRESS:()=>$a,NORMALIZE_JSON_TOON:()=>qE,NORMALIZE_TRAILING_WHITESPACE:()=>Na,crushJsonArrayItems:()=>So,formatCodexNormalizeDecision:()=>YE,formatNormalizeDecision:()=>zE,hookDecisionFromClaudePostExecJson:()=>JE,hookDecisionFromCodexPostExecJson:()=>VE,normalizeOutput:()=>ja,renderGenericJsonLane:()=>hp,runClaudePostExecHook:()=>DD,runCodexPostExecHook:()=>$D,transcodeJsonToToon:()=>HE});import{readFileSync as Ga}from"node:fs";function HE(e,t){let r=t?.encode??D,n=t?.decode??z,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 gp(o,a)?i.trimEnd():e}async function hp(e,t={}){let r=MD(e);if(!r)return{output:e,detected:!1,lossy:!1};let n=r.value;if(!Array.isArray(n))return{output:D(n).trimEnd(),detected:!0,lossy:!1};let s=n.length,o=UE(t.minTokens,LD),i=UE(t.maxItems,GD);if(!(s>i&&WD(e)>=o))return{output:D(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s};let c;try{c=(t.crusher??So)(n,i)}catch(b){return{output:D(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s,degradation:{reason:"json-array-crusher-failed",family:"json",stderrHead:JD(b)}}}let u=c.items,l={items:u},d=`items: ${c.kept} kept, ${c.dropped} dropped (shape outliers: ${c.shapeOutliers}, value outliers: ${c.valueOutliers})`,p;t.level&&t.level!=="lossless"&&(p=await t.store?.mint(Buffer.from(e),{command:t.command??"rsp json",loss:{level:t.level,bytes_elided:Buffer.byteLength(e)}}));let m=p?`original: rsp show ${p}`:`original: unavailable - re-run: ${t.command??"command"}`,f=D(l).trimEnd();return{output:[d,m,f].filter(Boolean).join(`
|
|
133
|
+
`),detected:!0,lossy:!0,totalItems:s,keptItems:u.length,handle:p}}function So(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=BD(e),s=new Set;n&&e.forEach((a,c)=>{yp(a)!==n&&s.add(c)});let o=UD(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 ja(e){let t=e;for(let r of WE)t=r.apply(t);return t}async function JE(e,t){return await KE(e,t)}async function VE(e,t){return await KE(e,t)}async function KE(e,t){let r=jD(e),n=VD(r,["cwd"])||t.cwd;if(!await(t.isEnabled??FD)(n))return{kind:"passthrough",reason:"disabled"};let o=KD(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??ja)(i);return c===i?{kind:"passthrough",reason:"no-change"}:{kind:"normalized",output:c}}function zE(e){return e.kind==="normalized"?{stdout:JSON.stringify({tool_response:{output:e.output}}),status:0}:{stdout:"",status:0}}function YE(e){return{stdout:"",status:0}}async function DD(e){let t=e?Ga(e,"utf8"):Ga(0,"utf8"),r=await JE(t,{cwd:process.cwd()}),n=zE(r);return n.stdout&&process.stdout.write(n.stdout),n.status}async function $D(e){let t=e?Ga(e,"utf8"):Ga(0,"utf8"),r=await VE(t,{cwd:process.cwd()}),n=YE(r);return n.stdout&&process.stdout.write(n.stdout),n.status}function ND(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&&jE(e.charCodeAt(r));)r++;r<e.length&&r++;continue}r+=s>=32?2:1;continue}if(n===155){for(r++;r<e.length&&jE(e.charCodeAt(r));)r++;r<e.length&&r++;continue}t+=e[r++]}return t}function jE(e){return e>=32&&e<=63}function FD(e){return xe(e,process.env).enabled}function jD(e){try{let t=JSON.parse(e);return Kn(t)?t:{}}catch{return{}}}function MD(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return Kn(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 BD(e){let t=new Map;for(let s of e){let o=yp(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 yp(e){return Array.isArray(e)?"array":Kn(e)?Object.keys(e).sort().map(t=>`${t}:${ME(e[t])}`).join("|"):ME(e)}function UD(e,t){let r=new Set,n=new Map;e.forEach((s,o)=>{if(!(t&&yp(s)!==t))for(let[i,a]of QE(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 HD(s))r.add(o);for(let o of qD(s))r.add(o)}return r}function HD(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=BE(r),s=r.map(a=>Math.abs(a-n)).sort((a,c)=>a-c),o=BE(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 qD(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 QE(e,t=""){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"?[[t||"$",e]]:Array.isArray(e)?[]:Kn(e)?Object.entries(e).flatMap(([r,n])=>QE(n,t?`${t}.${r}`:r)):[]}function ME(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function BE(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 WD(e){return Math.ceil(e.length/4)}function UE(e,t){return e==null?t:Number.isFinite(e)&&e>0?Math.floor(e):t}function JD(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 VD(e,t){let r=e;for(let n of t){if(!Kn(r))return"";r=r[n]}return typeof r=="string"?r:""}function KD(e,t){let r=e[t];return Kn(r)?r:null}function Kn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function gp(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)=>gp(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)&&gp(r[i],n[i]))}var Da,$a,Na,Fa,qE,LD,GD,WE,To=y(()=>{"use strict";q();He();Da={id:"ansi",apply:ND},$a={id:"cr-progress",apply:e=>e.split(`
|
|
134
134
|
`).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(`
|
|
135
|
-
`)},
|
|
135
|
+
`)},Na={id:"trailing-whitespace",apply:e=>e.split(`
|
|
136
136
|
`).map(t=>t.replace(/[ \t]+$/,"")).join(`
|
|
137
|
-
`)}
|
|
137
|
+
`)},Fa={id:"blank-lines",apply:e=>e.replace(/\n{3,}/g,`
|
|
138
138
|
|
|
139
|
-
`)};
|
|
140
|
-
`}function
|
|
141
|
-
`,status:0}}async function
|
|
139
|
+
`)};qE={id:"json-to-toon",apply:e=>HE(e)},LD=200,GD=15;WE=[Da,$a,Na,Fa,qE]});var Oo={};Z(Oo,{parseExecCommandLine:()=>nR,renderExecContract:()=>rR,runExecWrapper:()=>ZD});import{isUtf8 as zD}from"node:buffer";import{spawn as YD}from"node:child_process";async function ZD(e,t){let r=nR(e),n=await e$(r);return await rR(r,n,t)}async function rR(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=Ie(e,t.stdout,t.stderr);return{stdout:W(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=t$(n),i=o.kind==="text"?Buffer.from(o.text):n,a=E$(r.heavyByteThreshold,QD);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"?n$(o.text,n.length,l,r.level,e,r.anomalyScorer,r.jsonArrayCrusher):s$(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 nR(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 e$(e){let t=YD(e,{shell:!0,stdio:["inherit","pipe","pipe"]}),r=Ue();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 t$(e){return zD(e)?{kind:"text",text:r$(e.toString("utf8"))}:{kind:"bytes"}}function r$(e){let t=e;for(let r of[Da,$a,Na,Fa])t=r.apply(t);return t}function n$(e,t,r,n,s,o=f$,i=So){let c=Math.max(1,Math.floor((n==="terse"?tR:XD)/2)),u=Buffer.from(e),l=Math.max(0,u.length-c),d=m$(e,c,l,o),p=o$(e),m=i$(p,e,u,c,l,d.kind==="ok"?d.lines:[],i),f=sR(s,p,t,_$(u),r,m.summary),b=d.kind==="failed"?{reason:"exec-anomaly-scorer-failed",family:"exec",stderrHead:lR(d.error)}:m.degradation;return{text:uR(f),degradation:b}}function s$(e,t,r,n){let s=Math.max(1,Math.floor(tR/2)),o={head_hex:e.subarray(0,s).toString("hex"),tail_hex:e.subarray(Math.max(0,e.length-s)).toString("hex")};return{text:uR(sR(n,"bytes",t,0,r,o))}}function sR(e,t,r,n,s,o){return{family:"exec",command:e,content:t,bytes:r,lines:n,summary:o,recovery:{original:ht(s)}}}function o$(e){let t=e.trim();return t?iR(t)?"json":aR(e)?"jsonl":g$(e)?"unified-diff":cR(e)?"tabular":h$(e)?"log-like":y$(e)?"prose":"untyped":"untyped"}function i$(e,t,r,n,s,o,i=So){switch(e){case"json":return a$(t,i);case"jsonl":return{summary:c$(t)};case"unified-diff":return{summary:u$(t)};case"tabular":return{summary:l$(t)};case"log-like":return{summary:d$(t,o)};case"prose":return{summary:p$(t)};case"bytes":return{summary:{}};case"untyped":return{summary:oR(r,n,s,o)}}}function a$(e,t){let r=iR(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(wr),item_keys:_p(r)}}}catch(n){return{summary:ZE(r),degradation:{reason:"exec-json-array-crusher-failed",family:"exec",stderrHead:lR(n)}}}return{summary:ZE(r)}}if(xo(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,wr(o)]))}}}return{summary:{root_type:typeof r,value:wr(r)}}}function ZE(e){return{root_type:"array",items:e.length,sample:e.slice(0,5).map(wr),item_keys:_p(e)}}function c$(e){let t=aR(e)??[],r=b$(t,"level");return{records:t.length,keys:_p(t),levels:r,first:wr(t[0]),last:wr(t.at(-1))}}function u$(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 l$(e){let t=cR(e);return t?{columns:t.columns,rows:t.rows.length,sample:t.rows.slice(0,5)}:oR(Buffer.from(e),512,Math.max(0,Buffer.byteLength(e)-512),[])}function d$(e,t){let r=vo(e);return{entries:r.length,levels:w$(r),first:en(r[0]??""),last:en(r.at(-1)??""),outliers:t.map(n=>({line:n.lineNumber,score:Number(n.score.toFixed(2)),text:en(n.text)}))}}function p$(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:en(t[0]??""),closing:en(t.at(-1)??"")}}function oR(e,t,r,n){let s=eR(e.subarray(0,t)),o=eR(e.subarray(r));return{head:s,tail:o,outliers:n.map(i=>({line:i.lineNumber,score:Number(i.score.toFixed(2)),text:en(i.text)}))}}function m$(e,t,r,n){try{return{kind:"ok",lines:n(e,{headBytes:t,tailStart:r})}}catch(s){return{kind:"failed",error:s}}}function f$(e,t){return AE(e,{excludedByteRanges:[{start:0,end:t.headBytes},{start:t.tailStart,end:Buffer.byteLength(e,"utf8")}]})}function iR(e){let t=e.trim();if(!t||!/^[\[{]/.test(t))return null;try{let r=JSON.parse(t);return xo(r)||Array.isArray(r)?r:null}catch{return null}}function aR(e){let t=vo(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 g$(e){let t=vo(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 cR(e){let t=vo(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 h$(e){let t=vo(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 y$(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 vo(e){return e.split(/\r?\n/).filter(t=>t.trim()!=="")}function _p(e){let t=new Map;for(let r of e)if(xo(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 b$(e,t){let r=new Map;for(let n of e){if(!xo(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 w$(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 wr(e){return typeof e=="string"?en(e):typeof e=="number"||typeof e=="boolean"||e===null?e:Array.isArray(e)?e.slice(0,5).map(wr):xo(e)?Object.fromEntries(Object.entries(e).slice(0,8).map(([t,r])=>[t,wr(r)])):String(e)}function en(e){let t=e.replace(/\s+/g," ").trim();return t.length<=XE?t:`${t.slice(0,XE-1)}\u2026`}function uR(e){let t=D(e).trimEnd(),r=z(t);if(!wp(e,r))throw new Error("exec TOON round-trip guard failed");return`${t}
|
|
140
|
+
`}function wp(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)=>wp(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)&&wp(r[i],n[i]))}function xo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lR(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 eR(e){return e.toString("utf8").replace(/�$/g,"")}function _$(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 E$(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}var QD,XD,tR,XE,Co=y(()=>{"use strict";ge();q();PE();Zr();To();ut();QD=8*1024,XD=2*1024,tR=1024,XE=240});var Ya={};Z(Ya,{RSP_WRAPPER_CAPABILITIES:()=>Io,_testOnlyResetBinaryState:()=>I$,formatCodexHookDecision:()=>kR,formatHookDecision:()=>RR,hookDecisionFromClaudePreExecJson:()=>M$,hookDecisionFromCodexPreExecJson:()=>B$,rewriteCommand:()=>_R,rewriteTableFromCapabilities:()=>wR,runClaudePreExecHook:()=>U$,runCodexPreExecHook:()=>H$});import{accessSync as O$,constants as C$,existsSync as A$,readFileSync as Va}from"node:fs";import{fileURLToPath as P$}from"node:url";function I$(){Ja=void 0,Ep=!1}function L$(){let e=(process.env.PATH??"").split(":");for(let t of e)if(t)try{return O$(`${t}/rsp`,C$.X_OK),!0}catch{}return!1}function G$(e){return Ja===void 0&&(Ja=e()),Ja}function D$(){Ep||(Ep=!0,process.stderr.write("rsp: entrypoint not found on PATH; run `rsp setup` to provision. See apps/rsp/docs/TROUBLESHOOTING.md\n"))}function wR(e){let t=new Map;for(let r of e)t.set(aN(r.command),["rsp",...r.wrapper]);return t}function _R(e,t=Ro()){let r=F$(e,t);if(r)return r;let n=X$(e);if(n)return n;let s=Y$(e);if(!s)return Wa(e,t);let o=s.tokens.map(d=>d.text);if(o.length>0&&Bn(o[0]))return Wa(e,t);let i=j$(s,t);if(i)return i;let a=N$(s,t);if(a)return a;if(s.tokens.some(d=>d.quoted))return Wa(e,t);let c=[...Io].sort((d,p)=>p.command.length-d.command.length).find(d=>Q$(o,d.command));if(!c)return Wa(e,t);let u=[...t,...c.wrapper,...o.slice(c.command.length)],l=OR(s.redirectSuffix);return{kind:"rewrite",command:[...u.map(bt),...l].join(" "),capabilityId:c.id}}function N$(e,t){let r=e.tokens.map(s=>s.text);if(r[0]!=="gh"||r[1]!=="api"||!r[2]||r.some(s=>["--jq","-q","--template","-t","--paginate","--slurp","--input"].includes(s)))return null;let n=r.findIndex(s=>s==="--method"||s==="-X");return n>=0&&(r[n+1]??"").toUpperCase()!=="GET"||r[2]==="graphql"?null:{kind:"rewrite",command:[...t,...r].map(bt).join(" "),capabilityId:"gh:api:read"}}function F$(e,t){let r=t.map(bt).join(" "),n=za(e.trim()).map(a=>a.text);if(n[0]==="gh"&&n[1]==="run"&&n[2]==="watch"&&/^[1-9][0-9]*$/.test(n[3]??""))return{kind:"rewrite",command:`${r} wait run ${n[3]}`,capabilityId:"wait:github-run"};if(!/\b(?:for|while)\b/.test(e)||!/\bsleep\b/.test(e))return null;let s=/\bgh\s+api\s+(?:--method\s+GET\s+)?(?:["']?)(?:https:\/\/api\.github\.com\/)?repos\/[^\s/'"]+\/[^\s/'"]+\/actions\/jobs\/([1-9][0-9]*)/.exec(e);if(s)return{kind:"rewrite",command:`${r} wait job ${s[1]}`,capabilityId:"wait:github-job"};let o=/\bgh\s+api\s+(?:--method\s+GET\s+)?(?:["']?)(?:https:\/\/api\.github\.com\/)?repos\/[^\s/'"]+\/[^\s/'"]+\/actions\/runs\/([1-9][0-9]*)/.exec(e);if(o)return{kind:"rewrite",command:`${r} wait run ${o[1]}`,capabilityId:"wait:github-run"};let i=/\bgh\s+api\s+(?:--method\s+GET\s+)?(?:["']?)(?:https:\/\/api\.github\.com\/)?repos\/[^\s/'"]+\/[^\s/'"]+\/releases\/tags\/([^\s'";|]+)/.exec(e);return i?{kind:"rewrite",command:`${r} wait release --tag ${bt(i[1])} --existing`,capabilityId:"wait:github-release"}:null}function j$(e,t){let r=e.tokens.map(i=>i.text),n=r[0],s=OR(e.redirectSuffix),o=t.map(bt);return n==="cat"&&r.length===2&&qa(r[1])?{kind:"rewrite",command:[...o,"cat",bt(r[1]),...s].join(" "),capabilityId:"cat:file"}:(n==="head"||n==="tail")&&r.length===2&&qa(r[1])?{kind:"rewrite",command:[...o,"cat",`--${n}`,"10",bt(r[1]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===4&&r[1]==="-n"&&/^[1-9][0-9]*$/.test(r[2])&&qa(r[3])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[2],bt(r[3]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===3&&/^-[1-9][0-9]*$/.test(r[1])&&qa(r[2])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[1].slice(1),bt(r[2]),...s].join(" "),capabilityId:`cat:${n}`}:null}function qa(e){return!!e&&!e.startsWith("-")}async function M$(e,t){return await ER(e,t)}async function B$(e,t){return await ER(e,t)}async function ER(e,t){return(await kp(e,t,"pre-exec")).decision}async function kp(e,t,r){let n=IR(e);if(!n.ok){let f={kind:"passthrough",reason:n.reason};return{decision:f,telemetryRoot:t.cwd,event:zn({hook:r,command:"",decision:f,reason:n.reason})}}let s=n.payload,o=yt(s,["cwd"])||yt(s,["tool_input","cwd"])||t.cwd;if(!await(t.isEnabled??q$)(o)){let f={kind:"passthrough",reason:"disabled"};return{decision:f,telemetryRoot:o,event:zn({hook:r,command:Rp(s),decision:f,reason:"disabled"})}}let a=Rp(s);if(!a){let f={kind:"passthrough",reason:"missing-command"};return{decision:f,telemetryRoot:o,event:zn({hook:r,command:a,decision:f,reason:"missing-command"})}}let c=t.rspInvocationPrefix??Ro();if(!G$(t.resolveBinary??(()=>t.rspInvocationPrefix!==void 0||c[0]!=="rsp"||L$()))){D$();let f={kind:"passthrough",reason:"binary-unresolved"};return{decision:f,telemetryRoot:o,event:zn({hook:r,command:a,decision:f,reason:"binary-unresolved"})}}let l=process.hrtime.bigint(),p=xe(o,process.env).proxyEnabled?Z$(a,c):(t.rewrite??(f=>_R(f,c)))(a),m=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:zn({hook:r,command:a,decision:f,reason:f.reason??"unsupported-command",decisionMs:m})}}return await J$(o,t.wakeResident??W$),{decision:p,telemetryRoot:o,event:zn({hook:r,command:a,decision:p,reason:p.capabilityId==="proxy:universal"?"universal-proxy":"matched-capability",decisionMs:m})}}function RR(e){return e.kind==="rewrite"?SR(e.command):{stdout:"",status:0}}function kR(e){return e.kind==="rewrite"?SR(e.command):{stdout:"",status:0}}function SR(e){return{stdout:`${JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{command:e}}})}
|
|
141
|
+
`,status:0}}async function U$(e){let t="";try{t=e?Va(e,"utf8"):Va(0,"utf8");let r=await kp(t,{cwd:process.cwd()},"claude-pre-exec");Ka(r.telemetryRoot,r.event);let n=r.decision;vR("claude-pre-exec",n);let s=RR(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return Ka(process.cwd(),TR("claude-pre-exec",t,r)),xR("claude-pre-exec",r),0}}async function H$(e){let t="";try{t=e?Va(e,"utf8"):Va(0,"utf8");let r=await kp(t,{cwd:process.cwd()},"codex-pre-exec");Ka(r.telemetryRoot,r.event);let n=r.decision;vR("codex-pre-exec",n);let s=kR(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return Ka(process.cwd(),TR("codex-pre-exec",t,r)),xR("codex-pre-exec",r),0}}function Ka(e,t){Jr(e,t).catch(()=>{})}function zn(e){let t=e.command.trim(),r=e.decision.kind==="rewrite"?e.decision.capabilityId:void 0;return{collection:De,event_type:"decision",ts:new Date().toISOString(),hook:e.hook,command:t||"unknown",command_family:nt(t),decision:r?"contributed":"passed",reason:e.reason,capability_id:r,decision_ms:e.decisionMs}}function TR(e,t,r){let n=IR(t),s=n.ok?Rp(n.payload):"";return{collection:De,event_type:"decision",ts:new Date().toISOString(),hook:e,command:s||"unknown",command_family:nt(s),decision:"failed-open",reason:"hook-exception",error:Sp(r)}}function q$(e){return xe(e,process.env).enabled}async function W$(e){let t=xe(e,process.env);if(!t.enabled||!z$(t))return;let r=ze(e);await bi(r,K$(t))}async function J$(e,t){try{await Promise.resolve(t(e))}catch(r){V$(r)}}function vR(e,t){if(process.env.RSP_DEBUG==="1"){if(t.kind==="rewrite"){process.stderr.write(`rsp hook ${e}: rewrite ${t.capabilityId}
|
|
142
142
|
`);return}process.stderr.write(`rsp hook ${e}: passthrough ${t.reason??"unsupported-command"}
|
|
143
|
-
`)}}function
|
|
144
|
-
`)}function
|
|
145
|
-
`)}function
|
|
146
|
-
`)}function
|
|
143
|
+
`)}}function xR(e,t){process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook ${e}: exception ${Sp(t)}
|
|
144
|
+
`)}function V$(e){Uu(e)||process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook pre-exec: resident-wake-failed ${Sp(e)}
|
|
145
|
+
`)}function Sp(e){return e instanceof Error?e.name||"Error":typeof e}function K$(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 z$(e){if(!e.storeUri.startsWith("file://"))return!0;try{return A$(P$(e.storeUri))}catch{return!1}}function Rp(e){return yt(e,["tool_input","command"])||yt(e,["tool_input","cmd"])||yt(e,["tool_input","args","command"])||yt(e,["input","command"])||yt(e,["input","cmd"])||yt(e,["arguments","command"])||yt(e,["arguments","cmd"])||yt(e,["command"])||yt(e,["cmd"])}function Y$(e){let t=e.trim();if(!t||/[\n\r|;()$`]/.test(t))return null;let r=za(t);if(r.length===0||r[0]?.quoted||r.some(o=>/[()$`]/.test(o.text))||r.some(o=>o.text.includes("=")&&Bn(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 za(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 Q$(e,t){return e.length<t.length?!1:t.every((r,n)=>e[n]===r)}function X$(e){let t=za(e.trim()).map(r=>r.text);return Vr(t)?{kind:"passthrough",reason:$$}:null}function OR(e){return e.map(t=>t.text)}function bt(e){return/[^\w@%+=:,./-]/.test(e)?Tp(e):e}function Z$(e,t){let r=tN(e);return r?{kind:"passthrough",reason:r}:{kind:"rewrite",command:`${t.map(bt).join(" ")} proxy -- ${Tp(e.trim())}`,capabilityId:"proxy:universal"}}function eN(e){if(!process.argv[1])return!1;let t=za(e);return t[0]?.text===process.execPath&&t[1]?.text===process.argv[1]}function tN(e){let t=e.trim();if(!t)return"missing-command";if(AR(t))return"background";if(/\b(?:RSP_NO_PROXY|RED_SKILLS_RSP_NO_PROXY)=1\b/.test(t))return"opt-out";let r=no(ro(t)[0]??"")[0];if(r==="rsp"||eN(t))return"opt-out";if(r&&CR.has(r))return"interactive"}function Wa(e,t){let r=e.trim();return rN(r)?{kind:"rewrite",command:`${t.map(bt).join(" ")} exec -- ${Tp(r)}`,capabilityId:"exec:compound"}:{kind:"passthrough"}}function rN(e){return!(!e||!nN(e)||!sN(e)||AR(e)||/<<-?/.test(e)||/\$\(|`/.test(e)||/[<>]/.test(e)||oN(e,"rsp")||PR(e,CR)||iN(e))}function nN(e){return/&&|[;|]/.test(e)}function AR(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 sN(e){return ro(e).some(t=>{let r=no(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 PR(e,t){return ro(e).some(r=>{let n=no(r)[0];return n?t.has(n):!1})}function oN(e,t){return PR(e,new Set([t]))}function iN(e){return ro(e).some(t=>{let r=no(t);return r[0]==="grep"&&r.includes("-q")})}function Tp(e){return`'${e.replace(/'/g,"'\\''")}'`}function aN(e){return e.join("\0")}function IR(e){try{let t=JSON.parse(e);return LR(t)?{ok:!0,payload:t}:{ok:!1,reason:"payload-not-object"}}catch{return{ok:!1,reason:"payload-parse-error"}}}function yt(e,t){let r=e;for(let n of t){if(!LR(r))return"";r=r[n]}return typeof r=="string"?r:""}function LR(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Ja,Ep,Io,zY,$$,CR,Lo=y(()=>{"use strict";so();He();lt();ar();lp();At();Ep=!1;Io=[{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"]}],zY=wR(Io),$$="lossless-gh-json-jq";CR=new Set(["bash","fish","htop","less","more","nano","node","python","python3","ssh","top","vi","vim","zsh"])});var MR={};Z(MR,{fastTelemetryRoot:()=>xp,isFastGitStatus:()=>Qa,runFastGitStatus:()=>Xa});import{spawnSync as FR}from"node:child_process";import{existsSync as jR,readdirSync as hN}from"node:fs";function Qa(e){return e.length===2&&e[0]==="git"&&e[1]==="status"}async function Xa(){if(yN(process.cwd()))return{stdout:vp(),stderr:Buffer.alloc(0),status:0,signal:null};if(FR("git",["diff-index","--quiet","HEAD","--"],{stdio:"ignore"}).status===0)return{stdout:vp(),stderr:Buffer.alloc(0),status:0,signal:null};let t=FR("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?vp():t.stdout;return{stdout:r,stderr:t.stderr,status:0,signal:t.signal,rawOutput:r}}async function xp(e){try{let{resolveResidentPaths:t}=await Promise.resolve().then(()=>(lt(),Nr));return t(e).rootDir}catch{return e}}function vp(){return Buffer.from(`${pe({command:"git status",category:"no-op",exit_code:0,noop:!0,scope:"git status",empty:!0,branch:"",rows:[],summary:"git status clean: 0 changes"})}
|
|
146
|
+
`)}function yN(e){try{return!jR(`${e}/.git`)||jR(`${e}/.git/index`)?!1:hN(e).every(t=>t===".git")}catch{return!1}}var Op=y(()=>{"use strict";Ut()});async function Qn(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 HR(e,t,r,n={}){GN(t);let s=e==="issue"?"i":"p",o=t.map((p,m)=>({alias:`${s}${m}`,number:p})),i=(n.labelNames??[]).map((p,m)=>({alias:`l${m}`,name:p})),c=DN(["id","number",...r]).map(p=>$N(LN[p],6)).join(`
|
|
147
147
|
`),u=o.map(({alias:p,number:m})=>[` ${p}: ${e}(number: ${m}) {`,c," }"].join(`
|
|
148
148
|
`)),l=i.map(({alias:p,name:m})=>` ${p}: label(name: ${JSON.stringify(m)}) { id name }`),d=["query RspGitHubBatch($owner: String!, $repo: String!) {"," repository(owner: $owner, name: $repo) {",...u,...l," }","}"].join(`
|
|
149
|
-
`);return{kind:e,query:d,aliases:o,labelAliases:i}}function
|
|
150
|
-
`)}}function
|
|
151
|
-
`)}}function
|
|
149
|
+
`);return{kind:e,query:d,aliases:o,labelAliases:i}}function qR(e,t){let r=Yn(t),n=Yn(r.data),s=Yn(n.repository),o=Array.isArray(r.errors)?r.errors.map(Yn):[];return e.aliases.map(({alias:i,number:a})=>{let c=s[i];if(VR(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:KR(u?.message)||"not found"}})}function WR(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: ${Er(o.nodeId)}, labelIds: ${UR(t)}, clientMutationId: ${Er(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: ${Er(o.nodeId)}, labelIds: ${UR(r)}, clientMutationId: ${Er(String(o.number))} }) { clientMutationId }`)}}),{aliases:n,query:["mutation RspEditLabels {",...s,"}"].join(`
|
|
150
|
+
`)}}function JR(e,t){let r=t.map((s,o)=>({alias:`link${o}`,number:s.number})),n=t.map((s,o)=>` link${o}: addSubIssue(input: { issueId: ${Er(e.nodeId)}, subIssueId: ${Er(s.nodeId)}, clientMutationId: ${Er(String(s.number))} }) { clientMutationId }`);return{aliases:r,query:["mutation RspLinkSubIssues {",...n,"}"].join(`
|
|
151
|
+
`)}}function Cp(e,t){let r=Yn(t),n=Array.isArray(r.errors)?r.errors.map(Yn):[],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,KR(i.message)||"mutation failed")}return s}function GN(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 DN(e){return[...new Set(e)]}function $N(e,t){let r=" ".repeat(t);return e.split(`
|
|
152
152
|
`).map(n=>`${r}${n}`).join(`
|
|
153
|
-
`)}function
|
|
154
|
-
`),subIssues:"subIssues(first: 100) { nodes { number } }"}});import{spawn as
|
|
155
|
-
`))}async function
|
|
156
|
-
`),stderr:Buffer.from(r),status:t,signal:null,payload:e}}function
|
|
157
|
-
${e.stdout}`)}function
|
|
158
|
-
`)[0]?.slice(0,240)??""}function
|
|
159
|
-
`;return{stdout:Buffer.from(`${
|
|
160
|
-
${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 ak(e){let t=bs(e);if(t.argv[0]!=="gh")throw new Error("expected rsp gh <surface> <subcommand>");let r=t.argv[1],n=t.argv[2];if(!(r==="pr"||r==="issue"||r==="run"))throw new Error(`unsupported gh surface: ${r??""}`);let s=r==="pr"&&n&&n!=="list"&&n!=="view";if(!(n==="list"||n==="view"||s))throw new Error(`unsupported gh subcommand: ${n??""}`);let o=r,i=[],a=!1,c=!1,u=new Set,l=t.argv.slice(3);for(let m=0;m<l.length;m+=1){let f=l[m]??"";f==="--full"?a=!0:f==="--wide"?c=!0:f==="--fields"?u=rk(l[++m]??""):f.startsWith("--fields=")?u=rk(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 oF(p),p}function tk(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?tF[t]:eF[t];return[e.kind,e.action,...e.passthrough,"--json",r.join(",")]}function rk(e){return new Set(e.split(",").map(t=>t.trim()).filter(Boolean))}function oF(e){if(e.fields.size===0)return;if(e.action!=="list")throw new ec(e,"--fields is supported for list outputs");let t=`${e.kind}:list`,r=nF[t];for(let n of e.fields)if(!r.includes(n))throw new ec(e,`unknown field: ${n}`,r)}async function iF(e){if(e.action==="combined")return await aF(e);let t=cF(e);if(!t)return await mF(tk(e));let r=await Xe({...t,command:["gh",...tk(e)].join(" ")});return r.status!==0?{stdout:r.stdout,stderr:r.stderr,status:r.status,signal:null}:{stdout:JSON.stringify(await uF(e,r.stdout)),stderr:r.stderr,status:0,signal:null}}async function aF(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=uk(Io(r.stdout));return{stdout:JSON.stringify({view:i,checks:[],comments:{comments:qe(Io(s.stdout)).map(dF)}}),stderr:[r.stderr,n.stderr,s.stderr].filter(Boolean).join(""),status:0,signal:null}}function cF(e){let t=lk(e.passthrough),r=pF(e.passthrough,"--limit")??30,n=Pt(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:Pt(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 uF(e,t){let r=Io(t);switch(`${e.kind}:${e.action}`){case"pr:list":return qe(r).map(ck);case"pr:view":return uk(r);case"issue:list":return qe(r).filter(n=>!tn(n.pull_request)).map(nk);case"issue:view":return nk(r);case"run:list":return{items:qe(Z(r).workflow_runs).map(sk),total:$e(Z(r),"total_count")};case"run:view":{let n=sk(r),s=lk(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?qe(Z(Io(o.stdout)).jobs).map(lF):[]}}default:return r}}function ck(e){let t=Z(e);return{number:$e(t,"number"),title:G(t,"title"),state:G(t,"state").toUpperCase(),isDraft:!!t.draft,author:Up(t.user),labels:qe(t.labels).map(r=>({name:G(r,"name")})),url:G(t,"html_url"),updatedAt:G(t,"updated_at"),body:G(t,"body"),baseRefName:G(Z(t.base),"ref"),headRefName:G(Z(t.head),"ref")}}function uk(e){return ck(e)}function nk(e){let t=Z(e);return{number:$e(t,"number"),title:G(t,"title"),state:G(t,"state").toUpperCase(),labels:qe(t.labels).map(r=>({name:G(r,"name")})),author:Up(t.user),url:G(t,"html_url"),updatedAt:G(t,"updated_at"),body:G(t,"body")}}function sk(e){let t=Z(e);return{databaseId:$e(t,"database_id")||$e(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 lF(e){let t=Z(e);return{name:G(t,"name"),status:G(t,"status").toUpperCase(),conclusion:G(t,"conclusion").toUpperCase(),log:""}}function dF(e){let t=Z(e);return{author:Up(t.user),body:G(t,"body"),createdAt:G(t,"created_at")}}function Up(e){let t=Z(e);return{login:G(t,"login")}}function lk(e){return e.find(t=>!t.startsWith("-"))}function Pt(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}function pF(e,t){let r=Pt(e,t);if(!r)return;let n=Number(r);return Number.isFinite(n)&&n>0?n:void 0}async function mF(e){let t=ZN("gh",e,{stdio:["ignore","pipe","pipe"]}),r=Ue();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 fF(e,t,r){let n={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let s=Np(r,"prs"),o=s.rows.map(c=>dk(c,e)),i=Te(o,e.query),a=Fp(i.length,o.length,s.total,e.query);return i.length===0?jp(n,e,"prs",a,["rsp gh issue list","rsp gh pr list --query <title-or-label>"]):Zn({...n,prs:i,aggregate:a,summary:`${Mp(i.length,o.length,e.query)} ${ok(i,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return Zn({...n,pr:pk(Z(r),e),summary:`PR #${$e(Z(r),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return gF(e,t,Z(r));case"issue:list":{let s=Np(r,"issues"),o=s.rows.map(c=>mk(c,e)),i=Te(o,e.query),a=Fp(i.length,o.length,s.total,e.query);return i.length===0?jp(n,e,"issues",a,["rsp gh issue list --state all","rsp gh issue list --query <label-or-title>"]):Zn({...n,issues:i,aggregate:a,summary:`${Mp(i.length,o.length,e.query)} ${ok(i,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return Zn({...n,issue:_F(Z(r),e),summary:`issue #${$e(Z(r),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let s=Np(r,"runs"),o=s.rows.map(c=>fk(c,e)),i=Te(o,e.query),a=Fp(i.length,o.length,s.total,e.query);return i.length===0?jp(n,e,"runs",a,["rsp gh run list --limit 20","rsp gh run list --query <workflow-or-status>"]):Zn({...n,runs:i,aggregate:a,summary:`${Mp(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 Zn({...n,run:EF(Z(r),e),summary:`run ${$e(Z(r),"databaseId")}`},e,["rsp gh run view <id> --full"])}throw new Error(`unsupported gh command: ${e.kind} ${e.action}`)}function gF(e,t,r){let n=pk(Z(r.view),{...e,action:"view",wide:!0}),s=Te(qe(r.checks).map(hF),e.query),o=Z(r.comments).comments,i=Te(qe(o).map(yF).slice(-3),e.query);return Bt({command:t.join(" "),pr:n,checks:s,comments:i,summary:`PR #${$e(Z(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 hF(e){return{name:G(e,"name"),state:Lo(e),bucket:G(e,"bucket"),conclusion:G(e,"conclusion"),workflow:G(e,"workflow"),link:G(e,"link")}}function yF(e){return{author:hk(e.author),body:tc(e,"body",Bp,!1),created:G(e,"createdAt")}}function Np(e,t){if(Array.isArray(e))return{rows:qe(e)};let r=Z(e),n=$e(r,"total")||$e(r,"total_count")||void 0;return Array.isArray(r.items)?{rows:qe(r.items),total:n}:t==="runs"&&Array.isArray(r.workflow_runs)?{rows:qe(r.workflow_runs),total:n}:{rows:[]}}function Fp(e,t,r,n){let s={returned:e};return typeof r=="number"&&r>0&&(s.total=r),n&&(s.unfiltered=t),s}function jp(e,t,r,n,s){return Bt({...e,empty:!0,scope:bF(t),[r]:[],aggregate:n,summary:`0 ${wF(t)}`},s)}function bF(e){let t=Pt(e.passthrough,"--state")??"open",r=e.query?` query=${e.query}`:"";if(e.kind==="pr")return`${t} PRs${r}`;if(e.kind==="issue"){let o=Pt(e.passthrough,"--label");return`${t} issues${o?` label=${o}`:""}${r}`}let n=Pt(e.passthrough,"--branch")??Pt(e.passthrough,"-b"),s=Pt(e.passthrough,"--workflow")??Pt(e.passthrough,"-w");return`workflow runs${n?` branch=${n}`:""}${s?` workflow=${s}`:""}${r}`}function wF(e){let t=Pt(e.passthrough,"--state")??"open";return e.kind==="pr"?`${t} PRs`:e.kind==="issue"?`${t} issues`:"runs"}function dk(e,t){let r={number:$e(e,"number"),title:G(e,"title"),state:Lo(e),draft:!!e.isDraft};return Hp(r,e,t,["author","labels","url","updated"]),r}function pk(e,t){let r=dk(e,t);return r.body=tc(e,"body",Bp,t.full),t.wide&&(r.base=G(e,"baseRefName"),r.head=G(e,"headRefName")),r}function mk(e,t){let r={number:$e(e,"number"),title:G(e,"title"),state:Lo(e),labels:gk(e.labels)};return Hp(r,e,t,["author","url","updated"]),r}function _F(e,t){let r=mk(e,t);return r.body=tc(e,"body",Bp,t.full),r}function fk(e,t){let r={id:$e(e,"databaseId"),name:G(e,"name"),status:Lo(e),conclusion:G(e,"conclusion")};return Hp(r,e,t,["event","branch","workflow","created"]),r}function EF(e,t){let r=fk(e,t),n=qe(e.jobs).map(s=>({name:G(s,"name"),status:Lo(s),conclusion:G(s,"conclusion"),log:tc(s,"log",rF,t.full)}));return r.jobs=n,r}function tc(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 RF(e){let t=[e];for(;t.length>0;){let r=t.pop();if(Array.isArray(r))t.push(...r);else if(tn(r)){if(tn(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 kF(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 ok(e,t){return e.every(r=>r.state===t)?t:"returned"}function Mp(e,t,r){return r?`${e}/${t}`:String(e)}function Zn(e,t,r){return t.query?Bt(e,r):e}function Lo(e){return(G(e,"state")||G(e,"status")).toLowerCase()}function Hp(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=hk(t.author):s==="labels"?e.labels=gk(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 gk(e){return Array.isArray(e)?e.map(t=>tn(t)?G(t,"name"):String(t)).filter(Boolean):[]}function hk(e){return tn(e)?G(e,"login"):""}function Io(e){return e.trim()?JSON.parse(e):null}function qe(e){return Array.isArray(e)?e.filter(tn):[]}function Z(e){return tn(e)?e:{}}function G(e,t){let r=e[t];return typeof r=="string"?r:""}function $e(e,t){let r=e[t];return typeof r=="number"?r:0}function tn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var eF,tF,Bp,rF,nF,ec,Wp=h(()=>{"use strict";me();q();Fs();ZR();$p();Qr();ws();ct();$p();eF={"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"]},tF={"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"]},Bp=160,rF=160,nF={"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"]};ec=class extends Error{constructor(r,n,s=[]){super(n);this.command=r;this.validFields=s}render(){return H({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 Kp={};Y(Kp,{renderTestContract:()=>yk,runTestWrapper:()=>OF});import{spawn as SF}from"node:child_process";async function OF(e,t){let r=bs(e),n=await LF(r.argv);return await yk(e,n,t)}async function yk(e,t,r){let n=bs(e),o=bk(n.argv)==="vitest"?GF(t.stdout):DF(t.stdout),i=t.status;if(!o||(i??0)!==0&&o.failed===0){let f=Ie(e.join(" "),t.stdout,t.stderr);return{stdout:H(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 ${FF(o.durationSeconds)}`,c=Te(o.failures,n.query);if(r.level==="terse")return await CF(n.argv,t,{...o,failures:c},i,a,r,n.query);let u=[],l,d=0;for(let f of c){let E=await $F(f.excerpt,n.argv.join(" "),r.store);u.push({suite:f.suite,name:f.name,excerpt:E.text}),l??=E.handle,d+=E.bytesElided}let p={exit_code:i,summary:n.query?`${a} \xB7 ${c.length}/${o.failures.length} failures matched`:a};u.length>0&&(p.failures=u);let m=n.query?Bt(p,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):p;return{stdout:Buffer.from($(m)),stderr:Buffer.from(t.stderr),status:Vp(t.status),signal:t.signal,payload:m,mintedHandle:l,bytesElided:d>0?d:void 0,rowsElided:u.length>0?Math.max(0,o.total-u.length):void 0}}async function CF(e,t,r,n,s,o,i){let a=AF(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?Bt(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((v,O)=>v.excerpt!==r.failures[O].excerpt);if(d===0&&!p)return{stdout:Buffer.from(l),stderr:Buffer.from(t.stderr),status:Vp(t.status),signal:t.signal,payload:u};let m={exit_code:n,summary:s};r.failures.length>0&&(m.failures=r.failures.map(v=>({suite:v.suite,name:v.name,excerpt:v.excerpt})));let f=$(m),E=Buffer.byteLength(f),b=await o.store?.mint(Buffer.from(f),{command:e.join(" "),loss:{level:"terse",bytes_elided:E}});if(!b)throw new Error("terse test output requires an elision store");let R=`\u2026 elided ${d>0?`${d} failures`:"full detail"} (+${E}) \u2014 ${ht(b)}`;return{stdout:Buffer.from(`${l}
|
|
161
|
-
${
|
|
153
|
+
`)}function Er(e){return JSON.stringify(e)}function UR(e){return`[${e.map(Er).join(", ")}]`}function Yn(e){return VR(e)?e:{}}function VR(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function KR(e){return typeof e=="string"?e:""}var LN,zR=y(()=>{LN={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(`
|
|
154
|
+
`),subIssues:"subIssues(first: 100) { nodes { number } }"}});import{spawn as FN,spawnSync as jN}from"node:child_process";function Ip(e){return e[0]==="gh"&&["issues","prs","edit-labels","link-sub-issues"].includes(e[1]??"")}async function XR(e,t={}){let r=ZN(e),n=r.repo??t.repo??process.env.GH_REPO??tF();if(!n||!n.includes("/"))return Dp(e,"repository is required; pass --repo owner/repo");let s=t.exec??rF,o=Math.max(1,Math.floor(t.restConcurrency??QR));return r.verb==="issues"||r.verb==="prs"?await UN(r,n,s,o,e):r.verb==="edit-labels"?await qN(r,n,s,o,e):await JN(r,n,s,o,e)}async function UN(e,t,r,n,s){let o=e.verb==="issues"?"issue":"pullRequest",i=ZR(e),a=[],c=[];for(let l of Gp(e.numbers,100)){let d=HR(o,l,i.query),p=await Lp(r,t,d.query);if(Np(p))return await HN(e,t,r,n,s);if(p.code!==0){c.push(p.stderr),a.push(...l.map(m=>({number:m,value:{error:ot(p)||`failed to read ${m}`},failed:!0})));continue}a.push(...qR(d,Rr(p.stdout)).map(m=>({number:m.number,value:m.error?{error:m.error}:KN(e.verb,m.value??{},i.output),failed:!!m.error})))}let u=a.filter(l=>l.failed).length;return ec({command:tc(s),transport:"graphql",order:e.numbers,[e.verb]:Go(a),summary:`${a.length-u}/${a.length} read`},c.length>0?1:0,c.filter(Boolean).join(`
|
|
155
|
+
`))}async function HN(e,t,r,n,s){let o=ZR(e),i=e.verb==="issues"?"issues":"pulls",a=await Qn(e.numbers,n,async u=>{let l=await r(["api",`repos/${t}/${i}/${u}`]);if(l.code!==0)return{number:u,value:{error:ot(l)||"REST fallback failed"}};let d=It(Rr(l.stdout));if(e.verb==="prs"&&o.output.some(ek)){let p=le(It(d.head).sha);if(!p)return{number:u,value:{error:"REST fallback pull response omitted head SHA"}};let m=await r(["api",`repos/${t}/commits/${p}/check-runs`]);if(m.code!==0)return{number:u,value:{error:ot(m)||"REST check-runs fallback failed"}};let f=await r(["api",`repos/${t}/commits/${p}/status`]);if(f.code!==0)return{number:u,value:{error:ot(f)||"REST commit-status fallback failed"}};d={...d,restCheckRollup:YN(It(Rr(m.stdout)),It(Rr(f.stdout)))}}return{number:u,value:zN(e.verb,d,o.output)}}),c=a.filter(u=>"error"in u.value).length;return ec({command:tc(s),transport:"rest-fallback",degraded:"graphql-quota",concurrency:n,order:e.numbers,[e.verb]:Go(a),summary:`${a.length-c}/${a.length} read via REST fallback`})}async function qN(e,t,r,n,s){if(e.add.length===0&&e.remove.length===0)return Dp(s,"pass --add and/or --remove");let o=[...new Set([...e.add,...e.remove])],[i,a]=await Promise.all([tk(e.numbers,t,r,n),Qn(o,n,async p=>{let m=await r(["api",`repos/${t}/labels/${encodeURIComponent(p)}`]);return{name:p,nodeId:le(It(Rr(m.stdout)).node_id),error:m.code===0?"":ot(m)}})]),c=new Map(a.map(p=>[p.name,p.nodeId])),u=o.filter(p=>!c.get(p));if(u.length>0)return Zn(s,e.numbers,$p(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 Gp(d,100)){let m=WR(p,e.add.map(_=>c.get(_)),e.remove.map(_=>c.get(_))),f=await Lp(r,t,m.query);if(Np(f))return await WN(e,t,r,n,s);if(f.code!==0){for(let _ of p)l.set(_.number,{error:ot(f)||"label mutation failed"});continue}let b=Cp(m.aliases,Rr(f.stdout));for(let _ of p){let w=m.aliases.filter(k=>k.number===_.number).map(k=>b.get(k.alias)).find(Boolean);l.set(_.number,w?{error:w}:{ok:!0})}}return Zn(s,e.numbers,rk(e.numbers,l),"graphql")}async function WN(e,t,r,n,s){let o=await Qn(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:ot(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:ot(c)||"failed to add labels"}}}return{number:i,value:{ok:!0}}});return Zn(s,e.numbers,Go(o),"rest-fallback",n)}async function JN(e,t,r,n,s){if(e.numbers.length<2)return Dp(s,"pass a parent and at least one child issue");let[o,...i]=e.numbers,a=await tk(e.numbers,t,r,n),c=a[0],u=c?.nodeId;if(!u)return Zn(s,i,$p(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 Gp(d,100)){let m=JR({number:o,nodeId:u},p),f=await Lp(r,t,m.query);if(Np(f))return await VN(o,i,t,r,n,s);if(f.code!==0){for(let _ of p)l.set(_.number,{error:ot(f)||"sub-issue mutation failed"});continue}let b=Cp(m.aliases,Rr(f.stdout));for(let _ of m.aliases){let h=b.get(_.alias);l.set(_.number,h?{error:h}:{ok:!0})}}return Zn(s,i,rk(i,l),"graphql")}async function VN(e,t,r,n,s,o){let i=await Qn(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:ot(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:ot(l)||"REST link failed"}}});return Zn(o,t,Go(i),"rest-fallback",s)}function Zn(e,t,r,n,s){let o=Object.values(r).filter(i=>es(i)&&"error"in i).length;return ec({command:tc(e),transport:n,...n==="rest-fallback"?{degraded:"graphql-quota",concurrency:s??QR}:{},order:[...t],issues:r,summary:`${t.length-o}/${t.length} mutated`})}function ZR(e){if(e.verb==="issues"){let r=e.fields.length>0?e.fields:["title","state","labels","body"];return YR(r,MN),{output:r,query:r}}let t=e.fields.length>0?e.fields:["title","state","mergeable","checks"];return YR(t,BN),{output:t,query:t.map(r=>["checkRollup","statusCheckRollup"].includes(r)?"checks":r)}}function YR(e,t){let r=e.find(n=>!t.has(n));if(r)throw new Error(`unknown GitHub batch field: ${r}`)}function KN(e,t,r){let n={};for(let s of r)s==="labels"?n.labels=Ap(t.labels).map(o=>le(o.name)).filter(Boolean):["checks","checkRollup","statusCheckRollup"].includes(s)?n[s]=XN(t.commits):s==="state"||s==="mergeable"?n[s]=le(t[s]).toLowerCase():s!=="id"&&s!=="subIssues"&&(n[s]=nk(t[s]));return"number"in n||(n.number=Fp(t.number)),n}function zN(e,t,r){let n={};for(let s of r)if(s==="labels"){let o=Array.isArray(t.labels)?t.labels.filter(es):[];n.labels=o.map(i=>le(i.name)).filter(Boolean)}else if(ek(s))n[s]=It(t.restCheckRollup);else if(s==="state")n.state=le(t.state).toLowerCase();else if(s==="mergeable"){let o=t.mergeable;n.mergeable=typeof o=="boolean"?o?"mergeable":"conflicting":"unknown"}else n[s]=nk(t[s]);return"number"in n||(n.number=Fp(t.number)),n}function YN(e,t){let r=Array.isArray(e.check_runs)?e.check_runs.filter(es):[],n=Array.isArray(t.statuses)?t.statuses.filter(es):[],s=[...r.map(o=>({name:le(o.name),state:(le(o.conclusion)||le(o.status)).toLowerCase()})),...n.map(o=>({name:le(o.context),state:le(o.state).toLowerCase()}))];return{state:le(t.state).toLowerCase()||QN(s.map(o=>o.state)),contexts:s}}function QN(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 ek(e){return["checks","checkRollup","statusCheckRollup"].includes(e)}function XN(e){let t=Ap(e).at(-1),r=It(It(t?.commit).statusCheckRollup);return{state:le(r.state).toLowerCase(),contexts:Ap(r.contexts).map(n=>({name:le(n.name)||le(n.context),state:(le(n.conclusion)||le(n.status)||le(n.state)).toLowerCase()}))}}async function Lp(e,t,r){let[n,s]=eF(t);return await e(["api","graphql","-f",`query=${r}`,"-F",`owner=${n}`,"-F",`repo=${s}`])}async function tk(e,t,r,n){return await Qn(e,n,async s=>{let o=await r(["api",`repos/${t}/issues/${s}`]),i=It(Rr(o.stdout)),a=le(i.node_id),c=Fp(i.id);return o.code!==0||!a?{number:s,error:ot(o)||"REST issue lookup failed"}:{number:s,nodeId:a,databaseId:c>0?c:void 0}})}function Gp(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function ZN(e){if(!Ip(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(...Xn(e[++a]??""));else if(c.startsWith("--json="))n.push(...Xn(c.slice(7)));else if(c==="--add")s.push(...Xn(e[++a]??""));else if(c.startsWith("--add="))s.push(...Xn(c.slice(6)));else if(c==="--remove")o.push(...Xn(e[++a]??""));else if(c.startsWith("--remove="))o.push(...Xn(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 ec(e,t=0,r=""){return{stdout:Buffer.from(`${D(e)}
|
|
156
|
+
`),stderr:Buffer.from(r),status:t,signal:null,payload:e}}function Dp(e,t){return ec({command:tc(e),category:"usage",error:t,help:"rsp gh --help",exit_code:2},2)}function $p(e,t){return Go(e.map(r=>({number:r,value:t(r)})))}function Go(e){return Object.fromEntries(e.map(t=>[String(t.number),t.value]))}function rk(e,t){return $p(e,r=>t.get(r)??{error:"mutation skipped"})}function Np(e){return e.code!==0&&/rate.?limit|rate_limit|RATE_LIMITED|quota/i.test(`${e.stderr}
|
|
157
|
+
${e.stdout}`)}function ot(e){return(e.stderr||e.stdout).trim().split(`
|
|
158
|
+
`)[0]?.slice(0,240)??""}function Rr(e){try{return e.trim()?JSON.parse(e):{}}catch{return{}}}function Ap(e){let t=It(e).nodes;return Array.isArray(t)?t.filter(es):[]}function nk(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||e===null?e:""}function Fp(e){let t=Number(e);return Number.isFinite(t)?t:0}function Xn(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function eF(e){let t=e.indexOf("/");return[e.slice(0,t),e.slice(t+1)]}function tc(e){return`rsp ${e.join(" ")}`}function tF(){let e=jN("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 rF(e){let t=FN("gh",e,{stdio:["ignore","pipe","pipe"]}),r=Ue();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 It(e){return es(e)?e:{}}function es(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function le(e){return typeof e=="string"?e:""}var QR,MN,BN,sk=y(()=>{"use strict";ge();q();zR();QR=4,MN=new Set(["number","title","state","labels","body"]),BN=new Set(["number","title","state","mergeable","checks","checkRollup","statusCheckRollup","body"])});function jp(e){if(e[0]!=="gh"||e[1]!=="api")return null;let t="",r="GET",n={};for(let s=2;s<e.length;s+=1){let o=e[s];if(o==="--method"||o==="-X")r=(e[++s]??"").toUpperCase();else if(o==="-f"||o==="--raw-field"||o==="-F"||o==="--field"){let i=e[++s]??"",a=i.indexOf("=");if(a<=0)return null;n[i.slice(0,a)]=o==="-F"||o==="--field"?nF(i.slice(a+1)):i.slice(a+1)}else{if(["--jq","-q","--template","-t","--paginate","--slurp","--input"].includes(o))return null;if(!o.startsWith("-")&&!t)t=o.replace(/^https:\/\/api\.github\.com\//,"");else return null}}return r==="GET"&&t!==""&&t!=="graphql"?{path:t,params:n}:null}async function ok(e,t=Xe){let r=jp(e);if(!r){let s=Ie(e.join(" "),"","rsp gh api accepts GET reads without --jq, --template, --paginate, or --input");return{stdout:W(s),stderr:Buffer.alloc(0),status:2,signal:null}}let n=await t({...r,args:["api",r.path],command:e.join(" ")});if(n.status!==0){let s=Ie(e.join(" "),n.stdout,n.stderr);return{stdout:W(s),stderr:Buffer.from(n.stderr),status:s.exitCode??n.status,signal:null}}return{stdout:Buffer.from(D(JSON.parse(n.stdout))),stderr:Buffer.from(n.stderr),status:0,signal:null}}function nF(e){if(e==="true")return!0;if(e==="false")return!1;if(e!=="null")return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?$/.test(e)?Number(e):e}var Mp=y(()=>{"use strict";q();Ms();ut()});var Kp={};Z(Kp,{parseGhApiRead:()=>jp,renderGhContract:()=>dk,runGhWrapper:()=>uF});import{spawn as sF}from"node:child_process";async function uF(e,t){if(Ip(e))return await XR(e);if(e[0]==="gh"&&e[1]==="api")return await ok(e);let r=pk(e),n=await dF(r);return dk(e,n,t)}async function dk(e,t,r){if((t.status??0)!==0||t.signal){let m=Ie(e.join(" "),t.stdout,t.stderr);return{stdout:W(m),stderr:Buffer.from(t.stderr),status:m.exitCode??1,signal:t.signal}}let n=pk(e),s=Do(t.stdout),o=wF(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=xF(o);if(i){if(!r.store)throw new Error("truncated gh output requires an elision store");let m=await r.store.mint(Buffer.from(i.original),{command:e.join(" "),loss:{level:n.full?"brief":r.level,bytes_elided:i.bytes}});i.target.truncated.handle=m}let a=i?.target.truncated.handle||void 0,c=D(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=OF(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 ${ht(d)}
|
|
159
|
+
`;return{stdout:Buffer.from(`${D(u.payload)}
|
|
160
|
+
${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 pk(e){let t=_s(e);if(t.argv[0]!=="gh")throw new Error("expected rsp gh <surface> <subcommand>");let r=t.argv[1],n=t.argv[2];if(!(r==="pr"||r==="issue"||r==="run"))throw new Error(`unsupported gh surface: ${r??""}`);let s=r==="pr"&&n&&n!=="list"&&n!=="view";if(!(n==="list"||n==="view"||s))throw new Error(`unsupported gh subcommand: ${n??""}`);let o=r,i=[],a=!1,c=!1,u=new Set,l=t.argv.slice(3);for(let m=0;m<l.length;m+=1){let f=l[m]??"";f==="--full"?a=!0:f==="--wide"?c=!0:f==="--fields"?u=ak(l[++m]??""):f.startsWith("--fields=")?u=ak(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 lF(p),p}function ik(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?iF[t]:oF[t];return[e.kind,e.action,...e.passthrough,"--json",r.join(",")]}function ak(e){return new Set(e.split(",").map(t=>t.trim()).filter(Boolean))}function lF(e){if(e.fields.size===0)return;if(e.action!=="list")throw new rc(e,"--fields is supported for list outputs");let t=`${e.kind}:list`,r=cF[t];for(let n of e.fields)if(!r.includes(n))throw new rc(e,`unknown field: ${n}`,r)}async function dF(e){if(e.action==="combined")return await pF(e);let t=mF(e);if(!t)return await bF(ik(e));let r=await Xe({...t,command:["gh",...ik(e)].join(" ")});return r.status!==0?{stdout:r.stdout,stderr:r.stderr,status:r.status,signal:null}:{stdout:JSON.stringify(await fF(e,r.stdout)),stderr:r.stderr,status:0,signal:null}}async function pF(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=fk(Do(r.stdout));return{stdout:JSON.stringify({view:i,checks:[],comments:{comments:qe(Do(s.stdout)).map(hF)}}),stderr:[r.stderr,n.stderr,s.stderr].filter(Boolean).join(""),status:0,signal:null}}function mF(e){let t=gk(e.passthrough),r=yF(e.passthrough,"--limit")??30,n=Lt(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:Lt(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 fF(e,t){let r=Do(t);switch(`${e.kind}:${e.action}`){case"pr:list":return qe(r).map(mk);case"pr:view":return fk(r);case"issue:list":return qe(r).filter(n=>!nn(n.pull_request)).map(ck);case"issue:view":return ck(r);case"run:list":return{items:qe(re(r).workflow_runs).map(uk),total:$e(re(r),"total_count")};case"run:view":{let n=uk(r),s=gk(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?qe(re(Do(o.stdout)).jobs).map(gF):[]}}default:return r}}function mk(e){let t=re(e);return{number:$e(t,"number"),title:G(t,"title"),state:G(t,"state").toUpperCase(),isDraft:!!t.draft,author:Jp(t.user),labels:qe(t.labels).map(r=>({name:G(r,"name")})),url:G(t,"html_url"),updatedAt:G(t,"updated_at"),body:G(t,"body"),baseRefName:G(re(t.base),"ref"),headRefName:G(re(t.head),"ref")}}function fk(e){return mk(e)}function ck(e){let t=re(e);return{number:$e(t,"number"),title:G(t,"title"),state:G(t,"state").toUpperCase(),labels:qe(t.labels).map(r=>({name:G(r,"name")})),author:Jp(t.user),url:G(t,"html_url"),updatedAt:G(t,"updated_at"),body:G(t,"body")}}function uk(e){let t=re(e);return{databaseId:$e(t,"database_id")||$e(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 gF(e){let t=re(e);return{name:G(t,"name"),status:G(t,"status").toUpperCase(),conclusion:G(t,"conclusion").toUpperCase(),log:""}}function hF(e){let t=re(e);return{author:Jp(t.user),body:G(t,"body"),createdAt:G(t,"created_at")}}function Jp(e){let t=re(e);return{login:G(t,"login")}}function gk(e){return e.find(t=>!t.startsWith("-"))}function Lt(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}function yF(e,t){let r=Lt(e,t);if(!r)return;let n=Number(r);return Number.isFinite(n)&&n>0?n:void 0}async function bF(e){let t=sF("gh",e,{stdio:["ignore","pipe","pipe"]}),r=Ue();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 wF(e,t,r){let n={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let s=Bp(r,"prs"),o=s.rows.map(c=>hk(c,e)),i=Te(o,e.query),a=Up(i.length,o.length,s.total,e.query);return i.length===0?Hp(n,e,"prs",a,["rsp gh issue list","rsp gh pr list --query <title-or-label>"]):ts({...n,prs:i,aggregate:a,summary:`${qp(i.length,o.length,e.query)} ${lk(i,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return ts({...n,pr:yk(re(r),e),summary:`PR #${$e(re(r),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return _F(e,t,re(r));case"issue:list":{let s=Bp(r,"issues"),o=s.rows.map(c=>bk(c,e)),i=Te(o,e.query),a=Up(i.length,o.length,s.total,e.query);return i.length===0?Hp(n,e,"issues",a,["rsp gh issue list --state all","rsp gh issue list --query <label-or-title>"]):ts({...n,issues:i,aggregate:a,summary:`${qp(i.length,o.length,e.query)} ${lk(i,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return ts({...n,issue:TF(re(r),e),summary:`issue #${$e(re(r),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let s=Bp(r,"runs"),o=s.rows.map(c=>wk(c,e)),i=Te(o,e.query),a=Up(i.length,o.length,s.total,e.query);return i.length===0?Hp(n,e,"runs",a,["rsp gh run list --limit 20","rsp gh run list --query <workflow-or-status>"]):ts({...n,runs:i,aggregate:a,summary:`${qp(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 ts({...n,run:vF(re(r),e),summary:`run ${$e(re(r),"databaseId")}`},e,["rsp gh run view <id> --full"])}throw new Error(`unsupported gh command: ${e.kind} ${e.action}`)}function _F(e,t,r){let n=yk(re(r.view),{...e,action:"view",wide:!0}),s=Te(qe(r.checks).map(EF),e.query),o=re(r.comments).comments,i=Te(qe(o).map(RF).slice(-3),e.query);return Ht({command:t.join(" "),pr:n,checks:s,comments:i,summary:`PR #${$e(re(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 EF(e){return{name:G(e,"name"),state:$o(e),bucket:G(e,"bucket"),conclusion:G(e,"conclusion"),workflow:G(e,"workflow"),link:G(e,"link")}}function RF(e){return{author:Ek(e.author),body:nc(e,"body",Wp,!1),created:G(e,"createdAt")}}function Bp(e,t){if(Array.isArray(e))return{rows:qe(e)};let r=re(e),n=$e(r,"total")||$e(r,"total_count")||void 0;return Array.isArray(r.items)?{rows:qe(r.items),total:n}:t==="runs"&&Array.isArray(r.workflow_runs)?{rows:qe(r.workflow_runs),total:n}:{rows:[]}}function Up(e,t,r,n){let s={returned:e};return typeof r=="number"&&r>0&&(s.total=r),n&&(s.unfiltered=t),s}function Hp(e,t,r,n,s){return Ht({...e,empty:!0,scope:kF(t),[r]:[],aggregate:n,summary:`0 ${SF(t)}`},s)}function kF(e){let t=Lt(e.passthrough,"--state")??"open",r=e.query?` query=${e.query}`:"";if(e.kind==="pr")return`${t} PRs${r}`;if(e.kind==="issue"){let o=Lt(e.passthrough,"--label");return`${t} issues${o?` label=${o}`:""}${r}`}let n=Lt(e.passthrough,"--branch")??Lt(e.passthrough,"-b"),s=Lt(e.passthrough,"--workflow")??Lt(e.passthrough,"-w");return`workflow runs${n?` branch=${n}`:""}${s?` workflow=${s}`:""}${r}`}function SF(e){let t=Lt(e.passthrough,"--state")??"open";return e.kind==="pr"?`${t} PRs`:e.kind==="issue"?`${t} issues`:"runs"}function hk(e,t){let r={number:$e(e,"number"),title:G(e,"title"),state:$o(e),draft:!!e.isDraft};return Vp(r,e,t,["author","labels","url","updated"]),r}function yk(e,t){let r=hk(e,t);return r.body=nc(e,"body",Wp,t.full),t.wide&&(r.base=G(e,"baseRefName"),r.head=G(e,"headRefName")),r}function bk(e,t){let r={number:$e(e,"number"),title:G(e,"title"),state:$o(e),labels:_k(e.labels)};return Vp(r,e,t,["author","url","updated"]),r}function TF(e,t){let r=bk(e,t);return r.body=nc(e,"body",Wp,t.full),r}function wk(e,t){let r={id:$e(e,"databaseId"),name:G(e,"name"),status:$o(e),conclusion:G(e,"conclusion")};return Vp(r,e,t,["event","branch","workflow","created"]),r}function vF(e,t){let r=wk(e,t),n=qe(e.jobs).map(s=>({name:G(s,"name"),status:$o(s),conclusion:G(s,"conclusion"),log:nc(s,"log",aF,t.full)}));return r.jobs=n,r}function nc(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 xF(e){let t=[e];for(;t.length>0;){let r=t.pop();if(Array.isArray(r))t.push(...r);else if(nn(r)){if(nn(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 OF(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 lk(e,t){return e.every(r=>r.state===t)?t:"returned"}function qp(e,t,r){return r?`${e}/${t}`:String(e)}function ts(e,t,r){return t.query?Ht(e,r):e}function $o(e){return(G(e,"state")||G(e,"status")).toLowerCase()}function Vp(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=Ek(t.author):s==="labels"?e.labels=_k(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 _k(e){return Array.isArray(e)?e.map(t=>nn(t)?G(t,"name"):String(t)).filter(Boolean):[]}function Ek(e){return nn(e)?G(e,"login"):""}function Do(e){return e.trim()?JSON.parse(e):null}function qe(e){return Array.isArray(e)?e.filter(nn):[]}function re(e){return nn(e)?e:{}}function G(e,t){let r=e[t];return typeof r=="string"?r:""}function $e(e,t){let r=e[t];return typeof r=="number"?r:0}function nn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var oF,iF,Wp,aF,cF,rc,zp=y(()=>{"use strict";ge();q();Ms();sk();Mp();Zr();Es();ut();Mp();oF={"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"]},iF={"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"]},Wp=160,aF=160,cF={"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"]};rc=class extends Error{constructor(r,n,s=[]){super(n);this.command=r;this.validFields=s}render(){return W({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 Xp={};Z(Xp,{renderTestContract:()=>Rk,runTestWrapper:()=>LF});import{spawn as CF}from"node:child_process";async function LF(e,t){let r=_s(e),n=await FF(r.argv);return await Rk(e,n,t)}async function Rk(e,t,r){let n=_s(e),o=kk(n.argv)==="vitest"?jF(t.stdout):MF(t.stdout),i=t.status;if(!o||(i??0)!==0&&o.failed===0){let f=Ie(e.join(" "),t.stdout,t.stderr);return{stdout:W(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 ${HF(o.durationSeconds)}`,c=Te(o.failures,n.query);if(r.level==="terse")return await GF(n.argv,t,{...o,failures:c},i,a,r,n.query);let u=[],l,d=0;for(let f of c){let b=await BF(f.excerpt,n.argv.join(" "),r.store);u.push({suite:f.suite,name:f.name,excerpt:b.text}),l??=b.handle,d+=b.bytesElided}let p={exit_code:i,summary:n.query?`${a} \xB7 ${c.length}/${o.failures.length} failures matched`:a};u.length>0&&(p.failures=u);let m=n.query?Ht(p,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):p;return{stdout:Buffer.from(D(m)),stderr:Buffer.from(t.stderr),status:Qp(t.status),signal:t.signal,payload:m,mintedHandle:l,bytesElided:d>0?d:void 0,rowsElided:u.length>0?Math.max(0,o.total-u.length):void 0}}async function GF(e,t,r,n,s,o,i){let a=DF(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?Ht(c,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):c,l=D(u),d=Math.max(0,r.failures.length-a.length),p=a.some((k,x)=>k.excerpt!==r.failures[x].excerpt);if(d===0&&!p)return{stdout:Buffer.from(l),stderr:Buffer.from(t.stderr),status:Qp(t.status),signal:t.signal,payload:u};let m={exit_code:n,summary:s};r.failures.length>0&&(m.failures=r.failures.map(k=>({suite:k.suite,name:k.name,excerpt:k.excerpt})));let f=D(m),b=Buffer.byteLength(f),_=await o.store?.mint(Buffer.from(f),{command:e.join(" "),loss:{level:"terse",bytes_elided:b}});if(!_)throw new Error("terse test output requires an elision store");let w=`\u2026 elided ${d>0?`${d} failures`:"full detail"} (+${b}) \u2014 ${ht(_)}`;return{stdout:Buffer.from(`${l}
|
|
161
|
+
${w}`),stderr:Buffer.from(t.stderr),status:Qp(t.status),signal:t.signal,payload:u,mintedHandle:_,bytesElided:b,rowsElided:d,rawOutput:Buffer.from(f)}}function Qp(e){return e===0||e===null?0:1}function DF(e){let t=[],r=PF;for(let n of e.slice(0,IF)){let s=$F(n.excerpt,Math.min(AF,r));r=Math.max(0,r-Buffer.byteLength(s)),t.push({suite:n.suite,name:n.name,excerpt:s})}return t}function $F(e,t){if(t<=0)return"";let r=e.split(`
|
|
162
162
|
`),n=r.length<=2?e:`${r[0]}
|
|
163
163
|
\u2026
|
|
164
|
-
${r[r.length-1]}`,s=Buffer.from(n);return s.length<=t?n:s.subarray(0,t).toString("utf8").replace(/�$/,"")}function
|
|
165
|
-
`).filter(Boolean).map(c=>
|
|
166
|
-
`)}),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
|
|
167
|
-
\u2026 elided ${i} bytes (+${n.length}) \u2014 ${ht(s)}`,handle:s,bytesElided:n.length}}function
|
|
168
|
-
`):""}function
|
|
169
|
-
`),status:1,signal:null}}return
|
|
170
|
-
`;if(!i&&Buffer.byteLength(c)<=
|
|
171
|
-
`;return{stdout:Buffer.from(`${c}${l}`),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,mintedHandle:u,bytesElided:r.length,rawOutput:r}}function
|
|
172
|
-
`),n=r.at(-1)==="",s=n?r.slice(0,-1):r,o=t.limit??
|
|
164
|
+
${r[r.length-1]}`,s=Buffer.from(n);return s.length<=t?n:s.subarray(0,t).toString("utf8").replace(/�$/,"")}function kk(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 NF(e){if(kk(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 FF(e){let t=NF(e),r=CF(t.executable,t.args,{stdio:["ignore","pipe","pipe"]}),n=Ue();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 jF(e){let t=Sk(e);if(!kr(t))return null;let r=Array.isArray(t.testResults)?t.testResults:[],n=[],s=Sr(t.numTotalTests),o=Sr(t.numFailedTests),i=qF(Sr(t.startTime),Sr(t.endTime));for(let a of r){if(!kr(a))continue;let c=Gt(a.name)||Gt(a.file)||"",u=Array.isArray(a.assertionResults)?a.assertionResults:[];for(let l of u)kr(l)&&l.status==="failed"&&n.push({suite:c,name:Gt(l.fullName)||Gt(l.title)||Gt(l.name),excerpt:UF(l.failureMessages)||Gt(l.failureMessage)})}return s||=r.reduce((a,c)=>!kr(c)||!Array.isArray(c.assertionResults)?a:a+c.assertionResults.length,0),o||=n.length,i||=r.reduce((a,c)=>kr(c)?a+Sr(c.perfStats&&kr(c.perfStats)?c.perfStats.runtime:c.duration)/1e3:a,0),{failed:o,total:s,suites:r.length||1,durationSeconds:i,failures:n}}function MF(e){let t=e.split(`
|
|
165
|
+
`).filter(Boolean).map(c=>Sk(c)).filter(kr);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+=Sr(c.test_count)),(c.event==="failed"||c.event==="ok")&&(s+=Sr(c.failed),i+=Sr(c.exec_time));continue}if(c.type==="test"&&c.event==="failed"){r.push({suite:Gt(c.name).split("::").slice(0,-1).join("::"),name:Gt(c.name),excerpt:Gt(c.stdout)});continue}if(c.reason==="compiler-message"&&kr(c.message)){let u=Gt(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(`
|
|
166
|
+
`)}),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 BF(e,t,r){let n=Buffer.from(e);if(n.length<=Yp)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,Yp).toString("utf8").replace(/\uFFFD$/,""),i=n.length-Buffer.byteLength(o);return{text:`${o}
|
|
167
|
+
\u2026 elided ${i} bytes (+${n.length}) \u2014 ${ht(s)}`,handle:s,bytesElided:n.length}}function Sk(e){try{return JSON.parse(e)}catch{return null}}function UF(e){return Array.isArray(e)?e.map(t=>String(t)).filter(Boolean).join(`
|
|
168
|
+
`):""}function HF(e){return`${Number(e.toFixed(1))}s`}function qF(e,t){return e>0&&t>e?(t-e)/1e3:0}function Sr(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function Gt(e){return typeof e=="string"?e:""}function kr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Yp,AF,PF,IF,Zp=y(()=>{"use strict";ge();q();Zr();Es();ut();Yp=320,AF=160,PF=Yp,IF=3});var rm={};Z(rm,{parseCatCommand:()=>tm,renderCatContract:()=>XF,runCatWrapper:()=>QF});import{isUtf8 as WF}from"node:buffer";import{readFile as JF}from"node:fs/promises";import{extname as VF}from"node:path";async function QF(e,t){let r=tm(e),n;try{n=await JF(r.file)}catch(s){let o=s instanceof Error?s.message:String(s),i=Ie(e.join(" "),"",o);return{stdout:W({...i,help:`ls ${r.file}`}),stderr:Buffer.from(`${o}
|
|
169
|
+
`),status:1,signal:null}}return Ak(n)?{stdout:n,stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:n}:await Ck(e,r,n,t)}async function XF(e,t,r){if((t.status??0)!==0||t.signal){let i=Ie(e.join(" "),t.stdout,t.stderr);return{stdout:W(i),stderr:Buffer.from(t.stderr),status:i.exitCode??1,signal:t.signal}}let n=tm(e),s=Buffer.from(t.stdout,"utf8");return Ak(s)?{stdout:s,stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,rawOutput:s}:{...await Ck(e,n,s,r),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal}}function tm(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=Ok(t[++i],em);continue}if(a.startsWith("--head=")||a.startsWith("--tail=")){let[c,u]=a.split("=",2);r=c.slice(2),n=Ok(u,em);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 Ck(e,t,r,n){let s=r.toString("utf8"),o=tj(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>xk(n.heavyByteThreshold,Tk)||o.truncated;if(!vk(t.file)&&!i)return{stdout:Buffer.from(o.text),stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:r};let a=vk(t.file)?ZF(e,t.file,r,s,n.level,o):ej(e,t.file,r,s,o),c=`${D(a)}
|
|
170
|
+
`;if(!i&&Buffer.byteLength(c)<=xk(n.heavyByteThreshold,Tk))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 ${ht(u)}
|
|
171
|
+
`;return{stdout:Buffer.from(`${c}${l}`),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,mintedHandle:u,bytesElided:r.length,rawOutput:r}}function ZF(e,t,r,n,s,o){let i=sc(n),a=s==="terse"?zF:KF,c=sc(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:rj(i),content:{head:u,tail:l,truncated:o.truncated||u.length+l.length<i.length}}}function ej(e,t,r,n,s){return{command:e.join(" "),file:t,kind:"text",bytes:r.length,lines:sc(n).length,content:sc(s.text),truncated:s.truncated}}function tj(e,t){if(t.mode==="full")return{text:e,truncated:!1};let r=e.split(`
|
|
172
|
+
`),n=r.at(-1)==="",s=n?r.slice(0,-1):r,o=t.limit??em,i=t.mode==="head"?s.slice(0,o):s.slice(Math.max(0,s.length-o));return{text:`${i.join(`
|
|
173
173
|
`)}${n&&i.length>0?`
|
|
174
|
-
`:""}`,truncated:i.length<s.length}}function
|
|
175
|
-
`);return t.at(-1)===""?t.slice(0,-1):t}function
|
|
176
|
-
`),s
|
|
174
|
+
`:""}`,truncated:i.length<s.length}}function rj(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&&!nj(a[1])&&t.push({kind:"method",name:a[1],line:r+1,signature:s})}return t}function sc(e){let t=e.split(`
|
|
175
|
+
`);return t.at(-1)===""?t.slice(0,-1):t}function Ak(e){return e.includes(0)||!WF(e)}function vk(e){return YF.has(VF(e).toLowerCase())}function nj(e){return["for","if","switch","while"].includes(e)}function xk(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function Ok(e,t){let r=Number(e);return Number.isInteger(r)&&r>0?r:t}var Tk,em,KF,zF,YF,nm=y(()=>{"use strict";q();Zr();ut();Tk=8*1024,em=10,KF=8,zF=2,YF=new Set([".c",".cc",".cpp",".cs",".go",".java",".js",".jsx",".mjs",".py",".rs",".ts",".tsx"])});var Fk={};Z(Fk,{REPO_STORE_PATH:()=>im,mergeRspBlock:()=>Dk,provisionRspRepoStore:()=>mj});import{constants as sj}from"node:fs";import{access as oj,copyFile as ij,mkdir as Ik,readFile as aj,rename as cj,writeFile as Lk}from"node:fs/promises";import{dirname as uj,join as No,resolve as lj}from"node:path";async function mj(e,t={}){let r=lj(e),n=No(r,".red"),s=No(n,"config.yaml"),o=No(r,im);await Ik(n,{recursive:!0}),await Ik(uj(o),{recursive:!0});let i="";try{i=await aj(s,"utf8")}catch(m){if(m.code!=="ENOENT")throw m}let a=Dk(i,{enabled:!0,ttlDays:t.ttlDays??dt,ephemeralTtlHours:t.ephemeralTtlHours??pt,byteBudget:t.byteBudget??mt,heavyGitByteThreshold:t.heavyGitByteThreshold??Yt}),c=a!==i;c&&await Lk(s,a,"utf8");let u=!await om(o),l=!1,d=!1;if(u){let m=No(r,dj),f=No(r,pj);if(await om(m))await cj(m,o),d=!0;else if(await om(f))await ij(f,o),l=!0;else{let{provisionElisionStore:b}=await Promise.resolve().then(()=>(Oa(),_E)),_=process.env.REDDB_BIN;try{await b({uri:`file://${o}`,ttlDays:t.ttlDays??dt,ephemeralTtlHours:t.ephemeralTtlHours??pt,byteBudget:t.byteBudget??mt})}finally{_===void 0?delete process.env.REDDB_BIN:process.env.REDDB_BIN=_}}}let p=fj(a,im);return p!==a&&await Lk(s,p,"utf8"),{configPath:s,storePath:o,configChanged:c||p!==a,storeCreated:u,memoryStoreMigrated:l,legacyStoreMigrated:d}}function Dk(e,t){let r=["rsp:",` enabled: ${t.enabled?"true":"false"}`,` ttlDays: ${oc(t.ttlDays,dt)}`,` ephemeralTtlHours: ${oc(t.ephemeralTtlHours,pt)}`,` byteBudget: ${oc(t.byteBudget,mt)}`,` heavyGitByteThreshold: ${oc(t.heavyGitByteThreshold,Yt)}`],n=e===""?[]:e.replace(/\n+$/,"").split(`
|
|
176
|
+
`),s=$k(n,"rsp");if(s===-1){let a=[...n];return a.length>0&&a[a.length-1].trim()!==""&&a.push(""),a.push(...r),`${a.join(`
|
|
177
177
|
`)}
|
|
178
|
-
`}let o=
|
|
178
|
+
`}let o=am(n,s,0);return`${[...n.slice(0,s),...r,...n.slice(o)].join(`
|
|
179
179
|
`)}
|
|
180
|
-
`}function
|
|
181
|
-
`),n
|
|
180
|
+
`}function $k(e,t){for(let r=0;r<e.length;r++){let n=e[r];if(um(n)&&cm(n)===0&&Nk(n)===t)return r}return-1}function am(e,t,r){let n=e.length;for(let s=t+1;s<e.length;s++)if(um(e[s])&&cm(e[s])<=r){n=s;break}for(;n-1>t&&e[n-1].trim()==="";)n--;return n}function cm(e){return(e.match(/^ */)?.[0]??"").length}function um(e){let t=e.trim();return t!==""&&!t.startsWith("#")}function Nk(e){return e.replace(/^ */,"").replace(/:.*$/,"").trim()}function oc(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function fj(e,t){let r=e===""?[]:e.replace(/\n+$/,"").split(`
|
|
181
|
+
`),n=$k(r,"plugins");if(n===-1)return e;let s=am(r,n,0),o=Gk(r,"memory",n+1,s,2);if(o===-1)return e;let i=am(r,o,2),a=[...r],c=Gk(a,"storePath",o+1,i,4);return c!==-1?a[c]=` storePath: ${t}`:a.splice(i,0,` storePath: ${t}`),`${a.join(`
|
|
182
182
|
`)}
|
|
183
|
-
`}function
|
|
184
|
-
`}function
|
|
183
|
+
`}function Gk(e,t,r,n,s){for(let o=r;o<n;o++){let i=e[o];if(um(i)&&cm(i)===s&&Nk(i)===t)return o}return-1}async function om(e){try{return await oj(e,sj.F_OK),!0}catch{return!1}}var im,dj,pj,jk=y(()=>{"use strict";Be();He();im=dl,dj=gg,pj=".red/memory/graph.rdb"});var Wk={};Z(Wk,{runRspMcpServer:()=>hj});import{createInterface as gj}from"node:readline";async function hj(){let e=xe(process.cwd(),process.env),t=gj({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 yj(n,e);Uk({jsonrpc:"2.0",id:n.id??null,result:s})}catch(s){Uk({jsonrpc:"2.0",id:typeof Hk(r)?.id>"u"?null:Hk(r)?.id,error:{code:-32e3,message:s instanceof Error?s.message:String(s)}})}}}async function yj(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:Bk(t)}]};if(!t.enabled)return{content:[{type:"text",text:Bk(t)}],isError:!0};let n=Tj(t);if(r?.name==="rsp_stats")return{content:[{type:"text",text:sn({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:sn({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:sn({tool:"rsp_show",handle:s,found:!0,bytes:o.original.length,text:o.original.toString("utf8")})}]}:{content:[{type:"text",text:sn(bj(s,"not found"))}],isError:!0}}if(r?.name==="rsp_compress")return{content:[{type:"text",text:await wj(r.arguments,n)}]}}return{}}function sn(e){return`${pe(e)}
|
|
184
|
+
`}function bj(e,t){return{tool:"rsp_show",handle:e,found:!1,category:"real-error",error:t,help:["rsp show el:<id>"]}}async function wj(e,t){let r=Ej(e?.payload);try{return await _j(r,e,t)}catch(n){if(process.env.RSP_DEBUG==="1")throw n;return qk(r)}}async function _j(e,t,r){let n=Rj(t?.level),s=await hp(e,{level:n,command:"rsp mcp compress",store:r});if(s.detected)return qk(s.output);let o=ja(e);if(n==="brief"&&Buffer.byteLength(o)<=2*1024)return sn({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 kj(o,i.length,a,n)}function Ej(e){return typeof e=="string"?e:e==null?"":JSON.stringify(e)}function Rj(e){return e==="terse"?"terse":"brief"}function kj(e,t,r,n){let s=n==="terse"?1024:2048,o=Buffer.from(e),i=Math.max(1,Math.floor(s/2)),a=Mk(o.subarray(0,i)),c=Mk(o.subarray(Math.max(0,o.length-i)));return sn({tool:"rsp_compress",level:n,detected:"text",bytes:t,lines:Sj(o),head:a,tail:c&&c!==a?c:null,handle:r,help:[`rsp show ${r}`]})}function qk(e){return e.endsWith(`
|
|
185
185
|
`)?e:`${e}
|
|
186
|
-
`}function
|
|
187
|
-
`)}function
|
|
188
|
-
`)}function
|
|
189
|
-
`)}function sc(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(oc),n=t.map(o=>o.command.slice(1)).filter(o=>o.length>1&&o.every(oc)),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=>Uk(i)).join("|");s.push(` ${o}) command rsp ${e} "$@" ;;`)}for(let[o,i]of Sj(n)){let a=i.map(c=>c.map((u,l)=>`[ "$${l+2}" = '${vj(u)}' ]`).join(" && ")).join(" || ");s.push(` ${Uk(o)}) if ${a}; then command rsp ${e} "$@"; else command ${e} "$@"; fi ;;`)}return s.push(` *) command ${e} "$@" ;;`," esac","}"),s}function Sj(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 Tj(e){let t=new Map;for(let r of e){let n=r.command[0];if(!n||!oc(n))continue;let s=t.get(n)??[];s.push(r),t.set(n,s)}return t}function oc(e){return!!(e&&/^[A-Za-z0-9_./:-]+$/.test(e))}function Uk(e){return e.replace(/[\\|)&;]/g,"\\$&")}function vj(e){return e.replace(/'/g,"'\\''")}function xj(e){return e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}var qk=h(()=>{"use strict";Ao()});function im(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"&&Oj(t.chosenOption)&&Cj(t.outcome)&&Aj(t.cost)}function Oj(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.kind=="string"&&t.kind.length>0}function Cj(e){return e==="success"||e==="failure"||e==="escalated"}function Aj(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 Wk=h(()=>{});import{createHash as Pj}from"node:crypto";function nS(e,t){return new cm(e,t)}function Jk(e){let t=Number(e.red_entity_id??e.rid),r=um(e.properties??e.PROPERTIES),n=sS(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 Vk(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=oS(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:um(e.properties??e.PROPERTIES)}}function Gj(e){let t=Number(e.red_entity_id??e.rid),r=um(e.properties??e.PROPERTIES);return!Number.isFinite(t)||!im(r)?null:{rid:t,event:r}}function um(e){return e==null?{}:typeof e=="string"?JSON.parse(e):ic(e)?e:{}}function sS(e){let t=e==="contact"?"person":e;if(Ij.has(t))return t;throw new Error(`invalid Brain artifact kind: ${e}`)}function oS(e){if(Lj.has(e))return e;throw new Error(`invalid Brain connection kind: ${e}`)}function Dj(e){return e==="hour"||e==="week"||e==="month"?e:"day"}function Kk(e){if(typeof e=="number")return e;let t=String(e??"");return/^\d+$/.test(t)?Number(t):t}function sn(e){return ic(e)?e:{}}function zk(e,t){return sn(e)[t]}function Yk(e,t){let r=e[t];if(typeof r!="string")throw new Error(`brain ${t} must be a string`);return r}function Qk(e,t){let r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function Xk(e){let t=sn(e);return{excludeRids:Array.isArray(t.excludeRids)?t.excludeRids.map(Number).filter(Number.isFinite):void 0}}function Ne(e){return typeof e=="string"&&e.length>0?e:void 0}function ic(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function am(e){return e!=null}function $j(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean))).sort()}function Nj(e){return Pj("sha256").update(JSON.stringify(e)).digest("hex")}function Fj(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"artifact"}function Zk(e){return`artifact-hash:${e}`}function eS(e,t,r){return`connection:${e}:${t}:${r}`}function tS(){return"model-tier-bandit:v1"}function jj(e){return e.toLowerCase().split(/[^a-z0-9_]+/).map(t=>t.trim()).filter(t=>t.length>1)}function rS(e,t){let r=0,n=e.indexOf(t);for(;n>=0;)r++,n=e.indexOf(t,n+t.length);return r}function iS(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+rS(r,a)*3+rS(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 Mj(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=aS({...iS(a,t),connections:0,vector:0}).total;c>0&&(s+=Math.min(c,12)*.35)}return nn(s)}function aS(e){return{...e,lexical:nn(e.lexical),tags:nn(e.tags),kind:nn(e.kind),connections:nn(e.connections),vector:nn(e.vector),total:nn(e.lexical+e.tags+e.kind+e.connections+e.vector)}}function nn(e){return Math.round(e*1e3)/1e3}function Bj(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 Uj(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 Hj(e){let t={};for(let r of e)t[r]=(t[r]??0)+1;return t}var Lt,Ij,Lj,cm,cS=h(()=>{"use strict";Wk();Lt={artifacts:"brain_artifacts",connections:"brain_connections",outcomeEvents:"brain_outcome_events",kv:"brain_kv"},Ij=new Set(["pillar","decision","concept","question","playbook","task","event","pattern","hypothesis","fact","source","bookmark","note","reference","custom","project","idea","meeting","claim","organization","person"]),Lj=new Set(["supports","contradicts","depends_on","derived_from","related_to","part_of","preceded_by","followed_by","authored","tagged"]),cm=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(sn(r));if(t==="getArtifact")return await this.getArtifact(zk(r,"ridOrId"));if(t==="listArtifacts")return await this.listArtifacts();if(t==="search"){let n=sn(r);return await this.search(Yk(n,"query"),Qk(n,"limit")??10,Xk(n.options))}if(t==="think"){let n=sn(r);return await this.think(Yk(n,"query"),Qk(n,"limit")??8,Xk(n.options))}if(t==="link")return await this.link(sn(r));if(t==="backlinks")return await this.backlinks(zk(r,"target"));if(t==="listConnections")return await this.listConnections();if(t==="eventKpis")return await this.eventKpis(sn(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 ${Lt.artifacts}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${Lt.connections}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${Lt.outcomeEvents}`)}async status(){let t=await this.listArtifacts(),r=await this.listConnections();return{uri:this.uri,artifacts:t.length,connections:r.length,kinds:Hj(t.map(n=>n.kind))}}async capture(t){let r=Ne(t.title)||"Untitled artifact",n=Ne(t.content);if(!n)throw new Error("brain capture requires content");let s=sS(Ne(t.kind)||"note"),o=$j(Array.isArray(t.tags)?t.tags.map(String):[]),i=Date.now(),a=Nj([s,r,n,o,Ne(t.sourcePath),Ne(t.sourceSession)]),c=await this.kv().get(Zk(a));if(c!=null){let f=await this.getArtifact(Number(c));if(f)return f}let u=`${Fj(r)}-${a.slice(0,8)}`,l={id:u,title:r,content:n,tags:o,source_agent:Ne(t.sourceAgent),source_runner:Ne(t.sourceRunner),source_session:Ne(t.sourceSession),source_path:Ne(t.sourcePath),created_at:i,updated_at:i,hash:a,metadata:ic(t.metadata)?t.metadata:void 0},p=(await this.db.query(`INSERT INTO ${Lt.artifacts} NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *`,u,s,a,l)).rows[0];if(!p)throw new Error("INSERT artifact returned no row");let m=Jk(p);if(!m)throw new Error("INSERT artifact returned invalid row");return await this.kv().put(Zk(a),m.rid),await this.materializeTagConnections(m),m}async getArtifact(t){let r=await this.listArtifacts();return typeof t=="number"?r.find(n=>n.rid===t)??null:r.find(n=>n.properties.id===t||n.label===t)??null}async listArtifacts(){return(await this.db.query(`SELECT * FROM ${Lt.artifacts}`)).rows.map(Jk).filter(am)}async search(t,r,n={}){let s=jj(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=iS(u,s),d=aS({...l,connections:Mj(u,s,a,c),vector:0});return{artifact:u,score:d.total,score_breakdown:d,excerpt:Bj(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 Uj(t,s)}async link(t){let r=await this.getArtifact(Kk(t.from)),n=await this.getArtifact(Kk(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=oS(Ne(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:Ne(t.reason),confidence:Ne(t.confidence)||"explicit",created_at:Date.now(),metadata:ic(t.metadata)?t.metadata:void 0},c=(await this.db.query(`INSERT INTO ${Lt.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=Vk(c);if(!u)throw new Error("INSERT connection returned invalid row");return await this.kv().put(eS(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 ${Lt.connections}`)).rows.map(Vk).filter(am)}async eventKpis(t){let r=(await this.listArtifacts()).filter(o=>o.kind==="event"),n=Dj(Ne(t.interval)||"day"),s=Ne(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(!im(t))throw new Error("invalid Brain outcome event");if(!(await this.db.query(`INSERT INTO ${Lt.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 ${Lt.outcomeEvents}`)).rows.map(Gj).filter(am).sort((r,n)=>r.rid-n.rid).map(({event:r})=>r)}async loadModelTierBanditDocument(){let t=await this.kv().get(tS());return typeof t=="string"?JSON.parse(t):t}async saveModelTierBanditDocument(t){return await this.kv().put(tS(),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(eS(t,r,n));return s!=null?Number(s):null}kv(){return this.db.kv(Lt.kv)}}});var ES={};Y(ES,{runResidentServer:()=>Yj});import{randomUUID as es}from"node:crypto";import{execFileSync as gS,spawn as qj}from"node:child_process";import{existsSync as Wj}from"node:fs";import{mkdir as hS,rename as Jj,rm as uS,writeFile as yS}from"node:fs/promises";import{createServer as Vj}from"node:net";import{dirname as mm,join as ac}from"node:path";import{fileURLToPath as Kj,pathToFileURL as zj}from"node:url";async function Yj(e){await hS(mm(e.socketPath),{recursive:!0});let t=uM();cM();let r=e.telemetryDrainTimeoutMs??bS,n={kind:"opening",startedAt:process.hrtime.bigint()},s,o=!1,i=e.github??bM(e.rootDir??process.cwd()),a=e.idleMs??Ni,c,u,l=!1,d=new Set,p=e.telemetryDrainIntervalMs??3e4,m=Vj(L=>{d.add(L),L.once("close",()=>d.delete(L)),E(),hM(L,async(F,W)=>{E();let le=await yM(n,F,e.storeUri,e.residentVersion??"0.0.0-dev",i),ce={id:F.id,ok:!0,value:le,storeOpenCount:n.kind==="ready"?n.storeOpenCount:void 0,storeElapsedMs:n.kind==="ready"?n.storeElapsedMs:void 0};W(ce),F.op==="handover"&&setImmediate(()=>f())})});function f(){o=!0,l=!0,u=aM(u),m.close();for(let L of d)L.destroy()}function E(){n.kind!=="opening"&&(c&&clearTimeout(c),c=setTimeout(()=>{f()},a),c.unref())}let y=["SIGINT","SIGTERM"].map(L=>{let F=()=>{cc(),m.close();for(let W of d)W.destroy();setTimeout(()=>process.exit(0),1e3)};return process.once(L,F),{signal:L,handler:F}});await new Promise((L,F)=>{m.once("error",F),m.listen(e.socketPath,()=>{m.off("error",F),L()})}),(async()=>{let L=process.hrtime.bigint();process.env.RSP_TEST_HANG_RESIDENT_STORE_OPEN==="1"&&await new Promise(()=>{});let F=Number(process.env.RSP_TEST_DELAY_RESIDENT_STORE_OPEN_MS??"0");Number.isFinite(F)&&F>0&&await new Promise(ye=>setTimeout(ye,F));let W=await zr.open({uri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,allowResidentOpen:!0}),le=Number(process.hrtime.bigint()-L)/1e6,ce=new pm(W,{rootDir:e.rootDir??process.cwd(),ttlDays:e.telemetryTtlDays??Di,byteBudget:e.telemetryByteBudget??e.byteBudget??$i});if(o){await W.close();return}if(await lm(ce,r),o){await W.close();return}n={kind:"ready",store:W,telemetry:ce,storeOpenCount:1,storeElapsedMs:le},s=setInterval(()=>{let ye=n.kind==="ready"?n:void 0;ye&&lm(ye.telemetry,r)},p),s.unref(),E()})().catch(L=>{n={kind:"failed",error:L instanceof Error?L:new Error(String(L))},E()}),e.pidPath&&await yS(e.pidPath,`${process.pid}
|
|
190
|
-
`,{encoding:"utf8",mode:384});let
|
|
191
|
-
`,{encoding:"utf8",mode:384}),await
|
|
192
|
-
`)}}async function
|
|
186
|
+
`}function Mk(e){return e.toString("utf8").replace(/�$/g,"")}function Sj(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 Tj(e){return Cs(process.cwd(),e)}function Bk(e){let t=e.enabled?or(process.cwd(),e.overhead):null;return sn({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 Uk(e){process.stdout.write(`${JSON.stringify(e)}
|
|
187
|
+
`)}function Hk(e){try{return JSON.parse(e)}catch{return null}}var Jk=y(()=>{"use strict";Ut();He();ge();To();ar()});var Kk={};Z(Kk,{renderShellInit:()=>vj});function vj(e,t=Io){if(e==="fish")return xj(t);if(e==="bash"||e==="zsh")return Oj(e,t);throw new Error(`unsupported shell: ${e}`)}function xj(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(ac))].map(r=>` abbr --add --position command -- ${r} '${Ij(`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(`
|
|
188
|
+
`)}function Oj(e,t){let r=Aj(t);return[`# rsp shell-init ${e}`,`# Opt-in only: source this output from ${e} startup files; remove that line to restore raw commands.`,...ic("git",r.get("git")??[]),...ic("gh",r.get("gh")??[]),...ic("vitest",r.get("vitest")??[]),...ic("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(`
|
|
189
|
+
`)}function ic(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(ac),n=t.map(o=>o.command.slice(1)).filter(o=>o.length>1&&o.every(ac)),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=>Vk(i)).join("|");s.push(` ${o}) command rsp ${e} "$@" ;;`)}for(let[o,i]of Cj(n)){let a=i.map(c=>c.map((u,l)=>`[ "$${l+2}" = '${Pj(u)}' ]`).join(" && ")).join(" || ");s.push(` ${Vk(o)}) if ${a}; then command rsp ${e} "$@"; else command ${e} "$@"; fi ;;`)}return s.push(` *) command ${e} "$@" ;;`," esac","}"),s}function Cj(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 Aj(e){let t=new Map;for(let r of e){let n=r.command[0];if(!n||!ac(n))continue;let s=t.get(n)??[];s.push(r),t.set(n,s)}return t}function ac(e){return!!(e&&/^[A-Za-z0-9_./:-]+$/.test(e))}function Vk(e){return e.replace(/[\\|)&;]/g,"\\$&")}function Pj(e){return e.replace(/'/g,"'\\''")}function Ij(e){return e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}var zk=y(()=>{"use strict";Lo()});function lm(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"&&Lj(t.chosenOption)&&Gj(t.outcome)&&Dj(t.cost)}function Lj(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.kind=="string"&&t.kind.length>0}function Gj(e){return e==="success"||e==="failure"||e==="escalated"}function Dj(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 Yk=y(()=>{});import{createHash as $j}from"node:crypto";function cS(e,t){return new pm(e,t)}function Qk(e){let t=Number(e.red_entity_id??e.rid),r=mm(e.properties??e.PROPERTIES),n=uS(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 Xk(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=lS(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:mm(e.properties??e.PROPERTIES)}}function jj(e){let t=Number(e.red_entity_id??e.rid),r=mm(e.properties??e.PROPERTIES);return!Number.isFinite(t)||!lm(r)?null:{rid:t,event:r}}function mm(e){return e==null?{}:typeof e=="string"?JSON.parse(e):cc(e)?e:{}}function uS(e){let t=e==="contact"?"person":e;if(Nj.has(t))return t;throw new Error(`invalid Brain artifact kind: ${e}`)}function lS(e){if(Fj.has(e))return e;throw new Error(`invalid Brain connection kind: ${e}`)}function Mj(e){return e==="hour"||e==="week"||e==="month"?e:"day"}function Zk(e){if(typeof e=="number")return e;let t=String(e??"");return/^\d+$/.test(t)?Number(t):t}function an(e){return cc(e)?e:{}}function eS(e,t){return an(e)[t]}function tS(e,t){let r=e[t];if(typeof r!="string")throw new Error(`brain ${t} must be a string`);return r}function rS(e,t){let r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function nS(e){let t=an(e);return{excludeRids:Array.isArray(t.excludeRids)?t.excludeRids.map(Number).filter(Number.isFinite):void 0}}function Ne(e){return typeof e=="string"&&e.length>0?e:void 0}function cc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function dm(e){return e!=null}function Bj(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean))).sort()}function Uj(e){return $j("sha256").update(JSON.stringify(e)).digest("hex")}function Hj(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"artifact"}function sS(e){return`artifact-hash:${e}`}function oS(e,t,r){return`connection:${e}:${t}:${r}`}function iS(){return"model-tier-bandit:v1"}function qj(e){return e.toLowerCase().split(/[^a-z0-9_]+/).map(t=>t.trim()).filter(t=>t.length>1)}function aS(e,t){let r=0,n=e.indexOf(t);for(;n>=0;)r++,n=e.indexOf(t,n+t.length);return r}function dS(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+aS(r,a)*3+aS(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 Wj(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=pS({...dS(a,t),connections:0,vector:0}).total;c>0&&(s+=Math.min(c,12)*.35)}return on(s)}function pS(e){return{...e,lexical:on(e.lexical),tags:on(e.tags),kind:on(e.kind),connections:on(e.connections),vector:on(e.vector),total:on(e.lexical+e.tags+e.kind+e.connections+e.vector)}}function on(e){return Math.round(e*1e3)/1e3}function Jj(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 Vj(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 Kj(e){let t={};for(let r of e)t[r]=(t[r]??0)+1;return t}var Dt,Nj,Fj,pm,mS=y(()=>{"use strict";Yk();Dt={artifacts:"brain_artifacts",connections:"brain_connections",outcomeEvents:"brain_outcome_events",kv:"brain_kv"},Nj=new Set(["pillar","decision","concept","question","playbook","task","event","pattern","hypothesis","fact","source","bookmark","note","reference","custom","project","idea","meeting","claim","organization","person"]),Fj=new Set(["supports","contradicts","depends_on","derived_from","related_to","part_of","preceded_by","followed_by","authored","tagged"]),pm=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(an(r));if(t==="getArtifact")return await this.getArtifact(eS(r,"ridOrId"));if(t==="listArtifacts")return await this.listArtifacts();if(t==="search"){let n=an(r);return await this.search(tS(n,"query"),rS(n,"limit")??10,nS(n.options))}if(t==="think"){let n=an(r);return await this.think(tS(n,"query"),rS(n,"limit")??8,nS(n.options))}if(t==="link")return await this.link(an(r));if(t==="backlinks")return await this.backlinks(eS(r,"target"));if(t==="listConnections")return await this.listConnections();if(t==="eventKpis")return await this.eventKpis(an(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 ${Dt.artifacts}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${Dt.connections}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${Dt.outcomeEvents}`)}async status(){let t=await this.listArtifacts(),r=await this.listConnections();return{uri:this.uri,artifacts:t.length,connections:r.length,kinds:Kj(t.map(n=>n.kind))}}async capture(t){let r=Ne(t.title)||"Untitled artifact",n=Ne(t.content);if(!n)throw new Error("brain capture requires content");let s=uS(Ne(t.kind)||"note"),o=Bj(Array.isArray(t.tags)?t.tags.map(String):[]),i=Date.now(),a=Uj([s,r,n,o,Ne(t.sourcePath),Ne(t.sourceSession)]),c=await this.kv().get(sS(a));if(c!=null){let f=await this.getArtifact(Number(c));if(f)return f}let u=`${Hj(r)}-${a.slice(0,8)}`,l={id:u,title:r,content:n,tags:o,source_agent:Ne(t.sourceAgent),source_runner:Ne(t.sourceRunner),source_session:Ne(t.sourceSession),source_path:Ne(t.sourcePath),created_at:i,updated_at:i,hash:a,metadata:cc(t.metadata)?t.metadata:void 0},p=(await this.db.query(`INSERT INTO ${Dt.artifacts} NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *`,u,s,a,l)).rows[0];if(!p)throw new Error("INSERT artifact returned no row");let m=Qk(p);if(!m)throw new Error("INSERT artifact returned invalid row");return await this.kv().put(sS(a),m.rid),await this.materializeTagConnections(m),m}async getArtifact(t){let r=await this.listArtifacts();return typeof t=="number"?r.find(n=>n.rid===t)??null:r.find(n=>n.properties.id===t||n.label===t)??null}async listArtifacts(){return(await this.db.query(`SELECT * FROM ${Dt.artifacts}`)).rows.map(Qk).filter(dm)}async search(t,r,n={}){let s=qj(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=dS(u,s),d=pS({...l,connections:Wj(u,s,a,c),vector:0});return{artifact:u,score:d.total,score_breakdown:d,excerpt:Jj(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 Vj(t,s)}async link(t){let r=await this.getArtifact(Zk(t.from)),n=await this.getArtifact(Zk(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=lS(Ne(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:Ne(t.reason),confidence:Ne(t.confidence)||"explicit",created_at:Date.now(),metadata:cc(t.metadata)?t.metadata:void 0},c=(await this.db.query(`INSERT INTO ${Dt.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=Xk(c);if(!u)throw new Error("INSERT connection returned invalid row");return await this.kv().put(oS(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 ${Dt.connections}`)).rows.map(Xk).filter(dm)}async eventKpis(t){let r=(await this.listArtifacts()).filter(o=>o.kind==="event"),n=Mj(Ne(t.interval)||"day"),s=Ne(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(!lm(t))throw new Error("invalid Brain outcome event");if(!(await this.db.query(`INSERT INTO ${Dt.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 ${Dt.outcomeEvents}`)).rows.map(jj).filter(dm).sort((r,n)=>r.rid-n.rid).map(({event:r})=>r)}async loadModelTierBanditDocument(){let t=await this.kv().get(iS());return typeof t=="string"?JSON.parse(t):t}async saveModelTierBanditDocument(t){return await this.kv().put(iS(),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(oS(t,r,n));return s!=null?Number(s):null}kv(){return this.db.kv(Dt.kv)}}});var vS={};Z(vS,{runResidentServer:()=>tM});import{randomUUID as rs}from"node:crypto";import{execFileSync as _S,spawn as zj}from"node:child_process";import{existsSync as Yj}from"node:fs";import{mkdir as ES,rename as Qj,rm as fS,writeFile as RS}from"node:fs/promises";import{createServer as Xj}from"node:net";import{dirname as ym,join as uc}from"node:path";import{fileURLToPath as Zj,pathToFileURL as eM}from"node:url";async function tM(e){await ES(ym(e.socketPath),{recursive:!0});let t=fM();mM();let r=e.telemetryDrainTimeoutMs??kS,n={kind:"opening",startedAt:process.hrtime.bigint()},s,o=!1,i=e.github??kM(e.rootDir??process.cwd()),a=e.idleMs??Mi,c,u,l=!1,d=new Set,p=e.telemetryDrainIntervalMs??3e4,m=Xj(A=>{d.add(A),A.once("close",()=>d.delete(A)),b(),EM(A,async(N,U)=>{b();let Q=await RM(n,N,e.storeUri,e.residentVersion??"0.0.0-dev",i),X={id:N.id,ok:!0,value:Q,storeOpenCount:n.kind==="ready"?n.storeOpenCount:void 0,storeElapsedMs:n.kind==="ready"?n.storeElapsedMs:void 0};U(X),N.op==="handover"&&setImmediate(()=>f())})});function f(){o=!0,l=!0,u=pM(u),m.close();for(let A of d)A.destroy()}function b(){n.kind!=="opening"&&(c&&clearTimeout(c),c=setTimeout(()=>{f()},a),c.unref())}let h=["SIGINT","SIGTERM"].map(A=>{let N=()=>{lc(),m.close();for(let U of d)U.destroy();setTimeout(()=>process.exit(0),1e3)};return process.once(A,N),{signal:A,handler:N}});await new Promise((A,N)=>{m.once("error",N),m.listen(e.socketPath,()=>{m.off("error",N),A()})}),(async()=>{let A=process.hrtime.bigint();process.env.RSP_TEST_HANG_RESIDENT_STORE_OPEN==="1"&&await new Promise(()=>{});let N=Number(process.env.RSP_TEST_DELAY_RESIDENT_STORE_OPEN_MS??"0");Number.isFinite(N)&&N>0&&await new Promise(de=>setTimeout(de,N));let U=await Qr.open({uri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,allowResidentOpen:!0}),Q=Number(process.hrtime.bigint()-A)/1e6,X=new hm(U,{rootDir:e.rootDir??process.cwd(),ttlDays:e.telemetryTtlDays??Fi,byteBudget:e.telemetryByteBudget??e.byteBudget??ji});if(o){await U.close();return}if(await fm(X,r),o){await U.close();return}n={kind:"ready",store:U,telemetry:X,storeOpenCount:1,storeElapsedMs:Q},s=setInterval(()=>{let de=n.kind==="ready"?n:void 0;de&&fm(de.telemetry,r)},p),s.unref(),b()})().catch(A=>{n={kind:"failed",error:A instanceof Error?A:new Error(String(A))},b()}),e.pidPath&&await RS(e.pidPath,`${process.pid}
|
|
190
|
+
`,{encoding:"utf8",mode:384});let w=e.residentVersion??"0.0.0-dev",k=e.registryPath??uc(oe(e.rootDir??process.cwd()),"rsp-resident.pid.toon");try{await wi(k,{socket_path:e.socketPath,store_uri:e.storeUri,resident_version:w})}catch{}await new Promise(A=>m.once("close",A)),c&&clearTimeout(c),s&&clearInterval(s),await fS(e.socketPath,{force:!0});let x=n;x.kind==="ready"&&(await fm(x.telemetry,r,l),await x.store.close()),u&&clearTimeout(u);for(let{signal:A,handler:N}of h)process.off(A,N);t?.kill("SIGTERM"),lc(),e.pidPath&&await fS(e.pidPath,{force:!0}),await _i(k)}async function aM(e,t,r=new Date){let n=await Ca(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=uc(oe(t),oM),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 ES(ym(a),{recursive:!0}),await RS(c,`${pe(u)}
|
|
191
|
+
`,{encoding:"utf8",mode:384}),await Qj(c,a)}async function fm(e,t=kS,r=!1){try{r&&process.env.RSP_TEST_HANG_TELEMETRY_DRAIN==="1"&&await new Promise(()=>{}),await TS(e.drainAndSweep(),t,"telemetry drain timed out")}catch(n){process.stderr.write(`rsp resident: telemetry drain failed: ${n instanceof Error?n.message:String(n)}
|
|
192
|
+
`)}}async function cM(e){let t=[];for(let r of iM){let n=await uM(e,r);n.ok||(n.previousModel&&(n.previousModel!=="collection"&&await lM(e,r,n.previousModel),t.push({collection:r,previousModel:n.previousModel})),await e.query(`CREATE KV IF NOT EXISTS ${SS(r)}`))}return t}async function uM(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 lM(e,t,r){let n=dM(r);if(!n)throw new Error(`cannot self-heal telemetry collection ${t}: unsupported model ${r}`);await e.query(`DROP ${n} ${SS(t)}`)}function dM(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 SS(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid telemetry collection name: ${e}`);return e}function pM(e){return e&&clearTimeout(e),setTimeout(()=>{lc(),process.exit(0)},sM)}function mM(){gS||(gS=!0,process.on("exit",()=>lc()))}function fM(){if(process.platform==="win32")return;let t=zj(process.execPath,["-e",`
|
|
193
193
|
const { execFileSync } = require("node:child_process");
|
|
194
194
|
const parentPid = Number(process.argv[1]);
|
|
195
195
|
const known = new Set();
|
|
@@ -230,26 +230,26 @@ const timer = setInterval(() => {
|
|
|
230
230
|
clearInterval(timer);
|
|
231
231
|
process.exit(0);
|
|
232
232
|
}, 500);
|
|
233
|
-
`,String(process.pid)],{detached:!0,stdio:"ignore"});return t.unref(),t}function cc(){for(let e of lM())try{process.kill(e,"SIGTERM")}catch{}}function lM(){if(process.platform==="win32")return[];let e="";try{e=gS("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 dM(e){if(e.collection!==et)return e;let t=await dS(e.raw_text,mS(e.raw_bytes)),r=await dS(e.emitted_text,mS(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 dS(e,t){if(typeof e=="string"){let r=Buffer.byteLength(e,"utf8");if(r<=Qj)try{return await _S((async()=>({tokens:(await pM())("cl100k_base").encode(e).length,estimated:!1}))(),Xj,"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 pM(){return pS??=import(zj(mM()).href).then(e=>{let t=e.getEncoding;if(!t)throw new Error("js-tiktoken getEncoding export not found");return t}),await pS}function mM(){let e=mm(Kj(import.meta.url)),r=[ac(e,"..","node_modules","js-tiktoken","dist","index.js"),ac(e,"..","apps","rsp","node_modules","js-tiktoken","dist","index.js")].find(n=>Wj(n));if(!r)throw new Error("js-tiktoken dependency not found");return r}function mS(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function Se(e){return typeof e=="string"&&e.trim()!==""?e:void 0}function dm(e){return e.trim().split(/\s+/).filter(Boolean)[0]??"unknown"}async function _S(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 fM(e){try{return JSON.parse(e)}catch{return e}}function gM(e){return fS(e)&&e.version===1&&Array.isArray(e.records)&&e.records.every(t=>fS(t)&&(t.collection===Ge||t.collection===De||t.collection===et||t.collection===gt)&&typeof t.key=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&typeof t.bytes=="number")}function fS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function hM(e,t){jg(e,(r,n)=>t(r,n),(r,n,s)=>{s({id:n?.id??es(),ok:!1,error:r instanceof Error?r.message:String(r)})})}async function yM(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 sp(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 xa(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 op(i,t.sinceDays)}if(t.op==="mint")return{handle:await o.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return _M(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 wM(o,r,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}function bM(e){let t;return{async read(r){if(!t){let n=String(gS("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=zi({rootDir:e,token:n,balance:Ki(n)})}return await t.read(r)}}}async function wM(e,t,r,n){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await nS(s,t).request(r,n)}function _M(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var Qj,Xj,bS,Zj,eM,tM,pm,lS,pS,RS=h(()=>{"use strict";Be();bi();di();Mt();va();cS();Yl();Ot();He();Qj=256*1024,Xj=500,bS=2e3,Zj=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),eM="rsp-status-summary.toon",tM=[Ge,De,et,gt,Ys],pm=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 nM(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 kd(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:Se(c.command)||"unknown",source_id:Se(c.id),source_collection:Se(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 rM(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:es(),a={...await dM(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===Ge?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===Ge||r.accounting_recorded===!0?null:r.collection===et?await this.writeEvent(t,{collection:Ge,id:`mirror:${Se(r.id)||es()}`,created_at:Se(r.created_at)||Se(r.ts)||new Date().toISOString(),event_type:"invocation",command:Se(r.command)||"unknown",command_class:dm(Se(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===gt?await this.writeEvent(t,{collection:Ge,id:`mirror:${Se(r.id)||es()}`,created_at:Se(r.created_at)||Se(r.ts)||new Date().toISOString(),event_type:"invocation",command:Se(r.command)||"unknown",command_class:dm(Se(r.command)||"unknown"),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:Se(r.reason)||"unknown",wrapper_family:Se(r.wrapper_family),wrapper_exit_code:r.wrapper_exit_code,stderr_head:Se(r.stderr_head)}):null}async writeDrainDegradation(t,r){let n=await this.writeEvent(t,{collection:gt,id:es(),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:Ge,id:`mirror:${es()}`,created_at:n.created_at,event_type:"invocation",command:r.command,command_class:dm(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(Ys).get("index:v1"),n=typeof r=="string"?fM(r):r;return gM(n)?n:{version:1,records:[]}}async writeIndex(t,r){await t.kv(Ys).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})}};lS=!1});import{posix as kM,win32 as SM}from"node:path";import{fileURLToPath as TM}from"node:url";bc();ct();var Qf={"store-uri":{kind:"value",coerce:e=>e},brief:{kind:"boolean"},terse:{kind:"boolean"},query:{kind:"value",coerce:e=>e}},jv={json:{kind:"boolean"}},Mv={help:{kind:"boolean",aliases:["h"]}},Bv={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 Xf(e){let{command:t,args:r}=yc(e,Uv);return t==="--version"?{kind:"version",json:os(r,jv).values.json===!0}:Hv(e)?{kind:"help"}:{kind:"command"}}var Uv={commands:{"--version":{aliases:["-v"]},run:{}},default:"run",keepArgvOnDefault:!0};function Hv(e){return xr(e,Mv).values.help===!0}function Zf(e){let{values:t,rest:r}=Wv(e),n=r[0];if(n!==void 0&&n!=="--"&&n.startsWith("--"))throw ei.unknownFlag(n);let s=yc(r,Bv).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 ei=class e extends Error{static unknownFlag(t){return new e(`unknown flag: ${t}`)}render(){return H({command:"rsp",category:"usage",error:this.message,help:"rsp --help",validFlags:qv})}},qv=Object.keys(Qf).map(e=>`--${e}`);function Wv(e){try{return xr(e,Qf)}catch(t){throw new ei(t instanceof Error?t.message:String(t))}}function eg(e){return H({command:`rsp ${e.token}`,category:"usage",error:`unknown command: ${e.token}`,help:"rsp --help",validFlags:e.known})}function tg(e){return e instanceof ss}function yn(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}var Jv={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:sr},"ephemeral-ttl-hours":{kind:"value",coerce:sr},"byte-budget":{kind:"value",coerce:sr},"telemetry-ttl-days":{kind:"value",coerce:sr},"telemetry-byte-budget":{kind:"value",coerce:sr},"telemetry-drain-interval-ms":{kind:"value",coerce:sr},"telemetry-drain-timeout-ms":{kind:"value",coerce:sr},"idle-ms":{kind:"value",coerce:sr}};function iu(e){return os(e,Jv).values}var rg={since:{kind:"value",coerce:Kv},full:{kind:"boolean"}};function ti(e,t){return os(e,rg).values.since??t}function ng(e){return os(e,rg).values.full===!0}var Vv={field:{kind:"value",type:"array",aliases:["f","F"],coerce:e=>e}};function sg(e){let{values:t,rest:r}=xr(e,Vv),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 sr(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function Kv(e){let t=/^(\d+)(d)?$/.exec(e);if(!t)return;let r=Number(t[1]);return Number.isFinite(r)&&r>0?r:void 0}au();ct();import{existsSync as EM}from"node:fs";import{fileURLToPath as RM}from"node:url";Mt();ws();me();ut();import{existsSync as bI}from"node:fs";import{fileURLToPath as wI}from"node:url";Mt();ju();me();import{existsSync as SO}from"node:fs";import{fileURLToPath as TO}from"node:url";async function En(e,t){let r={stats:vO(e.telemetryByteBudget),telemetry:Hu(t)};if(!e.storeUri.startsWith("file://"))return r;let n=TO(e.storeUri);if(!SO(n))return r;let{residentElisionStore:s}=await Promise.resolve().then(()=>(ar(),Os)),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:Hu(t)}}catch{return r}finally{await o.close()}}function qu(e,t=Hu(30),r=!1,n=gh()){return`${ue(Wu(e,t,r,n))}
|
|
234
|
-
`}function
|
|
235
|
-
`}function
|
|
236
|
-
`}function
|
|
237
|
-
`)}function
|
|
238
|
-
`}async function
|
|
239
|
-
`;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
|
|
240
|
-
`);let s=await
|
|
241
|
-
`),await
|
|
242
|
-
`),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function
|
|
243
|
-
`),2}let r=
|
|
244
|
-
`),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function
|
|
245
|
-
`}async function
|
|
233
|
+
`,String(process.pid)],{detached:!0,stdio:"ignore"});return t.unref(),t}function lc(){for(let e of gM())try{process.kill(e,"SIGTERM")}catch{}}function gM(){if(process.platform==="win32")return[];let e="";try{e=_S("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 hM(e){if(e.collection!==tt)return e;let t=await hS(e.raw_text,bS(e.raw_bytes)),r=await hS(e.emitted_text,bS(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 hS(e,t){if(typeof e=="string"){let r=Buffer.byteLength(e,"utf8");if(r<=rM)try{return await TS((async()=>({tokens:(await yM())("cl100k_base").encode(e).length,estimated:!1}))(),nM,"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 yM(){return yS??=import(eM(bM()).href).then(e=>{let t=e.getEncoding;if(!t)throw new Error("js-tiktoken getEncoding export not found");return t}),await yS}function bM(){let e=ym(Zj(import.meta.url)),r=[uc(e,"..","node_modules","js-tiktoken","dist","index.js"),uc(e,"..","apps","rsp","node_modules","js-tiktoken","dist","index.js")].find(n=>Yj(n));if(!r)throw new Error("js-tiktoken dependency not found");return r}function bS(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function Se(e){return typeof e=="string"&&e.trim()!==""?e:void 0}function gm(e){return e.trim().split(/\s+/).filter(Boolean)[0]??"unknown"}async function TS(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 wM(e){try{return JSON.parse(e)}catch{return e}}function _M(e){return wS(e)&&e.version===1&&Array.isArray(e.records)&&e.records.every(t=>wS(t)&&(t.collection===Ge||t.collection===De||t.collection===tt||t.collection===gt)&&typeof t.key=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&typeof t.bytes=="number")}function wS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function EM(e,t){Hg(e,(r,n)=>t(r,n),(r,n,s)=>{s({id:n?.id??rs(),ok:!1,error:r instanceof Error?r.message:String(r)})})}async function RM(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 cp(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 Ca(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 up(i,t.sinceDays)}if(t.op==="mint")return{handle:await o.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return TM(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 SM(o,r,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}function kM(e){let t;return{async read(r){if(!t){let n=String(_S("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=Qi({rootDir:e,token:n,balance:Yi(n)})}return await t.read(r)}}}async function SM(e,t,r,n){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await cS(s,t).request(r,n)}function TM(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var rM,nM,kS,sM,oM,iM,hm,gS,yS,xS=y(()=>{"use strict";Be();Ei();fi();Ut();Oa();mS();ed();At();He();rM=256*1024,nM=500,kS=2e3,sM=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),oM="rsp-status-summary.toon",iM=[Ge,De,tt,gt,Zs],hm=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 cM(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 xd(this.opts.rootDir,async a=>{let c=Mn(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:Se(c.command)||"unknown",source_id:Se(c.id),source_collection:Se(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 aM(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:rs(),a={...await hM(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===Ge?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===Ge||r.accounting_recorded===!0?null:r.collection===tt?await this.writeEvent(t,{collection:Ge,id:`mirror:${Se(r.id)||rs()}`,created_at:Se(r.created_at)||Se(r.ts)||new Date().toISOString(),event_type:"invocation",command:Se(r.command)||"unknown",command_class:gm(Se(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===gt?await this.writeEvent(t,{collection:Ge,id:`mirror:${Se(r.id)||rs()}`,created_at:Se(r.created_at)||Se(r.ts)||new Date().toISOString(),event_type:"invocation",command:Se(r.command)||"unknown",command_class:gm(Se(r.command)||"unknown"),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:Se(r.reason)||"unknown",wrapper_family:Se(r.wrapper_family),wrapper_exit_code:r.wrapper_exit_code,stderr_head:Se(r.stderr_head)}):null}async writeDrainDegradation(t,r){let n=await this.writeEvent(t,{collection:gt,id:rs(),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:Ge,id:`mirror:${rs()}`,created_at:n.created_at,event_type:"invocation",command:r.command,command_class:gm(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(Zs).get("index:v1"),n=typeof r=="string"?wM(r):r;return _M(n)?n:{version:1,records:[]}}async writeIndex(t,r){await t.kv(Zs).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})}};gS=!1});import{posix as OM,win32 as CM}from"node:path";import{fileURLToPath as AM}from"node:url";_c();ut();var tg={"store-uri":{kind:"value",coerce:e=>e},brief:{kind:"boolean"},terse:{kind:"boolean"},query:{kind:"value",coerce:e=>e}},qv={json:{kind:"boolean"}},Wv={help:{kind:"boolean",aliases:["h"]}},Jv={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 rg(e){let{command:t,args:r}=wc(e,Vv);return t==="--version"?{kind:"version",json:as(r,qv).values.json===!0}:Kv(e)?{kind:"help"}:{kind:"command"}}var Vv={commands:{"--version":{aliases:["-v"]},run:{}},default:"run",keepArgvOnDefault:!0};function Kv(e){return Or(e,Wv).values.help===!0}function ng(e){let{values:t,rest:r}=Yv(e),n=r[0];if(n!==void 0&&n!=="--"&&n.startsWith("--"))throw ni.unknownFlag(n);let s=wc(r,Jv).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 ni=class e extends Error{static unknownFlag(t){return new e(`unknown flag: ${t}`)}render(){return W({command:"rsp",category:"usage",error:this.message,help:"rsp --help",validFlags:zv})}},zv=Object.keys(tg).map(e=>`--${e}`);function Yv(e){try{return Or(e,tg)}catch(t){throw new ni(t instanceof Error?t.message:String(t))}}function sg(e){return W({command:`rsp ${e.token}`,category:"usage",error:`unknown command: ${e.token}`,help:"rsp --help",validFlags:e.known})}function og(e){return e instanceof is}function wn(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}var Qv={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:sr},"ephemeral-ttl-hours":{kind:"value",coerce:sr},"byte-budget":{kind:"value",coerce:sr},"telemetry-ttl-days":{kind:"value",coerce:sr},"telemetry-byte-budget":{kind:"value",coerce:sr},"telemetry-drain-interval-ms":{kind:"value",coerce:sr},"telemetry-drain-timeout-ms":{kind:"value",coerce:sr},"idle-ms":{kind:"value",coerce:sr}};function cu(e){return as(e,Qv).values}var ig={since:{kind:"value",coerce:Zv},full:{kind:"boolean"}};function si(e,t){return as(e,ig).values.since??t}function ag(e){return as(e,ig).values.full===!0}var Xv={field:{kind:"value",type:"array",aliases:["f","F"],coerce:e=>e}};function cg(e){let{values:t,rest:r}=Or(e,Xv),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 sr(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function Zv(e){let t=/^(\d+)(d)?$/.exec(e);if(!t)return;let r=Number(t[1]);return Number.isFinite(r)&&r>0?r:void 0}uu();ut();import{existsSync as vM}from"node:fs";import{fileURLToPath as xM}from"node:url";Ut();Es();ge();lt();import{existsSync as kI}from"node:fs";import{fileURLToPath as SI}from"node:url";Ut();Bu();ge();import{existsSync as CO}from"node:fs";import{fileURLToPath as AO}from"node:url";async function kn(e,t){let r={stats:PO(e.telemetryByteBudget),telemetry:Wu(t)};if(!e.storeUri.startsWith("file://"))return r;let n=AO(e.storeUri);if(!CO(n))return r;let{residentElisionStore:s}=await Promise.resolve().then(()=>(ar(),As)),o=s(process.cwd(),e);try{return n.endsWith("red-skills.rdb")?{stats:await o.accountingStats(e.telemetryByteBudget),telemetry:await o.telemetryStats(t)}:{stats:await o.stats(),telemetry:Wu(t)}}catch{return r}finally{await o.close()}}function Ju(e,t=Wu(30),r=!1,n=wh()){return`${pe(Vu(e,t,r,n))}
|
|
234
|
+
`}function bh(e,t){return`${pe({...e,overhead:_h(t)})}
|
|
235
|
+
`}function wh(){return{schema_version:"red.rsp.overhead.v1",verdict:"green",summary:"every wrapper family is inside its overhead ceiling",ceiling:qt,breaching_families:[],disabled_families:[],families:[]}}function _h(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 Vu(e,t,r,n=wh()){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??Ri(),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:IO(t.savings),dollars_saved_estimate_usd_display:LO(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:_h(n),health:{overhead_verdict:n.verdict,overhead_summary:n.summary,...t.health,degradation_rate_display:qu(t.health.degradation_rate),show_hit_rate_display:qu(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:qu(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:Hu(t.latency.wrapper_ms_p50),wrapper_ms_p95_display:Hu(t.latency.wrapper_ms_p95),store_elapsed_ms_avg_display:Hu(t.latency.store_elapsed_ms_avg)}}}function Eh(e){return`${pe(e)}
|
|
236
|
+
`}function Wu(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 PO(e){return{records:0,bytes:0,oldest:null,budget:e,storage_classes:Ri()}}function Ri(){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 Ku(e){let t=e.legacyStoreMigrated?"migrated":e.storeCreated?"created":"existing";return[`config: ${e.configChanged?"updated":"unchanged"}`,`store: ${t}`,""].join(`
|
|
237
|
+
`)}function IO(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 LO(e){return e.dollars_saved_low_usd==null||e.dollars_saved_high_usd==null?Os(e.dollars_saved_estimate_usd):`${Os(e.dollars_saved_low_usd)}-${Os(e.dollars_saved_high_usd)} (estimate_midpoint: ${Os(e.dollars_saved_estimate_usd)})`}function Hu(e){return e==null?"none":String(e)}function qu(e){return e.toFixed(4).replace(/0+$/,"").replace(/\.$/,".0")}async function f_(e){let{stats:t,telemetry:r}=await kn(e,30),[n,s]=await Promise.all([TI(e),Promise.resolve().then(()=>(yd(),hd)).then(o=>o.listWaits(process.cwd()),()=>[])]);return{stats:t,telemetry:r,recoveryHandles:n,waits:s,overhead:or(ze(process.cwd()).rootDir,e.overhead)}}function g_(e){let t=Vu(e.stats,e.telemetry,!1,e.overhead),r=mu({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??Ri()},savings:t.savings,overhead:t.overhead,health:t.health,decisions:t.decisions,latency:t.latency},vI(e));return`${pe(r)}
|
|
238
|
+
`}async function TI(e){if(!e.storeUri.startsWith("file://"))return[];let t=SI(e.storeUri);if(!kI(t))return[];let{residentElisionStore:r}=await Promise.resolve().then(()=>(ar(),As)),n=r(process.cwd(),e);try{return await n.recoveryHandles(5)}catch{return[]}finally{await n.close()}}function vI(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"]}Ut();ge();ut();import{existsSync as cN}from"node:fs";import{fileURLToPath as uN}from"node:url";At();import{spawn as Ma}from"node:child_process";async function pR(e,t,r){let n=process.hrtime.bigint(),s=await mR(e.positional),o=Number(process.hrtime.bigint()-n)/1e6;return R$(t,e,s,o,r),s.signal?(process.kill(process.pid,s.signal),128):s.status??0}async function mR(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(()=>(Pa(),Aa)).then(i=>i.parseProxyCommandLine(e)):await Promise.resolve().then(()=>(Co(),Oo)).then(i=>i.parseExecCommandLine(e));r=Ma(o,{shell:!0,stdio:["inherit","pipe","pipe"]})}else r=Ma(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)}
|
|
239
|
+
`;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 fR(e){return e>0&&Math.random()<e}async function Po(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
|
|
240
|
+
`);let s=await bR(t);if(n){let o=k$(e,t,r),{appendTelemetryEvent:i,RSP_ACCOUNTING_EVENTS_COLLECTION:a,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:c}=await Promise.resolve().then(()=>(At(),Eo));Ua(i(n,{collection:a,event_type:"invocation",ts:new Date().toISOString(),command:Ba(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})),Ua(i(n,{collection:c,ts:new Date().toISOString(),command:Ba(t),reason:o.reason,wrapper_family:o.family,wrapper_exit_code:o.exitCode,stderr_head:o.stderrHead,accounting_recorded:!0}))}return s}async function gR(e,t,r){let n=await mR(e),{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:i}=await Promise.resolve().then(()=>(At(),Eo)),a={ts:new Date().toISOString(),command:Ba(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 Ua(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})),Ua(s(t,{collection:i,accounting_recorded:!0,...a})),n.signal?(process.kill(process.pid,n.signal),128):n.status??0}async function hR(e){return process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp: ${Ha()}, passing through
|
|
241
|
+
`),await bR(e)}function Ha(){return"rsp is not enabled in this directory; run /red-setup"}function yR(e){return e==="git"||e==="gh"||e==="vitest"||e==="cargo"||e==="cat"||e==="exec"||e==="proxy"||e==="gh-api-json"}function Pt(e){return Ba(e.positional)}function Ba(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 Ao(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function R$(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:Pt(t),command_class:t.command??"unknown",wrapper:t.command,loss:"lossless",elided:!1,raw_bytes:o,emitted_bytes:o,wrapper_ms:n};fr(e,{collection:"rsp_accounting_events_v1",...i}),fr(e,{collection:"rsp_telemetry_invocations_v1",...i,accounting_recorded:!0})}function k$(e,t,r){let n=t[0]??"unknown",s=S$(r)||e;return{reason:dR(r)==="ENOENT"||dR(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:v$(r)??1,stderrHead:T$(s,240)}}function S$(e){return e instanceof Error?Ao(e.message):Ao(String(e??""))}function T$(e,t){let r=Ao(e).replace(/\s+/g," ").trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}\u2026`}function dR(e){if(typeof e!="object"||e===null||!("code"in e))return"";let t=e.code;return typeof t=="string"?t:""}function v$(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 Ua(e){e.catch(()=>{})}async function bR(e){if(e[0]==="exec"||e[0]==="proxy")return await x$(e);let t=e[0];if(!t)return 2;let r=Ma(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)}
|
|
242
|
+
`),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function x$(e){let t;try{if(e[0]==="proxy"){let{parseProxyCommandLine:n}=await Promise.resolve().then(()=>(Pa(),Aa));t=n(e)}else{let{parseExecCommandLine:n}=await Promise.resolve().then(()=>(Co(),Oo));t=n(e)}}catch(n){return process.stderr.write(`${n instanceof Error?n.message:String(n)}
|
|
243
|
+
`),2}let r=Ma(t,{shell:!0,stdio:"inherit"});return await new Promise(n=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
|
|
244
|
+
`),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function DR(e,t,r){let n=[],s=!e.enabled;if(n.push(s?be("config_gate_resolution","rsp disabled in this directory; run /red-setup to opt in"):be("config_gate_resolution","rsp.enabled resolved true for this directory")),s)return n.push(be("hook_wiring","skipped because rsp is disabled"),be("proxy_mode","skipped because rsp is disabled"),be("resident_liveness","skipped because rsp is disabled"),be("store_provisioning","skipped because rsp is disabled"),be("recent_degradation_rate","skipped because rsp is disabled"),be("overhead_budget","skipped because rsp is disabled")),GR("disabled",n,r);n.push(await lN(e)),n.push(e.proxyEnabled?be("proxy_mode","proxy routing enabled for pre-exec rewrites"):tn("proxy_mode","proxy routing is explicitly disabled; hook falls back to fixed wrapper capabilities","rsp setup"));let{residentRegistryStatus:o}=await Promise.resolve().then(()=>(lt(),Nr));if(n.push(dN(await o(t))),n.push(pN(e)),NR(e)){let{telemetry:i}=await kn(e,r);n.push(mN(i,r))}else n.push(be("recent_degradation_rate","no telemetry store available yet; no recent degradation spike detected"));return n.push(fN(or(process.cwd(),e.overhead))),GR(n.some(i=>!i.pass)?"fail":"pass",n,r)}function $R(e){let{exitCode:t,...r}=e;return`${pe({...r,exit_code:e.exitCode,probes:e.probes,errors:e.errors})}
|
|
245
|
+
`}async function lN(e){try{if(e.proxyEnabled)return be("hook_wiring","pre-exec hook would rewrite git status through rsp proxy");let{rewriteCommand:t}=await Promise.resolve().then(()=>(Lo(),Ya)),r=t("git status");return r.kind==="rewrite"?be("hook_wiring",`pre-exec hook would rewrite git status through ${r.capabilityId}`):tn("hook_wiring",`pre-exec hook passed git status through: ${r.reason??"unsupported-command"}`,"rsp setup")}catch(t){return tn("hook_wiring",`pre-exec hook probe failed: ${t instanceof Error?Ao(t.message):"unknown error"}`,"rsp setup")}}function dN(e){return e.state==="registered-alive-socket-healthy"?be("resident_liveness","resident registry points at a healthy socket"):tn("resident_liveness",`resident registry state is ${e.state}`,"rsp warm-resident")}function pN(e){return e.storeUri.startsWith("file://")?NR(e)?be("store_provisioning","rsp store exists for this directory"):tn("store_provisioning","rsp store is not provisioned","rsp setup"):be("store_provisioning","non-file store URI configured; provisioning is delegated to that backend")}function mN(e,t){let r=e.health.by_reason[0];if(e.health.degradations===0)return be("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 tn("recent_degradation_rate",`${n} degradation(s) in the recent ${t}d window; dominant reason ${s} (${o})`,gN(s,t))}function fN(e){return e.verdict==="green"?be("overhead_budget",e.summary):tn("overhead_budget",e.summary,"rsp status")}function gN(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 NR(e){if(!e.storeUri.startsWith("file://"))return!0;try{return cN(uN(e.storeUri))}catch{return!1}}function be(e,t){return{name:e,pass:!0,finding:t}}function tn(e,t,r){return{name:e,pass:!1,finding:t,fix_command:r,error:au({command:`rsp doctor:${e}`,category:"real-error",error:t,help:r})}}function GR(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)}}Op();function BR(e){let t=e[0]==="--help"||e[0]==="-h"?void 0:e[0];return`${bN(t).join(`
|
|
246
246
|
`)}
|
|
247
|
-
`}function mN(e){switch(e){case"stats":return X("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 X("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 X("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 X("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 X("rsp gh <pr|issue|run> <list|view> [options] | api <REST-path> | <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","api GET reads use the resident ETag/rate-aware client and emit canonical TOON"],["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","rsp gh api repos/owner/repo/actions/runs/123"]);case"vitest":return X("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 X("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 X("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 X('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 X("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, 45m for pr/run/job, 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 job 93919316178",' rsp wait release --tag "v2.*" --existing',' 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 X("rsp doctor [--since <days>d]",["--since <days>d recent degradation window, default 1d"],["rsp doctor","rsp doctor --since 7d"]);case"status":return X("rsp status",["No flags. Prints resident registry status as TOON."],["rsp status"]);case"sweep":return X("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 X("rsp setup",["No flags. Provisions repo rsp configuration and store state."],["rsp setup"]);case"mcp":return X("rsp mcp",["No flags. Starts the rsp MCP server over stdio."],["rsp mcp"]);case"shell-init":return X("rsp shell-init <fish|bash|zsh>",["<fish|bash|zsh> target shell, no default"],["rsp shell-init bash","rsp shell-init fish"]);case"server":return X("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 X("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 X("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 X("rsp dashboard",["No flags. The explicit spelling of the bare `rsp` invocation."],["rsp","rsp dashboard"]);case"hook":return X("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 X(`rsp ${e} [options]`,["Unknown rsp subcommand. Use root help to list supported subcommands."],["rsp --help"])}}function X(e,t,r){return[`usage: ${e}`,"","Flags and defaults:",...t.map(n=>` ${n}`),"","Examples:",...r.map(n=>` ${n}`)]}Be();me();Ot();import{spawn as fN}from"node:child_process";import{createHash as gN}from"node:crypto";import{existsSync as hN,readFileSync as yN,statSync as bN}from"node:fs";import{tmpdir as wN}from"node:os";import{dirname as _N,join as wr}from"node:path";async function Oe(e,t,r,n,s=process.cwd(),o,i=o?.overhead??Ut){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let a=Number(process.hrtime.bigint()-r)/1e6;n&&o&&RN(s,o);let c=EN(e,t,a);return hu(s,c,i),n?en(vN(s,e,t,c,i,n.lastResponseMetrics())):xN(s,e,t,c,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}function EN(e,t,r){let n=wu(),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 en(e){e.catch(()=>{})}async function Qa(e,t,r,n){let{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o}=await Promise.resolve().then(()=>(Ot(),bo));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 RN(e,t){try{let r=Qt(e),n=bN(r),s=t.telemetryDrainIntervalMs*2;if(n.size<t.telemetryByteBudget&&!TN(r,Date.now()-s))return;let o=kN(e),i=SN(o),a=wr(i,"rsp.sock"),c=wr(i,"rsp.pid"),u=wr(re(o),"rsp-resident.pid.toon"),l=wr(o,".red","tmp","rsp","wake.lock");fN(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 kN(e){let t=e;for(;;){if(hN(wr(t,".git")))return t;let r=_N(t);if(r===t)return e;t=r}}function SN(e){let t=gN("sha256").update(e).digest("hex").slice(0,20),r=process.env.XDG_RUNTIME_DIR;if(r){let s=wr(r,"red-skills",t);if(wr(s,"rsp.sock").length<108)return s}let n=typeof process.getuid=="function"?process.getuid():"nouid";return wr(wN(),`red-skills-${n}`,t)}function TN(e,t){try{let r=yN(e,"utf8");Es(Buffer.byteLength(r));for(let n of r.split(/\r?\n/))if(n.trim())try{let s=JSON.parse(n),o=typeof s.created_at=="string"?s.created_at:s.ts;if(typeof o=="string"){let i=Date.parse(o);if(Number.isFinite(i)&&i<=t)return!0}}catch{}}catch{}return!1}async function vN(e,t,r,n,s,o){let i=Buffer.concat([r.stdout,r.stderr]),a=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),c=ci(n,s),{appendTelemetryEvent:u,RSP_ACCOUNTING_EVENTS_COLLECTION:l,RSP_TELEMETRY_INVOCATIONS_COLLECTION:d}=await Promise.resolve().then(()=>(Ot(),bo));await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:Ct(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:Ct(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:Ct(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:Ct(t),reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead,accounting_recorded:!0}))}function xN(e,t,r,n,s){try{let o=Buffer.concat([r.stdout,r.stderr]),i=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),a=ci(n,s);mr(e,{collection:"rsp_accounting_events_v1",event_type:"invocation",ts:new Date().toISOString(),command:Ct(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}),mr(e,{collection:"rsp_telemetry_invocations_v1",ts:new Date().toISOString(),command:Ct(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 Sr=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}},em=class{async mint(t,r){return`recovery unavailable (cold store) \u2014 re-run: ${r.command}`}lastResponseMetrics(){}async close(){}};async function vk(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw n instanceof Error?n:new Error("cold store");let s=new em,o=process.hrtime.bigint();try{if(e.command==="git"){let{isFastGitStatus:i,runFastGitStatus:a}=await Promise.resolve().then(()=>(Sp(),DR));if(i(e.positional))return await Oe(e,await a(),o,s,r,t);let{runGitWrapper:c}=await Promise.resolve().then(()=>(Qr(),lp)),u=await c(e.positional,{level:e.level,store:s,heavyGitByteThreshold:t.heavyGitByteThreshold});return await Oe(e,u,o,s,r,t)}if(e.command==="gh"){let{runGhWrapper:i}=await Promise.resolve().then(()=>(Wp(),qp)),a=await i(e.positional,{level:e.level,store:s});return await Oe(e,a,o,s,r,t)}if(e.command==="vitest"||e.command==="cargo"){let{runTestWrapper:i}=await Promise.resolve().then(()=>(zp(),Kp)),a=await i(e.positional,{level:e.level,store:s});return await Oe(e,a,o,s,r,t)}if(e.command==="cat"){let{runCatWrapper:i}=await Promise.resolve().then(()=>(Zp(),Xp)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Oe(e,a,o,s,r,t)}if(e.command==="exec"){let{runExecWrapper:i}=await Promise.resolve().then(()=>(vo(),To)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Oe(e,a,o,s)}}catch(i){return yn(i)?(process.stdout.write(i.render()),2):await Oo("wrapper failed",e.positional,i,r)}finally{await s.close()}return await Oo("wrapper failed",e.positional,n,r)}async function kS(e=process.argv.slice(2)){let t=ri("rsp"),r=Xf(e);if(r.kind==="version")return process.stdout.write(r.json?`${JSON.stringify(t)}
|
|
248
|
-
`:`${
|
|
249
|
-
`),0;if(r.kind==="help")return process.stdout.write(
|
|
250
|
-
`),0);if(n.command==="git"&&
|
|
251
|
-
`),0)}if(n.command==="warm-resident"){let
|
|
252
|
-
`),
|
|
247
|
+
`}function bN(e){switch(e){case"stats":return te("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 te("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 te("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 te("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 te("rsp gh <pr|issue|run> <list|view> [options] | api <REST-path> | <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","api GET reads use the resident ETag/rate-aware client and emit canonical TOON"],["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","rsp gh api repos/owner/repo/actions/runs/123"]);case"vitest":return te("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 te("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 te("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 te('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 te("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, 45m for pr/run/job, 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 job 93919316178",' rsp wait release --tag "v2.*" --existing',' 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 te("rsp doctor [--since <days>d]",["--since <days>d recent degradation window, default 1d"],["rsp doctor","rsp doctor --since 7d"]);case"status":return te("rsp status",["No flags. Prints resident registry status as TOON."],["rsp status"]);case"sweep":return te("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 te("rsp setup",["No flags. Provisions repo rsp configuration and store state."],["rsp setup"]);case"mcp":return te("rsp mcp",["No flags. Starts the rsp MCP server over stdio."],["rsp mcp"]);case"shell-init":return te("rsp shell-init <fish|bash|zsh>",["<fish|bash|zsh> target shell, no default"],["rsp shell-init bash","rsp shell-init fish"]);case"server":return te("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 te("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 te("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 te("rsp dashboard",["No flags. The explicit spelling of the bare `rsp` invocation."],["rsp","rsp dashboard"]);case"hook":return te("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 te(`rsp ${e} [options]`,["Unknown rsp subcommand. Use root help to list supported subcommands."],["rsp --help"])}}function te(e,t,r){return[`usage: ${e}`,"","Flags and defaults:",...t.map(n=>` ${n}`),"","Examples:",...r.map(n=>` ${n}`)]}Be();ge();At();import{spawn as wN}from"node:child_process";import{createHash as _N}from"node:crypto";import{existsSync as EN,readFileSync as RN,statSync as kN}from"node:fs";import{tmpdir as SN}from"node:os";import{dirname as TN,join as _r}from"node:path";async function Oe(e,t,r,n,s=process.cwd(),o,i=o?.overhead??qt){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let a=Number(process.hrtime.bigint()-r)/1e6;n&&o&&xN(s,o);let c=vN(e,t,a);return bu(s,c,i),n?rn(PN(s,e,t,c,i,n.lastResponseMetrics())):IN(s,e,t,c,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}function vN(e,t,r){let n=Eu(),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 rn(e){e.catch(()=>{})}async function Za(e,t,r,n){let{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o}=await Promise.resolve().then(()=>(At(),Eo));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 xN(e,t){try{let r=Xt(e),n=kN(r),s=t.telemetryDrainIntervalMs*2;if(n.size<t.telemetryByteBudget&&!AN(r,Date.now()-s))return;let o=ON(e),i=CN(o),a=_r(i,"rsp.sock"),c=_r(i,"rsp.pid"),u=_r(oe(o),"rsp-resident.pid.toon"),l=_r(o,".red","tmp","rsp","wake.lock");wN(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 ON(e){let t=e;for(;;){if(EN(_r(t,".git")))return t;let r=TN(t);if(r===t)return e;t=r}}function CN(e){let t=_N("sha256").update(e).digest("hex").slice(0,20),r=process.env.XDG_RUNTIME_DIR;if(r){let s=_r(r,"red-skills",t);if(_r(s,"rsp.sock").length<108)return s}let n=typeof process.getuid=="function"?process.getuid():"nouid";return _r(SN(),`red-skills-${n}`,t)}function AN(e,t){try{let r=RN(e,"utf8");ks(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 PN(e,t,r,n,s,o){let i=Buffer.concat([r.stdout,r.stderr]),a=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),c=di(n,s),{appendTelemetryEvent:u,RSP_ACCOUNTING_EVENTS_COLLECTION:l,RSP_TELEMETRY_INVOCATIONS_COLLECTION:d}=await Promise.resolve().then(()=>(At(),Eo));await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:Pt(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:Pt(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:Pt(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:Pt(t),reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead,accounting_recorded:!0}))}function IN(e,t,r,n,s){try{let o=Buffer.concat([r.stdout,r.stderr]),i=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),a=di(n,s);fr(e,{collection:"rsp_accounting_events_v1",event_type:"invocation",ts:new Date().toISOString(),command:Pt(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}),fr(e,{collection:"rsp_telemetry_invocations_v1",ts:new Date().toISOString(),command:Pt(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 Tr=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}},sm=class{async mint(t,r){return`recovery unavailable (cold store) \u2014 re-run: ${r.command}`}lastResponseMetrics(){}async close(){}};async function Pk(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw n instanceof Error?n:new Error("cold store");let s=new sm,o=process.hrtime.bigint();try{if(e.command==="git"){let{isFastGitStatus:i,runFastGitStatus:a}=await Promise.resolve().then(()=>(Op(),MR));if(i(e.positional))return await Oe(e,await a(),o,s,r,t);let{runGitWrapper:c}=await Promise.resolve().then(()=>(Zr(),fp)),u=await c(e.positional,{level:e.level,store:s,heavyGitByteThreshold:t.heavyGitByteThreshold});return await Oe(e,u,o,s,r,t)}if(e.command==="gh"){let{runGhWrapper:i}=await Promise.resolve().then(()=>(zp(),Kp)),a=await i(e.positional,{level:e.level,store:s});return await Oe(e,a,o,s,r,t)}if(e.command==="vitest"||e.command==="cargo"){let{runTestWrapper:i}=await Promise.resolve().then(()=>(Zp(),Xp)),a=await i(e.positional,{level:e.level,store:s});return await Oe(e,a,o,s,r,t)}if(e.command==="cat"){let{runCatWrapper:i}=await Promise.resolve().then(()=>(nm(),rm)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Oe(e,a,o,s,r,t)}if(e.command==="exec"){let{runExecWrapper:i}=await Promise.resolve().then(()=>(Co(),Oo)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Oe(e,a,o,s)}}catch(i){return wn(i)?(process.stdout.write(i.render()),2):await Po("wrapper failed",e.positional,i,r)}finally{await s.close()}return await Po("wrapper failed",e.positional,n,r)}async function OS(e=process.argv.slice(2)){let t=oi("rsp"),r=rg(e);if(r.kind==="version")return process.stdout.write(r.json?`${JSON.stringify(t)}
|
|
248
|
+
`:`${ug(t)}
|
|
249
|
+
`),0;if(r.kind==="help")return process.stdout.write(BR(e)),0;let n;try{n=ng(e)}catch(h){if(og(h))return process.stdout.write(sg(h)),2;throw h}if(n.command==="hook"&&n.positional[1]==="claude-pre-exec"){let{runClaudePreExecHook:h}=await Promise.resolve().then(()=>(Lo(),Ya));return await h()}if(n.command==="hook"&&n.positional[1]==="codex-pre-exec"){let{runCodexPreExecHook:h}=await Promise.resolve().then(()=>(Lo(),Ya));return await h()}if(n.command==="hook"&&n.positional[1]==="claude-post-exec"){let{runClaudePostExecHook:h}=await Promise.resolve().then(()=>(To(),bp));return await h()}if(n.command==="hook"&&n.positional[1]==="codex-post-exec"){let{runCodexPostExecHook:h}=await Promise.resolve().then(()=>(To(),bp));return await h()}if(n.command==="setup"){let{provisionRspRepoStore:h}=await Promise.resolve().then(()=>(jk(),Fk)),w=await h(process.cwd());return process.stdout.write(Ku(w)),0}if(n.command==="mcp"){let{runRspMcpServer:h}=await Promise.resolve().then(()=>(Jk(),Wk));return await h(),0}if(n.command==="wait"){let{runWait:h}=await Promise.resolve().then(()=>(yd(),hd));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(W({command:n.positional.join(" ")||"shell-init",category:"usage",error:"usage rsp shell-init fish|bash|zsh",help:"rsp shell-init bash"})),2;let{renderShellInit:w}=await Promise.resolve().then(()=>(zk(),Kk));return process.stdout.write(w(h)),0}let{resolveRspConfig:s}=await Promise.resolve().then(()=>(He(),py)),o=s(process.cwd(),process.env,n.storeUri);if(n.command==="doctor"){let{resolveResidentPaths:h}=await Promise.resolve().then(()=>(lt(),Nr)),w=h(process.cwd()),k=await DR(o,w,si(n.positional,1));return process.stdout.write($R(k)),k.exitCode}let i=yR(n.command);if(!o.enabled)return i?await hR(n.positional):(process.stdout.write(`${Ha()}
|
|
250
|
+
`),0);if(n.command==="git"&&Qa(n.positional)){let h=process.hrtime.bigint();return await Oe(n,await Xa(),h,void 0,await xp(process.cwd()),o)}let{resolveResidentPaths:a,ensureResidentServer:c}=await Promise.resolve().then(()=>(lt(),Nr)),u=a(process.cwd());if(i&&n.command){let{overheadFamilyDisabled:h}=await Promise.resolve().then(()=>(ge(),mi)),w=h(u.rootDir,n.command);if(w)return await gR(n.positional,u.rootDir,w)}if(i&&fR(o.measurementHoldoutShare))return await pR(n,u.rootDir,o.measurementHoldoutShare);if(n.command==="server"){let{runResidentServer:h}=await Promise.resolve().then(()=>(xS(),vS)),w=a(process.cwd()),k=cu(n.positional),x=s(process.cwd(),process.env,n.storeUri);return x.enabled?(await h({socketPath:k.socket??w.socketPath,pidPath:k["pid-file"]??w.pidPath,rootDir:w.rootDir,storeUri:x.storeUri,ttlDays:k["ttl-days"]??x.ttlDays,ephemeralTtlHours:k["ephemeral-ttl-hours"]??x.ephemeralTtlHours,byteBudget:k["byte-budget"]??x.byteBudget,telemetryTtlDays:k["telemetry-ttl-days"]??x.telemetryTtlDays,telemetryByteBudget:k["telemetry-byte-budget"]??x.telemetryByteBudget,telemetryDrainIntervalMs:k["telemetry-drain-interval-ms"]??x.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:k["telemetry-drain-timeout-ms"]??x.telemetryDrainTimeoutMs,idleMs:k["idle-ms"]??x.idleMs,residentVersion:k["resident-version"]??t.version,registryPath:k.registry??w.registryPath}),0):(process.stdout.write(`${Ha()}
|
|
251
|
+
`),0)}if(n.command==="warm-resident"){let h=a(process.cwd()),w=cu(n.positional),k=s(process.cwd(),process.env,n.storeUri);if(!k.enabled)return 0;let{warmResidentServer:x}=await Promise.resolve().then(()=>(lt(),Nr));return await x({...h,socketPath:w.socket??h.socketPath,wakeLockPath:w["wake-lock"]??h.wakeLockPath},{storeUri:k.storeUri,ttlDays:w["ttl-days"]??k.ttlDays,ephemeralTtlHours:w["ephemeral-ttl-hours"]??k.ephemeralTtlHours,byteBudget:w["byte-budget"]??k.byteBudget,telemetryTtlDays:w["telemetry-ttl-days"]??k.telemetryTtlDays,telemetryByteBudget:w["telemetry-byte-budget"]??k.telemetryByteBudget,telemetryDrainIntervalMs:w["telemetry-drain-interval-ms"]??k.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:w["telemetry-drain-timeout-ms"]??k.telemetryDrainTimeoutMs,idleMs:w["idle-ms"]??k.idleMs,clientVersion:t.version}),0}if(n.command==="proxy"){let{runProxy:h}=await Promise.resolve().then(()=>(Pa(),Aa));return await h(n.positional,{telemetryRoot:u.rootDir,level:n.level})}if(n.command==="status"||n.command==="sweep"){let{residentRegistryStatus:h,sweepResidentRegistry:w}=await Promise.resolve().then(()=>(lt(),Nr)),k=n.command==="sweep"?await w(u):await h(u);if(n.command==="sweep"){let{sweepGhEtagCache:N}=await Promise.resolve().then(()=>(Ni(),iy));await N(u.rootDir,{maxBytes:o.ghEtagCacheMaxBytes})}let{overheadHealth:x}=await Promise.resolve().then(()=>(ge(),mi)),A=x(u.rootDir,o.overhead);return process.stdout.write(bh(k,A)),0}if(n.command==="gh-api-json"){let{readGhConditionalJson:h}=await Promise.resolve().then(()=>(Ms(),wy)),w=cg(n.positional);if(!w)return process.stdout.write(W({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 k=await h({path:w.path,params:w.params,cwd:process.cwd(),telemetryRoot:u.rootDir,command:`rsp ${n.positional.join(" ")}`,overheadCeiling:o.overhead});return process.stdout.write(k.stdout),k.stderr&&process.stderr.write(`${k.stderr}
|
|
252
|
+
`),k.status}if(n.command==="dashboard"){let h=await f_(o);return process.stdout.write(g_(h)),0}if(!n.storeUri&&o.storeUri.startsWith("file://")&&!vM(xM(o.storeUri)))return i?await Pk(n,o,u.rootDir):(process.stdout.write(W({command:Pt(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(()=>(ar(),As)),m=(h=!0)=>Promise.resolve(d(process.cwd(),o,{ensureResident:h,paths:u})),f=()=>c(u,l(o,t.version)).catch(h=>void p(h)),b=()=>m(),_;try{if(n.command==="stats"){let{stats:h,telemetry:w}=await kn(o,si(n.positional,30)),{overheadHealth:k}=await Promise.resolve().then(()=>(ge(),mi));return process.stdout.write(Ju(h,w,ag(n.positional),k(u.rootDir,o.overhead))),0}if(n.command==="gains"){let h=await b();_=()=>h.close();let w;try{w=await h.telemetryGains(si(n.positional,28))}catch(k){return process.stdout.write(W({command:`rsp ${n.positional.join(" ")}`.trim(),category:"real-error",error:k instanceof Error?k.message:"rsp gains unavailable",help:"rsp gains requires the shared RedDB store"})),1}return process.stdout.write(Eh(w)),0}if(n.command==="git"){if(rn(f()),Qa(n.positional)){let A=process.hrtime.bigint();return await Oe(n,await Xa(),A,void 0,u.rootDir,o)}let{runGitWrapper:h}=await Promise.resolve().then(()=>(Zr(),fp)),w=new Tr(()=>m(!1));_=()=>w.close();let k=process.hrtime.bigint(),x=await h(n.positional,{level:n.level,store:w,heavyGitByteThreshold:o.heavyGitByteThreshold});return await Oe(n,x,k,w,u.rootDir,o)}if(n.command==="gh"){rn(f());let{runGhWrapper:h}=await Promise.resolve().then(()=>(zp(),Kp)),w=new Tr(()=>m(!1));_=()=>w.close();let k=process.hrtime.bigint(),x=await h(n.positional,{level:n.level,store:w});return await Oe(n,x,k,w,u.rootDir,o)}if(n.command==="vitest"||n.command==="cargo"){rn(f());let{runTestWrapper:h}=await Promise.resolve().then(()=>(Zp(),Xp)),w=new Tr(()=>m(!1));_=()=>w.close();let k=process.hrtime.bigint(),x=await h(n.positional,{level:n.level,store:w});return await Oe(n,x,k,w,u.rootDir,o)}if(n.command==="cat"){rn(f());let{runCatWrapper:h}=await Promise.resolve().then(()=>(nm(),rm)),w=new Tr(()=>m(!1));_=()=>w.close();let k=process.hrtime.bigint(),x=await h(n.positional,{level:n.level,store:w,heavyByteThreshold:o.heavyGitByteThreshold});return await Oe(n,x,k,w,u.rootDir,o)}if(n.command==="exec"){rn(f());let{runExecWrapper:h}=await Promise.resolve().then(()=>(Co(),Oo)),w=new Tr(()=>m(!1));_=()=>w.close();let k=process.hrtime.bigint(),x=await h(n.positional,{level:n.level,store:w,heavyByteThreshold:o.heavyGitByteThreshold});return await Oe(n,x,k,w,u.rootDir,o)}if(n.command==="show"&&n.handle){let h=await b();_=()=>h.close();let w=await h.get(n.handle);if(w&&"original"in w&&w.original)return process.stdout.write(w.original),await Za(u.rootDir,n.handle,!0,w.original.length),0;if(w?.status==="expired"){let x=W({command:`rsp show ${n.handle}`,category:"real-error",error:`expired ${w.expired_at}`,help:w.command});return process.stdout.write(x),await Za(u.rootDir,n.handle,!1,x.length),1}let k=W({command:`rsp show ${n.handle}`,category:"real-error",error:"expired unknown",help:n.handle});return process.stdout.write(k),await Za(u.rootDir,n.handle,!1,k.length),1}return process.stdout.write(W({command:n.positional.join(" ")||"rsp",category:"usage",error:"usage rsp show el:<id>",help:"rsp show el:<id>"})),2}catch(h){if(wn(h))return process.stdout.write(h.render()),2;if(i)return await Po("wrapper failed",n.positional,h,u.rootDir);throw h}finally{await _?.()}}ut();function PM(e,t,r=process.platform){if(!t)return!1;let n=r==="win32",s=n?CM:OM;try{let o=s.resolve(AM(e,{windows:n})),i=s.resolve(t);return n?o.toLowerCase()===i.toLowerCase():o===i}catch{return!1}}PM(import.meta.url,process.argv[1])&&OS().then(e=>process.exit(e),e=>{wn(e)&&(process.stdout.write(e.render()),process.exit(2)),process.stdout.write(W({command:"rsp",category:"real-error",error:e instanceof Error?e.message:String(e),help:"rsp --help"})),process.exit(1)});export{PM as isDirectExecution,OS as main,Ku as renderSetupResult,Ju as renderStats};
|
|
253
253
|
/*! Bundled license information:
|
|
254
254
|
|
|
255
255
|
@octokit/request-error/dist-src/index.js:
|