@reddb-io/red-skills 3.4.2 → 3.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brain.bundle.min.mjs +1 -1
- package/dist/castle-mcp.bundle.min.mjs +480 -446
- package/dist/code-nav.bundle.min.mjs +1 -1
- package/dist/dev.bundle.min.mjs +777 -731
- package/dist/memory.bundle.min.mjs +1 -1
- package/dist/redskilled.bundle.min.mjs +126 -88
- package/dist/rsp.bundle.min.mjs +186 -152
- package/package.json +1 -1
package/dist/rsp.bundle.min.mjs
CHANGED
|
@@ -1,161 +1,176 @@
|
|
|
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
|
|
7
|
-
`)
|
|
8
|
-
`))}t.push(
|
|
9
|
-
`))}if(e.options&&Object.keys(e.options).length>0){t.push(
|
|
10
|
-
`));let
|
|
11
|
-
`))}return
|
|
12
|
-
`);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(
|
|
13
|
-
`;break;case"r":
|
|
14
|
-
`),e.push(" order: ",
|
|
15
|
-
`),e.push(" discriminator: ",
|
|
16
|
-
`),e.push(" rows: ",String(
|
|
17
|
-
`),
|
|
18
|
-
`);for(let s of
|
|
19
|
-
`)}function t_(e){return e!==""&&qi(e)}function Wi(e,t,n,r=new Set){if(!qi(t))return!1;if(qe(e))return n[t]=e,!0;if(Array.isArray(e)){if(r.has(e))return!1;r.add(e),n[`${t}.length`]=e.length;let s=e.every((o,i)=>Wi(o,`${t}.${i}`,n,r));return r.delete(e),s}if(H(e)){if(r.has(e))return!1;r.add(e);let s=Object.entries(e).every(([o,i])=>!o.includes(".")&&Wi(i,`${t}.${o}`,n,r));return r.delete(e),s}return!1}function n_(e){let t=Object.keys(e[0]??{});if(e.every(n=>r_(Object.keys(n),t)))return t.every(qi)?t:void 0}function r_(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function qi(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}var Ji=g(()=>{ot();Vt();kn();dr()});function Sn(e,t){let n=e[t]??e[e.length-1];return R(n===void 0?1:n.number,"array length mismatch")}function Ps(e,t){if(t===-1)throw R(0,"array header missing colon");let n=e.slice(0,t),r=oe(n,"[",0);if(r===-1)throw R(0,"invalid array header");let s,o;try{[s,o]=Pe(n.slice(0,r),0)}catch{throw R(0,"invalid array header")}let i=n.slice(r+1),a=i.indexOf("]");if(a===-1)throw R(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 R(0,"invalid array header");let l=Number.parseInt(u,10),p;switch(c.slice(u.length)){case"":p=",";break;case" ":p=" ";break;case"|":p="|";break;default:throw R(0,"invalid array header")}let d=i.slice(a+1),m,f;if(d==="")m=void 0,f=void 0;else if(d.startsWith("{")&&d.endsWith("}")&&d.length>=2)try{f=o_(d.slice(1,-1),p),m=Ki(f)}catch(b){throw R(0,b.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw R(0,"invalid array header");return{key:s,keyQuoted:o,len:l,delimiter:p,fields:m,fieldTree:f}}function td(e){let t=oe(e,"{",0);if(t===-1||!e.endsWith("}"))throw R(0,"invalid keyed map header");let n,r;try{[n,r]=Pe(e.slice(0,t),0)}catch{throw R(0,"invalid keyed map header")}if(n===""&&!r)throw R(0,"expected non-empty field name");let s=e.slice(t+1,-1),o=G;(s.startsWith("|")||s.startsWith(" "))&&(o=s[0],s=s.slice(1));let i;try{i=s_(s,o,o)}catch(a){throw R(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:n,keyQuoted:r,delimiter:o,fields:i}}function s_(e,t,n){let r=[],s=0;function o(c,u){let l=0;for(;s<e.length&&!(u&&e[s]==="}");){if(e[s]===t||e[s]==="}")throw R(0,"invalid array header");let p=s;for(;s<e.length;){let f=e[s];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;s+=1}let[d,m]=Pe(e.slice(p,s),0);if(d===""&&!m)throw R(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 R(0,"invalid array header");let b=e.slice(f,s);if(!nd(b,n))throw R(0,"invalid array header");s+=1,r.push({path:[...c,d],listDelimiter:b})}else if(e[s]==="{"){s+=1;let f=r.length;if(o([...c,d],!0),e[s]!=="}"||r.length===f)throw R(0,"invalid array header");s+=1}else r.push({path:[...c,d],listDelimiter:void 0});if(e[s]===t){if(s+=1,s>=e.length||e[s]==="}")throw R(0,"invalid array header");continue}if(u?e[s]==="}":s===e.length)break;throw R(0,"invalid array header")}if(l===0)throw R(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 R(0,"invalid array header");let a=new Set;for(let c=0;c<r.length;c+=1)for(let u=c+1;u<r.length;u+=1)if(rd(r[c].path,r[u].path)||gr(r[c].path,r[u].path)||gr(r[u].path,r[c].path))throw R(0,"duplicate key");for(let c of r){let l=c.path.join("\0");if(a.has(l))throw R(0,"duplicate key");a.add(l)}return r}function o_(e,t){if(t!==G&&e.includes(G)&&(e.includes("[")||e.includes("{")))return Vi(e,G,t);try{return Vi(e,t,t)}catch(n){if(t!==G&&n.reason!=="duplicate key")return Vi(e,G,t);throw n}}function Vi(e,t,n){let r=0;function s(c){let u=[];for(;r<e.length&&!(c&&e[r]==="}");){if(e[r]===t||e[r]==="}")throw R(0,"invalid array header");let l=r;for(;r<e.length;){let f=e[r];if(f==='"'){o();continue}if(f===t||f==="{"||f==="}"||f==="[")break;r+=1}let[p,d]=Pe(e.slice(l,r),0);if(p===""&&!d)throw R(0,"invalid array header");let m={key:p};if(e[r]==="["){r+=1;let f=r;for(;r<e.length&&e[r]!=="]";)r+=1;if(r>=e.length)throw R(0,"invalid array header");let b=e.slice(f,r);r+=1;let _=i_(b);if(_!==void 0){if(_.delimiter!==n)throw R(0,"invalid array header");m.fixedLength=_.len,m.fixedDelimiter=_.delimiter}else if(nd(b,n))m.listDelimiter=b;else throw R(0,"invalid array header")}else if(e[r]==="{"){if(r+=1,m.children=s(!0),e[r]!=="}"||m.children.length===0)throw R(0,"invalid array header");r+=1}if(u.push(m),e[r]===t){if(r+=1,r>=e.length||e[r]==="}")throw R(0,"invalid array header");continue}if(c?e[r]==="}":r===e.length)break;throw R(0,"invalid array header")}if(u.length===0)throw R(0,"invalid array header");return u}function o(){for(r+=1;r<e.length;){let c=e[r];if(r+=1,c==="\\")r+=1;else if(c==='"')return}}let i=s(!1);if(r!==e.length)throw R(0,"invalid array header");let a=Ki(i);for(let c=0;c<a.length;c+=1)for(let u=c+1;u<a.length;u+=1)if(rd(a[c].path,a[u].path)||gr(a[c].path,a[u].path)||gr(a[u].path,a[c].path))throw R(0,"duplicate key");return i}function i_(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let n=e.slice(t.length),r;switch(n){case"":r=G;break;case" ":r=" ";break;case"|":r="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:r}}function Ki(e,t=[]){return e.flatMap(n=>{let r=[...t,n.key];return n.children!==void 0?Ki(n.children,r):[{path:r,listDelimiter:n.listDelimiter}]})}function Is(e,t,n){return e.listDelimiter===void 0?_e(t,n):Ie(t,e.listDelimiter,n).map(r=>_e(r,n))}function nd(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function rd(e,t){return e.length===t.length&&gr(e,t)}function gr(e,t){return t.every((n,r)=>e[r]===n)}function Ls(e,t){return R(t,e.reason??String(e.message))}var sd=g(()=>{ot();Vt()});function L(e,t){let n=Kl(t),r=zl(e,n),s=r[0];if(s===void 0)return{};if(s.depth!==0)throw R(s.number,"invalid indentation");let o=r.length===1;if(o&&s.content.trim()==="[]")return[];if(s.content.startsWith("[")){mr(s.content,s.number,n);let u;try{u=Ps(s.content,oe(s.content,":",s.number))}catch(l){if(n.strict)throw Ls(l,s.number);u=void 0}if(u!==void 0)return u_(u,r,n)}if(o&&oe(s.content,":",s.number)===-1)return _e(s.content.trim(),s.number);let i={index:0},a=Yi(r,i,0,n),c=r[i.index];if(c!==void 0)throw R(c.number,"expected end of document");return n.cyclicDiscriminatedArrays?Ql(a):a}function Yi(e,t,n,r){let s={};for(;t.index<e.length;){let o=e[t.index];if(o.depth<n)break;if(o.depth>n)throw R(o.number,"invalid indentation");let{key:i,quoted:a,value:c}=a_(e,t,n,r);dd(s,i,a,c,r,o.number)}return s}function a_(e,t,n,r){let s=e[t.index],o=s.content,i=oe(o,":",s.number);if(i===-1)throw R(s.number,"expected `key: value`");let a=o.slice(0,i),c=o.slice(i+1),u=oe(a,"[",s.number),l=oe(a,"{",s.number);if(l!==-1&&(u===-1||l<u)){mr(a,s.number,r);let f;try{f=td(a)}catch(_){if(r.strict)throw Ls(_,s.number);t.index+=1;let h=zi(e,t,n,c,s.number,r);return{key:a.trim(),quoted:!1,value:h}}if(c.trim()!=="")throw R(s.number,"expected keyed map rows");let b=c_(f,e,t,n+1,r);return{key:f.key,quoted:f.keyQuoted,value:b}}if(u!==-1){mr(a,s.number,r);let f;try{f=Ps(a,i)}catch(_){if(r.strict)throw Ls(_,s.number);t.index+=1;let h=zi(e,t,n,c,s.number,r);return{key:a.trim(),quoted:!1,value:h}}if(f.key===""&&!f.keyQuoted)throw R(s.number,"expected non-empty field name");let b=Xi(f,c,e,t,n,r);return{key:f.key,quoted:f.keyQuoted,value:b}}let[p,d]=Pe(a,s.number);if(p===""&&!d)throw R(s.number,"expected non-empty field name");t.index+=1;let m=zi(e,t,n,c,s.number,r);return{key:p,quoted:d,value:m}}function zi(e,t,n,r,s,o){let i=r.trim();if(i==="[]")return[];if(i!=="")return _e(i,s);let a=e[t.index];return a!==void 0&&a.depth>n?Yi(e,t,n+1,o):{}}function c_(e,t,n,r,s){let o={};for(n.index+=1;n.index<t.length;){let i=t[n.index];if(i.depth<r)break;if(i.depth>r)throw R(i.number,"invalid indentation");if(i.blankBefore&&s.strict)throw R(i.number,"blank line inside keyed map");let a=oe(i.content,":",i.number);if(a===-1)throw R(i.number,"expected `key: value`");let[c,u]=Pe(i.content.slice(0,a),i.number);if(c===""&&!u)throw R(i.number,"expected non-empty field name");let l=Ie(i.content.slice(a+1).trim(),e.delimiter,i.number);if(l.length!==e.fields.length)throw R(i.number,"keyed map row length mismatch");let p={};e.fields.forEach((d,m)=>{xn(p,d.path,Is(d,l[m],i.number),s,i.number)}),dd(o,c,u,p,s,i.number),n.index+=1}return o}function u_(e,t,n){let r=t[0],s=oe(r.content,":",r.number);if(s===-1)throw R(r.number,"expected `key: value`");let o=r.content.slice(s+1),i={index:0},a=Xi(e,o,t,i,0,n),c=t[i.index];if(c!==void 0)throw R(c.number,"expected end of document");return a}function Xi(e,t,n,r,s,o){let i=n[r.index].number,a=t.trim();if(r.index+=1,e.fields!==void 0){if(a!=="")throw R(i,"expected tabular rows");return l_(e,e.fields,n,r,s+1,o)}if(a!==""){let c=Ie(a,e.delimiter,i).map(u=>_e(u,i));if(c.length!==e.len)throw R(i,"array length mismatch");return c}return y_(e,n,r,s+1,o)}function l_(e,t,n,r,s,o){if(e.fieldTree!==void 0&&g_(e.fieldTree))return d_(e,n,r,s,o);let i=[];for(;i.length<e.len;){let c=n[r.index];if(c===void 0)throw Sn(n,r.index);if(c.depth<s)break;if(c.depth>s)throw R(c.number,"invalid indentation");if(c.blankBefore&&o.strict)throw R(c.number,"blank line inside array");if(!En(c.content,e.delimiter,c.number))break;let u=Ie(c.content,e.delimiter,c.number);if(u.length!==t.length)throw R(c.number,"array row length mismatch");let l={};t.forEach((p,d)=>{xn(l,p.path,Is(p,u[d],c.number),o,c.number)}),i.push(l),r.index+=1}if(i.length!==e.len)throw Sn(n,r.index);let a=n[r.index];if(a!==void 0&&a.depth>=s&&En(a.content,e.delimiter,a.number))throw R(a.number,"array length mismatch");return i}function d_(e,t,n,r,s){return od(e.len,e.fieldTree,e.delimiter,t,n,r,s,!0)}function od(e,t,n,r,s,o,i,a){let c=[],u=ad(e,t,n,r,s.index,o,i);for(;c.length<e;){let p=r[s.index];if(p===void 0)throw Sn(r,s.index);if(p.depth<o)break;if(p.depth>o)throw R(p.number,"invalid indentation");if(p.blankBefore&&i.strict)throw R(p.number,"blank line inside array");if(!En(p.content,n,p.number))break;let d=Ie(p.content,n,p.number),m={cellIndex:0,nextIndex:s.index+1,flatWidth:$s(t),childTableFields:u},f=id(t,d,p.number,r,m,o+1,n,i);if(m.cellIndex!==d.length)throw R(p.number,"array row length mismatch");c.push(m_(t,f,a)),s.index=m.nextIndex}if(c.length!==e)throw Sn(r,s.index);let l=r[s.index];if(l!==void 0&&l.depth>=o&&En(l.content,n,l.number))throw R(l.number,"array length mismatch");return c}function id(e,t,n,r,s,o,i,a){let c={};return e.forEach((u,l)=>{let p=e.slice(l+1),d=p_(u,p,t,n,r,s,o,i,a);xn(c,[u.key],d,a,n)}),c}function p_(e,t,n,r,s,o,i,a,c){if(e.fixedLength!==void 0){if(o.cellIndex+e.fixedLength>n.length)throw R(r,"array row length mismatch");let l=n.slice(o.cellIndex,o.cellIndex+e.fixedLength).map(p=>_e(p,r));return o.cellIndex+=e.fixedLength,l}if(e.children!==void 0){let l=$s(e.children),p=n[o.cellIndex],d=ud(p),m=n.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?d!==void 0&&(b||n.length!==o.flatWidth&&m<l+h_(t)):_){if(d===void 0)throw R(r,"array row length mismatch");return o.cellIndex+=1,od(d,e.children,a,s,{get index(){return o.nextIndex},set index(y){o.nextIndex=y}},i,c,!1)}return id(e.children,n,r,s,o,i,a,c)}let u=n[o.cellIndex];if(u===void 0)throw R(r,"array row length mismatch");return o.cellIndex+=1,Is(e,u,r)}function ad(e,t,n,r,s,o,i){let a=t.filter(l=>l.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let c,u=1<<a.length;for(let l=0;l<u;l+=1){let p=new Set;a.forEach((m,f)=>{l&1<<f&&p.add(m)});let d=cd(e,t,p,n,r,s,o,i);d!==void 0&&(c===void 0||d.consumedChildRows>c.consumedChildRows||d.consumedChildRows===c.consumedChildRows&&p.size<c.childTableFields.size)&&(c={childTableFields:p,consumedChildRows:d.consumedChildRows})}return c?.childTableFields}function cd(e,t,n,r,s,o,i,a){let c=o,u=0;try{for(let p=0;p<e;p+=1){let d=s[c];if(d===void 0||d.depth!==i||d.blankBefore&&a.strict||!En(d.content,r,d.number))return;let m=Ie(d.content,r,d.number),f=f_(t,n,m,r,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&&En(l.content,r,l.number))return}catch{return}return{nextIndex:c,consumedChildRows:u}}function f_(e,t,n,r,s,o,i,a){let c=0,u=o,l=0;for(let p of e){if(p.fixedLength!==void 0)c+=p.fixedLength;else if(p.children!==void 0)if(t.has(p)){let d=ud(n[c]);if(d===void 0)return;c+=1;let m=ad(d,p.children,r,s,u,i,a);if(m===void 0)return;let f=cd(d,p.children,m,r,s,u,i,a);if(f===void 0)return;u=f.nextIndex,l+=d+f.consumedChildRows}else c+=$s(p.children);else c+=1;if(c>n.length)return}if(c===n.length)return{nextIndex:u,consumedChildRows:l}}function m_(e,t,n){return n&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function ud(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function g_(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function $s(e){return e.reduce((t,n)=>t+ld(n),0)}function ld(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?$s(e.children):1}function h_(e){return e.reduce((t,n)=>n.children!==void 0?t+1:t+ld(n),0)}function En(e,t,n){let r=oe(e,":",n);if(r===-1)return!0;let s=oe(e,t,n);return s===-1?!1:s<r}function y_(e,t,n,r,s){let o=[];for(;o.length<e.len;){let a=t[n.index];if(a===void 0||a.depth<r)throw Sn(t,n.index);if(a.depth>r)throw R(a.number,"invalid indentation");if(a.blankBefore&&s.strict)throw R(a.number,"blank line inside array");o.push(b_(t,n,r,s))}let i=t[n.index];if(i!==void 0&&i.depth>=r)throw R(i.number,"array length mismatch");return o}function b_(e,t,n,r){let s=e[t.index];if(!s.content.startsWith("-"))throw R(s.number,"expected array item");let o=s.content.slice(1).replace(/^\s+/,"");if(o==="")return t.index+=1,{};if(o.startsWith("[")){let i=oe(o,":",s.number);mr(o,s.number,r);let a;try{a=Ps(o,i)}catch{a=void 0}if(a!==void 0){let c=o.slice(i+1);return Xi(a,c,e,t,n,r)}}if(oe(o,":",s.number)!==-1){let i=[{number:s.number,depth:n+1,content:o,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=n)break;i.push(a),t.index+=1}return Yi(i,{index:0},n+1,r)}return t.index+=1,_e(o,s.number)}function dd(e,t,n,r,s,o){if(s.expandPaths&&!n&&t.includes(".")){let i=t.split(".");if(i.every(w_)){xn(e,i,r,s,o);return}}xn(e,[t],r,s,o)}function xn(e,t,n,r,s){Je(t.length-1,s,r);let o=t[0],i=Object.prototype.hasOwnProperty.call(e,o);if(t.length===1){if(i&&r.strict)throw R(s,"duplicate key");Le(e,o,n);return}if(i&&!H(e[o])){if(r.strict)throw R(s,"path expansion conflict");Le(e,o,{})}else i||Le(e,o,{});xn(e[o],t.slice(1),n,r,s)}function w_(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var pd=g(()=>{ot();Vt();kn();dr();Hi();Ji();sd()});function C(e,t={}){let n=t.maxDepth??1e3,r=t.delimiter??G;if(![G,"|"," "].includes(r))throw R(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:r,maxDepth:n===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(n))};if(s.cyclicDiscriminatedArrays){let i=ed(e);if(i!==void 0)return i}let o=[];return Array.isArray(e)?ta(o,void 0,e,0,!1,s):H(e)?fd(o,e,0,s):o.push(ie(e,r)),o.join("")}function vn(e,t){e.push(" ".repeat(t*2))}function fd(e,t,n,r){Je(n,0,r);for(let[s,o]of Object.entries(t))vn(e,n),Zi(e,s,o,n,r)}function Zi(e,t,n,r,s){if(Je(r,0,s),Array.isArray(n)){ta(e,t,n,r,!1,s);return}if(H(n)){let o=s.keyedMapCollapse?R_(n,s,r+1):void 0;if(o!==void 0){e.push(K(t),"{",na(s.delimiter),o.fields.map(i=>oa(i,s.delimiter)).join(s.delimiter),`}:
|
|
20
|
-
`);for(let[i,a]of Object.entries(
|
|
21
|
-
`),e.push(...c)}return}e.push(
|
|
22
|
-
`),
|
|
23
|
-
`)}function
|
|
3
|
+
var JE=Object.create;var ya=Object.defineProperty;var KE=Object.getOwnPropertyDescriptor;var zE=Object.getOwnPropertyNames;var YE=Object.getPrototypeOf,QE=Object.prototype.hasOwnProperty;var y=(e,t)=>()=>(e&&(t=e(e=0)),t);var Qd=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),K=(e,t)=>{for(var r in t)ya(e,r,{get:t[r],enumerable:!0})},XE=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of zE(t))!QE.call(e,s)&&s!==r&&ya(e,s,{get:()=>t[s],enumerable:!(n=KE(t,s))||n.enumerable});return e};var ba=(e,t,r)=>(r=e!=null?JE(YE(e)):{},XE(t||!e||!e.__esModule?ya(r,"default",{value:e,enumerable:!0}):r,e));function eR(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 tR(e=Xd){return Object.entries(e).map(([t,r])=>eR(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function rR(e){return/^-\d+(\.\d+)?$/.test(e)}function Mr(e){return!(!e||e.startsWith("-")&&!rR(e))}function Zs(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e}function Zd(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(e.startsWith("[")&&e.endsWith("]")||e.startsWith("{")&&e.endsWith("}"))try{return JSON.parse(e)}catch{}let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e.includes(",")?e.split(",").map(r=>Zd(r.trim())):e}function lr(e,t){switch(t){case"boolean":return nR(e);case"number":return sR(e);case"array":return e.split(",").map(r=>Zs(r.trim()));case"string":default:return e}}function nR(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function sR(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let t=Number(e);if(Number.isNaN(t))throw new TypeError(`Cannot convert "${e}" to number`);return t}function jt(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function oR(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function q(e,t){return{type:e,value:t}}function iR(e){let t=[],r=cR(e);if(t.push(q("section-header","Usage:"),q("text"," "),q("usage-text",r),q("newline",`
|
|
4
|
+
`),q("newline",`
|
|
5
|
+
`)),e.positional&&e.positional.length>0){t.push(q("section-header","Arguments:"),q("newline",`
|
|
6
|
+
`));for(let n of e.positional)if(n.description){let s=n.variadic?`${n.name}...`:n.name;t.push(q("indent"," "),q("positional-name",`<${s}>`)),n.required||t.push(q("positional-optional"," (optional)")),t.push(q("newline",`
|
|
7
|
+
`),q("indent"," "),q("option-description",n.description),q("newline",`
|
|
8
|
+
`))}t.push(q("newline",`
|
|
9
|
+
`))}if(e.options&&Object.keys(e.options).length>0){t.push(q("section-header","Options:"),q("newline",`
|
|
10
|
+
`));let n=uR(e.options);t.push(...n)}return t}function aR(e,t){let r=iR(e);return oR(r,t)}function cR(e){let t=["[options]"];if(e.positional)for(let r of e.positional)r.variadic?t.push(r.required?`<${r.name}...>`:`[${r.name}...]`):t.push(r.required?`<${r.name}>`:`[${r.name}]`);return t.join(" ")}function uR(e,t=!1){let r=[],n=[],s=t?"global-option-flag":"option-flag",o=t?"global-option-type":"option-type",i=t?"global-option-default":"option-default",a=t?"global-option-description":"option-description";for(let[u,l]of Object.entries(e)){if(l.hidden)continue;let p=[],d=k=>{p.includes(k)||p.push(k)};l.short&&d(`-${l.short}`),d(`--${u}`);for(let k of l.aliases??[])k.length===1?d(`-${k}`):d(`--${k}`);let g=p.join(", "),f=l.type&&l.type!=="boolean"?`<${l.type}>`:void 0;n.push({flags:g,type:f,desc:l.description??"",default:l.default!==void 0?String(l.default):void 0})}let c=Math.max(...n.map(u=>u.flags.length+(u.type?u.type.length+1:0)),20);for(let u of n){let l=u.flags.length+(u.type?u.type.length+1:0),p=" ".repeat(c-l+2);r.push(q("indent"," ")),r.push(q(s,u.flags)),u.type&&(r.push(q("text"," ")),r.push(q(o,u.type))),r.push(q("text",p)),r.push(q(a,u.desc)),u.default!==void 0&&(r.push(q("text"," ")),r.push(q(i,`(default: ${u.default})`))),r.push(q("newline",`
|
|
11
|
+
`))}return r}function ep(e){let t=hR(e.options??{},e.autoShort??!1),r=tR(e.separators??Xd);return{schema:e,parse(n){return lR(n,e,t,r)},help(){return aR(e,e.formatter)}}}function lR(e,t,r,n){let s={positional:{},options:{},errors:[],rest:[]},o=new Set(n.map(l=>l.to));for(let l of o)s[l]={};let i=0,a=t.positional??[],c=0,u=!1;for(;c<e.length;){let l=e[c];if(t.stopEarly&&i>0){s.rest=e.slice(c);break}if(l==="--"&&!u){u=!0,c++;continue}if(u){if(i<a.length){let d=a[i];if(d.variadic){let g=[];for(;c<e.length;){let f=e[c];g.push(d.type?lr(f,d.type):f),c++}s.positional[d.name]=g,i++}else{let g=d.type?lr(l,d.type):l;s.positional[d.name]=g,i++,c++}}else t.allowUnknown!==!1&&(s.rest=s.rest??[],s.rest.push(l)),c++;continue}if(l.startsWith("--")){c=fR(l,c,e,s,r,t);continue}if(l.startsWith("-")&&l.length>1&&!ER(l)){c=gR(l,c,e,s,r,t);continue}let p=dR(l,n);if(p){let{key:d,value:g,config:f}=p,k=s,E=k[f.to]??(k[f.to]={});E[d]=f.typed?Zd(g):jt(g),c++;continue}if(i<a.length){let d=a[i];if(d.variadic){let f=[];for(;c<e.length&&!e[c].startsWith("-");){let k=e[c];f.push(d.type?lr(k,d.type):k),c++}s.positional[d.name]=f,i++;continue}let g=d.type?lr(l,d.type):l;s.positional[d.name]=g,i++}else t.allowUnknown!==!1?s.rest.push(l):s.errors.push(`Unexpected positional argument: ${l}`);c++}return bR(s,t,r),wR(s,t,a),_R(s,t,r),s}function dR(e,t){if(ZE.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(pR(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(mR(s,o,r))return{key:s,value:o,config:r}}}return null}function pR(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function mR(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 fR(e,t,r,n,s,o){let i=e.slice(2);if(i.startsWith("no-")){let c=i.slice(3),u=s.get(c);if(u?.negatable!==!1&&u?.type==="boolean")return n.options[u.name]=!1,t+1}if(i.includes("=")){let c=i.indexOf("="),u=i.slice(0,c),l=i.slice(c+1);return eo(u,l,t+1,n,s,o)}let a=s.get(i);if(a){if(a.type!=="boolean"){let c=r[t+1];return Mr(c)?eo(a.name,c,t+2,n,s,o):(n.errors.push(`Option --${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}return o.strict?n.errors.push(`Unknown option: --${i}`):o.allowUnknown!==!1&&(n.options[i]=!0),t+1}function gR(e,t,r,n,s,o){let i=e.slice(1);if(i.includes("=")){let a=i.indexOf("="),c=i.slice(0,a),u=i.slice(a+1),l=wa(c,s);return l?eo(l.name,u,t+1,n,s,o):(o.strict?n.errors.push(`Unknown option: -${c}`):o.allowUnknown!==!1&&(n.options[c]=Zs(jt(u))),t+1)}if(i.length===1){let a=wa(i,s);if(a){if(a.type!=="boolean"){let c=r[t+1];return Mr(c)?eo(a.name,c,t+2,n,s,o):(n.errors.push(`Option -${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}if(o.strict)n.errors.push(`Unknown option: -${i}`);else if(o.allowUnknown!==!1){let c=r[t+1];if(Mr(c))return n.options[i]=Zs(jt(c)),t+2;n.options[i]=!0}return t+1}for(let a of i){let c=wa(a,s);c?c.type==="boolean"?n.options[c.name]=!0:n.errors.push(`Option -${a} requires a value`):o.strict?n.errors.push(`Unknown option: -${a}`):o.allowUnknown!==!1&&(n.options[a]=!0)}return t+1}function eo(e,t,r,n,s,o){let i=s.get(e);if(i){if(i.choices){let c=i.type?lr(jt(t),i.type):jt(t);if(!i.choices.includes(c))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?lr(jt(t),i.type):jt(t);if(i.type==="array"){let c=n.options[e];Array.isArray(c)?c.push(...a):n.options[e]=a}else n.options[e]=a}else o.strict?n.errors.push(`Unknown option: --${e}`):o.allowUnknown!==!1&&(n.options[e]=Zs(jt(t)));return r}function hR(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=yR(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 yR(e,t){for(let r of e){if(!/[a-zA-Z]/.test(r))continue;let n=r.toLowerCase();if(!t.has(n))return n;let s=r.toUpperCase();if(!t.has(s))return s}return""}function wa(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function bR(e,t,r){for(let n of r.values())if(e.options[n.name]===void 0)if(n.env&&process.env[n.env]!==void 0){let s=process.env[n.env];e.options[n.name]=n.type?lr(s,n.type):s}else n.default!==void 0&&(e.options[n.name]=n.default);for(let n of t.positional??[])e.positional[n.name]===void 0&&n.default!==void 0&&(e.positional[n.name]=n.default)}function wR(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 _R(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 ER(e){return/^-\d+(\.\d+)?$/.test(e)}var Xd,ZE,tp=y(()=>{Xd={"=":"data",":=":{to:"data",typed:!0},":":"meta"},ZE=/^[a-z][a-z0-9+.-]*:\/\//i});function RR(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 kR(e,t){let r=new Map;for(let[s,o]of Object.entries(t))if(!(o.kind!=="value"||o.type!=="array")){r.set(s,s);for(let i of o.aliases??[])r.set(i,s)}let n=new Map;for(let s=0;s<e.length;s+=1){let o=e[s];if(o==="--")break;let i=o.match(/^--([^=]+)(?:=(.*))?$/)??o.match(/^-([^=])(?:=(.*))?$/);if(i===null)continue;let a=r.get(i[1]);if(a===void 0)continue;let c=i[2];if(c===void 0&&Mr(e[s+1])&&(c=e[s+1],s+=1),c===void 0)continue;let u=n.get(a)??[];u.push(c),n.set(a,u)}return n}function Gn(e,t,r={}){let s=ep({options:RR(t),separators:{},allowUnknown:!0}).parse([...e]),o={},i=kR(e,t),a=s.errors.find(c=>/^Option --?\S+ requires a value$/.test(c));if(a!==void 0)throw new Error(a.replace(/^Option /,""));if(s.errors.length>0)throw new Error(s.errors[0]);if(r.unknownFlags==="error"){let c=new Set(Object.keys(t));for(let u of Object.keys(s.options))if(!c.has(u))throw new _a(u.length===1?`-${u}`:`--${u}`,Object.keys(t).map(l=>l.length===1?`-${l}`:`--${l}`))}for(let[c,u]of Object.entries(t)){let l=s.options[c];l!==void 0&&(u.kind==="boolean"?o[c]=l:u.type==="array"?o[c]=(i.get(c)??[]).map(p=>u.coerce(p)):o[c]=u.coerce(String(l)))}return{values:o,positionals:s.rest}}function vR(e){let t=new Map;for(let[r,n]of Object.entries(e)){t.set(r,r);for(let s of n.aliases??[])t.set(s,r)}return t}function dr(e,t,r={}){let n=vR(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=SR.exec(c)??TR.exec(c),l=u===null?void 0:n.get(u[1]),p=l===void 0?void 0:t[l];if(l===void 0||p===void 0){i.push(c);continue}if(p.kind==="boolean"){o[l]=!0;continue}let d=u[2];if(d===void 0&&Mr(e[a+1])&&(d=e[a+1],a+=1),d===void 0)throw new Error(`${c} requires a value`);if(p.type==="array"){let g=o[l]??[];g.push(p.coerce(d)),o[l]=g}else o[l]=p.coerce(d)}return{values:o,rest:i}}function Ea(e,t){let[r,...n]=e;if(r!==void 0){for(let[o,i]of Object.entries(t.commands))if(r===o||(i.aliases??[]).includes(r))return{command:o,args:n};if(t.errorOnUnknownCommand&&!r.startsWith("-"))throw new Dn(r,Object.keys(t.commands))}let s=t.keepArgvOnDefault??!0;return{command:t.default,args:s?[...e]:n}}var _a,SR,TR,Dn,Ra=y(()=>{tp();_a=class extends Error{flag;known;constructor(t,r){super(`unknown flag '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownFlagError",this.flag=t,this.known=r}};SR=/^--([^=]+)(?:=([\s\S]*))?$/,TR=/^-([^-=])(?:=([\s\S]*))?$/;Dn=class extends Error{token;known;constructor(t,r){super(`unknown command '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownCommandError",this.token=t,this.known=r}}});function np(e){return xR.test(e)}var xR,rp,sp=y(()=>{xR=/rate limit exceeded|secondary rate limit|abuse detection mechanism|API rate limit|API rate limited|RATE_LIMITED|too many requests|\b429\b/i,rp="wait for the GitHub rate limit window to reset, then retry: gh api rate_limit"});var op=y(()=>{});function x(e,t){return new Br(e,t)}function j(e,t){return new pr(e,t)}function jr(e){return e instanceof pr?e:e instanceof Br?new pr(e.line,e.reason):new pr(0,String(e&&e.message?e.message:e))}var Br,pr,kt=y(()=>{Br=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},pr=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}}});var ip,mr,ap,Ur=y(()=>{ip=["type","kind","event"],mr="|",ap=new Set(["order","discriminator","rows","common"])});function to(e){let t=e.split(`
|
|
12
|
+
`);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function it(e){return x(e,"invalid quoted string")}function Ge(e,t){if(e==="")return"";if(e.startsWith('"'))return lp(e,t);if(e.includes('"'))throw it(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:CR(e)?Number(e):e}function qe(e,t){let r=e.trim();if(r.startsWith('"'))return[lp(r,t),!0];if(r.includes('"')||/\s/.test(r))throw x(t,"expected non-empty field name");return[r,!1]}function lp(e,t){if(e.charCodeAt(0)!==34)throw it(t);let r="",n=1;for(;n<e.length;){cp.lastIndex=n;let s=cp.exec(e);if(s===null)break;if(s[0]==='"'){if(e.slice(s.index+1).trim()==="")return r+e.slice(n,s.index);throw it(t)}if(s[0]!=="\\")throw it(t);r+=e.slice(n,s.index);let o=e[s.index+1];switch(n=s.index+2,o){case'"':r+='"';break;case"\\":r+="\\";break;case"n":r+=`
|
|
13
|
+
`;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw it(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw it(t);r+=String.fromCharCode(a),n+=4;break}default:throw it(t)}}throw it(t)}function dp(e,t,r){for(;;){let n=e.indexOf('"',t),s=e.indexOf("\\",t);if(s!==-1&&(n===-1||s<n)){if(s===e.length-1)throw it(r);t=s+2;continue}if(n===-1)throw it(r);return n+1}}function We(e,t,r){if(e==="")return[];let n=[],s=0,o=0;for(;o<e.length;){let i=e.indexOf('"',o),a=e.indexOf(t,o);if(a!==-1&&(i===-1||a<i))n.push(e.slice(s,a).trim()),s=a+1,o=a+1;else if(i!==-1)o=dp(e,i+1,r);else break}return n.push(e.slice(s).trim()),n}function _e(e,t,r){let n=0;for(;n<e.length;){let s=e.indexOf('"',n),o=e.indexOf(t,n);if(o!==-1&&(s===-1||o<s))return o;if(s===-1)return-1;n=dp(e,s+1,r)}return-1}function CR(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function OR(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function AR(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw x(0,"number is not representable in TOON");return String(e)}function at(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function Ee(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return AR(e);if(typeof e=="string")return IR(e,t);throw x(0,"not a primitive")}function PR(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ae(e){return PR(e)?e:ro(e)}function IR(e,t){return ka(e,t)?ro(e):e}function ka(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||OR(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}function ro(e){let t='"',r=0;up.lastIndex=0;let n;for(;(n=up.exec(e))!==null;){let s=e.charCodeAt(n.index),o;s===34?o='\\"':s===92?o="\\\\":s===10?o="\\n":s===13?o="\\r":s===9?o="\\t":o=`\\u${s.toString(16).padStart(4,"0")}`,t+=e.slice(r,n.index)+o,r=n.index+1}return`${t}${e.slice(r)}"`}function Ve(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var Q,cp,up,fr=y(()=>{kt();Q=",";cp=/["\\\u0000-\u0008\u000a-\u001f]/g;up=/["\\\u0000-\u001f]/g});function X(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var $n=y(()=>{});function pp(e={}){let t=e.maxDepth??1e3,r=t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t));return{indent:Math.max(1,e.indent??2),strict:e.strict??!0,expandPaths:e.expandPaths==="safe"||e.expandPaths===!0,cyclicDiscriminatedArrays:e.cyclicDiscriminatedArrays!==!1,maxDepth:r}}function mp(e,t){let r=[],n=!1;return to(e).forEach((s,o)=>{let i=o+1;if(s.trim()===""){n=!0;return}let a=s.length-s.replace(/^ +/,"").length;if(s[a]===" ")throw x(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw x(i,"invalid indentation");let c=Math.floor(a/t.indent);ct(c,i,t),r.push({number:i,depth:c,content:s.slice(a),blankBefore:n}),n=!1}),r}function ct(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw x(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function Mn(e,t,r){if(r.maxDepth===0)return;let n=0,s=!1,o=!1;for(let i of e){if(o){o=!1;continue}if(s&&i==="\\"){o=!0;continue}if(i==='"'){s=!s;continue}s||(i==="{"?(n+=1,ct(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}var Sa=y(()=>{kt();fr();Ur()});function hp(e){if(!X(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let s=LR(n,1);if(s===void 0)return e;Ve(t,r,s)}return t}function LR(e,t){if(!X(e)||!DR(e))return;let{order:r,discriminator:n,rows:s}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(s)||s<0)throw me(t);let o=GR(r,s,t),i=e.common,a=i===void 0?Array.from({length:s},()=>({})):i;if(!Array.isArray(a)||a.length!==s||!a.every(X))throw yp(t);let c=new Map;for(let[p,d]of Object.entries(e))if(!ap.has(p)){if(!Array.isArray(d)||!d.every(X))throw me(t);c.set(p,d)}if(c.size===0)throw me(t);let u=new Map,l=o.map((p,d)=>{let g=c.get(p);if(g===void 0)throw Ta(t);let f=u.get(p)??0,k=g[f];if(k===void 0)throw Ta(t);return u.set(p,f+1),$R(n,p,a[d],k,t)});for(let[p,d]of c)if((u.get(p)??0)!==d.length)throw Ta(t);return l}function DR(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function GR(e,t,r){if(!e.startsWith("cycle("))throw me(r);let n=e.slice(6),s=n.indexOf(")*");if(s===-1)throw me(r);let o=n.slice(0,s),i=n.slice(s+2);if(o===""||i.includes("+tail("))throw me(r);let a=o.split(",").map(l=>BR(l,r));if(a.some(l=>l===""))throw me(r);let c=MR(i,r),u=a.length*c;if(!Number.isSafeInteger(u))throw me(r);if(u!==t)throw yp(r);return Array.from({length:u},(l,p)=>a[p%a.length])}function $R(e,t,r,n,s){let o={};Ve(o,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw me(s);Ve(o,i,a)}for(let[i,a]of Object.entries(NR(n,s))){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw me(s);Ve(o,i,a)}return o}function NR(e,t){let r={};for(let[n,s]of Object.entries(e))FR(r,n.split("."),s,t);return no(r,t)}function FR(e,t,r,n){if(t.some(o=>o===""))throw me(n);let s=e;for(let o=0;o<t.length;o+=1){let i=t[o];if(o===t.length-1){s[i]=r;return}if(s[i]??={},s=s[i],!X(s))throw me(n)}}function no(e,t){return Array.isArray(e)?e.map(r=>no(r,t)):X(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw me(t);return no(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,no(n,t)])):e}function MR(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw me(t);let r=Number(e);if(!Number.isSafeInteger(r))throw me(t);return r}function BR(e,t){try{return decodeURIComponent(e)}catch{throw me(t)}}function fp(e){return encodeURIComponent(e)}function me(e){return x(e,"invalid cyclic array wire")}function yp(e){return x(e,"cyclic array length mismatch")}function Ta(e){return x(e,"cyclic array group length mismatch")}function bp(e){if(!X(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[s,o]of t){let i=jR(o);if(i===void 0)return;r.push([s,i])}let n=[];for(let[s,o]of r)WR(n,s,o);return n.join("")}function jR(e){if(!Array.isArray(e)||e.length===0||!e.every(X))return;let t=UR(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=HR(r);if(n===void 0)return;let s=qR(e,t),o=new Map;for(let a of e){let c=a[t];o.has(c)||o.set(c,[]);let u={};for(let[l,p]of Object.entries(a))if(l!==t&&!s.includes(l)&&!va(p,l,u))return;o.get(c).push(u)}let i=[];for(let a of n.cycle){let c=o.get(a),u=JR(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 UR(e){return ip.find(t=>e.every(r=>typeof r[t]=="string"))}function HR(e){if(!(e.length<12))for(let t=2;t<=Math.min(8,Math.floor(e.length/3));t+=1){if(e.length%t!==0)continue;let r=e.slice(0,t);if(new Set(r).size<2||!e.every((i,a)=>i===r[a%t]))continue;let n=e.length/t;if(n<3)continue;let s=e.map(fp).join(","),o=`cycle(${r.map(fp).join(",")})*${n}`;if(o.length<=s.length*.4)return{cycle:r,encoded:o,repeats:n}}}function qR(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(!VR(o)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,o))||!e.every(i=>at(i[o])))break;r.push(o)}return r}function WR(e,t,r){e.push(ae(t),`:
|
|
14
|
+
`),e.push(" order: ",Ee(r.order.encoded,mr),`
|
|
15
|
+
`),e.push(" discriminator: ",Ee(r.discriminator,mr),`
|
|
16
|
+
`),e.push(" rows: ",String(r.rows.length),`
|
|
17
|
+
`),r.common.length>0&&gp(e,"common",r.common,r.commonRows);for(let n of r.groups)gp(e,n.label,n.fields,n.rows)}function gp(e,t,r,n){e.push(" ",ae(t),"[",String(n.length),mr,"]{",r.map(ae).join(mr),`}:
|
|
18
|
+
`);for(let s of n)e.push(" ",r.map(o=>Ee(s[o],mr)).join(mr),`
|
|
19
|
+
`)}function VR(e){return e!==""&&xa(e)}function va(e,t,r,n=new Set){if(!xa(t))return!1;if(at(e))return r[t]=e,!0;if(Array.isArray(e)){if(n.has(e))return!1;n.add(e),r[`${t}.length`]=e.length;let s=e.every((o,i)=>va(o,`${t}.${i}`,r,n));return n.delete(e),s}if(X(e)){if(n.has(e))return!1;n.add(e);let s=Object.entries(e).every(([o,i])=>!o.includes(".")&&va(i,`${t}.${o}`,r,n));return n.delete(e),s}return!1}function JR(e){let t=Object.keys(e[0]??{});if(e.every(r=>KR(Object.keys(r),t)))return t.every(xa)?t:void 0}function KR(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function xa(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}var Ca=y(()=>{kt();fr();Ur();$n()});function Hr(e,t){let r=e[t]??e[e.length-1];return x(r===void 0?1:r.number,"array length mismatch")}function so(e,t){if(t===-1)throw x(0,"array header missing colon");let r=e.slice(0,t),n=_e(r,"[",0);if(n===-1)throw x(0,"invalid array header");let s,o;try{[s,o]=qe(r.slice(0,n),0)}catch{throw x(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw x(0,"invalid array header");let c=i.slice(0,a),u=/^[0-9]*/.exec(c)[0];if(u===""||u.length>1&&u.startsWith("0"))throw x(0,"invalid array header");let l=Number.parseInt(u,10),p;switch(c.slice(u.length)){case"":p=",";break;case" ":p=" ";break;case"|":p="|";break;default:throw x(0,"invalid array header")}let d=i.slice(a+1),g,f;if(d==="")g=void 0,f=void 0;else if(d.startsWith("{")&&d.endsWith("}")&&d.length>=2)try{f=YR(d.slice(1,-1),p),g=Aa(f)}catch(k){throw x(0,k.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw x(0,"invalid array header");return{key:s,keyQuoted:o,len:l,delimiter:p,fields:g,fieldTree:f}}function wp(e){let t=_e(e,"{",0);if(t===-1||!e.endsWith("}"))throw x(0,"invalid keyed map header");let r,n;try{[r,n]=qe(e.slice(0,t),0)}catch{throw x(0,"invalid keyed map header")}if(r===""&&!n)throw x(0,"expected non-empty field name");let s=e.slice(t+1,-1),o=Q;(s.startsWith("|")||s.startsWith(" "))&&(o=s[0],s=s.slice(1));let i;try{i=zR(s,o,o)}catch(a){throw x(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:o,fields:i}}function zR(e,t,r){let n=[],s=0;function o(c,u){let l=0;for(;s<e.length&&!(u&&e[s]==="}");){if(e[s]===t||e[s]==="}")throw x(0,"invalid array header");let p=s;for(;s<e.length;){let f=e[s];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;s+=1}let[d,g]=qe(e.slice(p,s),0);if(d===""&&!g)throw x(0,"invalid array header");if(l+=1,e[s]==="["){s+=1;let f=s;for(;s<e.length&&e[s]!=="]";)s+=1;if(s>=e.length)throw x(0,"invalid array header");let k=e.slice(f,s);if(!_p(k,r))throw x(0,"invalid array header");s+=1,n.push({path:[...c,d],listDelimiter:k})}else if(e[s]==="{"){s+=1;let f=n.length;if(o([...c,d],!0),e[s]!=="}"||n.length===f)throw x(0,"invalid array header");s+=1}else n.push({path:[...c,d],listDelimiter:void 0});if(e[s]===t){if(s+=1,s>=e.length||e[s]==="}")throw x(0,"invalid array header");continue}if(u?e[s]==="}":s===e.length)break;throw x(0,"invalid array header")}if(l===0)throw x(0,"invalid array header")}function i(){for(s+=1;s<e.length;){let c=e[s];if(s+=1,c==="\\")s+=1;else if(c==='"')return}}if(o([],!1),s!==e.length)throw x(0,"invalid array header");let a=new Set;for(let c=0;c<n.length;c+=1)for(let u=c+1;u<n.length;u+=1)if(Ep(n[c].path,n[u].path)||Bn(n[c].path,n[u].path)||Bn(n[u].path,n[c].path))throw x(0,"duplicate key");for(let c of n){let l=c.path.join("\0");if(a.has(l))throw x(0,"duplicate key");a.add(l)}return n}function YR(e,t){if(t!==Q&&e.includes(Q)&&(e.includes("[")||e.includes("{")))return Oa(e,Q,t);try{return Oa(e,t,t)}catch(r){if(t!==Q&&r.reason!=="duplicate key")return Oa(e,Q,t);throw r}}function Oa(e,t,r){let n=0;function s(c){let u=[];for(;n<e.length&&!(c&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw x(0,"invalid array header");let l=n;for(;n<e.length;){let f=e[n];if(f==='"'){o();continue}if(f===t||f==="{"||f==="}"||f==="[")break;n+=1}let[p,d]=qe(e.slice(l,n),0);if(p===""&&!d)throw x(0,"invalid array header");let g={key:p};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw x(0,"invalid array header");let k=e.slice(f,n);n+=1;let E=QR(k);if(E!==void 0){if(E.delimiter!==r)throw x(0,"invalid array header");g.fixedLength=E.len,g.fixedDelimiter=E.delimiter}else if(_p(k,r))g.listDelimiter=k;else throw x(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=s(!0),e[n]!=="}"||g.children.length===0)throw x(0,"invalid array header");n+=1}if(u.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw x(0,"invalid array header");continue}if(c?e[n]==="}":n===e.length)break;throw x(0,"invalid array header")}if(u.length===0)throw x(0,"invalid array header");return u}function o(){for(n+=1;n<e.length;){let c=e[n];if(n+=1,c==="\\")n+=1;else if(c==='"')return}}let i=s(!1);if(n!==e.length)throw x(0,"invalid array header");let a=Aa(i);for(let c=0;c<a.length;c+=1)for(let u=c+1;u<a.length;u+=1)if(Ep(a[c].path,a[u].path)||Bn(a[c].path,a[u].path)||Bn(a[u].path,a[c].path))throw x(0,"duplicate key");return i}function QR(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=Q;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function Aa(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?Aa(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function oo(e,t,r){return e.listDelimiter===void 0?Ge(t,r):We(t,e.listDelimiter,r).map(n=>Ge(n,r))}function _p(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Ep(e,t){return e.length===t.length&&Bn(e,t)}function Bn(e,t){return t.every((r,n)=>e[n]===r)}function io(e,t){return x(t,e.reason??String(e.message))}var Rp=y(()=>{kt();fr()});function H(e,t){let r=pp(t),n=mp(e,r),s=n[0];if(s===void 0)return{};if(s.depth!==0)throw x(s.number,"invalid indentation");let o=n.length===1;if(o&&s.content.trim()==="[]")return[];if(s.content.startsWith("[")){Mn(s.content,s.number,r);let u;try{u=so(s.content,_e(s.content,":",s.number))}catch(l){if(r.strict)throw io(l,s.number);u=void 0}if(u!==void 0)return ek(u,n,r)}if(o&&_e(s.content,":",s.number)===-1)return Ge(s.content.trim(),s.number);let i={index:0},a=Ia(n,i,0,r),c=n[i.index];if(c!==void 0)throw x(c.number,"expected end of document");return r.cyclicDiscriminatedArrays?hp(a):a}function Ia(e,t,r,n){let s={};for(;t.index<e.length;){let o=e[t.index];if(o.depth<r)break;if(o.depth>r)throw x(o.number,"invalid indentation");let{key:i,quoted:a,value:c}=XR(e,t,r,n);Op(s,i,a,c,n,o.number)}return s}function XR(e,t,r,n){let s=e[t.index],o=s.content,i=_e(o,":",s.number);if(i===-1)throw x(s.number,"expected `key: value`");let a=o.slice(0,i),c=o.slice(i+1),u=_e(a,"[",s.number),l=_e(a,"{",s.number);if(l!==-1&&(u===-1||l<u)){Mn(a,s.number,n);let f;try{f=wp(a)}catch(E){if(n.strict)throw io(E,s.number);t.index+=1;let h=Pa(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:h}}if(c.trim()!=="")throw x(s.number,"expected keyed map rows");let k=ZR(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:k}}if(u!==-1){Mn(a,s.number,n);let f;try{f=so(a,i)}catch(E){if(n.strict)throw io(E,s.number);t.index+=1;let h=Pa(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:h}}if(f.key===""&&!f.keyQuoted)throw x(s.number,"expected non-empty field name");let k=La(f,c,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:k}}let[p,d]=qe(a,s.number);if(p===""&&!d)throw x(s.number,"expected non-empty field name");t.index+=1;let g=Pa(e,t,r,c,s.number,n);return{key:p,quoted:d,value:g}}function Pa(e,t,r,n,s,o){let i=n.trim();if(i==="[]")return[];if(i!=="")return Ge(i,s);let a=e[t.index];return a!==void 0&&a.depth>r?Ia(e,t,r+1,o):{}}function ZR(e,t,r,n,s){let o={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw x(i.number,"invalid indentation");if(i.blankBefore&&s.strict)throw x(i.number,"blank line inside keyed map");let a=_e(i.content,":",i.number);if(a===-1)throw x(i.number,"expected `key: value`");let[c,u]=qe(i.content.slice(0,a),i.number);if(c===""&&!u)throw x(i.number,"expected non-empty field name");let l=We(i.content.slice(a+1).trim(),e.delimiter,i.number);if(l.length!==e.fields.length)throw x(i.number,"keyed map row length mismatch");let p={};e.fields.forEach((d,g)=>{Wr(p,d.path,oo(d,l[g],i.number),s,i.number)}),Op(o,c,u,p,s,i.number),r.index+=1}return o}function ek(e,t,r){let n=t[0],s=_e(n.content,":",n.number);if(s===-1)throw x(n.number,"expected `key: value`");let o=n.content.slice(s+1),i={index:0},a=La(e,o,t,i,0,r),c=t[i.index];if(c!==void 0)throw x(c.number,"expected end of document");return a}function La(e,t,r,n,s,o){let i=r[n.index].number,a=t.trim();if(n.index+=1,e.fields!==void 0){if(a!=="")throw x(i,"expected tabular rows");return tk(e,e.fields,r,n,s+1,o)}if(a!==""){let c=We(a,e.delimiter,i).map(u=>Ge(u,i));if(c.length!==e.len)throw x(i,"array length mismatch");return c}return ck(e,r,n,s+1,o)}function tk(e,t,r,n,s,o){if(e.fieldTree!==void 0&&ik(e.fieldTree))return rk(e,r,n,s,o);let i=[];for(;i.length<e.len;){let c=r[n.index];if(c===void 0)throw Hr(r,n.index);if(c.depth<s)break;if(c.depth>s)throw x(c.number,"invalid indentation");if(c.blankBefore&&o.strict)throw x(c.number,"blank line inside array");if(!qr(c.content,e.delimiter,c.number))break;let u=We(c.content,e.delimiter,c.number);if(u.length!==t.length)throw x(c.number,"array row length mismatch");let l={};t.forEach((p,d)=>{Wr(l,p.path,oo(p,u[d],c.number),o,c.number)}),i.push(l),n.index+=1}if(i.length!==e.len)throw Hr(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=s&&qr(a.content,e.delimiter,a.number))throw x(a.number,"array length mismatch");return i}function rk(e,t,r,n,s){return kp(e.len,e.fieldTree,e.delimiter,t,r,n,s,!0)}function kp(e,t,r,n,s,o,i,a){let c=[],u=Tp(e,t,r,n,s.index,o,i);for(;c.length<e;){let p=n[s.index];if(p===void 0)throw Hr(n,s.index);if(p.depth<o)break;if(p.depth>o)throw x(p.number,"invalid indentation");if(p.blankBefore&&i.strict)throw x(p.number,"blank line inside array");if(!qr(p.content,r,p.number))break;let d=We(p.content,r,p.number),g={cellIndex:0,nextIndex:s.index+1,flatWidth:ao(t),childTableFields:u},f=Sp(t,d,p.number,n,g,o+1,r,i);if(g.cellIndex!==d.length)throw x(p.number,"array row length mismatch");c.push(ok(t,f,a)),s.index=g.nextIndex}if(c.length!==e)throw Hr(n,s.index);let l=n[s.index];if(l!==void 0&&l.depth>=o&&qr(l.content,r,l.number))throw x(l.number,"array length mismatch");return c}function Sp(e,t,r,n,s,o,i,a){let c={};return e.forEach((u,l)=>{let p=e.slice(l+1),d=nk(u,p,t,r,n,s,o,i,a);Wr(c,[u.key],d,a,r)}),c}function nk(e,t,r,n,s,o,i,a,c){if(e.fixedLength!==void 0){if(o.cellIndex+e.fixedLength>r.length)throw x(n,"array row length mismatch");let l=r.slice(o.cellIndex,o.cellIndex+e.fixedLength).map(p=>Ge(p,n));return o.cellIndex+=e.fixedLength,l}if(e.children!==void 0){let l=ao(e.children),p=r[o.cellIndex],d=xp(p),g=r.length-o.cellIndex-1,f=s[o.nextIndex],k=f!==void 0&&f.depth===i,E=o.childTableFields===void 0?void 0:o.childTableFields.has(e);if(E===void 0?d!==void 0&&(k||r.length!==o.flatWidth&&g<l+ak(t)):E){if(d===void 0)throw x(n,"array row length mismatch");return o.cellIndex+=1,kp(d,e.children,a,s,{get index(){return o.nextIndex},set index(_){o.nextIndex=_}},i,c,!1)}return Sp(e.children,r,n,s,o,i,a,c)}let u=r[o.cellIndex];if(u===void 0)throw x(n,"array row length mismatch");return o.cellIndex+=1,oo(e,u,n)}function Tp(e,t,r,n,s,o,i){let a=t.filter(l=>l.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let c,u=1<<a.length;for(let l=0;l<u;l+=1){let p=new Set;a.forEach((g,f)=>{l&1<<f&&p.add(g)});let d=vp(e,t,p,r,n,s,o,i);d!==void 0&&(c===void 0||d.consumedChildRows>c.consumedChildRows||d.consumedChildRows===c.consumedChildRows&&p.size<c.childTableFields.size)&&(c={childTableFields:p,consumedChildRows:d.consumedChildRows})}return c?.childTableFields}function vp(e,t,r,n,s,o,i,a){let c=o,u=0;try{for(let p=0;p<e;p+=1){let d=s[c];if(d===void 0||d.depth!==i||d.blankBefore&&a.strict||!qr(d.content,n,d.number))return;let g=We(d.content,n,d.number),f=sk(t,r,g,n,s,c+1,i+1,a);if(f===void 0||s[f.nextIndex]?.depth>i)return;u+=f.consumedChildRows,c=f.nextIndex}let l=s[c];if(l!==void 0&&l.depth>=i&&qr(l.content,n,l.number))return}catch{return}return{nextIndex:c,consumedChildRows:u}}function sk(e,t,r,n,s,o,i,a){let c=0,u=o,l=0;for(let p of e){if(p.fixedLength!==void 0)c+=p.fixedLength;else if(p.children!==void 0)if(t.has(p)){let d=xp(r[c]);if(d===void 0)return;c+=1;let g=Tp(d,p.children,n,s,u,i,a);if(g===void 0)return;let f=vp(d,p.children,g,n,s,u,i,a);if(f===void 0)return;u=f.nextIndex,l+=d+f.consumedChildRows}else c+=ao(p.children);else c+=1;if(c>r.length)return}if(c===r.length)return{nextIndex:u,consumedChildRows:l}}function ok(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function xp(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function ik(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function ao(e){return e.reduce((t,r)=>t+Cp(r),0)}function Cp(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?ao(e.children):1}function ak(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Cp(r),0)}function qr(e,t,r){let n=_e(e,":",r);if(n===-1)return!0;let s=_e(e,t,r);return s===-1?!1:s<n}function ck(e,t,r,n,s){let o=[];for(;o.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw Hr(t,r.index);if(a.depth>n)throw x(a.number,"invalid indentation");if(a.blankBefore&&s.strict)throw x(a.number,"blank line inside array");o.push(uk(t,r,n,s))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw x(i.number,"array length mismatch");return o}function uk(e,t,r,n){let s=e[t.index];if(!s.content.startsWith("-"))throw x(s.number,"expected array item");let o=s.content.slice(1).replace(/^\s+/,"");if(o==="")return t.index+=1,{};if(o.startsWith("[")){let i=_e(o,":",s.number);Mn(o,s.number,n);let a;try{a=so(o,i)}catch{a=void 0}if(a!==void 0){let c=o.slice(i+1);return La(a,c,e,t,r,n)}}if(_e(o,":",s.number)!==-1){let i=[{number:s.number,depth:r+1,content:o,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return Ia(i,{index:0},r+1,n)}return t.index+=1,Ge(o,s.number)}function Op(e,t,r,n,s,o){if(s.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(lk)){Wr(e,i,n,s,o);return}}Wr(e,[t],n,s,o)}function Wr(e,t,r,n,s){ct(t.length-1,s,n);let o=t[0],i=Object.prototype.hasOwnProperty.call(e,o);if(t.length===1){if(i&&n.strict)throw x(s,"duplicate key");Ve(e,o,r);return}if(i&&!X(e[o])){if(n.strict)throw x(s,"path expansion conflict");Ve(e,o,{})}else i||Ve(e,o,{});Wr(e[o],t.slice(1),r,n,s)}function lk(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var Ap=y(()=>{kt();fr();Ur();$n();Sa();Ca();Rp()});function $(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??Q;if(![Q,"|"," "].includes(n))throw x(0,"invalid array header");let s={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(s.cyclicDiscriminatedArrays){let i=bp(e);if(i!==void 0)return i}let o=[];return Array.isArray(e)?Na(o,void 0,e,0,!1,s):X(e)?Pp(o,e,0,s):o.push(Ee(e,n)),o.join("")}function Vr(e,t){e.push(" ".repeat(t*2))}function Pp(e,t,r,n){ct(r,0,n);for(let[s,o]of Object.entries(t))Vr(e,r),Ga(e,s,o,r,n)}function Ga(e,t,r,n,s){if(ct(n,0,s),Array.isArray(r)){Na(e,t,r,n,!1,s);return}if(X(r)){let o=s.keyedMapCollapse?pk(r,s,n+1):void 0;if(o!==void 0){e.push(ae(t),"{",Fa(s.delimiter),o.fields.map(i=>ja(i,s.delimiter)).join(s.delimiter),`}:
|
|
20
|
+
`);for(let[i,a]of Object.entries(r)){Vr(e,n+1);let c=[];e.push(ae(i),": ",o.paths.map(u=>Ua(Ba(a,u.path),u,s.delimiter,s,c,n+2)).join(s.delimiter),`
|
|
21
|
+
`),e.push(...c)}return}e.push(ae(t),`:
|
|
22
|
+
`),Pp(e,r,n+1,s);return}e.push(ae(t),": ",Ee(r,s.delimiter),`
|
|
23
|
+
`)}function Na(e,t,r,n,s,o){if(ct(n,0,o),r.length===0){t!==void 0?e.push(ae(t),`: []
|
|
24
24
|
`):s?e.push(`[0]:
|
|
25
25
|
`):e.push(`[]
|
|
26
|
-
`);return}if(
|
|
27
|
-
`);return}let i=s?void 0:
|
|
28
|
-
`);for(let a of
|
|
29
|
-
`),e.push(...c)}return}
|
|
30
|
-
`);for(let a of
|
|
31
|
-
`);return}e.push("- "),
|
|
32
|
-
`)}function
|
|
33
|
-
`),e.push(...i)}}function
|
|
34
|
-
`}function
|
|
35
|
-
`}function
|
|
36
|
-
`,f=()=>
|
|
37
|
-
`;return
|
|
38
|
-
`},end(){return p?"":(p=!0,
|
|
39
|
-
`)}function
|
|
40
|
-
`).trim()}var
|
|
41
|
-
`,{encoding:"utf8",mode:384}),
|
|
42
|
-
`||e[t]==="\r";)t+=1;let
|
|
43
|
-
`);return o<0?null:{frame:
|
|
26
|
+
`);return}if(r.every(at)){Da(e,t,r.length,void 0,o.delimiter),e.push(" "),e.push(r.map(a=>Ee(a,o.delimiter)).join(o.delimiter)),e.push(`
|
|
27
|
+
`);return}let i=s?void 0:Ip(r,o,n+1);if(i!==void 0){Da(e,t,r.length,i.fields,o.delimiter),e.push(`
|
|
28
|
+
`);for(let a of r){Vr(e,n+1);let c=[];e.push(i.paths.map(u=>Ua(Ba(a,u.path),u,o.delimiter,o,c,n+2)).join(o.delimiter)),e.push(`
|
|
29
|
+
`),e.push(...c)}return}Da(e,t,r.length,void 0,o.delimiter),e.push(`
|
|
30
|
+
`);for(let a of r)Vr(e,n+1),dk(e,a,n+1,o)}function dk(e,t,r,n){if(ct(r,0,n),Array.isArray(t)){e.push("- "),Na(e,void 0,t,r,!0,n);return}if(X(t)){let s=Object.entries(t);if(s.length===0){e.push(`-
|
|
31
|
+
`);return}e.push("- "),Ga(e,s[0][0],s[0][1],r+1,n);for(let[o,i]of s.slice(1))Vr(e,r+1),Ga(e,o,i,r+1,n);return}e.push("- ",Ee(t,n.delimiter),`
|
|
32
|
+
`)}function Da(e,t,r,n,s){t!==void 0&&e.push(ae(t)),e.push("[",String(r),Fa(s),"]"),n!==void 0&&e.push("{",n.map(o=>ja(o,s)).join(s),"}"),e.push(":")}function Fa(e){return e===Q?"":e}function Ip(e,t,r){let n=mk(e,t);if(n!==void 0)return n;let s=$a(e.map(o=>({value:o})),t,r);return s===void 0?void 0:{fields:s,paths:Ma(s)}}function pk(e,t,r){let n=Object.values(e);if(!(n.length<2))return Ip(n,t,r)}function $a(e,t,r){ct(r,0,t);let n=e[0]?.value;if(!X(n))return;let s=Object.keys(n).map(o=>({key:o}));if(s.length!==0){for(let{value:o}of e)if(!X(o)||Object.keys(o).length!==s.length||s.some(a=>!Object.prototype.hasOwnProperty.call(o,a.key)))return;for(let o of s){let i=e.map(({value:c})=>({value:c[o.key]}));if(i.every(({value:c})=>at(c)))continue;if(t.primitiveArrayColumns&&i.every(({value:c})=>Array.isArray(c)&&c.every(at))){o.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:c})=>Array.isArray(c))){let c=Lp(i.map(({value:l})=>l));if(c!==void 0){o.fixedLength=c.fixedLength,o.fixedDelimiter=t.delimiter;continue}let u=$a(i.flatMap(({value:l})=>l.map(p=>({value:p}))),t,r+1);if(u!==void 0){o.children=u,o.childTable=!0;continue}}if(!t.nestedTabularHeaders)return;let a=$a(i,t,r+1);if(a===void 0)return;o.children=a}return s}}function mk(e,t){if(!t.objectArrayColumns)return;let r=Lp(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function Lp(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(at)))return{fixedLength:t}}function Ma(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.childTable===!0?[{path:n,childFields:r.children}]:r.fixedLength!==void 0?[{path:n,fixedLength:r.fixedLength}]:r.children===void 0?[{path:n,listDelimiter:r.listDelimiter}]:Ma(r.children,n)})}function Ba(e,t){let r=e;for(let n of t)r=r[n];return r}function ja(e,t){return e.listDelimiter!==void 0?`${ae(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ae(e.key)}[${e.fixedLength}${Fa(t)}]`:e.children===void 0?ae(e.key):`${ae(e.key)}{${e.children.map(r=>ja(r,t)).join(t)}}`}function Ua(e,t,r,n,s,o){return t.childFields!==void 0?(fk(s,e,t.childFields,n,o),String(e.length)):t.fixedLength!==void 0?e.map(i=>Ee(i,r)).join(r):t.listDelimiter===void 0?Ee(e,r):e.map(i=>gk(i,r,t.listDelimiter)).join(t.listDelimiter)}function fk(e,t,r,n,s){for(let o of t){Vr(e,s);let i=[];e.push(Ma(r).map(a=>Ua(Ba(o,a.path),a,n.delimiter,n,i,s+1)).join(n.delimiter)),e.push(`
|
|
33
|
+
`),e.push(...i)}}function gk(e,t,r){return typeof e!="string"?Ee(e,t):ka(e,t)||e.includes(r)?ro(e):e}var Dp=y(()=>{kt();fr();Ur();$n();Sa();Ca()});var jn=y(()=>{Ur();Ap();$n();Dp()});var Gp=y(()=>{jn()});function wk(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw j(t,"invalid trailer count");return Number.parseInt(r,10)}function Vp(e,t){if(!Wp.test(e))throw j(t,"invalid tag")}function _k(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!Wp.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw j(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function Ek(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw j(t,"invalid header");let s=r.slice(0,n),o=s.startsWith("~"),i=o?s.slice(1):s;if(!o&&i.startsWith("="))return null;if(!Hp.includes(i)&&i!=="")throw j(t,"invalid header delimiter");let a=i===""?Q:i,c=r.slice(n+1),u=null;if(!o&&c.startsWith("<")){let d=c.indexOf(">");if(d===-1)throw j(t,"invalid tag");if(u=c.slice(1,d),Vp(u,t),i!=="")throw j(t,"invalid header delimiter");c=c.slice(d+1)}if(!c.startsWith("{")||!c.endsWith("}:"))throw j(t,"invalid header");let l=c.slice(1,-2),p;try{p=We(l,a,t).map(d=>qe(d,t)[0])}catch(d){throw jr(d)}if(p.length===0||p.some(d=>d===""))throw j(t,"invalid header fields");return{delimiter:a,fields:p,fieldText:l,continuation:o,tag:u}}function Rk(e,t,r){if(e===null||e.delimiter===void 0)throw j(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw j(r,"continuation header mismatch")}function $p(e,t,r,n){let s;try{s=We(e,t,n)}catch(o){throw jr(o)}if(s.length!==r)throw j(n,"row arity mismatch");for(let o of s)try{Ge(o,n)}catch(i){throw jr(i)}return s}function kk(e,t,r){let n={};return e.forEach((s,o)=>{try{Ve(n,s,Ge(t[o],r))}catch(i){throw jr(i)}}),n}function Sk(e,t,r){if(e.startsWith("- "))throw j(t,"reserved line prefix");let n=wk(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw j(t,"trailer without header");if(r.rowCount!==n)throw j(t,"trailer count mismatch");return{kind:"trailer"}}let s=Ek(e,t);if(s!==null)return s.continuation?(Rk(r,s,t),{kind:"continuation"}):s.tag!==null?{kind:"tag-header",header:s}:{kind:"header",header:s};let o=_k(e,t);if(o!==null){let i=r?.taggedLanes?.get(o.tag);if(i===void 0)throw j(t,"unknown tag");return{kind:"tagged-row",tag:o.tag,cells:$p(o.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw j(t,"row before header");return{kind:"row",cells:$p(e,r.delimiter,r.fields.length,t)}}function Tk(e,t={}){let r=[],n=new Map,s=[],o=[],i=null,a=!1,c=!1;function u(g,f){let k=o.at(-1);if(k!==void 0&&k.lane===g.lane&&k.delimiter===g.delimiter&&k.fieldText===g.fieldText){k.rows.push(f);return}o.push({lane:g.lane,delimiter:g.delimiter,fields:g.fields,fieldText:g.fieldText,rows:[f]})}function l(){i!==null&&s.push({delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,lane:i.lane,rows:i.rows})}function p(g,f,k){let E=n.get(g);if(E===void 0){if(n.size>=qp)throw j(k,"too many tagged lanes");E={segments:[],current:null},n.set(g,E),r.push(g)}else E.current!==null&&E.segments.push(E.current);E.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},E.delimiter=f.delimiter,E.fields=f.fields,E.fieldText=f.fieldText}if(to(e).forEach((g,f)=>{let k=f+1;if(g==="")return;let E=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},h=Sk(g,k,E);if(h.kind==="trailer"){l(),i=null;return}if(h.kind!=="continuation"){if(h.kind==="tag-header"){c=!0,p(h.header.tag,h.header,k);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 _=n.get(h.tag).current;_.rows.push(h.cells),u(_,h.cells);return}if(i===null)throw j(k,"row before header");i.rows.push(h.cells),u(i,h.cells)}}),!c)return l(),t.preserveInterleaving===!0,s;let d=[];l();for(let g of r){if(g===null){d.push(...s);continue}let f=n.get(g);d.push(...f.segments),f.current!==null&&d.push(f.current)}return t.preserveInterleaving===!0?o:d}function Ut(e){return Tk(e).flatMap(t=>t.rows.map(r=>kk(t.fields,r,0)))}function vk(e){if(!Hp.includes(e))throw j(0,"invalid header delimiter")}function Np(e,t,r=!1){return`[${`${r?"~":""}${e===Q?"":e}`}]{${t}}:
|
|
34
|
+
`}function Fp(e,t){return`[]<${e}>{${t}}:
|
|
35
|
+
`}function Ha(e,t){return t.map(ae).join(e)}function xk(e){if(!Array.isArray(e)||e.length===0)throw j(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=qe(String(t),0)}catch(n){throw jr(n)}if(r==="")throw j(0,"TOONL header requires fields");return r})}function Mp(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Bp(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw j(0,"TOONL continuation cadence must be positive")}function Ck(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function jp(e){if(e===null||typeof e!="object"||Array.isArray(e))throw j(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw j(0,"TOONL output requires object rows");if(t.some(r=>!at(e[r])))throw j(0,"TOONL rows must be flat objects");return t}function Ok(e){return JSON.stringify([...e].sort())}function Up(e,t){let r=Ok(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function Ht({delimiter:e=Q,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){vk(e),Bp(r),Bp(n);let s=null,o="",i=new Map,a=0,c=0,u=0,l=new Map,p=!1,d={continuationEveryRows:r,continuationEveryBytes:n},g=()=>s===null||!t?"":`[=${a}]
|
|
36
|
+
`,f=()=>Ck(d,c,u)?(c=0,u=0,Np(e,o,!0)):"",k=E=>{Vp(E,0);let h=l.get(E);if(h===void 0){if(l.size>=qp)throw j(0,"too many tagged lanes");h={fields:null,fieldsByShape:new Map},l.set(E,h)}return h};return{push(E){if(p)throw j(0,"TOONL encoder is closed");let h=Up(jp(E),i),_="";(s===null||s.length!==h.length||s.some((G,B)=>G!==h[B]))&&(_+=g(),s=h,o=Ha(e,s),a=0,c=0,u=0,_+=Np(e,o));let T=s.map(G=>Ee(E[G],e));_+=f();let v=`${T.join(e)}
|
|
37
|
+
`;return _+=v,a+=1,c+=1,u+=v.length,_},declareLane(E,h){if(p)throw j(0,"TOONL encoder is closed");let _=xk(h),T=Ha(Q,_),v=k(E);return Mp(v.fields,_)?"":(v.fields=_,Fp(E,T))},pushTagged(E,h){if(p)throw j(0,"TOONL encoder is closed");let _=k(E),T=Up(jp(h),_.fieldsByShape),v=Ha(Q,T),G=T.map(J=>Ee(h[J],Q)),B="";return Mp(_.fields,T)||(_.fields=T,B+=Fp(E,v)),`${B}${E}:${G.join(Q)}
|
|
38
|
+
`},end(){return p?"":(p=!0,g())}}}var Hp,qp,Wp,mN,fN,Jp=y(()=>{kt();jn();fr();Hp=[Q,"|"," "],qp=8,Wp=/^[A-Za-z0-9_-]+$/,mN=new TextEncoder,fN=new TextDecoder});var W=y(()=>{op();kt();jn();jn();Gp();Jp()});function Pk(e){return e==="no-op"?0:e==="usage"?2:1}function V(e){return Buffer.from(`${$(qa(e))}
|
|
39
|
+
`)}function qa(e){let t={command:e.command,category:e.category,exit_code:e.exitCode??Pk(e.category),error:e.error,help:[e.help]};return e.validFlags&&e.validFlags.length>0&&(t.valid_flags=[...e.validFlags]),e.diagnostics&&(t.diagnostics=Ik(e.diagnostics,3)),t}function Je(e,t,r){let s=([r,t].find(i=>i.trim())??"").trim(),o=s.toLowerCase();return/\bgh\b/.test(e)&&np(s)?{command:e,category:"transient",error:Un(s)||"GitHub API rate limit exceeded",help:rp,diagnostics:s}:/\bgh\b/.test(e)&&(o.includes("gh_token")||o.includes("not logged in")||o.includes("authentication"))?{command:e,category:"real-error",error:Un(s)||"GitHub authentication failed",help:"gh auth login",diagnostics:s}:o.includes("not a git repository")?{command:e,category:"real-error",error:Un(s)||"not a git repository",help:"git status",diagnostics:s}:o.includes("repository not found")||o.includes("could not resolve host")?{command:e,category:"real-error",error:Un(s)||"repository is unavailable",help:e.startsWith("gh ")?"gh repo view":"git remote -v",diagnostics:s}:{command:e,category:"real-error",error:Un(s)||"command failed",help:`${e} --help`,diagnostics:s}}function Kp(e,t,r,n){return V({command:e,category:"usage",error:`unknown flag: ${t}`,help:n,validFlags:r})}function Un(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function Ik(e,t){return e.split(/\r?\n/).slice(0,t).join(`
|
|
40
|
+
`).trim()}var ut=y(()=>{"use strict";sp();W()});function lo(e){let t={app:e,version:Hk(Kr("__RED_BUILD_VERSION__",()=>"3.4.3")??"0.0.0-dev"),gitSha:Kr("__RED_BUILD_GIT_SHA__",()=>"04dfcb086ae43c0b8507a46872a185ad5086ea45")??"unknown",buildTime:Kr("__RED_BUILD_TIME__",()=>"2026-08-04T19:00:11Z")??"unknown",bundleAsset:Kr("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},r=Kr("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=Kr("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function Hk(e){return e.startsWith("v")?e.slice(1):e}function nm(e){return`${e.app} ${e.version} ${e.gitSha}`}function Kr(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Va=y(()=>{});import{isAbsolute as qk,join as St,resolve as Ja}from"node:path";function Jk(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}function om(e){return St(Jk(e),sm)}function im(e){return St(om(e),"state")}function am(e){return St(om(e),"tmp")}function ne(e){return St(im(e),"rsp")}function Kk(e){return St(im(e),"red-skills.rdb")}function zk(e){return St(am(e),"red-skills.rdb")}function lm(e,t){let r=Kk(e);if(t(r))return r;let n=zk(e);if(t(n))throw Yk();return r}function Yk(){return new Error("Legacy shared store found at .red/tmp/red-skills.rdb. Run `rsp setup` to migrate it to .red/state/red-skills.rdb before using rsp, memory, or brain.")}function dm(e){return St(am(e),"waits")}function pm(e){let t=e.overrideEnvVars??Ka;for(let n of t){let s=e.env[n];if(s)return qk(s)?s:Ja(e.startDir,s)}let r=Ja(e.startDir);for(;;){if(e.exists(St(r,sm)))return r;let n=St(r,".."),s=Ja(n);if(s===r)break;r=s}return e.startDir}var sm,Wk,Vk,Ka,cm,um,$e=y(()=>{sm=".red",Wk="MEMORY_ROOT",Vk="RED_BRAIN_ROOT",Ka=[Wk,Vk];cm=".red/state/red-skills.rdb";um=".red/tmp/red-skills.rdb"});function se(e){return $(e,{keyedMapCollapse:!0})}var Qk,Xk,YN,Tt=y(()=>{W();$e();Qk=[{id:"memory.config",plugin:"memory",legacyPath:".red/memory/config.json",toonPath:".red/memory/config.toon",kind:"toon"}],Xk=[{id:"dev.afk-history",plugin:"dev",legacyPath:".red/state/afk-history.jsonl",toonPath:".red/state/castle/history.toonl",kind:"toonl"},{id:"dev.agent-log",plugin:"dev",legacyPath:".red/tmp/agent.log.toonl",toonPath:".red/tmp/agent.log.toonl",kind:"toonl"},{id:"dev.supervisor-firehose",plugin:"dev",legacyPath:".red/tmp/afk-supervisor.log.toonl",toonPath:".red/tmp/supervisors/default/supervisor.log.toonl",kind:"toonl",migration:"sniff-read"},{id:"dev.code-understanding-bench-runs",plugin:"dev",legacyPath:".red/tmp/bench/code-understanding/runs.jsonl",toonPath:".red/tmp/bench/code-understanding/runs.toonl",kind:"toonl"},{id:"dev.attempt-state",plugin:"dev",legacyPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",toonPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",kind:"toon"},{id:"dev.statusline-count-cache",plugin:"dev",legacyPath:".red/tmp/statusline-cache.json",toonPath:".red/state/statusline/statusline-cache.toon",kind:"toon"},{id:"dev.statusline-repo-cache",plugin:"dev",legacyPath:".red/tmp/statusline-repo-cache.json",toonPath:".red/state/statusline/statusline-repo-cache.toon",kind:"toon"},{id:"dev.rsp-resident-registry",plugin:"dev",legacyPath:".red/state/rsp/rsp-resident.pid.json",toonPath:".red/state/rsp/rsp-resident.pid.json",kind:"toon"},{id:"dev.rsp-status-summary",plugin:"dev",legacyPath:".red/state/rsp/rsp-status-summary.json",toonPath:".red/state/rsp/rsp-status-summary.json",kind:"toon"},{id:"dev.rsp-wait-registry",plugin:"dev",legacyPath:".red/tmp/waits/*.json",toonPath:".red/tmp/waits/*.json",kind:"toon"}],YN=[...Qk,...Xk]});function Hn(e){let{values:t,rest:r}=dr(e,{query:mm.query},fm);return{argv:r,query:t.query?.trim()||void 0}}function gm(e){let{values:t,rest:r}=dr(e,mm,fm);return{argv:r,query:t.query?.trim()||void 0,full:t.full===!0}}function Zk(e,t){if(!t)return!0;let r=za(e).toLowerCase();return t.toLowerCase().split(/\s+/).filter(Boolean).every(n=>r.includes(n))}function Re(e,t){return t?e.filter(r=>Zk(r,t)):[...e]}function vt(e,t){return Ya(e,t,{includeLegacyHelp:!0})}function Ya(e,t,r={}){let n=t.filter(Boolean);return n.length===0?e:{...e,...r.includeLegacyHelp?{help:n}:{},next_steps:n}}function za(e){return Array.isArray(e)?e.map(za).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(za).join(" "):String(e??"")}var mm,fm,qn=y(()=>{"use strict";Ra();mm={query:{kind:"value",coerce:e=>e},full:{kind:"boolean"}},fm={stopAtSeparator:!1}});var wo={};K(wo,{DEFAULT_RSP_MAX_OVERHEAD_MS:()=>po,DEFAULT_RSP_MAX_SELF_STATE_BYTES:()=>mo,DEFAULT_RSP_OVERHEAD_CEILING:()=>Ke,DEFAULT_RSP_OVERHEAD_CONSECUTIVE_BREACHES:()=>go,DEFAULT_RSP_OVERHEAD_COOLDOWN_MS:()=>ho,DEFAULT_RSP_OVERHEAD_NET_LOSS_FLOOR_BYTES:()=>fo,RSP_OVERHEAD_FAMILIES:()=>iS,RSP_OVERHEAD_LEDGER_FILE:()=>bm,RSP_OVERHEAD_SCHEMA_VERSION:()=>wm,classifyOverheadSample:()=>Za,noteChildProcessMs:()=>Em,noteSelfStateBytesRead:()=>Jn,overheadCounters:()=>Kn,overheadFamilyDisabled:()=>tc,overheadHealth:()=>Wt,overheadLedgerPath:()=>ec,overheadMsOf:()=>_m,overheadTelemetryFields:()=>yo,readOverheadLedger:()=>Wn,readSelfStateFile:()=>bo,readSelfStateFileSync:()=>uS,recordOverheadSample:()=>Vn,resetOverheadCounters:()=>cS,resetOverheadLedger:()=>aS,startChildProcessTimer:()=>ke});import{existsSync as eS,mkdirSync as tS,readFileSync as hm,renameSync as rS,writeFileSync as nS}from"node:fs";import{readFile as sS}from"node:fs/promises";import{dirname as oS,join as ym}from"node:path";function _m(e){let t=e.wrapperMs-e.childMs;return Number.isFinite(t)?Math.max(0,Xa(t)):0}function Za(e,t=Ke){let r=_m(e),n=[];return r>t.maxOverheadMs&&n.push("wall-clock-ceiling"),e.selfStateBytesRead>t.maxSelfStateBytes&&n.push("self-state-byte-ceiling"),e.selfStateBytesRead>t.netLossFloorBytes&&e.selfStateBytesRead>e.bytesSaved&&n.push("overhead-exceeds-savings"),{overhead_ms:r,breached:n.length>0,reasons:n}}function yo(e,t=Ke){let r=Za(e,t);return{wrapper_ms:Xa(e.wrapperMs),overhead_ms:r.overhead_ms,child_ms:Xa(Math.max(0,e.childMs)),self_state_bytes_read:Math.max(0,Math.trunc(e.selfStateBytesRead)),bytes_saved:Math.max(0,Math.trunc(e.bytesSaved)),overhead_breached:r.breached,overhead_breach_reasons:r.reasons.join(",")}}function ec(e){return ym(ne(e),bm)}function Wn(e){try{let t=hm(ec(e),"utf8"),r=mS(t);if(fS(r))return r}catch{}return{version:1,families:{}}}function Vn(e,t,r=Ke,n=Date.now()){let s=Wn(e),o=Za(t,r),i=s.families[t.family]??pS(t.family,n),a=sc(i,n)?Rm(i):i,c=o.breached?a.consecutive_breaches+1:0,u={...a,family:t.family,invocations:a.invocations+1,breaches:a.breaches+(o.breached?1:0),consecutive_breaches:c,breached:o.breached,reasons:o.reasons,last_overhead_ms:o.overhead_ms,last_self_state_bytes_read:Math.max(0,Math.trunc(t.selfStateBytesRead)),last_bytes_saved:Math.max(0,Math.trunc(t.bytesSaved)),updated_at:new Date(n).toISOString()};return o.breached?c>=r.consecutiveBreaches&&(u.disabled=!0,u.disabled_at=new Date(n).toISOString(),u.disabled_until=new Date(n+r.cooldownMs).toISOString(),u.disabled_reason=lS(t.family,c,o,r)):(u.disabled=!1,u.disabled_at=null,u.disabled_until=null,u.disabled_reason=null),s.families[t.family]=u,km(e,s),u}function tc(e,t,r=Date.now()){let n=Wn(e).families[t];return!n?.disabled||sc(n,r)?null:n}function aS(e,t){let r=Wn(e);return t?delete r.families[t]:r.families={},km(e,r),r}function Wt(e,t=Ke,r=Date.now()){let n=Object.values(Wn(e).families).map(a=>sc(a,r)?Rm(a):a).sort((a,c)=>a.family.localeCompare(c.family)),s=n.filter(a=>a.disabled),o=n.filter(a=>a.consecutive_breaches>0),i=s.length>0||o.length>0?"red":"green";return{schema_version:wm,verdict:i,summary:dS(i,s,o),ceiling:t,breaching_families:o,disabled_families:s,families:n}}function Jn(e){Number.isFinite(e)&&e>0&&(rc+=e)}function Em(e){Number.isFinite(e)&&e>0&&(nc+=e)}function Kn(){return{selfStateBytesRead:rc,childMs:nc}}function cS(){rc=0,nc=0}function ke(){let e=process.hrtime.bigint(),t=!1;return()=>{t||(t=!0,Em(Number(process.hrtime.bigint()-e)/1e6))}}async function bo(e){let t=await sS(e,"utf8");return Jn(Buffer.byteLength(t)),t}function uS(e){let t=hm(e,"utf8");return Jn(Buffer.byteLength(t)),t}function lS(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 dS(e,t,r){if(e==="green")return"every wrapper family is inside its overhead ceiling";let n=[];return t.length>0&&n.push(`self-disabled: ${t.map(s=>`${s.family} (${s.reasons.join(",")||"ceiling"})`).join(", ")}`),r.length>0&&n.push(`breaching: ${r.map(s=>`${s.family} x${s.consecutive_breaches}`).join(", ")}`),n.join("; ")}function sc(e,t){if(!e.disabled||!e.disabled_until)return!1;let r=Date.parse(e.disabled_until);return Number.isFinite(r)&&r<=t}function Rm(e){return{...e,disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,consecutive_breaches:0,breached:!1,reasons:[]}}function pS(e,t){return{family:e,invocations:0,breaches:0,consecutive_breaches:0,breached:!1,reasons:[],disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,last_overhead_ms:0,last_self_state_bytes_read:0,last_bytes_saved:0,updated_at:new Date(t).toISOString()}}function km(e,t){try{let r=ec(e);if(!eS(ym(e,".red")))return;tS(oS(r),{recursive:!0});let n=`${r}.${process.pid}.tmp`;nS(n,`${$(t)}
|
|
41
|
+
`,{encoding:"utf8",mode:384}),rS(n,r)}catch{}}function mS(e){try{return JSON.parse(e)}catch{return H(e)}}function fS(e){return!Qa(e)||e.version!==1||!Qa(e.families)?!1:Object.values(e.families).every(gS)}function gS(e){return Qa(e)&&typeof e.family=="string"&&typeof e.consecutive_breaches=="number"&&typeof e.disabled=="boolean"}function Qa(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Xa(e){return Number.isFinite(e)?Math.round(e*1e3)/1e3:0}var bm,wm,po,mo,fo,go,ho,iS,Ke,rc,nc,oe=y(()=>{"use strict";$e();W();bm="overhead-budget.toon",wm="red.rsp.overhead.v1",po=250,mo=1024*1024,fo=64*1024,go=3,ho=6*60*60*1e3,iS=["git","gh","gh-api-json","vitest","cargo","cat","exec","proxy"],Ke={maxOverheadMs:po,maxSelfStateBytes:mo,netLossFloorBytes:fo,consecutiveBreaches:go,cooldownMs:ho};rc=0,nc=0});function vm(e){return e.trimStart().startsWith("{")?"json":"toon"}function ic(e){let t=0;for(;e[t]===`
|
|
42
|
+
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=vm(r);if(n==="json"){let o=r.indexOf(`
|
|
43
|
+
`);return o<0?null:{frame:r.slice(0,o),dialect:n,rest:r.slice(o+1)}}let s=r.indexOf(`
|
|
44
44
|
|
|
45
|
-
`);return s<0?null:{frame:
|
|
46
|
-
`)?`${
|
|
47
|
-
`:`${
|
|
45
|
+
`);return s<0?null:{frame:r.slice(0,s+1),dialect:n,rest:r.slice(s+2)}}function ac(e){let t=vm(e)==="json"?oc:Sm,r=t===oc?Sm:oc;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function oc(e){return JSON.parse(e)}function Sm(e){return H(e)}function cc(e,t){if(t==="toon"){let r=yS(e);if(r!==null)return r.endsWith(`
|
|
46
|
+
`)?`${r}
|
|
47
|
+
`:`${r}
|
|
48
48
|
|
|
49
49
|
`}return`${JSON.stringify(e)}
|
|
50
|
-
`}function
|
|
51
|
-
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:c,reaped:i};let u=await
|
|
52
|
-
`,1)[0]?.trim()??"";if(!t.startsWith(
|
|
50
|
+
`}function yS(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=$(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function xm(e,t){return!Tm(e)||!Tm(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Tm(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Om(e){return Cm.has(e)?"json":hS}function Am(e){Cm.add(e)}var hS,Cm,Pm=y(()=>{W();hS="toon";Cm=new Set});import{createHash as bS}from"node:crypto";import{constants as uc}from"node:fs";import{mkdir as Lm,open as wS,readFile as _S,rm as Dm,stat as ES}from"node:fs/promises";import{createConnection as RS}from"node:net";import{tmpdir as kS}from"node:os";import{dirname as Gm,join as zn}from"node:path";async function $m(e,t,r="resident server"){let n=e.wire,s=n??Om(e.socketPath),o=await Im(e,t,r,s);return n||s==="json"||!xm(t,o)?o:(Am(e.socketPath),await Im(e,t,r,"json"))}async function Im(e,t,r,n){let s=e.timeoutMs??1e3;return await new Promise((o,i)=>{let a=RS(e.socketPath),c=!1,u="",l=setTimeout(()=>{p(()=>i(new Error(`${r} timed out`))),a.destroy()},s);function p(d){c||(c=!0,clearTimeout(l),d())}a.on("connect",()=>{a.write(cc(t,n))}),a.on("data",d=>{u+=d.toString("utf8");let g=ic(u);g&&(u=g.rest,p(()=>{try{o(ac(g.frame))}catch(f){i(f)}}),a.end())}),a.on("error",d=>p(()=>i(d))),a.on("close",()=>{c||p(()=>i(new Error(`${r} closed without response`)))})})}function Nm(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",s=>{n+=s;let o=ic(n);if(!o)return;n=o.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(cc(a,o.dialect))}catch{}};(async()=>{let a;try{a=ac(o.frame),await t(a,i)}catch(c){r(c,a,i)}finally{e.end()}})()})}async function lc(e){await Lm(Gm(e),{recursive:!0,mode:448});try{return await wS(e,uc.O_CREAT|uc.O_EXCL|uc.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}async function Mm(e,t={}){let r=t.maxAgeMs??TS,n=t.now??Date.now,s=t.pid??process.pid,o=t.isPidAlive??Vt;await Lm(Gm(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let c=await lc(e);if(c)return await c.writeFile(`${Fm} pid=${s} taken=${new Date(n()).toISOString()}
|
|
51
|
+
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:c,reaped:i};let u=await CS(e),l=await AS(e,u,n());if(a>=vS||l==null)return{acquired:!1,lockPath:e,holder:u,ageMs:l};let p=xS(u,l,r,o);if(p==null)return{acquired:!1,lockPath:e,holder:u,ageMs:l};let d={lockPath:e,reason:p,holder:u,ageMs:l};await Dm(e,{force:!0}),i.push(d),t.onReap?.(d)}}async function Bm(e){await e.handle.close().catch(()=>{}),await Dm(e.lockPath,{force:!0})}function xS(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function jm(e){let t=e.ageMs==null?"of unknown age":`taken ${Math.round(e.ageMs/1e3)}s ago`,r=e.holder==null?"an owner it does not name":`pid ${e.holder.pid} (at ${e.holder.takenAt})`;return`no spawn was attempted: the spawn lock ${JSON.stringify(e.lockPath)} is held by ${r}, ${t}. If that process is gone, remove the file to clear it`}async function CS(e){try{return OS(await _S(e,"utf8"))}catch{return null}}function OS(e){let t=e.split(`
|
|
52
|
+
`,1)[0]?.trim()??"";if(!t.startsWith(Fm))return null;let r=Number(/\bpid=(\d+)\b/.exec(t)?.[1]??""),n=/\btaken=(\S+)/.exec(t)?.[1]??"";return!Number.isInteger(r)||r<=0||!Number.isFinite(Date.parse(n))?null:{pid:r,takenAt:n}}async function AS(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 ES(e)).mtimeMs)}catch{return null}}function Vt(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function dc(e,t=1e3){if(!Vt(e))return;try{process.kill(e,"SIGTERM")}catch{return}let r=Date.now()+t;for(;Date.now()<r;){if(!Vt(e))return;await new Promise(n=>setTimeout(n,50))}try{process.kill(e,"SIGKILL")}catch{}}function Um(e){let t=e.env??process.env,r=bS("sha256").update(e.key).digest("hex").slice(0,20),n=c=>zn(c,e.socketFileName).length<SS,s=t.XDG_RUNTIME_DIR;if(s){let c=zn(s,"red-skills",r);if(n(c))return c}let o=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=zn(`red-skills-${o}`,r),a=zn(kS(),i);return n(a)||process.platform==="win32"?a:zn(PS,i)}var SS,TS,Fm,vS,PS,_o=y(()=>{Pm();SS=108;TS=6e4,Fm="resident-spawn-lock v1",vS=3;PS="/tmp"});async function zr(e,t){return await $m(e,t,"resident rsp server")}var pc=y(()=>{_o()});var Hm=y(()=>{"use strict";pc()});import{existsSync as IS,readdirSync as LS}from"node:fs";import{homedir as DS}from"node:os";import{basename as fc,dirname as mc,join as Ne,resolve as Eo}from"node:path";function GS(e){return"command"in e}function Ro(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??IS,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&&FS(i))return a(Eo(i),"caller-entry");let c=[];for(let[u,l]of BS(i,t.rootDir,r,t.listDir??qS))if(c.push(u),n(u))return a(u,l);return{diagnostic:xt,searched:c,...i?{callerEntry:Eo(i)}:{}}}function Wm(e={},t={}){let r=Ro(e,t);if(GS(r))return r;throw new Yr(r)}function FS(e){let t=fc(e);return t===gr||gc.test(t)||t==="rsp"||t==="rsp.mjs"||t==="rsp.js"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:MS(Eo(e))}function MS(e){let t=mc(e);for(let r=0;r<4;r++){if(fc(t)==="rsp")return!0;let n=mc(t);if(n===t)return!1;t=n}return!1}function*BS(e,t,r,n){if(e){let o=mc(Eo(e));yield[Ne(o,gr),"caller-sibling-bundle"];let i=$S.exec(fc(e));i&&(yield[Ne(o,`rsp-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Ne(o,"..","dist",gr),"caller-sibling-bundle"]}for(let o of NS){let i=r[o];i&&(yield[Ne(i,"dist",gr),"plugin-root-bundle"],yield[Ne(i,"..","..","dist",gr),"plugin-root-bundle"])}t&&(yield[Ne(t,"dist",gr),"repo-bundle"],yield[Ne(t,"apps","rsp","dist","cli.js"),"workspace-entry"],yield[Ne(t,"node_modules","@reddb-io","rsp","dist","cli.js"),"node-modules-entry"]);let s=jS(r);yield[Ne(s,gr),"bundle-cache"];for(let o of US(s,n))yield[Ne(s,o),"bundle-cache"]}function jS(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Ne(e.HOME||DS(),".cache");return Ne(t,"red-skills","bundles")}function US(e,t){return t(e).filter(r=>gc.test(r)).sort((r,n)=>HS(qm(n),qm(r)))}function qm(e){return gc.exec(e)?.[1]??""}function HS(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 qS(e){try{return LS(e)}catch{return[]}}var xt,Yr,gr,$S,gc,NS,hc=y(()=>{xt="rsp-resident-entry-unresolved";Yr=class extends Error{code=xt;searched;callerEntry;constructor(t){super(`${xt}: no rsp entrypoint found for the resident auto-spawn${t.callerEntry?` (caller entry: ${t.callerEntry})`:""}
|
|
53
53
|
searched:
|
|
54
|
-
${t.searched.map(
|
|
55
|
-
`)}`),this.name="RspResidentEntryError",this.searched=t.searched,this.callerEntry=t.callerEntry}},
|
|
56
|
-
`)});if(
|
|
57
|
-
`,{encoding:"utf8",mode:384}),await
|
|
58
|
-
${s}`),
|
|
59
|
-
`)}function
|
|
54
|
+
${t.searched.map(r=>` ${r}`).join(`
|
|
55
|
+
`)}`),this.name="RspResidentEntryError",this.searched=t.searched,this.callerEntry=t.callerEntry}},gr="rsp.bundle.min.mjs",$S=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,gc=/^rsp-(.+)\.bundle\.min\.mjs$/,NS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});import{randomUUID as Ym}from"node:crypto";import{spawn as Qm}from"node:child_process";import{readFileSync as WS}from"node:fs";import{mkdir as wc,readFile as Xm,rename as VS,rm as Ot,stat as JS,writeFile as KS}from"node:fs/promises";import{dirname as hr,join as Ct,resolve as _c}from"node:path";import{fileURLToPath as zS}from"node:url";function lt(e){let t=aT(e)??_c(e),r=iT(t),n=ne(t);return{rootDir:t,socketPath:Ct(r,"rsp.sock"),pidPath:Ct(r,"rsp.pid"),lockPath:Ct(r,"rsp.lock"),wakeLockPath:Ct(t,".red","tmp","rsp","wake.lock"),summaryPath:Ct(n,"rsp-status-summary.json"),registryPath:Ct(n,"rsp-resident.pid.json")}}async function ko(e,t){if(await wc(hr(e.socketPath),{recursive:!0,mode:448}),await Km(e.socketPath,t))return;await Jm(e,t);let r=await Mm(e.lockPath,{onReap:n=>process.stderr.write(`rsp: reaped the resident spawn lock ${JSON.stringify(n.lockPath)} (${n.reason}, ${Math.round(n.ageMs/1e3)}s old)
|
|
56
|
+
`)});if(r.acquired)try{if(await Km(e.socketPath,t))return;await Jm(e,t),await XS(e.socketPath);let n=eT(e,t);await Vm(e.socketPath,n);return}finally{await Bm(r)}try{await Vm(e.socketPath)}catch(n){throw new Error(`${n instanceof Error?n.message:String(n)}; ${jm(r)}`)}}async function yr(e,t=200){try{return await ef(e,t)!=null}catch{return!1}}async function ef(e,t=200){let r=await zr({socketPath:e,timeoutMs:t},{id:Ym(),op:"ping"});return r.ok?of(r.value)?{version:dT(r.value.version)}:{}:null}async function So(e,t){if(await wc(hr(e.socketPath),{recursive:!0,mode:448}),await yr(e.socketPath,50))return!1;let r=await ZS(e.wakeLockPath);if(!r)return!1;await r.close();let[n,s]=nf(e,t);return Qm(n,[...s,"warm-resident","--socket",e.socketPath,"--pid-file",e.pidPath,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours??6),"--byte-budget",String(t.byteBudget),"--telemetry-ttl-days",String(t.telemetryTtlDays??90),"--telemetry-byte-budget",String(t.telemetryByteBudget??t.byteBudget),"--telemetry-drain-interval-ms",String(t.telemetryDrainIntervalMs??3e4),"--telemetry-drain-timeout-ms",String(t.telemetryDrainTimeoutMs??2e3),"--idle-ms",String(t.idleMs??3e5),"--resident-version",t.clientVersion??"0.0.0-dev","--registry",e.registryPath,"--wake-lock",e.wakeLockPath],{cwd:e.rootDir,detached:!0,stdio:"ignore",env:{...process.env,RSP_RESIDENT_WARMER:"1"}}).unref(),!0}async function tf(e,t){try{await ko(e,t)}finally{await Ot(e.wakeLockPath,{force:!0})}}async function Qn(e){try{let t=nT(await Xm(e,"utf8"));return pT(t)?t:null}catch{return null}}async function To(e,t){let r={version:Zm,pid:t.pid??process.pid,socket_path:t.socket_path,store_uri:t.store_uri,resident_version:t.resident_version,started_at:t.started_at??new Date().toISOString()};await wc(hr(e),{recursive:!0});let n=`${e}.${process.pid}.${Date.now()}.tmp`;await KS(n,`${$(r)}
|
|
57
|
+
`,{encoding:"utf8",mode:384}),await VS(n,e)}async function vo(e,t=process.pid){try{let r=await Qn(e);if(r&&r.pid!==t)return;await Ot(e,{force:!0})}catch{}}async function Yn(e){let t=await Qn(e.registryPath);if(!t)try{return await Xm(e.registryPath,"utf8"),{registry_path:e.registryPath,state:"invalid"}}catch{return{registry_path:e.registryPath,state:"missing"}}if(!Vt(t.pid))return{registry_path:e.registryPath,state:"registered-dead",entry:t};let r=await yr(t.socket_path,100);return r&&await oT(t.store_uri)?{registry_path:e.registryPath,state:"registered-alive-store-missing",entry:t}:{registry_path:e.registryPath,state:r?"registered-alive-socket-healthy":"registered-alive-socket-dead",entry:t}}async function rf(e){let t=await Yn(e);return t.state==="registered-dead"||t.state==="invalid"?(await Ot(e.registryPath,{force:!0}),await Yn(e)):(t.state==="registered-alive-socket-dead"||t.state==="registered-alive-store-missing")&&t.entry?(await dc(t.entry.pid),await Ot(e.registryPath,{force:!0}),await Ot(t.entry.socket_path,{force:!0}),await Yn(e)):t}async function Vm(e,t){let r=Date.now()+QS(),n;for(;Date.now()<r;){if(await yr(e))return;if(t){let s=t.spawnError();if(s)throw new Error(yc("resident rsp server spawn failed",t,s));if(t.child.exitCode!=null||t.child.signalCode!=null)throw new Error(yc("resident rsp server exited before ready",t))}await new Promise(s=>setTimeout(s,50))}throw n instanceof Error?n:new Error(t?yc("resident rsp server did not start",t):"resident rsp server did not start")}function QS(){let e=Number(process.env.RSP_RESIDENT_READY_TIMEOUT_MS??"");return Number.isFinite(e)&&e>0?e:YS}async function XS(e){await Ot(e,{force:!0})}function eT(e,t){let[r,n]=nf(e,t),s=process.env.RSP_DEBUG==="1",o,i="",a=Qm(r,[...n,"server","--socket",e.socketPath,"--pid-file",e.pidPath,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours??6),"--byte-budget",String(t.byteBudget),"--telemetry-ttl-days",String(t.telemetryTtlDays??90),"--telemetry-byte-budget",String(t.telemetryByteBudget??t.byteBudget),"--telemetry-drain-interval-ms",String(t.telemetryDrainIntervalMs??3e4),"--telemetry-drain-timeout-ms",String(t.telemetryDrainTimeoutMs??2e3),"--idle-ms",String(t.idleMs??3e5),"--resident-version",t.clientVersion??"0.0.0-dev","--registry",e.registryPath],{cwd:e.rootDir,detached:!0,stdio:s?["ignore","ignore","pipe"]:"ignore",env:{...process.env,RSP_RESIDENT_SERVER:"1"}});return a.on("error",c=>{o=c}),s&&(a.stderr?.setEncoding("utf8"),a.stderr?.on("data",c=>{i=rT(`${i}${c}`,tT)})),a.unref(),{child:a,stderrTail:()=>i,spawnError:()=>o}}function yc(e,t,r){let n=[e];r&&n.push(`error: ${r.message}`),t.child.exitCode!=null&&n.push(`exit code: ${t.child.exitCode}`),t.child.signalCode!=null&&n.push(`signal: ${t.child.signalCode}`);let s=t.stderrTail().trimEnd();return s&&n.push(`stderr tail:
|
|
58
|
+
${s}`),n.join(`
|
|
59
|
+
`)}function rT(e,t){let r=Buffer.byteLength(e,"utf8");return r<=t?e:Buffer.from(e,"utf8").subarray(r-t).toString("utf8").replace(/^\uFFFD+/,"")}function nT(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return H(t)}}async function Jm(e,t){try{let r=await Qn(e.registryPath);if(!r||r.socket_path!==e.socketPath||r.store_uri!==t.storeUri)return;if(!Vt(r.pid)){await Ot(e.registryPath,{force:!0});return}if(await yr(r.socket_path,100))return;if(sf(t.clientVersion,r.resident_version)&&(await sT(r.pid,1500),!Vt(r.pid))){await Ot(e.registryPath,{force:!0});return}await dc(r.pid),await Ot(e.registryPath,{force:!0})}catch{}}async function sT(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(!Vt(e))return;await new Promise(n=>setTimeout(n,50))}}async function oT(e){if(!e.startsWith("file://"))return!1;try{return await JS(zS(e)),!1}catch(t){return t.code==="ENOENT"}}function nf(e,t){let r=Wm(t,{rootDir:e.rootDir});return[r.command,r.args]}function iT(e){return Um({key:e,socketFileName:"rsp.sock"})}function aT(e){let t=_c(e);for(let r=0;r<32;r++){try{let s=bc(Ct(t,".git"));if(s!=null)return cT(t,s)??t;if(bc(Ct(t,".git","HEAD"))!=null||bc(Ct(t,".red","config.yaml"))!=null)return t}catch{}let n=hr(t);if(n===t)return null;t=n}return null}function cT(e,t){let r=/^gitdir:\s*(.+?)\s*$/m.exec(t);if(!r)return null;let n=_c(e,r[1]);return/[/\\]worktrees[/\\][^/\\]+$/.test(n)?hr(hr(hr(n))):null}function bc(e){try{return WS(e,"utf8")}catch{return null}}async function Km(e,t){let r=await ef(e).catch(()=>null);return r?sf(t.clientVersion,r.version)?(await uT(e,t.clientVersion),await mT(e),!1):!0:!1}async function uT(e,t){try{await zr({socketPath:e,timeoutMs:200},{id:Ym(),op:"handover",clientVersion:t})}catch{}}function sf(e,t){return!e||!t?!1:lT(e,t)>0}function lT(e,t){let r=zm(e),n=zm(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}function zm(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3])}:null}function of(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function dT(e){return typeof e=="string"&&e.length>0?e:void 0}function pT(e){return of(e)&&e.version===Zm&&Number.isInteger(e.pid)&&typeof e.socket_path=="string"&&typeof e.store_uri=="string"&&typeof e.resident_version=="string"&&typeof e.started_at=="string"}async function mT(e){let t=Date.now()+1e3;for(;Date.now()<t;){if(!await yr(e,50))return;await new Promise(r=>setTimeout(r,50))}}var Zm,YS,ZS,tT,xo=y(()=>{W();$e();_o();pc();hc();hc();Zm=1,YS=5e3;ZS=lc;tT=8*1024});var br={};K(br,{RSP_ENTRY_UNRESOLVED:()=>xt,ResidentRspElisionStore:()=>Xn,RspResidentEntryError:()=>Yr,ensureResidentServer:()=>ko,kickResidentServer:()=>So,pingResident:()=>yr,readResidentRegistry:()=>Qn,removeResidentRegistry:()=>vo,residentRegistryStatus:()=>Yn,resolveResidentPaths:()=>lt,resolveRspEntry:()=>Ro,sweepResidentRegistry:()=>rf,warmResidentServer:()=>tf,writeResidentRegistry:()=>To});import{randomUUID as fT}from"node:crypto";function af(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Xn,dt=y(()=>{"use strict";Hm();xo();Xn=class{constructor(t,r,n={}){this.paths=t;this.config=r;this.opts=n}metrics;lastResponseMetrics(){return this.metrics}async mint(t,r){let s=(await this.request({op:"mint",original:Buffer.from(t).toString("base64"),meta:r})).handle;if(!s?.startsWith("el:"))throw new Error("resident rsp returned invalid handle");return s}async get(t){let r=await this.request({op:"get",handle:t});return r?af(r)&&r.status==="expired"?r:!af(r)||typeof r.original!="string"?null:{...r,original:Buffer.from(r.original,"base64")}:null}async stats(){return await this.request({op:"stats"})}async recoveryHandles(t=5){return await this.request({op:"recovery-handles",limit:t})}async accountingStats(t){return await this.request({op:"accounting-stats",byteBudget:t})}async telemetryStats(t){return await this.request({op:"telemetry-stats",sinceDays:t})}async telemetryGains(t){return await this.request({op:"telemetry-gains",sinceDays:t})}async memory(t,r){return await this.request({op:"memory",action:t,payload:r})}async close(){}async request(t){this.opts.ensureResident!==!1&&await ko(this.paths,this.config);let r=await zr(this.paths,{...t,id:fT()});if(!r.ok)throw new Error(r.error);return this.metrics={storeOpenCount:r.storeOpenCount,storeElapsedMs:r.storeElapsedMs},r.value}}});function Rc(e,t,r=cf){let n=Math.max(0,Math.floor(e)),s=r in uf?r:cf,o=uf[s],i=t?Math.floor(n*(1-.25)):null,a=t?Math.ceil(n*(1+.25)):null;return{tokens_saved:n,tokens_saved_estimated:t,token_estimate_range_pct:t?.25:null,tokens_saved_low:i,tokens_saved_high:a,dollars_saved_estimate_usd:Ec(n,o),dollars_saved_low_usd:i==null?null:Ec(i,o),dollars_saved_high_usd:a==null?null:Ec(a,o),pricing_model_family:s,pricing_input_usd_per_million_tokens:o,pricing_note:gT}}function Ec(e,t){return hT(Math.max(0,e)/1e6*t)}function Zn(e){return`$${e.toFixed(6)}`}function hT(e){return Math.round(e*1e6)/1e6}var cf,uf,gT,kc=y(()=>{"use strict";cf="gpt-5",uf={"gpt-5":1.25,"gpt-5-mini":.25,"gpt-5-nano":.05,"gpt-4.1":2,"gpt-4.1-mini":.4,"gpt-4o":2.5,"gpt-4o-mini":.15,"claude-opus-4.1":15,"claude-opus-4":15,"claude-sonnet-4.5":3,"claude-sonnet-4":3,"claude-haiku-4.5":1,"claude-haiku-3.5":.8},gT="estimate derived from byte-based token estimate when token counts are estimated"});var es={};K(es,{isResidentEntryUnresolved:()=>pf,reportResidentEntryDiagnostic:()=>Tc,residentConfigFor:()=>df,residentElisionStore:()=>Sc});function df(e,t){return{storeUri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,telemetryTtlDays:e.telemetryTtlDays,telemetryByteBudget:e.telemetryByteBudget,telemetryDrainIntervalMs:e.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:e.telemetryDrainTimeoutMs,idleMs:e.idleMs,...t?{clientVersion:t}:{}}}function Sc(e,t,r={}){let n=r.paths??lt(e);return new Xn(n,df(t,lo("rsp").version),{ensureResident:r.ensureResident})}function Tc(e){return pf(e)?(lf||(lf=!0,process.stderr.write(`rsp: ${xt} \u2014 elision is off until an rsp entry is installed
|
|
60
60
|
`),process.env.RSP_DEBUG==="1"&&e instanceof Error&&process.stderr.write(`${e.message}
|
|
61
|
-
`)),!0):!1}function
|
|
62
|
-
`)}async function
|
|
63
|
-
`:`${
|
|
64
|
-
`}var
|
|
65
|
-
`)){let s=
|
|
66
|
-
`,{encoding:"utf8",mode:384}),await AS(n,e)}catch(r){throw await Tf(n,{force:!0}),r}}function MS(e){if(!/^[A-Za-z0-9_-]{1,128}$/.test(e))throw new Error(`unsafe gh etag cache key: ${e}`);return e}function Nf(e){try{return JSON.parse(e)}catch{return L(e)}}function BS(e){return cc(e)&&e.version===1&&cc(e.entries)&&Object.values(e.entries).every(go)}function go(e){return cc(e)&&typeof e.key=="string"&&typeof e.request=="string"&&typeof e.etag=="string"&&typeof e.body=="string"&&typeof e.updated_at=="string"}function cc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Pf,If,Lf,Gn,ac,Br=g(()=>{"use strict";Re();D();V();Pf="gh-etag",If="gh-etag-cache.toon",Lf="gh-etag-cache.json",Gn=4*1024*1024;ac=new Set});var Uf={};B(Uf,{DEFAULT_RSP_BYTE_BUDGET:()=>Be,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Me,DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>mt,DEFAULT_RSP_IDLE_MS:()=>bo,DEFAULT_RSP_MEASUREMENT_HOLDOUT_SHARE:()=>Hf,DEFAULT_RSP_STORE_PATH:()=>gc,DEFAULT_RSP_TELEMETRY_BYTE_BUDGET:()=>yo,DEFAULT_RSP_TELEMETRY_DRAIN_INTERVAL_MS:()=>Ff,DEFAULT_RSP_TELEMETRY_DRAIN_TIMEOUT_MS:()=>jf,DEFAULT_RSP_TELEMETRY_TTL_DAYS:()=>ho,DEFAULT_RSP_TTL_DAYS:()=>Ne,MIN_RSP_IDLE_MS:()=>Gf,resolveRspConfig:()=>Fe});import{existsSync as FS,readFileSync as jS}from"node:fs";import{join as GS,resolve as Bf}from"node:path";function Fe(e,t,n){let r=vf(Bf(e),GS(".red","config.yaml")),s=r?jS(r,"utf8"):"",o=lo(s,"rsp.enabled")==="true",i=lo(s,"rsp.proxy.enabled"),a=i===void 0?o:i==="true",c=ue(z(s,"rsp.ttlDays"),Ne),u=ue(Xe(t.RSP_EPHEMERAL_TTL_HOURS)??z(s,"rsp.ephemeralTtlHours"),Me),l=ue(z(s,"rsp.byteBudget"),Be),p=ue(z(s,"rsp.telemetryTtlDays"),ho),d=ue(z(s,"rsp.telemetryByteBudget")??z(s,"rsp.byteBudget"),yo),m=ue(Xe(t.RSP_TELEMETRY_DRAIN_INTERVAL_MS)??z(s,"rsp.telemetryDrainIntervalMs"),Ff),f=ue(Xe(t.RSP_TELEMETRY_DRAIN_TIMEOUT_MS)??z(s,"rsp.telemetryDrainTimeoutMs"),jf),b=HS(Xe(t.RSP_IDLE_MS)??z(s,"rsp.idleMs"),bo,Gf),_=ue(Xe(t.RSP_HEAVY_GIT_BYTE_THRESHOLD)??z(s,"rsp.heavyGitByteThreshold"),mt),h=US(Xe(t.RSP_MEASUREMENT_HOLDOUT_SHARE)??z(s,"rsp.measurement.holdoutShare"),Hf),y=ue(Xe(t.RSP_GH_ETAG_CACHE_MAX_BYTES)??z(s,"rsp.ghEtagCacheMaxBytes"),Gn),w={maxOverheadMs:ue(Xe(t.RSP_MAX_OVERHEAD_MS)??z(s,"rsp.overhead.maxOverheadMs"),Bs),maxSelfStateBytes:ue(Xe(t.RSP_MAX_SELF_STATE_BYTES)??z(s,"rsp.overhead.maxSelfStateBytes"),Fs),netLossFloorBytes:ue(z(s,"rsp.overhead.netLossFloorBytes"),js),consecutiveBreaches:ue(Xe(t.RSP_OVERHEAD_CONSECUTIVE_BREACHES)??z(s,"rsp.overhead.consecutiveBreaches"),Gs),cooldownMs:ue(z(s,"rsp.overhead.cooldownMs"),Hs)},k=Ke(e).rootDir,T=n??t.RSP_STORE_URI??`file://${Jd(Bf(k),FS)}`;return{enabled:o,proxyEnabled:a,storeUri:T,ttlDays:c,ephemeralTtlHours:u,byteBudget:l,telemetryTtlDays:p,telemetryByteBudget:d,telemetryDrainIntervalMs:m,telemetryDrainTimeoutMs:f,idleMs:b,heavyGitByteThreshold:_,measurementHoldoutShare:h,ghEtagCacheMaxBytes:y,overhead:w}}function z(e,t){let n=lo(e,t);if(n==null)return;let r=Number(n);return Number.isFinite(r)?r:void 0}function ue(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function HS(e,t,n){let r=ue(e,t);return Math.max(r,n)}function US(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e<=0?0:e>=1?1:e}function Xe(e){if(e==null||e.trim()==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}var mt,gc,Ne,Me,Be,ho,yo,Ff,jf,bo,Gf,Hf,je=g(()=>{"use strict";Cf();Re();Zs();V();Br();mt=8*1024,gc=Wd,Ne=7,Me=6,Be=64*1024*1024,ho=90,yo=4*1024*1024,Ff=3e4,jf=2e3,bo=5*6e4,Gf=5e3,Hf=0});function Wf(e,t=process.env){return{async mint(n,r){let{residentElisionStore:s}=await Promise.resolve().then(()=>(Qt(),Or)),o=s(e,Fe(e,t));try{return await o.mint(n,r)}finally{await o.close()}}}}var qf=g(()=>{"use strict";je()});import{spawn as WS}from"node:child_process";async function Vf(e){let{commandLine:t,options:n,cwd:r,registryPath:s,entry:o,signal:i}=e;if(!t.trim())return{verdict:Z("missing command line")};let a=e.store??Wf(r),c=Ef(e.spoolDir,o.id,n.captureBytes);return await new Promise(u=>{let l=!1,p=!1,d=async h=>{l||(l=!0,i.removeEventListener("abort",b),await oo(s,o,h.verdict.status).catch(()=>{}),u(h))},m=WS(t,{cwd:r,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,y)=>{if(l||p)return;p=!0,clearTimeout(_);let w=await Ln(m,n.terminateGraceMs),k=await Jf(null,null,c,a,t);await d({verdict:{status:h,exitCode:2,summary:y,details:k},cleanupProven:w.cleaned,survivors:w.survivors})},b=()=>void f("indeterminate","command interrupted");i.addEventListener("abort",b,{once:!0});let _=setTimeout(()=>{f("timeout",`command timed out after ${Kf(n.timeoutMs)}`)},n.timeoutMs);m.once("error",h=>{clearTimeout(_),c.stdout.discard(),c.stderr.discard(),d({verdict:{status:"failure",exitCode:1,summary:h.message}})}),m.once("close",(h,y)=>{if(clearTimeout(_),l||p)return;let w=h===0;Jf(h,y,c,a,t).then(k=>d({verdict:{status:w?"success":"failure",exitCode:w?0:1,summary:w?"command exited successfully":`command exited with ${y??h??"unknown"}`,details:k}}))}),i.aborted&&b()})}async function wo(e){let{probe:t,timeoutMs:n,baseSleepMs:r,registryPath:s,entry:o,signal:i}=e,a=Date.now()+n,c=0,u;for(;Date.now()<a;){if(i.aborted)return{verdict:qS(u,c,o.last_poll_at)};let l;try{l=await t()}catch(b){l=Z(b instanceof Error?b.message:String(b))}if(u=l,o.attempts=++c,o.last_poll_at=new Date().toISOString(),o.last_observation=hc(l),await Nn(s,o).catch(()=>{}),l.status!=="running"&&l.status!=="indeterminate")return await oo(s,o,l.status).catch(()=>{}),{verdict:l};let p=Math.min(r*4,Math.round(r*Math.pow(1.25,c-1))),d=Math.floor(Math.random()*1e3),m=Math.min(p+d,Math.max(0,a-Date.now())),f=e.makeWakeSignal?.();await JS(m,i,f)}return await oo(s,o,"timeout").catch(()=>{}),{verdict:{status:"timeout",exitCode:2,summary:`timed out after ${Kf(n)}`,details:u?{attempts:c,last_poll_at:o.last_poll_at??null,last_observation:hc(u)}:{attempts:c}}}}async function Jf(e,t,n,r,s){let[o,i]=await Promise.all([n.stdout.finish(r,`${s} # stdout`),n.stderr.finish(r,`${s} # stderr`)]);return{status:e??null,signal:t??null,stdout:o,stderr:i}}function hc(e){return{status:e.status,exit_code:e.exitCode,summary:e.summary,...e.details?{details:e.details}:{}}}function qS(e,t,n){return Z("wait interrupted",{attempts:t,last_poll_at:n??null,...e?{last_observation:hc(e)}:{}})}async function JS(e,t,n){t.aborted||e<=0||n?.aborted||await new Promise(r=>{let s=setTimeout(o,e);function o(){clearTimeout(s),t.removeEventListener("abort",i),n?.removeEventListener("abort",a),r()}let i=()=>o(),a=()=>o();t.addEventListener("abort",i,{once:!0}),n?.addEventListener("abort",a,{once:!0})})}function Kf(e){return e%36e5===0?`${e/36e5}h`:e%6e4===0?`${e/6e4}m`:e%1e3===0?`${e/1e3}s`:`${e}ms`}var zf=g(()=>{"use strict";xf();qf();Zt();ft();Dr()});var yc,bc,wc,fe,te,Se,Qe,Fr,_o=g(()=>{"use strict";yc="rsp-telemetry.spool.toonl",bc="rsp-telemetry.spool.jsonl",wc="rsp-telemetry.spool.corrections.toonl",fe="rsp_accounting_events_v1",te="rsp_decisions_v1",Se="rsp_telemetry_invocations_v1",Qe="rsp_telemetry_degradations_v1",Fr="rsp_telemetry_index_v1"});function Hn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ee(e){return vt(e)??0}function vt(e){return typeof e=="number"&&Number.isFinite(e)?e:null}var _c=g(()=>{"use strict"});import{randomUUID as kc,createHash as VS}from"node:crypto";import{appendFileSync as em,existsSync as KS,mkdirSync as tm}from"node:fs";import{mkdir as nm,readdir as zS,readFile as rm,rename as YS,rm as sm,writeFile as Sc}from"node:fs/promises";import{basename as Rc,dirname as jr,join as Un,resolve as Yf}from"node:path";function ko(e){if(!e)return null;let t=Yf(e);for(;;){if(KS(Un(t,".red")))return t;let n=Yf(Un(t,".."));if(n===t)break;t=n}return null}function gt(e){return Un(q(e),yc)}function So(e){return Un(q(e),bc)}function xc(e){return Un(q(e),wc)}async function ht(e,t){Ct(e,t)}function Ct(e,t){try{let n=ko(e);if(!n)return;let r=gt(n);tm(jr(r),{recursive:!0}),em(r,nE({spool_id:kc(),event:QS(t)}),{encoding:"utf8",mode:384})}catch{}}function QS(e){return Xf(Xf(e,"raw_text","raw_bytes"),"emitted_text","emitted_bytes")}function Xf(e,t,n){let r=e[t];if(typeof r!="string")return e;let s=Buffer.byteLength(r,"utf8");if(s<=XS)return e;let o={...e};return delete o[t],Ee(o[n])===0&&(o[n]=s),o.estimated=!0,o}async function ZS(e){let t=ko(e);if(!t)return[];let n=gt(t);await nm(jr(n),{recursive:!0}).catch(()=>{});let r=await am(t),s=[...await cm(t),...await sE(r)];return await Promise.all(r.map(o=>sm(o,{force:!0}))),s.map(o=>JSON.stringify(o.event))}async function vc(e,t){let n=ko(e);if(!n)return;let r=gt(n);await nm(jr(r),{recursive:!0}).catch(()=>{}),await rE(n);for(let s of await eE(n))await Qf(n,s,t);for(let s of await cm(n))await om(n,s,t,!0);for(let s of await am(n))await Qf(n,s,t)}async function eE(e){let t=[gt(e),So(e)],n=jr(t[0]);return(await zS(n).catch(()=>[])).filter(s=>t.some(o=>s.startsWith(`${Rc(o)}.`)&&s.endsWith(".drain"))).filter(s=>{let o=t.find(c=>s.startsWith(`${Rc(c)}.`));if(!o)return!1;let i=`${Rc(o)}.`,a=Number(s.slice(i.length).split(".")[0]);return!(Number.isInteger(a)&&a!==process.pid&&tE(a))}).sort().map(s=>Un(n,s))}function tE(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function Qf(e,t,n){try{let r=await im(t);for(let s of um(r))await om(e,s,n,!1)}finally{await sm(t,{force:!0})}}async function om(e,t,n,r){let s=t.event?JSON.stringify(t.event):t.raw_line??"";try{if(await n(s)){r&&Zf(e,{correction_id:kc(),target_spool_id:t.spool_id,action:"resolved",created_at:new Date().toISOString()});return}}catch{}Zf(e,{correction_id:kc(),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 im(e){let t="";for(let n=0;n<5;n++){let r=await rm(e,"utf8").catch(()=>"");if(r===t)return r;t=r,await new Promise(s=>setTimeout(s,2))}return t}function Wn(e){try{let t=JSON.parse(e);return!Hn(t)||t.collection!==fe&&t.collection!==te&&t.collection!==Se&&t.collection!==Qe?null:t}catch{return null}}function nE(e){return kt().push(aE(e))}function Zf(e,t){try{let n=ko(e);if(!n)return;let r=xc(n);tm(jr(r),{recursive:!0});let s=kt();em(r,s.push({correction_id:t.correction_id,target_spool_id:t.target_spool_id,action:t.action,created_at:t.created_at,event_json:t.event_json??null}),{encoding:"utf8",mode:384})}catch{}}async function am(e){let t=[gt(e),So(e)],n=[];for(let r of t){let s=`${r}.${process.pid}.${Date.now()}.drain`;try{await YS(r,s),await Sc(r,"",{flag:"wx"}).catch(()=>{}),n.push(s)}catch(o){if(o.code!=="ENOENT")continue}}return n}async function rE(e){await Promise.all([Sc(gt(e),"",{flag:"a"}),Sc(So(e),"",{flag:"a"})]).catch(()=>{})}async function sE(e){let t=[];for(let n of e)t.push(...um(await im(n)));return t}async function cm(e){let t=await rm(xc(e),"utf8").catch(()=>""),n=new Map;for(let r of oE(t))n.set(r.target_spool_id,r);return[...n.values()].filter(r=>r.action==="retry"&&r.event_json).map(r=>({spool_id:r.target_spool_id,event:Wn(r.event_json)??void 0})).filter(r=>r.event!==void 0)}function um(e){let t=[],n="";for(let r of e.split(/\r?\n/)){let s=r.trim();if(s){try{let o=JSON.parse(s);if(Hn(o)){let i=Wn(JSON.stringify(o));t.push(i?{spool_id:Ro(JSON.stringify(o)),event:i}:{spool_id:Ro(s),raw_line:s})}continue}catch{}if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){n=s;continue}if(!n){t.push({spool_id:Ro(s),raw_line:s});continue}try{for(let o of Rt(`${n}
|
|
61
|
+
`)),!0):!1}function pf(e){return typeof e=="object"&&e!==null&&e.code===xt}var lf,wr=y(()=>{"use strict";Va();dt();lf=!1});function Dc(e){return e==="success"?0:e==="failure"?1:2}function Gc(e){return e==="cmd"||e==="pr"||e==="run"||e==="release"}function At(e,t,r){return{status:e,exitCode:Dc(e),summary:t,...r?{details:r}:{}}}function fe(e,t){return{status:"indeterminate",exitCode:2,summary:e,...t?{details:t}:{}}}function Xr(e,t){return{status:"running",exitCode:2,summary:e,...t?{details:t}:{}}}var yf,bf,wf,Ic,_f,Ef,Rf,kf,Lc,_r=y(()=>{"use strict";yf="rsp.wait.result",bf="rsp.wait.registry",wf="rsp.wait.list",Ic={cmd:18e5,pr:27e5,run:27e5,release:72e5},_f=16*1024,Ef=1e4,Rf=2e3,kf=6e4,Lc={cmd:"local-cmd:event-driven",pr:"github-pr:15-20s-backoff-jitter",run:"github-run:15-20s-backoff-jitter",release:"release:60s"}});import{readdir as RT,readFile as kT}from"node:fs/promises";async function Zr(e,t){let r=e.pid;if(!r)return{cleaned:!0,escalation:"none",survivors:[]};let n=await Ao(r),s=[r,...n];if(s.every(c=>!Er(c)))return{cleaned:!0,escalation:"none",survivors:[]};if(Sf(e,"SIGTERM"),Oo(n,"SIGTERM"),await Tf(s,t))return{cleaned:!0,escalation:"term",survivors:[]};let o=[...new Set([...s,...await Ao(r)])];Sf(e,"SIGKILL"),Oo(o,"SIGKILL");let i=Math.max(1e3,t);await ST(e,i);let a=await Tf(o,i);return{cleaned:a,escalation:"kill",survivors:a?[]:o.filter(Er)}}function Sf(e,t){let r=e.pid;if(r)try{process.platform!=="win32"?process.kill(-r,t):e.kill(t)}catch{try{e.kill(t)}catch{}}}function Oo(e,t){for(let r of e)try{process.kill(r,t)}catch{}}async function ST(e,t){return e.exitCode!==null||e.signalCode!==null?!0:await new Promise(r=>{let n=setTimeout(()=>r(!1),t);e.once("close",()=>{clearTimeout(n),r(!0)})})}async function Tf(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(e.every(n=>!Er(n)))return!0;await TT(Math.min(25,Math.max(1,r-Date.now())))}return e.every(n=>!Er(n))}async function Ao(e){if(process.platform!=="linux")return[];let t=new Map;for(let s of await RT("/proc").catch(()=>[])){if(!/^[1-9][0-9]*$/.test(s))continue;let o=Number(s),i=await vf(o);if(!i)continue;let a=Number(i[1]);if(!Number.isSafeInteger(a))continue;let c=t.get(a)??[];c.push(o),t.set(a,c)}let r=[],n=[...t.get(e)??[]];for(;n.length>0;){let s=n.shift();r.push(s),n.push(...t.get(s)??[])}return r.reverse()}async function ts(e){return(await vf(e))?.[19]}async function en(e,t){if(!Er(e))return!1;if(!t)return!0;let r=await ts(e);return r===void 0?process.platform!=="linux":r===t}function Er(e){try{return process.kill(e,0),!0}catch{return!1}}async function vf(e){if(process.platform!=="linux")return null;try{let t=await kT(`/proc/${e}/stat`,"utf8"),r=t.lastIndexOf(")");return r<0?null:t.slice(r+2).trim().split(/\s+/)}catch{return null}}async function TT(e){await new Promise(t=>setTimeout(t,e))}var Pt=y(()=>{"use strict"});import{constants as vT}from"node:os";async function xf(e){let t=e[1],r={timeoutMs:Ic.cmd,reason:"",signal:"SIGUSR1",notifyTimeoutMs:Ef,terminateGraceMs:Rf,probeTimeoutMs:kf,format:"toon",captureBytes:_f},n={kind:t,options:r};if(!t||t==="--help"||t==="-h")return{...n,kind:"help"};if(t!=="ls"&&t!=="cmd"&&t!=="pr"&&t!=="run"&&t!=="release")return{...n,kind:void 0};t!=="ls"&&(r.timeoutMs=Ic[t]);let s=e.indexOf("--"),o=s>=0?s:e.length;for(let i=2;i<o;i++){let a=e[i];a==="--timeout"?r.timeoutMs=rs(e[++i]??""):a==="--reason"?r.reason=e[++i]??"":a==="--signal-pid"?r.signalPid=Number(e[++i]):a==="--signal"?r.signal=OT(e[++i]??""):a==="--notify-cmd"?r.notifyCmd=e[++i]??"":a==="--notify-timeout"?r.notifyTimeoutMs=rs(e[++i]??""):a==="--terminate-grace"?r.terminateGraceMs=rs(e[++i]??""):a==="--probe-timeout"?r.probeTimeoutMs=rs(e[++i]??""):a==="--result-file"?r.resultFile=e[++i]??"":a==="--json"?r.format="json":a==="--capture-bytes"?r.captureBytes=CT(e[++i]??"","capture bytes"):t==="run"&&a==="--branch"?n.branch=e[++i]??"":t==="run"&&a==="--latest"?n.latest=!0:t==="release"&&a==="--tag"?n.tagGlob=e[++i]??"":!a.startsWith("--")&&!n.target&&(n.target=a)}return await xT(r),t==="cmd"&&(n.commandLine=s>=0?e.slice(s+1).join(" "):""),n}async function xT(e){if(!(e.signal in vT.signals))throw new Error(`invalid signal: ${e.signal}`);if(e.signalPid!==void 0){if(!Number.isSafeInteger(e.signalPid)||e.signalPid<=0)throw new Error(`invalid signal pid: ${e.signalPid}`);if(!Er(e.signalPid))throw new Error(`signal pid is not running: ${e.signalPid}`);e.signalPidStartTime=await ts(e.signalPid)}if(e.resultFile!==void 0&&!e.resultFile.trim())throw new Error("invalid result file: empty path")}function rs(e){let t=/^([1-9][0-9]*)(ms|s|m|h)?$/.exec(e);if(!t)throw new Error(`invalid timeout: ${e}`);let r=Number(t[1]),n=t[2]??"ms";return n==="ms"?r:n==="s"?r*1e3:n==="m"?r*6e4:r*60*6e4}function ns(e,t,r=process.env){let n=r[e];if(!n)return t;try{return rs(n)}catch{return t}}function CT(e,t){if(!/^[1-9][0-9]*$/.test(e))throw new Error(`invalid ${t}: ${e}`);return Number(e)}function OT(e){return e.startsWith("SIG")?e:`SIG${e}`}var Cf=y(()=>{"use strict";_r();Pt()});import{existsSync as $c,readFileSync as AT,statSync as PT}from"node:fs";import{basename as Of,dirname as Po,isAbsolute as IT,join as Af,resolve as ss}from"node:path";function Io(e,t=process.env){let r=ss(e);if(Ka.map(i=>t[i]).find(Boolean))return pm({startDir:r,env:t,exists:$c});let s=DT(r),o=LT(r,s);return o||(s??r)}function LT(e,t){let r=e;for(;;){if($c(Af(r,".red")))return r;if(t&&r===t)return null;let n=ss(r,"..");if(n===r)return null;r=n}}function DT(e){let t=e;for(;;){let r=Af(t,".git");if($c(r))return NT(r)?t:GT(r)??t;let n=ss(t,"..");if(n===t)return null;t=n}}function GT(e){let t=$T(e);if(!t)return null;let r=Po(t),n=Po(r);return Of(r)!=="worktrees"||Of(n)!==".git"?null:Po(n)}function $T(e){let t;try{t=AT(e,"utf8")}catch{return null}let r=/^gitdir:\s*(.+)$/m.exec(t.trim());if(!r)return null;let n=r[1].trim();return IT(n)?ss(n):ss(Po(e),n)}function NT(e){try{return PT(e).isDirectory()}catch{return!1}}var Nc=y(()=>{$e()});import{join as FT}from"node:path";function BT(e,t=process.env){return Io(e,t)}function tn(e,t=process.env){return dm(BT(e,t))}function Pf(e,t=process.env){return FT(tn(e,t),MT)}var MT,Fc=y(()=>{"use strict";$e();Nc();MT="spool"});import{randomUUID as jT}from"node:crypto";import{existsSync as UT}from"node:fs";import{mkdir as HT,readdir as qT,readFile as WT,rename as VT,rm as Mc,writeFile as JT}from"node:fs/promises";import{dirname as KT,join as Lf}from"node:path";function Df(e,t,r=process.env){return Lf(tn(e,r),`${t}${zT}`)}async function rn(e,t){await Bc(e,`${se(t)}
|
|
62
|
+
`)}async function Lo(e,t,r){t.status=r,await rn(e,t)}async function Do(e,t=process.env){let r=tn(e,t);if(!UT(r))return[];let n=await qT(r).catch(()=>[]),s=[];for(let o of n.filter(i=>YT.some(a=>i.endsWith(a)))){let i=Lf(r,o),a=await QT(i);if(!a){await Mc(i,{force:!0});continue}if(!await XT(a)){await Mc(i,{force:!0});continue}s.push(a)}return s}async function QT(e){let t;try{t=await WT(e,"utf8")}catch{return null}let r=t.trim();if(!r)return null;let n=ZT(r);return n&&Object.keys(n).length>0?n:null}async function XT(e){let t=typeof e.pid=="number"?e.pid:0;if(!t||!Number.isSafeInteger(t)||t<=0)return!1;let r=typeof e.pid_start_time=="string"?e.pid_start_time:void 0;return await en(t,r)}function ZT(e){try{let t=H(e);if(If(t))return t}catch{}try{let t=JSON.parse(e);if(If(t))return t}catch{}return null}async function Bc(e,t){await HT(KT(e),{recursive:!0});let r=`${e}.tmp-${process.pid}-${jT()}`;try{await JT(r,t,"utf8"),await VT(r,e)}finally{await Mc(r,{force:!0})}}function jc(e){return{schema:bf,version:1,...e}}function If(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var zT,YT,is=y(()=>{"use strict";W();Tt();_r();Fc();Pt();zT=".toon",YT=[".toon",".json"]});function nn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function pt(e){return nn(e)?e:{}}function Rr(e){return Array.isArray(e)?e.filter(nn):[]}function ge(e,t){let r=e[t];return typeof r=="string"?r:""}function sn(e,t){let r=e[t];return typeof r=="number"?r:0}function Uc(e){let t=JSON.parse(e);if(!nn(t))throw new Error("expected JSON object");return t}function Go(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}var $o=y(()=>{"use strict"});import{spawn as ev}from"node:child_process";import{resolve as tv}from"node:path";async function Gf(e,t,r){let n=[];if(e.signalPid){let s=await rv(e);s&&n.push(s)}if(e.notifyCmd?.trim()){let s=await nv(e,t,r);s&&n.push({hook:"notify-cmd",...s})}return n.length===0?{status:"success"}:{status:"failure",errors:n}}async function rv(e){let t=e.signalPid;if(!await en(t,e.signalPidStartTime))return{hook:"signal-pid",error:"target process is no longer the process the wait was asked to signal",pid:t,signal:e.signal};try{return process.kill(t,e.signal),null}catch(r){return{hook:"signal-pid",error:$f(r),pid:t,signal:e.signal}}}async function nv(e,t,r){let n=pt(t.wait),s=pt(t.verdict);return await sv(e.notifyCmd,r,e.notifyTimeoutMs,e.terminateGraceMs,{...process.env,RSP_WAIT_RESULT_JSON:JSON.stringify(t),RSP_WAIT_RESULT_FILE:e.resultFile?tv(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 sv(e,t,r,n,s){return await new Promise(o=>{let i=!1,a=!1,c=p=>{i||(i=!0,o(p))},u=ev(e,{cwd:t,shell:!0,stdio:"ignore",env:s,detached:process.platform!=="win32"}),l=setTimeout(()=>{a=!0,Zr(u,n).then(p=>c({error:`timed out after ${r}ms`,...p.cleaned?{}:{survivors:p.survivors}}))},r);u.once("error",p=>{clearTimeout(l),c({error:$f(p)})}),u.once("close",(p,d)=>{clearTimeout(l),!a&&c(p===0?null:{error:`exited with ${d??p??"unknown"}`,status:p??null,signal:d??null})})})}function $f(e){return e instanceof Error?e.message:String(e)}var Nf=y(()=>{"use strict";$o();Pt()});import{resolve as ov}from"node:path";async function Ff(e){let{kind:t,entry:r,options:n,cwd:s}=e,o=iv(e.verdict,e.cleanupProven,e.survivors),i=new Date().toISOString(),a=as(t,r,o,{status:"pending"},i);await cs(n.resultFile,a,n.format);let c=await Gf(n,a,s),u=as(t,r,o,c,i);return await cs(n.resultFile,u,n.format),{result:u,exitCode:Mf(o,c)}}function Mf(e,t){return t.status!=="success"||e.status==="running"?2:Dc(e.status)}function iv(e,t,r=[]){return t!==!1?e:{status:"indeterminate",exitCode:2,summary:`${e.summary}; could not verify process cleanup`,details:{...e.details??{},cleanup:{verified:!1,survivors:r}}}}function as(e,t,r,n,s){return{schema:yf,version:1,wait:{id:t.id,target:t.target,kind:e,status:r.status,reason:t.reason,started_at:t.started_at,completed_at:s,poll_tier:t.poll_tier},verdict:{exit_code:Mf(r,n),target_exit_code:r.exitCode,summary:r.summary,delivery:n,...r.details?{details:r.details}:{}}}}async function cs(e,t,r){e&&await Bc(ov(e),on(t,r))}function on(e,t){return t==="json"?`${JSON.stringify(e,null,2)}
|
|
63
|
+
`:`${se(e)}
|
|
64
|
+
`}var Bf=y(()=>{"use strict";Tt();_r();is();Nf()});import{createWriteStream as av,mkdirSync as cv}from"node:fs";import{readFile as uv,rm as lv}from"node:fs/promises";import{dirname as dv}from"node:path";import{join as jf}from"node:path";function Uf(e,t,r){return{stdout:new No(r,jf(e,`${t}.stdout.bin`)),stderr:new No(r,jf(e,`${t}.stderr.bin`))}}function pv(e){let t=e.toString("utf8");return Buffer.from(t,"utf8").equals(e)&&!mv(e)?{inline:t}:{inline:e.toString("base64"),inline_encoding:"base64"}}function mv(e){for(let t of e)if(t<=8||t>=11&&t<=31&&t!==13||t===127)return!0;return!1}var No,Hf=y(()=>{"use strict";No=class{constructor(t,r){this.limit=t;this.spoolPath=r}head=[];headBytes=0;total=0;spool=null;spoolReady=Promise.resolve();spoolError=null;closed=!1;write(t){if(this.closed)return;this.total+=t.length;let r=this.limit-this.headBytes;if(r>0){let n=t.subarray(0,r);this.head.push(n),this.headBytes+=n.length}if(this.total>this.limit){let n=r>0?t.subarray(r):t;this.openSpool(),n.length>0&&this.appendSpool(n)}}async finish(t,r){this.closed=!0;let n=Buffer.concat(this.head),s=this.total>this.headBytes,o={bytes:this.total,...pv(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 uv(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{cv(dv(this.spoolPath),{recursive:!0}),t=av(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 lv(this.spoolPath,{force:!0}).catch(()=>{})}}});import{existsSync as fv,readFileSync as NM}from"node:fs";import{dirname as gv,join as hv}from"node:path";function qf(e,t){let r=e;for(let n=0;n<16;n++){let s=hv(r,t);if(fv(s))return s;let o=gv(r);if(o===r)break;r=o}return null}function yv(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function Fo(e,t){let r=[];for(let n of e.split(`
|
|
65
|
+
`)){let s=n.replace(/\r$/,""),o=s.trim();if(!o||o.startsWith("#"))continue;let i=s.indexOf(":");if(i<0)continue;let a=s.length-s.trimStart().length,c=s.slice(0,i).trim();if(!c)continue;let u=s.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:c}),u&&r.map(p=>p.key).join(".")===t)return yv(u)}}var Wf=y(()=>{});var tg={};K(tg,{DEFAULT_GH_ETAG_CACHE_MAX_BYTES:()=>cn,GH_ETAG_CACHE_DIR_NAME:()=>zf,LEGACY_GH_ETAG_CACHE_FILE:()=>Yf,LEGACY_GH_ETAG_CACHE_JSON_FILE:()=>Qf,enforceGhEtagCacheCeiling:()=>Kc,ghEtagCacheDir:()=>Mo,ghEtagEntryPath:()=>Bo,isCacheEntry:()=>Uo,legacyGhEtagCachePaths:()=>Wc,migrateLegacyGhEtagCache:()=>Yc,readGhEtagCache:()=>jo,readGhEtagEntry:()=>Vc,resetGhEtagCacheMigrationMemo:()=>Sv,sweepGhEtagCache:()=>zc,writeGhEtagEntry:()=>Jc});import{existsSync as bv}from"node:fs";import{mkdir as wv,readdir as _v,rename as Ev,rm as Vf,stat as Jf,unlink as Kf,writeFile as Rv}from"node:fs/promises";import{dirname as kv,join as an}from"node:path";function Mo(e){return an(ne(e),zf)}function Bo(e,t){return an(Mo(e),`${Cv(t)}.toon`)}function Wc(e){let t=ne(e);return[an(t,Yf),an(t,Qf)]}async function Vc(e,t){await Yc(e);try{let r=eg(await bo(Bo(e,t)));return Uo(r)?r:void 0}catch{return}}async function Jc(e,t,r={}){return await Zf(Bo(e,t.key),t),await Kc(e,r.maxBytes??cn)}async function Kc(e,t=cn){let r=await vv(e),n=r.reduce((o,i)=>o+i.bytes,0);if(n<=t)return{evictedEntries:0,bytes:n};r.sort((o,i)=>o.mtimeMs-i.mtimeMs||o.path.localeCompare(i.path));let s=0;for(let o of r){if(n<=t)break;try{await Kf(o.path),n-=o.bytes,s+=1}catch{}}return{evictedEntries:s,bytes:n}}async function zc(e,t={}){let r=await Yc(e,{force:!0}),n=await Tv(e);return{...await Kc(e,t.maxBytes??cn),reclaimedTmp:n,migratedEntries:r}}async function jo(e){for(let t of Wc(e))try{let r=eg(await bo(t));if(Ov(r))return r}catch{}return{version:1,entries:{}}}async function Yc(e,t={}){if(!t.force&&Hc.has(e))return 0;Hc.add(e);let r=Wc(e).filter(o=>bv(o));if(r.length===0)return 0;let n=await jo(e),s=0;for(let[o,i]of Object.entries(n.entries)){if(!Uo(i))continue;let a=Bo(e,o);await xv(a)||(await Zf(a,{...i,key:o}),s+=1)}for(let o of r)await Vf(o,{force:!0});return s}function Sv(){Hc.clear()}async function Tv(e){let t=0;for(let r of[ne(e),Mo(e)])for(let n of await Xf(r))if(n.endsWith(".tmp"))try{await Kf(an(r,n)),t+=1}catch{}return t}async function vv(e){let t=Mo(e),r=[];for(let n of await Xf(t)){if(!n.endsWith(".toon"))continue;let s=an(t,n);try{let o=await Jf(s);o.isFile()&&r.push({path:s,bytes:o.size,mtimeMs:o.mtimeMs})}catch{}}return r}async function Xf(e){try{return await _v(e)}catch{return[]}}async function xv(e){try{return await Jf(e),!0}catch{return!1}}async function Zf(e,t){await wv(kv(e),{recursive:!0});let r=`${e}.${process.pid}.${Date.now()}.tmp`;try{await Rv(r,`${$(t)}
|
|
66
|
+
`,{encoding:"utf8",mode:384}),await Ev(r,e)}catch(n){throw await Vf(r,{force:!0}),n}}function Cv(e){if(!/^[A-Za-z0-9_-]{1,128}$/.test(e))throw new Error(`unsafe gh etag cache key: ${e}`);return e}function eg(e){try{return JSON.parse(e)}catch{return H(e)}}function Ov(e){return qc(e)&&e.version===1&&qc(e.entries)&&Object.values(e.entries).every(Uo)}function Uo(e){return qc(e)&&typeof e.key=="string"&&typeof e.request=="string"&&typeof e.etag=="string"&&typeof e.body=="string"&&typeof e.updated_at=="string"}function qc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var zf,Yf,Qf,cn,Hc,us=y(()=>{"use strict";$e();W();oe();zf="gh-etag",Yf="gh-etag-cache.toon",Qf="gh-etag-cache.json",cn=4*1024*1024;Hc=new Set});var ag={};K(ag,{DEFAULT_RSP_BYTE_BUDGET:()=>Qe,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Ye,DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>It,DEFAULT_RSP_IDLE_MS:()=>Wo,DEFAULT_RSP_MEASUREMENT_HOLDOUT_SHARE:()=>ig,DEFAULT_RSP_STORE_PATH:()=>Qc,DEFAULT_RSP_TELEMETRY_BYTE_BUDGET:()=>qo,DEFAULT_RSP_TELEMETRY_DRAIN_INTERVAL_MS:()=>ng,DEFAULT_RSP_TELEMETRY_DRAIN_TIMEOUT_MS:()=>sg,DEFAULT_RSP_TELEMETRY_TTL_DAYS:()=>Ho,DEFAULT_RSP_TTL_DAYS:()=>ze,MIN_RSP_IDLE_MS:()=>og,resolveRspConfig:()=>Xe});import{existsSync as Av,readFileSync as Pv}from"node:fs";import{join as Iv,resolve as rg}from"node:path";function Xe(e,t,r){let n=qf(rg(e),Iv(".red","config.yaml")),s=n?Pv(n,"utf8"):"",o=Fo(s,"rsp.enabled")==="true",i=Fo(s,"rsp.proxy.enabled"),a=i===void 0?o:i==="true",c=Se(ce(s,"rsp.ttlDays"),ze),u=Se(mt(t.RSP_EPHEMERAL_TTL_HOURS)??ce(s,"rsp.ephemeralTtlHours"),Ye),l=Se(ce(s,"rsp.byteBudget"),Qe),p=Se(ce(s,"rsp.telemetryTtlDays"),Ho),d=Se(ce(s,"rsp.telemetryByteBudget")??ce(s,"rsp.byteBudget"),qo),g=Se(mt(t.RSP_TELEMETRY_DRAIN_INTERVAL_MS)??ce(s,"rsp.telemetryDrainIntervalMs"),ng),f=Se(mt(t.RSP_TELEMETRY_DRAIN_TIMEOUT_MS)??ce(s,"rsp.telemetryDrainTimeoutMs"),sg),k=Lv(mt(t.RSP_IDLE_MS)??ce(s,"rsp.idleMs"),Wo,og),E=Se(mt(t.RSP_HEAVY_GIT_BYTE_THRESHOLD)??ce(s,"rsp.heavyGitByteThreshold"),It),h=Dv(mt(t.RSP_MEASUREMENT_HOLDOUT_SHARE)??ce(s,"rsp.measurement.holdoutShare"),ig),_=Se(mt(t.RSP_GH_ETAG_CACHE_MAX_BYTES)??ce(s,"rsp.ghEtagCacheMaxBytes"),cn),T={maxOverheadMs:Se(mt(t.RSP_MAX_OVERHEAD_MS)??ce(s,"rsp.overhead.maxOverheadMs"),po),maxSelfStateBytes:Se(mt(t.RSP_MAX_SELF_STATE_BYTES)??ce(s,"rsp.overhead.maxSelfStateBytes"),mo),netLossFloorBytes:Se(ce(s,"rsp.overhead.netLossFloorBytes"),fo),consecutiveBreaches:Se(mt(t.RSP_OVERHEAD_CONSECUTIVE_BREACHES)??ce(s,"rsp.overhead.consecutiveBreaches"),go),cooldownMs:Se(ce(s,"rsp.overhead.cooldownMs"),ho)},v=lt(e).rootDir,G=r??t.RSP_STORE_URI??`file://${lm(rg(v),Av)}`;return{enabled:o,proxyEnabled:a,storeUri:G,ttlDays:c,ephemeralTtlHours:u,byteBudget:l,telemetryTtlDays:p,telemetryByteBudget:d,telemetryDrainIntervalMs:g,telemetryDrainTimeoutMs:f,idleMs:k,heavyGitByteThreshold:E,measurementHoldoutShare:h,ghEtagCacheMaxBytes:_,overhead:T}}function ce(e,t){let r=Fo(e,t);if(r==null)return;let n=Number(r);return Number.isFinite(n)?n:void 0}function Se(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function Lv(e,t,r){let n=Se(e,t);return Math.max(n,r)}function Dv(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e<=0?0:e>=1?1:e}function mt(e){if(e==null||e.trim()==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}var It,Qc,ze,Ye,Qe,Ho,qo,ng,sg,Wo,og,ig,Ze=y(()=>{"use strict";Wf();$e();xo();oe();us();It=8*1024,Qc=cm,ze=7,Ye=6,Qe=64*1024*1024,Ho=90,qo=4*1024*1024,ng=3e4,sg=2e3,Wo=5*6e4,og=5e3,ig=0});function cg(e,t=process.env){return{async mint(r,n){let{residentElisionStore:s}=await Promise.resolve().then(()=>(wr(),es)),o=s(e,Xe(e,t));try{return await o.mint(r,n)}finally{await o.close()}}}}var ug=y(()=>{"use strict";Ze()});import{spawn as Gv}from"node:child_process";async function dg(e){let{commandLine:t,options:r,cwd:n,registryPath:s,entry:o,signal:i}=e;if(!t.trim())return{verdict:fe("missing command line")};let a=e.store??cg(n),c=Uf(e.spoolDir,o.id,r.captureBytes);return await new Promise(u=>{let l=!1,p=!1,d=async h=>{l||(l=!0,i.removeEventListener("abort",k),await Lo(s,o,h.verdict.status).catch(()=>{}),u(h))},g=Gv(t,{cwd:n,shell:!0,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"});g.stdout?.on("data",h=>c.stdout.write(Buffer.from(h))),g.stderr?.on("data",h=>c.stderr.write(Buffer.from(h)));let f=async(h,_)=>{if(l||p)return;p=!0,clearTimeout(E);let T=await Zr(g,r.terminateGraceMs),v=await lg(null,null,c,a,t);await d({verdict:{status:h,exitCode:2,summary:_,details:v},cleanupProven:T.cleaned,survivors:T.survivors})},k=()=>void f("indeterminate","command interrupted");i.addEventListener("abort",k,{once:!0});let E=setTimeout(()=>{f("timeout",`command timed out after ${pg(r.timeoutMs)}`)},r.timeoutMs);g.once("error",h=>{clearTimeout(E),c.stdout.discard(),c.stderr.discard(),d({verdict:{status:"failure",exitCode:1,summary:h.message}})}),g.once("close",(h,_)=>{if(clearTimeout(E),l||p)return;let T=h===0;lg(h,_,c,a,t).then(v=>d({verdict:{status:T?"success":"failure",exitCode:T?0:1,summary:T?"command exited successfully":`command exited with ${_??h??"unknown"}`,details:v}}))}),i.aborted&&k()})}async function Vo(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:$v(u,c,o.last_poll_at)};let l;try{l=await t()}catch(k){l=fe(k instanceof Error?k.message:String(k))}if(u=l,o.attempts=++c,o.last_poll_at=new Date().toISOString(),o.last_observation=Xc(l),await rn(s,o).catch(()=>{}),l.status!=="running"&&l.status!=="indeterminate")return await Lo(s,o,l.status).catch(()=>{}),{verdict:l};let p=Math.min(n*4,Math.round(n*Math.pow(1.25,c-1))),d=Math.floor(Math.random()*1e3),g=Math.min(p+d,Math.max(0,a-Date.now())),f=e.makeWakeSignal?.();await Nv(g,i,f)}return await Lo(s,o,"timeout").catch(()=>{}),{verdict:{status:"timeout",exitCode:2,summary:`timed out after ${pg(r)}`,details:u?{attempts:c,last_poll_at:o.last_poll_at??null,last_observation:Xc(u)}:{attempts:c}}}}async function lg(e,t,r,n,s){let[o,i]=await Promise.all([r.stdout.finish(n,`${s} # stdout`),r.stderr.finish(n,`${s} # stderr`)]);return{status:e??null,signal:t??null,stdout:o,stderr:i}}function Xc(e){return{status:e.status,exit_code:e.exitCode,summary:e.summary,...e.details?{details:e.details}:{}}}function $v(e,t,r){return fe("wait interrupted",{attempts:t,last_poll_at:r??null,...e?{last_observation:Xc(e)}:{}})}async function Nv(e,t,r){t.aborted||e<=0||r?.aborted||await new Promise(n=>{let s=setTimeout(o,e);function o(){clearTimeout(s),t.removeEventListener("abort",i),r?.removeEventListener("abort",a),n()}let i=()=>o(),a=()=>o();t.addEventListener("abort",i,{once:!0}),r?.addEventListener("abort",a,{once:!0})})}function pg(e){return e%36e5===0?`${e/36e5}h`:e%6e4===0?`${e/6e4}m`:e%1e3===0?`${e/1e3}s`:`${e}ms`}var mg=y(()=>{"use strict";Hf();ug();_r();Pt();is()});var Zc,eu,tu,Ce,he,Fe,ft,ls,Jo=y(()=>{"use strict";Zc="rsp-telemetry.spool.toonl",eu="rsp-telemetry.spool.jsonl",tu="rsp-telemetry.spool.corrections.toonl",Ce="rsp_accounting_events_v1",he="rsp_decisions_v1",Fe="rsp_telemetry_invocations_v1",ft="rsp_telemetry_degradations_v1",ls="rsp_telemetry_index_v1"});function un(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Me(e){return Jt(e)??0}function Jt(e){return typeof e=="number"&&Number.isFinite(e)?e:null}var ru=y(()=>{"use strict"});import{randomUUID as su,createHash as Fv}from"node:crypto";import{appendFileSync as bg,existsSync as Mv,mkdirSync as wg}from"node:fs";import{mkdir as _g,readdir as Bv,readFile as Eg,rename as jv,rm as Rg,writeFile as ou}from"node:fs/promises";import{basename as nu,dirname as ds,join as ln,resolve as fg}from"node:path";function zo(e){if(!e)return null;let t=fg(e);for(;;){if(Mv(ln(t,".red")))return t;let r=fg(ln(t,".."));if(r===t)break;t=r}return null}function Lt(e){return ln(ne(e),Zc)}function Yo(e){return ln(ne(e),eu)}function au(e){return ln(ne(e),tu)}async function Dt(e,t){Kt(e,t)}function Kt(e,t){try{let r=zo(e);if(!r)return;let n=Lt(r);wg(ds(n),{recursive:!0}),bg(n,Jv({spool_id:su(),event:Hv(t)}),{encoding:"utf8",mode:384})}catch{}}function Hv(e){return gg(gg(e,"raw_text","raw_bytes"),"emitted_text","emitted_bytes")}function gg(e,t,r){let n=e[t];if(typeof n!="string")return e;let s=Buffer.byteLength(n,"utf8");if(s<=Uv)return e;let o={...e};return delete o[t],Me(o[r])===0&&(o[r]=s),o.estimated=!0,o}async function qv(e){let t=zo(e);if(!t)return[];let r=Lt(t);await _g(ds(r),{recursive:!0}).catch(()=>{});let n=await Tg(t),s=[...await vg(t),...await zv(n)];return await Promise.all(n.map(o=>Rg(o,{force:!0}))),s.map(o=>JSON.stringify(o.event))}async function cu(e,t){let r=zo(e);if(!r)return;let n=Lt(r);await _g(ds(n),{recursive:!0}).catch(()=>{}),await Kv(r);for(let s of await Wv(r))await hg(r,s,t);for(let s of await vg(r))await kg(r,s,t,!0);for(let s of await Tg(r))await hg(r,s,t)}async function Wv(e){let t=[Lt(e),Yo(e)],r=ds(t[0]);return(await Bv(r).catch(()=>[])).filter(s=>t.some(o=>s.startsWith(`${nu(o)}.`)&&s.endsWith(".drain"))).filter(s=>{let o=t.find(c=>s.startsWith(`${nu(c)}.`));if(!o)return!1;let i=`${nu(o)}.`,a=Number(s.slice(i.length).split(".")[0]);return!(Number.isInteger(a)&&a!==process.pid&&Vv(a))}).sort().map(s=>ln(r,s))}function Vv(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function hg(e,t,r){try{let n=await Sg(t);for(let s of xg(n))await kg(e,s,r,!1)}finally{await Rg(t,{force:!0})}}async function kg(e,t,r,n){let s=t.event?JSON.stringify(t.event):t.raw_line??"";try{if(await r(s)){n&&yg(e,{correction_id:su(),target_spool_id:t.spool_id,action:"resolved",created_at:new Date().toISOString()});return}}catch{}yg(e,{correction_id:su(),target_spool_id:t.spool_id,action:"retry",created_at:new Date().toISOString(),event_json:t.event?JSON.stringify(t.event):void 0})}async function Sg(e){let t="";for(let r=0;r<5;r++){let n=await Eg(e,"utf8").catch(()=>"");if(n===t)return n;t=n,await new Promise(s=>setTimeout(s,2))}return t}function dn(e){try{let t=JSON.parse(e);return!un(t)||t.collection!==Ce&&t.collection!==he&&t.collection!==Fe&&t.collection!==ft?null:t}catch{return null}}function Jv(e){return Ht().push(Xv(e))}function yg(e,t){try{let r=zo(e);if(!r)return;let n=au(r);wg(ds(n),{recursive:!0});let s=Ht();bg(n,s.push({correction_id:t.correction_id,target_spool_id:t.target_spool_id,action:t.action,created_at:t.created_at,event_json:t.event_json??null}),{encoding:"utf8",mode:384})}catch{}}async function Tg(e){let t=[Lt(e),Yo(e)],r=[];for(let n of t){let s=`${n}.${process.pid}.${Date.now()}.drain`;try{await jv(n,s),await ou(n,"",{flag:"wx"}).catch(()=>{}),r.push(s)}catch(o){if(o.code!=="ENOENT")continue}}return r}async function Kv(e){await Promise.all([ou(Lt(e),"",{flag:"a"}),ou(Yo(e),"",{flag:"a"})]).catch(()=>{})}async function zv(e){let t=[];for(let r of e)t.push(...xg(await Sg(r)));return t}async function vg(e){let t=await Eg(au(e),"utf8").catch(()=>""),r=new Map;for(let n of Yv(t))r.set(n.target_spool_id,n);return[...r.values()].filter(n=>n.action==="retry"&&n.event_json).map(n=>({spool_id:n.target_spool_id,event:dn(n.event_json)??void 0})).filter(n=>n.event!==void 0)}function xg(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s){try{let o=JSON.parse(s);if(un(o)){let i=dn(JSON.stringify(o));t.push(i?{spool_id:Ko(JSON.stringify(o)),event:i}:{spool_id:Ko(s),raw_line:s})}continue}catch{}if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r){t.push({spool_id:Ko(s),raw_line:s});continue}try{for(let o of Ut(`${r}
|
|
67
67
|
${s}
|
|
68
|
-
`))
|
|
68
|
+
`))iu(o)&&Zv(o)&&t.push({spool_id:o.spool_id,event:Cg(o)})}catch{s.startsWith("{")&&t.push({spool_id:Ko(s),raw_line:s})}}}return t}function Yv(e){return Qv(e).map(ex).filter(t=>t!==null)}function Qv(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s)try{let o=JSON.parse(s);iu(o)&&t.push(o)}catch{if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r)continue;try{for(let o of Ut(`${r}
|
|
69
69
|
${s}
|
|
70
|
-
`))
|
|
71
|
-
`,"utf8"),t]):null}function
|
|
72
|
-
`,"utf8"),await
|
|
70
|
+
`))iu(o)&&t.push(o)}catch{}}}return t}function Ko(e){return`legacy:${Fv("sha256").update(e).digest("hex").slice(0,24)}`}function Xv(e){let t={spool_id:e.spool_id};for(let[r,n]of Object.entries(e.event??{}))r!=="spool_id"&&(typeof n=="string"||typeof n=="number"||typeof n=="boolean"||n===null?t[r]=n:n!==void 0&&(t[r]=JSON.stringify(n)));return t}function Cg(e){let{spool_id:t,...r}=e;return dn(JSON.stringify(r))}function Zv(e){return typeof e.spool_id=="string"&&Cg(e)!==null}function ex(e){return typeof e.correction_id=="string"&&typeof e.target_spool_id=="string"&&(e.action==="retry"||e.action==="resolved")&&typeof e.created_at=="string"&&(e.event_json===null||typeof e.event_json=="string")?{correction_id:e.correction_id,target_spool_id:e.target_spool_id,action:e.action,created_at:e.created_at,event_json:e.event_json??void 0}:null}function iu(e){return un(e)?Object.values(e).every(t=>typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null):!1}var Uv,Og=y(()=>{"use strict";$e();W();Jo();ru();Uv=64*1024});function Qo(e){return e.trim().split(/\s+/).filter(Boolean)}function ps(e){return e.split(/&&|[;|]/).map(t=>t.trim()).filter(Boolean)}function ms(e){return e.split(/[ \t]+/).filter(Boolean).map(t=>t.replace(/^env$/,""))}function Be(e){let t=Qo(e);return t.length===0?"unknown":t[0]==="git"&&t[1]?`git ${t[1]}`:kr(t)&&t[1]&&t[2]?`gh ${t[1]} ${t[2]} json-jq`:kr(t)&&t[1]?`gh ${t[1]} json-jq`:kr(t)?"gh json-jq":t[0]==="gh"&&t[1]&&t[2]?`gh ${t[1]} ${t[2]}`:t[0]==="gh"&&t[1]?`gh ${t[1]}`:t[0]==="cargo"&&t[1]?`cargo ${t[1]}`:t[0]==="vitest"?"vitest":t[0]}function kr(e){return e[0]==="gh"&&e.some(tx)}function tx(e){return e==="--json"||e==="--jq"||e.startsWith("--json=")||e.startsWith("--jq=")}function pn(e){return/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(e)}var fs=y(()=>{"use strict"});var ue,Xo=y(()=>{"use strict";Ze();ue="rsp_elisions_v1"});import{spawnSync as ys}from"node:child_process";import{createHash as du}from"node:crypto";import{existsSync as rx}from"node:fs";import{mkdir as nx,readFile as sx,readdir as Ag,rename as ox,writeFile as ix}from"node:fs/promises";import{homedir as ax}from"node:os";import{basename as cx,dirname as ux,join as gs}from"node:path";import{fileURLToPath as lx}from"node:url";import{gunzipSync as dx,gzipSync as px}from"node:zlib";function bs(e,t){return`el:${du("sha256").update("rsp-elision-v1\0").update(e).update("\0").update(JSON.stringify({command:t.command,loss:t.loss})).digest("hex").slice(0,12)}`}function zt(e){return`record:${e.slice(3)}`}function Tr(e){return`expired:${e.slice(3)}`}function ti(){return"index:v1"}function mx(e){return`blob:${e}`}function Pg(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid RedDB identifier: ${e}`);return e}function Gt(e){let t=Qo(e),r=t[0]??"";if(r==="cat")return"derivable";if(r==="git"){let n=t[1]??"";return n==="log"||n==="diff"||n==="blame"||n==="show"?"derivable":ri(t)?"re-executable":"ephemeral"}return"ephemeral"}function ws(e){return ii(e.storage_class)?e.storage_class:Gt(e.command)}function Ig(e){return ii(e.storage_class)?e.storage_class:Gt(e.command)}function pu(e){let t=hx(),r={derivable:new Set,"re-executable":new Set,ephemeral:new Set};for(let n of e){let s=Ig(n);if(t[s].records+=1,t[s].raw_bytes+=n.raw_bytes??n.bytes,n.blob_key){if(r[s].has(n.blob_key))continue;r[s].add(n.blob_key)}t[s].bytes+=n.bytes}return t}function mu(e,t,r){let n=t.getTime();return[...e].sort((s,o)=>o.created_at.localeCompare(s.created_at)).slice(0,Math.max(0,r)).map(s=>{let o=Math.max(0,Math.floor((n-Date.parse(s.created_at))/1e3));return{handle:s.handle,command:s.command,created_at:s.created_at,expires_at:s.expires_at,age_seconds:o,age_display:fx(o),storage_class:Ig(s),recover:`rsp show ${s.handle}`}})}function fx(e){if(e<60)return`${e}s`;let t=Math.floor(e/60);if(t<60)return`${t}m`;let r=Math.floor(t/60);return r<24?`${r}h`:`${Math.floor(r/24)}d`}function fu(e,t,r,n){let s=t==="ephemeral"?n*60*60*1e3:r*24*60*60*1e3;return new Date(e.getTime()+s).toISOString()}function vr(e){let t=0,r=new Set;for(let n of e){if(n.blob_key){if(r.has(n.blob_key))continue;r.add(n.blob_key)}t+=n.bytes}return t}function gu(e,t){let r=process.cwd(),n=ys("git",["rev-parse","--is-inside-work-tree"],{cwd:r,encoding:"utf8"});if(n.status!==0||n.stdout.trim()!=="true")return null;let s=ys("git",["hash-object","-w","--stdin"],{cwd:r,input:e,encoding:"buffer"});if(s.status!==0)return null;let o=s.stdout.toString("utf8").trim();return/^[0-9a-f]{40,64}$/.test(o)?{kind:"git-blob",command:t,cwd:r,object_ids:[o],working_tree_fingerprint:gx(r),original_bytes:e.length}:null}function gx(e){let t=uu(e,["rev-parse","HEAD"])||"unborn",r=uu(e,["write-tree"])||"no-index",n=uu(e,["status","--porcelain=v1","-z"])||"";return du("sha256").update(t).update("\0").update(r).update("\0").update(n).digest("hex")}function uu(e,t){let r=ys("git",t,{cwd:e,encoding:"utf8"});return r.status===0?r.stdout.trim():null}function hu(e,t){let r=Qo(t);if(!ri(r))return null;let n=$g(process.cwd(),r,e.length);return!n||Sr(n)!==Sr(e)?null:{kind:"command",command:t,cwd:process.cwd(),argv:r,original_bytes:e.length,content_hash:Sr(e)}}function ri(e){return e[0]==="git"?e[1]==="status"?!0:e[1]!=="branch"?!1:e.length===2||e.slice(2).every(t=>/^-[avvr]+$/.test(t)):!1}function Sr(e){return du("sha256").update("rsp-reexecutable-content-v1\0").update(e).digest("hex")}function yu(e,t,r,n){return t?Buffer.byteLength(JSON.stringify(t),"utf8"):r?Buffer.byteLength(JSON.stringify(r),"utf8"):n?n.stored_bytes:e.length}function bu(e){return typeof e.stored_bytes=="number"?e.stored_bytes:e.derivation_recipe?Buffer.byteLength(JSON.stringify(e.derivation_recipe),"utf8"):e.reexecution_recipe?Buffer.byteLength(JSON.stringify(e.reexecution_recipe),"utf8"):e.blob_key?typeof e.stored_bytes=="number"?e.stored_bytes:0:e.original_bytes}function wu(e,t,r){let n=px(e);return{key:mx(t),content_hash:t,encoding:"gzip+base64",bytes:n.toString("base64"),original_bytes:e.length,stored_bytes:n.length,created_at:r}}function Lg(e){try{let t=dx(Buffer.from(e.bytes,"base64"));return t.length===e.original_bytes?t:null}catch{return null}}function Dg(e){let t=e.object_ids[0];if(!t)return null;let r=ys("git",["cat-file","-p",t],{cwd:e.cwd,encoding:"buffer",maxBuffer:Math.max(e.original_bytes+1024,1024*1024)});return r.status!==0||r.stdout.length!==e.original_bytes?null:r.stdout}function Gg(e){if(!ri(e.argv))return null;let t=$g(e.cwd,e.argv,e.original_bytes);return t?Sr(t)===e.content_hash?t:Buffer.concat([Buffer.from(`reconstructed after state moved - current snapshot follows
|
|
71
|
+
`,"utf8"),t]):null}function $g(e,t,r){let n=t[0];if(!n)return null;let s=ys(n,t.slice(1),{cwd:e,encoding:"buffer",maxBuffer:Math.max(r+1024,1024*1024)});return s.status!==0||s.signal?null:s.stdout}function hx(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}function _s(e){return/^el:[a-f0-9]{12}$/.test(e)}function ei(e){return/^blob:[a-f0-9]{64}$/.test(e)}function Ng(e){if(!hs(e))throw new Error("memory recall payload must be an object");let t=e.query;if(typeof t!="string"||t.trim()==="")throw new Error("memory recall query is required");let r=typeof e.limit=="number"&&Number.isFinite(e.limit)?e.limit:10;return{query:t,limit:r,options:{includeSuperseded:e.includeSuperseded===!0,scope:hs(e.scope)?e.scope:void 0,ranking:hs(e.ranking)?e.ranking:void 0}}}function Fg(e){if(!hs(e))throw new Error("memory ingest payload must be an object");let t=e.cwd;if(typeof t!="string"||t.trim()==="")throw new Error("memory ingest cwd is required");let r=typeof e.maxFiles=="number"&&Number.isFinite(e.maxFiles)?e.maxFiles:void 0,n=Array.isArray(e.ignore)?e.ignore.filter(s=>typeof s=="string"):void 0;return{cwd:t,maxFiles:r,ignore:n}}function hs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Mg(e,t,r){let n=[],s=new Set([".git","node_modules",".red",...r]);async function o(i){if(n.length>=t)return;let a=await Ag(i,{withFileTypes:!0}).catch(()=>[]);for(let c of a){if(n.length>=t)return;if(s.has(c.name))continue;let u=gs(i,c.name);c.isDirectory()?await o(u):c.isFile()&&/\.(md|mdx|txt|ts|tsx|js|jsx|json|yaml|yml|toml|rs|go|py|sql)$/i.test(c.name)&&n.push(u)}}return await o(e),n}function Bg(e,t){let r=Number(e.red_entity_id??e.rid);if(!Number.isFinite(r))return null;let n=e.properties??e.PROPERTIES,s=hs(n)?n:{},o=String(e.label??e.LABEL??s.title??`memory-${r}`),i=String(e.node_type??e.NODE_TYPE??"concept"),a=String(s.content??s.summary??s.title??o),c=`${o} ${a}`.toLowerCase(),u=t.filter(l=>c.includes(l));return u.length===0&&t.length>0?null:{id:String(r),rid:r,label:o,node_type:i,score:u.length||1,excerpt:a.slice(0,500)}}function ni(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function Es(e){if(!je(e))return!1;let t=typeof e.original=="string"&&e.original_encoding==="base64",r=bx(e.derivation_recipe),n=wx(e.reexecution_recipe),s=e.blob_key,o=typeof s=="string"&&ei(s);return e.collection===ue&&typeof e.handle=="string"&&_s(e.handle)&&(t||r||n||o)&&typeof e.original_bytes=="number"&&(e.content_hash===void 0||Eu(e.content_hash))&&(e.stored_bytes===void 0||typeof e.stored_bytes=="number")&&(s===void 0||typeof s=="string"&&ei(s))&&typeof e.command=="string"&&typeof e.created_at=="string"&&typeof e.expires_at=="string"&&yx(e.loss)&&(e.storage_class===void 0||ii(e.storage_class))}function _u(e){return!je(e)||e.version!==1||!Array.isArray(e.records)?!1:e.records.every(t=>{if(!je(t))return!1;let r=t.blob_key;return typeof t.handle=="string"&&_s(t.handle)&&typeof t.key=="string"&&typeof t.bytes=="number"&&(t.raw_bytes===void 0||typeof t.raw_bytes=="number")&&typeof t.command=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&(t.storage_class===void 0||ii(t.storage_class))&&(r===void 0||typeof r=="string"&&ei(r))})}function si(e){return je(e)&&typeof e.key=="string"&&ei(e.key)&&Eu(e.content_hash)&&e.encoding==="gzip+base64"&&typeof e.bytes=="string"&&typeof e.original_bytes=="number"&&typeof e.stored_bytes=="number"&&typeof e.created_at=="string"}function oi(e){return je(e)&&e.status==="expired"&&typeof e.expired_at=="string"&&typeof e.command=="string"}function yx(e){return je(e)&&typeof e.level=="string"&&typeof e.bytes_elided=="number"}function ii(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"}function bx(e){return je(e)&&e.kind==="git-blob"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.object_ids)&&e.object_ids.every(t=>typeof t=="string"&&/^[0-9a-f]{40,64}$/.test(t))&&typeof e.working_tree_fingerprint=="string"&&typeof e.original_bytes=="number"}function wx(e){return je(e)&&e.kind==="command"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.argv)&&e.argv.every(t=>typeof t=="string")&&ri(e.argv)&&typeof e.original_bytes=="number"&&Eu(e.content_hash)}function Eu(e){return typeof e=="string"&&/^[0-9a-f]{64}$/.test(e)}function je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function jg(e){try{let n=(await sx(e,"utf8")).trim();if(n==="")return Zo();let s;try{s=JSON.parse(n)}catch{s=H(n)}if(_x(s))return{...s,blobs:s.blobs??{}}}catch(r){if(r.code==="ENOENT"){let s=Zo();return await mn(e,s),s}let n=Zo();return await mn(e,n),n}let t=Zo();return await mn(e,t),t}async function Ug(e){try{return e}catch(t){if(t.code==="ENOENT")return e;throw t}}function Hg(e){return cx(e)==="red-skills.rdb"}async function ai(){if(process.env.REDDB_BIN)return;let e=process.env.RED_SKILLS_CACHE_DIR??(process.env.XDG_CACHE_HOME?gs(process.env.XDG_CACHE_HOME,"red-skills","bundles"):gs(ax(),".cache","red-skills","bundles")),t=gs(e,"reddb"),r;try{r=await Ag(t)}catch{return}r.sort().reverse();for(let n of r){let s=gs(t,n,process.platform==="win32"?"red.exe":"red");if(rx(s)){process.env.REDDB_BIN=s;return}}}async function mn(e,t){await nx(ux(e),{recursive:!0});let r=`${e}.${process.pid}.tmp`;await ix(r,`${$(lu(t))}
|
|
72
|
+
`,"utf8"),await ox(r,e)}function lu(e){if(e==null)return null;if(typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)?e:null;if(Array.isArray(e))return e.map(t=>lu(t));if(typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))n!==void 0&&(t[r]=lu(n));return t}return String(e)}function Zo(){return{version:1,records:{},blobs:{},tombstones:{},index:{version:1,records:[]}}}function _x(e){return je(e)&&e.version===1&&je(e.records)&&Object.values(e.records).every(Es)&&(e.blobs===void 0||je(e.blobs)&&Object.values(e.blobs).every(si))&&je(e.tombstones)&&Object.values(e.tombstones).every(oi)&&_u(e.index)}function qg(e){if(!e.startsWith("file://"))throw new Error("rsp elision store requires a file:// URI");return lx(e)}var ci=y(()=>{"use strict";W();fs();Xo()});async function Wg(e,t){return Ex?Sx(e,t):Rx?vx(e,t):kx(e,t)}async function kx(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 Sx(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:Tx(r.stdout),kill(){r.kill()},wait(){return r.exited}}}async function*Tx(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 vx(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:xx(n.stdout),kill(){try{n.kill("SIGTERM")}catch{}},async wait(){return(await n.status).code??0}}}async function*xx(e){let t=e.getReader();try{for(;;){let{value:r,done:n}=await t.read();if(n)return;yield r}}finally{t.releaseLock()}}var Ex,Rx,Vg=y(()=>{Ex=typeof globalThis.Bun<"u"&&typeof globalThis.Bun.spawn=="function",Rx=typeof globalThis.Deno<"u"&&typeof globalThis.Deno.Command=="function"});import{existsSync as Cx}from"node:fs";import{join as Ox}from"node:path";function Jg(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=Ox(r,"bin",t);if(Cx(o))return o;throw new Error(`reddb: binary "${t}" not found.
|
|
73
73
|
expected at: ${o}
|
|
74
|
-
override: set ${
|
|
74
|
+
override: set ${n}=/path/to/${t}
|
|
75
75
|
fix: re-run \`pnpm install\` (the postinstall script downloads it),
|
|
76
|
-
or check the postinstall log for a download error.`)}var
|
|
77
|
-
`)).catch(a=>{this.pending.delete(
|
|
76
|
+
or check the postinstall log for a download error.`)}var Kg=y(()=>{});import{fileURLToPath as Ax}from"node:url";import{dirname as Px,resolve as Ix,join as jB}from"node:path";function Gx(){return typeof process<"u"&&process.platform==="win32"?"red.exe":"red"}function zg(){let e=process.env?.REDDB_BINARY_PATH;return typeof e=="string"&&e!==""&&!process.env?.REDDB_BIN?e:Jg({name:Gx(),packageRoot:Dx,envVar:"REDDB_BIN"})}var Lx,Dx,Yg=y(()=>{Kg();Lx=Px(Ax(import.meta.url)),Dx=Ix(Lx,"..")});var $x,Nx,D,ui,Yt=y(()=>{$x=new TextEncoder,Nx=new TextDecoder("utf-8"),D=class extends Error{constructor(t,r,n){super(r),this.name="RedDBError",this.code=t,this.data=n??null}},ui=class{constructor(t){this.child=t,this.nextId=1,this.pending=new Map,this.closed=!1,this.closeReason=null,this.readerPromise=this.#t()}call(t,r={}){if(this.closed)return Promise.reject(new D("CLIENT_CLOSED",`client is closed: ${this.closeReason??"unknown"}`));let n=this.nextId++,s=JSON.stringify({jsonrpc:"2.0",id:n,method:t,params:r});return new Promise((o,i)=>{this.pending.set(n,{resolve:o,reject:i}),this.child.stdin.write($x.encode(s+`
|
|
77
|
+
`)).catch(a=>{this.pending.delete(n),i(a)})})}async close(){if(!this.closed){try{await this.call("close",{})}catch{}this.#e("close requested");try{this.child.stdin.end()}catch{}await this.child.wait()}}async#t(){let t=new Uint8Array(0);try{for await(let r of this.child.stdout){let n=new Uint8Array(t.length+r.length);n.set(t,0),n.set(r,t.length),t=n;let s=0;for(let o=0;o<t.length;o++)if(t[o]===10){let i=t.subarray(s,o);this.#r(Nx.decode(i)),s=o+1}s>0&&(t=t.subarray(s))}}catch(r){this.#e(`stdout reader error: ${r.message}`);return}this.#e("server stdout closed")}#r(t){if(!t.trim())return;let r;try{r=JSON.parse(t)}catch(o){this.#e(`malformed server response: ${o.message}`);return}let n=r.id;if(n==null)return;let s=this.pending.get(n);s&&(this.pending.delete(n),r.error?s.reject(new D(r.error.code??"UNKNOWN",r.error.message??"unknown error",r.error.data)):s.resolve(r.result))}#e(t){if(this.closed)return;this.closed=!0,this.closeReason=t;let r=new D("CLIENT_CLOSED",t);for(let{reject:n}of this.pending.values())n(r);this.pending.clear()}}});function ku(e){if(typeof e!="string"||e.length===0)throw new TypeError("connect() requires a URI string (e.g. 'red://localhost:5050' or 'red:///data.rdb')");return e.startsWith("red://")||e==="red:"||e==="red:/"?Fx(e):Mx(e)}function Fx(e){let t=e;e==="red:"||e==="red:/"||e==="red://"?t="red://embedded.local":e.startsWith("red:///")?t=`red://embedded.local${e.slice(6)}`:(e==="red://memory"||e==="red://memory/"||e==="red://:memory"||e==="red://:memory:")&&(t="red://embedded.local");let r;try{r=new URL(t)}catch(l){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${l.message}`)}let n=r.searchParams,s=(n.get("proto")||"").toLowerCase(),o=r.pathname&&r.pathname!=="/"?r.pathname:"";if(r.hostname==="embedded.local")return o?{kind:"embedded",path:o,params:n,originalUri:e}:{kind:"embedded",params:n,originalUri:e};let i=Bx(s),a=r.port?Number(r.port):Ru(i),c=r.username?decodeURIComponent(r.username):void 0,u=r.password?decodeURIComponent(r.password):void 0;return{kind:i,host:r.hostname,port:a,path:o||void 0,username:c,password:u,token:n.get("token")??void 0,apiKey:n.get("apiKey")??n.get("api_key")??void 0,loginUrl:n.get("loginUrl")??n.get("login_url")??void 0,params:n,originalUri:e}}function Mx(e){if(e==="memory://"||e==="memory:")return{kind:"embedded",originalUri:e};if(e.startsWith("file://")){let t=e.slice(7);if(!t)throw new TypeError(`invalid file:// URI: missing path in '${e}'`);return{kind:"embedded",path:t,originalUri:e}}if(e.startsWith("grpc://")||e.startsWith("grpcs://")||e.startsWith("reds://")){let t=e.split("://",1)[0],r;try{r=new URL("https://"+e.slice(`${t}://`.length))}catch(o){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${o.message}`)}if(!r.hostname)throw new TypeError(`invalid ${t}:// URI: missing host in '${e}'`);let n=t==="reds"?"reds":t==="grpcs"?"grpcs":"grpc",s=r.searchParams;return{kind:n,host:r.hostname,port:r.port?Number(r.port):Ru(n),username:r.username?decodeURIComponent(r.username):void 0,password:r.password?decodeURIComponent(r.password):void 0,token:s.get("token")??void 0,apiKey:s.get("apiKey")??s.get("api_key")??void 0,loginUrl:s.get("loginUrl")??s.get("login_url")??void 0,params:s,originalUri:e}}if(e.startsWith("http://")||e.startsWith("https://")){let t;try{t=new URL(e)}catch(r){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${r.message}`)}return{kind:t.protocol==="https:"?"https":"http",host:t.hostname,port:t.port?Number(t.port):Ru(t.protocol==="https:"?"https":"http"),path:t.pathname!=="/"?t.pathname:void 0,username:t.username?decodeURIComponent(t.username):void 0,password:t.password?decodeURIComponent(t.password):void 0,token:t.searchParams.get("token")??void 0,apiKey:t.searchParams.get("apiKey")??void 0,params:t.searchParams,originalUri:e}}throw new D("UNSUPPORTED_SCHEME",`unsupported URI: '${e}'. Use 'red://...' or one of memory://, file://, grpc://, http(s)://`)}function Bx(e){switch(e){case"":case"red":return"red";case"reds":return"reds";case"grpc":return"grpc";case"grpcs":return"grpcs";case"http":return"http";case"https":return"https";case"pg":case"postgres":case"postgresql":return"pg";default:throw new D("UNSUPPORTED_PROTO",`unknown proto='${e}'. Supported: red | reds | grpc | grpcs | http | https | pg`)}}function Ru(e){switch(e){case"http":return 5e3;case"https":return 55555;case"red":case"reds":case"redwire":return 5050;case"grpc":return 55055;case"grpcs":return 55555;case"pg":case"postgres":case"postgresql":return 5432;default:return}}var Su=y(()=>{Yt()});function Ux(e){if(typeof e=="string"){let t=new TextEncoder().encode(e);return Qg(t)}if(e instanceof Uint8Array||typeof Buffer<"u"&&Buffer.isBuffer(e))return Qg(e);throw new TypeError("cache value must be a string, Uint8Array, or Buffer")}function Qg(e){if(typeof Buffer<"u")return Buffer.from(e).toString("base64");let t="";for(let r of e)t+=String.fromCharCode(r);return btoa(t)}function Hx(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 jx,Rs,Tu=y(()=>{Yt();jx=new Set(["embedded"]),Rs=class{constructor(t,r){this._client=t,this._transport=r??null}_guard(t){if(this._transport&&jx.has(this._transport))throw new D("UNSUPPORTED_TRANSPORT",`cache.${t} is not available on '${this._transport}' transport; use @reddb-io/client for remote cache endpoints.`)}async get(t,r){this._guard("get");let n=await this._client.call("cache.get",{namespace:t,key:r});return n==null||n.value==null?null:Hx(n.value)}async put(t,r,n,s={}){this._guard("put");let o=Ux(n);await this._client.call("cache.put",{namespace:t,key:r,value:o,...s})}async exists(t,r){return this._guard("exists"),(await this._client.call("cache.exists",{namespace:t,key:r}))?.status??"maybe"}async invalidate(t,r){this._guard("invalidate"),await this._client.call("cache.invalidate",{namespace:t,key:r})}async invalidatePrefix(t,r){return this._guard("invalidatePrefix"),(await this._client.call("cache.invalidate_prefix",{namespace:t,prefix:r}))?.removed??0}async invalidateTags(t,r){return this._guard("invalidateTags"),(await this._client.call("cache.invalidate_tags",{namespace:t,tags:r}))?.removed??0}async flushNamespace(t){this._guard("flushNamespace"),await this._client.call("cache.flush_namespace",{namespace:t})}}});function vu(e,t){return`${xu(e)}.${qx(t)}`}function xu(e){let t=String(e),r=t.match(/[^A-Za-z0-9_]/);if(r)throw new D("INVALID_KV_KEY",`invalid KV key "${t}": character "${r[0]}" is not supported`);return t}function qx(e){let t=String(e);return/^[A-Za-z0-9_]+$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function Wx(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="object"?`'${JSON.stringify(e).replace(/'/g,"''")}'`:`'${String(e).replace(/'/g,"''")}'`}function Xg(e){return`'${String(e).replace(/'/g,"''")}'`}var fn,Cu=y(()=>{Yt();fn=class{constructor(t,r="kv_default"){this.client=t,this.collection=r}put(t,r,n={}){let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Xg).join(", ")}]`:"",i=n.expireMs!=null?` EXPIRE ${Number(n.expireMs)} ms`:"";return this.client.call("query",{sql:`KV PUT ${vu(s,t)} = ${Wx(r)}${i}${o}`})}set(t,r,n={}){return this.put(t,r,n)}async get(t,r={}){let n=r.collection??this.collection;return(await this.client.call("query",{sql:`KV GET ${vu(n,t)}`}))?.rows?.[0]?.value??null}async getMany(t,r={}){let n=[];for(let s of t)n.push(await this.get(s,r));return n}async exists(t,r={}){return{exists:await this.get(t,r)!==null}}async delete(t,r={}){let n=r.collection??this.collection,s=await this.client.call("query",{sql:`KV DELETE ${vu(n,t)}`}),o=s.affected??s.affected_rows??0;return{affected:o,deleted:o>0}}async list(t={}){let r=t.collection??this.collection,n=t.limit==null?100:Number(t.limit);if(!Number.isInteger(n)||n<=0)throw new D("INVALID_ARGUMENT","kv.list limit must be a positive integer");let s=t.prefix==null?"":String(t.prefix),i=(await this.client.call("query",{sql:`SELECT key, value FROM ${xu(r)} ORDER BY key ASC LIMIT ${n}`})).rows??[];return{items:s.length>0?i.filter(c=>String(c.key).startsWith(s)):i}}async invalidateTags(t,r={}){let n=r.collection??this.collection,s=await this.client.call("query",{sql:`INVALIDATE TAGS [${t.map(Xg).join(", ")}] FROM ${xu(n)}`});return s.affected??s.affected_rows??s.rows?.[0]?.invalidated??0}async*watch(t,r={}){if(!this.client.baseUrl)throw new D("UNSUPPORTED_TRANSPORT","kv.watch requires the HTTP transport");let n=r.collection??this.collection,s=new URLSearchParams;r.sinceLsn!=null&&s.set("since_lsn",String(r.sinceLsn)),r.limit!=null&&s.set("limit",String(r.limit));let o=s.toString()?`?${s}`:"",i=`${this.client.baseUrl}/collections/${encodeURIComponent(n)}/kv/${encodeURIComponent(String(t))}/watch${o}`,a=await fetch(i,this.client.attachAuth({method:"GET"}));if(!a.ok)throw new D("HTTP_ERROR",`kv.watch failed with HTTP ${a.status}`);let c=await a.text();for(let u of c.split(`
|
|
78
78
|
|
|
79
79
|
`)){let l=u.split(`
|
|
80
|
-
`).find(p=>p.startsWith("data: "));l&&(yield JSON.parse(l.slice(6)))}}watchPrefix(t,n={}){return this.watch(`${t}.*`,n)}}});function tx(e,t,n){let{waitMs:r,group:s=null,count:o=null}=n??{};if(!Number.isInteger(r)||r<0)throw new v("INVALID_QUEUE_WAIT","queue readWait requires an explicit non-negative integer waitMs (no infinite wait)");let i=bt(e),a=bt(t),c=s!=null?` GROUP ${bt(s)}`:"",u=o!=null?Kc(o):"";return`QUEUE READ ${i}${c} CONSUMER ${a}${u} WAIT ${r}ms`}function bt(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new v("INVALID_QUEUE_NAME",`invalid queue name "${t}": expected an SQL identifier`);return t}function Kc(e){if(e==null)return"";if(!Number.isInteger(e)||e<0)throw new v("INVALID_QUEUE_COUNT","queue count must be a non-negative integer");return` COUNT ${e}`}function nx(e){if(!Number.isInteger(e))throw new v("INVALID_QUEUE_PRIORITY","queue priority must be an integer");return String(e)}function rx(e){if(e.key!=null&&(e.delay!=null||e.at!=null))throw new v("INVALID_ARGUMENT","QUEUE PUSH KEY cannot be combined with DELAY / AVAILABLE AT");let t="";return e.priority!=null&&(t+=` PRIORITY ${nx(e.priority)}`),e.key!=null&&(t+=` KEY ${zc(e.key)}`),e.dedup!=null&&(t+=` DEDUP ${zc(e.dedup)}`),e.delay!=null&&(t+=` DELAY ${e.delay}`),e.at!=null&&(t+=` AVAILABLE AT ${e.at}`),t}function sx(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="string"?zc(e):JSON.stringify(e)}function zc(e){return`'${String(e).replace(/'/g,"''")}'`}function Vc(e){return Array.isArray(e?.rows)?e.rows.map(t=>t.payload):[]}var Qr,Yc=g(()=>{Ot();Qr=class{constructor(t){this.client=t}create(t){return this.client.call("query",{sql:`CREATE QUEUE IF NOT EXISTS ${bt(t)}`})}push(t,n,r={}){let s=rx(r);return this.client.call("query",{sql:`QUEUE PUSH ${bt(t)} ${sx(n)}${s}`})}async pop(t,n){let r=await this.client.call("query",{sql:`QUEUE POP ${bt(t)}${Kc(n)}`});return Vc(r)}async peek(t,n){let r=await this.client.call("query",{sql:`QUEUE PEEK ${bt(t)}${Kc(n)}`});return Vc(r)}async len(t){let n=await this.client.call("query",{sql:`QUEUE LEN ${bt(t)}`});return Number(n?.rows?.[0]?.len??0)}purge(t){return this.client.call("query",{sql:`QUEUE PURGE ${bt(t)}`})}async readWait(t,n,r={}){let s=tx(t,n,r),o=await this.client.call("query",{sql:s});return Vc(o)}}});function Dm(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new v("INVALID_ARGUMENT",`${t} must be an object`)}function ox(e){if(e==null)return 100;if(!Number.isInteger(e)||e<=0)throw new v("INVALID_ARGUMENT","limit must be a positive integer");return e}function Mo(e){return String(e).split(".").map(Nm).join(".")}function Nm(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new v("INVALID_ARGUMENT",`invalid SQL identifier "${t}"`);return t}function ix(e){return Mm(JSON.stringify(e))}function ax(e){return JSON.stringify(e)}function cx(e){return e==null?"NULL":typeof e=="number"||typeof e=="boolean"?String(e):typeof e=="object"?ix(e):Mm(e)}function Mm(e){return`'${String(e).replace(/'/g,"''")}'`}var Zr,Xc=g(()=>{Ot();Zr=class{constructor(t){this.db=t}async insert(t,n){Dm(n,"documents.insert document"),await this.ensureCollection(t);let r=await this.db.query(`INSERT INTO ${Mo(t)} DOCUMENT VALUES (${ax(n)}) RETURNING *`),s=r.rows?.[0];if(!s||s.rid==null)throw new v("INVALID_RESPONSE","documents.insert expected one returned item with rid");return{affected:r.affected??1,rid:s.rid,item:s}}async get(t,n){let r=await this.db.get(t,n);if(!r.entity)throw new v("NOT_FOUND",`document ${String(n)} was not found`);return r.entity}async list(t,n={}){let r=ox(n.limit),s=n.orderBy??n.order_by??"rid ASC",o=n.filter?` WHERE ${String(n.filter)}`:"";return{items:(await this.db.query(`SELECT * FROM ${Mo(t)}${o} ORDER BY ${s} LIMIT ${r}`)).rows??[]}}async patch(t,n,r){Dm(r,"documents.patch patch");let s=Object.entries(r);if(s.length===0)throw new v("INVALID_ARGUMENT","documents.patch patch must be a non-empty object");for(let[c]of s)if(c.includes("/"))throw new v("INVALID_ARGUMENT","documents.patch currently accepts top-level document fields");let o=s.map(([c,u])=>`${Nm(c)} = ${cx(u)}`).join(", "),a=(await this.db.query(`UPDATE ${Mo(t)} SET ${o} WHERE rid = $1 RETURNING *`,n)).rows?.[0];if(!a)throw new v("NOT_FOUND",`document ${String(n)} was not found`);return a}async delete(t,n){let s=(await this.db.delete(t,n)).affected??0;return{affected:s,deleted:s>0}}async ensureCollection(t){try{await this.db.query(`CREATE DOCUMENT ${Mo(t)}`)}catch(n){if(!String(n?.message??"").includes("already exists"))throw n}}}});function ux(e,t){if(t.secretRef){let{collection:n,key:r}=t.secretRef;return`SECRET_REF(vault, ${At(n)}.${At(r)})`}return dx(e)}function lx(e,t){for(let n of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[n]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function At(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 dx(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):Bm(e)}function Bm(e){return`'${String(e).replace(/'/g,"''")}'`}var es,Qc=g(()=>{es=class{constructor(t,n="red.config"){this.client=t,this.collection=n}put(t,n,r={}){lx(r,"config");let s=r.collection??this.collection,o=Array.isArray(r.tags)&&r.tags.length>0?` TAGS [${r.tags.map(Bm).join(", ")}]`:"";return this.client.call("query",{sql:`PUT CONFIG ${At(s)} ${At(t)} = ${ux(n,r)}${o}`})}get(t,n={}){let r=n.collection??this.collection;return this.client.call("query",{sql:`GET CONFIG ${At(r)} ${At(t)}`})}resolve(t,n={}){let r=n.collection??this.collection;return this.client.call("query",{sql:`RESOLVE CONFIG ${At(r)} ${At(t)}`})}}});function px(e,t){for(let n of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[n]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function Kn(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function fx(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):Fm(e)}function Fm(e){return`'${String(e).replace(/'/g,"''")}'`}var ts,Zc=g(()=>{ts=class{constructor(t,n="red.vault"){this.client=t,this.collection=n}put(t,n,r={}){px(r,"vault");let s=r.collection??this.collection,o=Array.isArray(r.tags)&&r.tags.length>0?` TAGS [${r.tags.map(Fm).join(", ")}]`:"";return this.client.call("query",{sql:`VAULT PUT ${Kn(s)}.${Kn(t)} = ${fx(n)}${o}`})}get(t,n={}){let r=n.collection??this.collection;return this.client.call("query",{sql:`VAULT GET ${Kn(r)}.${Kn(t)}`})}unseal(t,n={}){let r=n.collection??this.collection;return this.client.call("query",{sql:`UNSEAL VAULT ${Kn(r)}.${Kn(t)}`})}}});async function Gm(e){return((await e.query("SHOW COLLECTIONS")).rows??[]).map(mx)}async function Hm(e,t){return((await e.query(`SHOW COLLECTIONS WHERE name = ${hx(t)}`)).rows??[]).some(r=>r.name===String(t))}function mx(e){return{...e,name:String(e.name),model:String(e.model),capabilities:Array.isArray(e.capabilities)?e.capabilities:[]}}function jm(e){return String(e).split(".").map(gx).join(".")}function gx(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new v("INVALID_IDENTIFIER",`invalid SQL identifier "${t}"`);return t}function hx(e){return`'${String(e).replace(/'/g,"''")}'`}var ns,eu=g(()=>{Ot();ns=class e{constructor(t,n,r=null,s=[],o=[]){this.db=t,this.collection=n,this.columns=r,this.whereClauses=s,this.params=o}select(...t){let n=t.length===1&&Array.isArray(t[0])?t[0]:t,r=n.length===1&&n[0]==="*"?null:n;return new e(this.db,this.collection,r!=null&&r.length>0?r:null,this.whereClauses,this.params)}where(t,...n){if(typeof t!="string"||t.trim().length===0)throw new v("INVALID_QUERY_BUILDER","where() requires a non-empty SQL condition");let r=n.length===1&&Array.isArray(n[0])?n[0]:n;return new e(this.db,this.collection,this.columns,[...this.whereClauses,t.trim()],[...this.params,...r])}async run(){let t=this.columns==null?"*":this.columns.map(jm).join(", "),n=this.whereClauses.length>0?` WHERE ${this.whereClauses.map(i=>`(${i})`).join(" AND ")}`:"",r=`SELECT ${t} FROM ${jm(this.collection)}${n}`,o=(this.params.length>0?await this.db.query(r,this.params):await this.db.query(r)).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 jo(e,t={}){let n=Gc(e);if(vx(n),n.kind==="embedded"){let r=xx(n,t.auth);if(r.token||r.username)throw new v("AUTH_NOT_APPLICABLE","auth is only meaningful for remote connections; embedded modes inherit caller privileges.");let s=Ex(n),o=t.binary??Pm(),i=await Cm(o,s),a=new No(i);return await a.call("version",{}),new nu(a,{transport:"embedded"})}}function Wm(e){return wx(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:Rx(e)}:typeof e=="number"&&!Number.isFinite(e)?Number.isNaN(e)?{$float:"NaN"}:{$float:e>0?"Infinity":"-Infinity"}:typeof e=="string"&&Sx(e)?{$uuid:e}:e}function wx(e){if(e!=null&&!(typeof e=="boolean"||typeof e=="number"||typeof e=="string")){if(e instanceof Date){if(Number.isNaN(e.getTime()))throw new v("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 v("UNSUPPORTED_PARAM","array query parameters must contain only numbers")}if(!(typeof e=="object"&&Object.getPrototypeOf(e)===Object.prototype))throw new v("UNSUPPORTED_PARAM",`cannot encode query parameter of type ${typeof e}`)}}}function _x(e){return e.length===0?null:e.length===1&&Array.isArray(e[0])?e[0].map(Wm):e.map(Wm)}function Rx(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 n="";for(let r of t)n+=String.fromCharCode(r);return btoa(n)}function kx(e){if(typeof Buffer<"u"){let r=Buffer.from(e,"base64");return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}let t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}function Sx(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}function Bo(e){if(Array.isArray(e))return e.map(Bo);if(e&&typeof e=="object"){if(Object.keys(e).length===1){if(typeof e.$bytes=="string")return kx(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 r=typeof e.$ts=="string"?BigInt(e.$ts):BigInt(Math.trunc(e.$ts));return new Date(Number(r/1000000n))}}let n={};for(let[r,s]of Object.entries(e))n[r]=Bo(s);return n}return e}function Ex(e){return e.path?["rpc","--stdio","--path",e.path]:["rpc","--stdio"]}function xx(e,t){let n={token:e.token??e.apiKey??null,username:e.username??null,password:e.password??null,loginUrl:e.loginUrl??null};if(t==null)return n;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");n.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");n.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");n.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");n.password=t.password}return t.loginUrl!=null&&(n.loginUrl=t.loginUrl),n}function vx(e){if(e.kind!=="embedded")throw new v("EMBEDDED_ONLY",yx)}function ru(){return new v(Um,`${Um}: nested transactions are not supported on one connection`)}function Jm(e,t){if(e&&typeof e=="object")try{e.rollbackError=t}catch{}}function Cx(e,t){if(!e||typeof e!="object"||e.rid==null&&e.id==null)throw new v("ENGINE_TOO_OLD",`${t}() requires RedDB engine >= ${qm} with insert id support`);return e.rid==null&&(e.rid=e.id),e.id==null&&(e.id=e.rid),e}function Tx(e,t){if(!e||typeof e!="object"||!Array.isArray(e.rids)&&!Array.isArray(e.ids))throw new v("ENGINE_TOO_OLD",`bulkInsert() requires RedDB engine >= ${qm} 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 v("INVALID_RESPONSE",`bulkInsert() expected ${t} rids, got ${e.rids.length}`);return e}var yx,bx,qm,Um,Fo,tu,nu,Vm=g(()=>{Tm();Im();Ot();Hc();Uc();Jc();Yc();Xc();Qc();Zc();eu();Uc();Jc();Yc();Xc();Qc();Zc();eu();Hc();yx="remote URIs are not supported in @reddb-io/sdk; install @reddb-io/client for grpc/http/red transports",bx="1.0",qm="1.0.9",Um="NESTED_TX_NOT_SUPPORTED";Fo=class{constructor(t){this.db=t}query(t,...n){return this.db.query(t,...n)}execute(t,...n){return this.db.execute(t,...n)}insert(t,n){return this.db.insert(t,n)}bulkInsert(t,n){return this.db.bulkInsert(t,n)}async transaction(){throw ru()}},tu=class{constructor(t){this.db=t,this.active=!1}async begin(){if(this.db.inTransaction)throw ru();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 v("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 v("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 v("INVALID_ARGUMENT","nested tx.run() is not supported; issue savepoints via tx.query() instead");await this.begin();try{let n=await t(new Fo(this.db));return await this.commit(),n}catch(n){if(this.active)try{await this.rollback()}catch(r){Jm(n,r)}throw n}}},nu=class{constructor(t,n={}){this.client=t,this.transport=n.transport??null,this.helperSpecVersion=bx,this.cache=new Xr(t,this.transport),this.queue=new Qr(t),this.queues=this.queue,this.documents=new Zr(this);let r=new Vn(t);this.kv=Object.assign((s="kv_default")=>new Vn(t,s),{put:r.put.bind(r),invalidateTags:r.invalidateTags.bind(r),watch:r.watch.bind(r),watchPrefix:r.watchPrefix.bind(r)}),this.config=(s="red.config")=>new es(t,s),this.vault=(s="red.vault")=>new ts(t,s),this.inTransaction=!1}query(t,...n){if(typeof t!="string"||t.trim().length===0)return Promise.reject(new v("INVALID_ARGUMENT","query() requires a non-empty SQL string"));let r=_x(n);return r==null?this.client.call("query",{sql:t}).then(Bo):this.client.call("query",{sql:t,params:r}).then(Bo)}execute(t,...n){return this.query(t,...n)}async insert(t,n){let r=await this.client.call("insert",{collection:t,payload:n});return Cx(r,"insert")}async bulkInsert(t,n){if(Array.isArray(n)&&n.length===0)return{affected:0,rids:[],ids:[]};let r=await this.client.call("bulk_insert",{collection:t,payloads:n});return Tx(r,n.length)}tx(){return new tu(this)}async transaction(t){if(this.inTransaction)throw ru();if(typeof t!="function")throw new TypeError("transaction(callback) requires a function");this.inTransaction=!0;let n=!1;try{await this.query("BEGIN"),n=!0;let r=await t(new Fo(this));return await this.query("COMMIT"),r}catch(r){if(n)try{await this.query("ROLLBACK")}catch(s){Jm(r,s)}throw r}finally{this.inTransaction=!1}}exists(t){return Hm(this,t)}list(){return Gm(this)}from(t){return new ns(this,t)}get(t,n){return this.client.call("get",{collection:t,id:String(n)})}delete(t,n){return this.client.call("delete",{collection:t,id:String(n)})}health(){return this.client.call("health",{})}version(){return this.client.call("version",{})}login(t,n){return this.client.call("auth.login",{username:t,password:n})}whoami(){return this.client.call("auth.whoami",{})}changePassword(t,n){return this.client.call("auth.change_password",{current_password:t,new_password:n})}createApiKey({username:t,role:n}={}){return this.client.call("auth.create_api_key",{username:t,role:n})}revokeApiKey(t){return this.client.call("auth.revoke_api_key",{key:t})}close(){return this.client.close()}}});import{createHash as Ox}from"node:crypto";import{existsSync as Km}from"node:fs";import{mkdir as Ax,readFile as Px,rename as su,rm as rs,stat as ou}from"node:fs/promises";import{basename as Ix,dirname as Lx}from"node:path";async function zm(e){await(await an.open({...e,allowResidentOpen:!0})).close()}var an,Ym=g(()=>{"use strict";Vm();xo();Do();an=class e{constructor(t,n){this.opts=n;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 n=vm(t.uri),r=await Em(n),s=new e(r,{uri:t.uri,ttlDays:Ao(t.ttlDays,Ne),ephemeralTtlHours:Ao(t.ephemeralTtlHours,Me),byteBudget:Ao(t.byteBudget,Be),now:t.now??(()=>new Date)});return xm(r)?(await $o(),await Ax(Lx(r),{recursive:!0}),s.db=await jo(`file://${r}`),await s.ensureRedDbCollections(),await s.ensureRedDbStore()):s.document=await Sm(s.path),s}async close(){await this.db?.close()}redDb(){return this.db}async mint(t,n){if(this.db)return await this.mintRedDb(t,n);let r=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=Vr(r,n),a=Tt(i),c=yt(n.command),u=c==="derivable"?Lc(r,n.command):null,l=c==="re-executable"?$c(r,n.command):null,p=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,d=Ic(s,p,this.opts.ttlDays,this.opts.ephemeralTtlHours),m=rn(r),f=p==="ephemeral"?Mc(r,m,o):null,b=Dc(r,u,l,f);f&&!this.document.blobs[f.key]&&(this.document.blobs[f.key]=f,this.dirty=!0);let _={collection:Y,handle:i,original_bytes:r.length,stored_bytes:b,command:n.command,created_at:o,expires_at:d,loss:n.loss,storage_class:p,content_hash:m,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};return delete this.document.tombstones[sn(i)],this.document.records[a]=_,this.upsertIndex({handle:i,key:a,bytes:b,raw_bytes:r.length,command:n.command,created_at:o,expires_at:d,storage_class:p,blob_key:f?.key}),this.prune(),await this.flush(),i}async get(t){if(this.db)return await this.getRedDb(t);if(!zr(t))return null;let n=this.tombstone(t);if(n)return n;let r=this.document.records[Tt(t)];if(!Yr(r))return null;if(Date.parse(r.expires_at)<=this.opts.now().getTime()){let o={status:"expired",expired_at:r.expires_at,command:r.command};return this.expireEntry({handle:r.handle,key:Tt(r.handle),bytes:Nc(r),raw_bytes:r.original_bytes,command:r.command,created_at:r.created_at,expires_at:r.expires_at,storage_class:Kr(r),blob_key:r.blob_key},r.expires_at),await this.flush(),o}let s=await this.readOriginal(r);return!s&&(r.derivation_recipe||r.reexecution_recipe)?{status:"expired",expired_at:r.expires_at,command:r.command}:s?{collection:Y,handle:r.handle,original:s,command:r.command,created_at:r.created_at,loss:r.loss,storage_class:Kr(r)}:null}async stats(){if(this.db)return await this.statsRedDb();this.prune(),await this.flush();let n=this.readIndex().records;return{records:n.length,bytes:on(n),oldest:n.reduce((r,s)=>r==null||s.created_at<r?s.created_at:r,null),budget:this.opts.byteBudget,storage_classes:Ac(n)}}async recoveryHandles(t=5){return this.db?await this.recoveryHandlesRedDb(t):(this.prune(),await this.flush(),Pc(this.readIndex().records,this.opts.now(),t))}readIndex(){return this.document.index}writeIndex(t){this.document.index=t}upsertIndex(t){let r=this.readIndex().records.filter(s=>s.handle!==t.handle);r.push(t),this.writeIndex({version:1,records:r}),this.dirty=!0}prune(){let t=this.opts.now().getTime(),n=new Date(t).toISOString(),r=this.readIndex(),s=[];for(let i of r.records)Date.parse(i.expires_at)<=t?this.expireEntry(i,i.expires_at):s.push(i);let o=on(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,n),o=on(s)}s.length<r.records.length&&this.writeIndex({version:1,records:s}),this.deleteUnreferencedLocalBlobs(s)}expireEntry(t,n){delete this.document.records[t.key],this.document.tombstones[sn(t.handle)]={status:"expired",expired_at:n,command:t.command},this.dirty=!0}tombstone(t){let n=this.document.tombstones[sn(t)];return Io(n)?n:null}async readOriginal(t){if(t.original)return Buffer.from(t.original,"base64");if(t.derivation_recipe)return hm(t.derivation_recipe);if(t.reexecution_recipe)return ym(t.reexecution_recipe);if(t.blob_key){let n=this.db?await this.kvGet(t.blob_key):this.document.blobs[t.blob_key];return Po(n)?gm(n):null}return null}deleteUnreferencedLocalBlobs(t){let n=new Set(t.map(r=>r.blob_key).filter(r=>typeof r=="string"));for(let r of Object.keys(this.document.blobs))n.has(r)||(delete this.document.blobs[r],this.dirty=!0)}async flush(){this.dirty&&(await Jn(this.path,this.document),this.dirty=!1),await this.rotateLocalGenerationIfOversized()}async rotateLocalGenerationIfOversized(){let t=await ou(this.path).then(a=>a.size,()=>0);if(t<=this.opts.byteBudget)return;let n=this.readIndex().records,r=new Set(n.map(a=>a.key)),s=new Set(n.map(a=>a.blob_key).filter(a=>typeof a=="string")),o={version:1,records:Object.fromEntries(Object.entries(this.document.records).filter(([a])=>r.has(a))),blobs:Object.fromEntries(Object.entries(this.document.blobs).filter(([a])=>s.has(a))),tombstones:{},index:{version:1,records:n}},i=Buffer.byteLength(`${JSON.stringify(o)}
|
|
81
|
-
`,"utf8");i>this.opts.byteBudget||i>=t||(this.document=o,await
|
|
82
|
-
`),diagnostics:{vector:{status:"unavailable",candidates:0,contributed:0,reason:"resident-basic-recall"}}}}async readRedDbIndex(){let t=await this.kvGet(To());return Bc(t)?t:{version:1,records:[]}}async writeRedDbIndex(t){await this.kv().put(To(),t)}async pruneRedDb(t,n=!1){let r=this.opts.now().getTime(),s=new Date(r).toISOString(),o=[];for(let c of t.records)Date.parse(c.expires_at)<=r?await this.expireRedDbEntry(c,c.expires_at):o.push(c);let i=on(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=on(o)}let a={version:1,records:o};return(n||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 n=await ou(this.path).then(u=>u.size,()=>0);if(n<=this.opts.byteBudget)return;let r=await this.snapshotRedDbKvCollections(t);if(!r)return;let s=`${process.pid}.${Date.now()}`,o=`${this.path}.${s}.compact`,i=`${this.path}.${s}.old`;await rs(o,{force:!0}),await rs(i,{force:!0});let a=await jo(`file://${o}`);try{for(let u of r){await a.query(`CREATE KV IF NOT EXISTS ${fm(u.name)}`);let l=a.kv(u.name);for(let p of u.items)await l.put(p.key,p.value)}}finally{await a.close()}let c=await ou(o).then(u=>u.size,()=>0);if(c===0||c>this.opts.byteBudget||c>=n){await rs(o,{force:!0});return}await this.db.close(),this.db=void 0;try{await su(this.path,i),await su(o,this.path),await rs(i,{force:!0})}catch(u){throw!Km(this.path)&&Km(i)&&await su(i,this.path),await rs(o,{force:!0}),u}finally{this.db=await jo(`file://${this.path}`)}}async snapshotRedDbKvCollections(t){if(!this.db)throw new Error("rsp RedDB store is not open");let n=await this.db.list();if(n.some(o=>o.model!=="kv"))return null;let r=[],s=!1;for(let o of n){let i=String(o.name??"").trim();if(i===Y){r.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;r.push({name:i,items:a.items})}return s||r.push(await this.snapshotRedDbElisions(t)),r}async snapshotRedDbElisions(t){let n=[{key:To(),value:t}],r=new Set;for(let s of t.records)r.add(s.key),s.blob_key&&r.add(s.blob_key);for(let s of r){let o=await this.kvGet(s);o!=null&&n.push({key:s,value:o})}return{name:Y,items:n}}async expireRedDbEntry(t,n){await this.kv().delete(t.key),await this.kv().put(sn(t.handle),{status:"expired",expired_at:n,command:t.command})}async deleteUnreferencedRedDbBlobs(t){let n=new Set(t.map(s=>s.blob_key).filter(s=>typeof s=="string")),r=await this.kv().list({limit:1e4}).catch(()=>({items:[]}));for(let s of r.items)s.key.startsWith("blob:")&&!n.has(s.key)&&await this.kv().delete(s.key)}async assertRedDbMintPersisted(t,n){let r=await this.kvGet(Tt(t));if(!Yr(r))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!==n)throw new Error(`rsp resident failed to persist elision index ${t}`)}}});var Xm={};B(Xm,{DEFAULT_RSP_BYTE_BUDGET:()=>Be,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Me,DEFAULT_RSP_TTL_DAYS:()=>Ne,RSP_ELISION_COLLECTION:()=>Y,RspElisionStore:()=>an,contentHandle:()=>Vr,ensureReddbBinaryFromWarmCache:()=>$o,provisionElisionStore:()=>zm,storageClassForCommand:()=>yt});var Go=g(()=>{"use strict";xo();Do();Do();Ym()});async function Ho(e,t,n=new Date){let r=Number.isFinite(t)&&t>0?t:30,s=n.getTime()-r*24*60*60*1e3,o=await eg(e,s),i=(await ss(e,te)).filter(E=>Yn(E)>=s),a=o.filter(E=>A(E.event_type)!=="show"&&A(E.degradation_reason)===""),c=o.filter(E=>A(E.event_type)==="show"),u=o.filter(E=>A(E.degradation_reason)!==""),l=0,p=0,d=0,m=0,f=!1,b=new Map,_=new Map,h=[],y=0,w=0,k=0;for(let E of a){E.elided===!0&&l++;let I=Ee(E.raw_bytes),st=Ee(E.emitted_bytes),jt=Math.max(0,I-st),yn=Xn(E,"raw"),S=Xn(E,"emitted"),O=Math.max(0,yn.tokens-S.tokens);f||=(E.estimated===!0||yn.estimated||S.estimated)&&O>0,p+=I,d+=st,m+=O;let Gt=cn(E).slice(0,10);Gt&&b.set(Gt,(b.get(Gt)??0)+O);let Ht=A(E.command)||"unknown",Oe=_.get(Ht)??{command:Ht,invocations:0,bytes_saved:0,tokens_saved:0};Oe.invocations++,Oe.bytes_saved+=jt,Oe.tokens_saved+=O,_.set(Ht,Oe);let Ae=vt(E.wrapper_ms);Ae!=null&&h.push(Ae),y+=Ee(E.store_open_count);let bn=vt(E.store_elapsed_ms);bn!=null&&(w+=bn,k++)}let T=new Map,M=new Map,Te=[],we=null;for(let E of u){let I=A(E.degradation_reason)||A(E.reason)||"unknown",st=A(E.wrapper_family)||xe(A(E.command));T.set(I,(T.get(I)??0)+1),M.set(st,(M.get(st)??0)+1);let jt=cn(E);Te.push({timestamp:jt,family:st,command:A(E.command)||"unknown",reason:I,exit_code:vt(E.wrapper_exit_code),stderr_head:A(E.stderr_head)||null}),(!we||jt>we.timestamp)&&(we={timestamp:jt,reason:I,command:A(E.command)||"unknown"})}let de=a.length+u.length,wt=c.filter(E=>E.hit===!0).length,pe=ja(m,f),cr=$x(i);return{window_days:r,empty:o.length===0,savings:{invocations:a.length,elided:l,raw_bytes:p,emitted_bytes:d,bytes_saved:Math.max(0,p-d),tokens_saved:m,tokens_saved_estimated:pe.tokens_saved_estimated,token_estimate_range_pct:pe.token_estimate_range_pct,tokens_saved_low:pe.tokens_saved_low,tokens_saved_high:pe.tokens_saved_high,dollars_saved_estimate_usd:pe.dollars_saved_estimate_usd,dollars_saved_low_usd:pe.dollars_saved_low_usd,dollars_saved_high_usd:pe.dollars_saved_high_usd,pricing_model_family:pe.pricing_model_family,pricing_input_usd_per_million_tokens:pe.pricing_input_usd_per_million_tokens,pricing_note:pe.pricing_note,daily_tokens_saved:[...b.entries()].sort(([E],[I])=>E.localeCompare(I)).map(([E,I])=>({date:E,tokens_saved:I})),top_commands:[..._.values()].sort((E,I)=>I.bytes_saved-E.bytes_saved||I.tokens_saved-E.tokens_saved||E.command.localeCompare(I.command))},health:{degradations:u.length,degradation_rate:de===0?0:u.length/de,show_total:c.length,show_hits:wt,show_misses:Math.max(0,c.length-wt),show_hit_rate:c.length===0?0:ne(wt/c.length),by_reason:[...T.entries()].sort((E,I)=>I[1]-E[1]||E[0].localeCompare(I[0])).map(([E,I])=>({reason:E,count:I})),by_family:[...M.entries()].sort((E,I)=>I[1]-E[1]||E[0].localeCompare(I[0])).map(([E,I])=>({family:E,count:I})),recent_failures:Te.sort((E,I)=>I.timestamp.localeCompare(E.timestamp)).slice(0,20),most_recent:we},latency:{wrapper_ms_p50:zn(h,.5),wrapper_ms_p95:zn(h,.95),store_open_count_sum:y,store_elapsed_ms_sum:ne(w),store_elapsed_ms_avg:k===0?null:ne(w/k)},decisions:cr}}function $x(e){let t=0,n=0,r=0,s=0,o=new Map,i=new Map;for(let a of e){let c=A(a.decision);if(c==="contributed"?t++:c==="failed-open"?r++:n++,a.quota_free===!0&&(s+=Math.max(1,Ee(a.saved_units))),c!=="contributed"){let p=A(a.reason)||"unknown";o.set(p,(o.get(p)??0)+1)}let u=A(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:n,failed_open:r,quota_free_saved_units:s,contribution_rate:e.length===0?0:ne(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:ne(c.contributed/u)}})}}async function iu(e,t,n=new Date){let s=(await ss(e,fe)).filter(o=>Yn(o)<=n.getTime()||cn(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=cn(i);return a&&(o==null||a<o)?a:o},null),budget:t,storage_classes:Ux(s)}}async function au(e,t,n=new Date){let r=Number.isFinite(t)&&t>0?t:28,s=n.toISOString(),o=new Date(n.getTime()-r*24*60*60*1e3).toISOString(),i=Date.parse(o),a=await eg(e,i),c=a.filter(S=>A(S.event_type)!=="show"&&A(S.event_type)!=="control_holdout"&&S.control_holdout!==!0&&A(S.degradation_reason)===""),u=a.filter(S=>A(S.event_type)==="control_holdout"||S.control_holdout===!0),l=a.filter(S=>A(S.event_type)==="show"),p=a.filter(S=>A(S.degradation_reason)!==""),d=[...c,...p].map(Yn).filter(S=>Number.isFinite(S)&&S>0),m=d.length===0?null:Math.min(...d),f=m==null?0:Math.max(1,Math.min(r,Math.ceil((n.getTime()-m)/Qx()))),b=[],_=new Map,h=new Map,y=new Map,w=new Map,k=new Map,T=new Map,M=0,Te=!1,we=0,de=null,wt=0,pe=0;for(let S of c){let O=cn(S),Gt=O.slice(0,10),Ht=O.slice(0,16),Oe=xe(A(S.command)),Ae=Math.max(0,Xn(S,"raw").tokens-Xn(S,"emitted").tokens);M+=Ae,Te||=S.estimated===!0&&Ae>0;let bn=Math.max(0,Ee(S.raw_bytes)-Ee(S.emitted_bytes)),$i=vt(S.wrapper_ms);if($i!=null){b.push($i);let Ll=_.get(Oe)??[];Ll.push($i),_.set(Oe,Ll)}Gt&&h.set(Gt,(h.get(Gt)??0)+1),Ht&&y.set(Ht,(y.get(Ht)??0)+1);let Di=Vx(O);Di&&w.set(Di,(w.get(Di)??0)+1);let Ni=Yx(O);Ni&&k.set(Ni,(k.get(Ni)??0)+Ae);let xs=T.get(Oe)??{command_family:Oe,invocations:0,tokens_saved:0,bytes_saved:0};xs.invocations++,xs.tokens_saved+=Ae,xs.bytes_saved+=bn,T.set(Oe,xs),S.elided===!0&&we++,(S.store_open_count!=null||S.store_elapsed_ms!=null)&&(wt++,Ee(S.store_open_count)>0&&pe++),Ae>0&&(!de||Ae>de.tokens_saved||Ae===de.tokens_saved&&bn>de.bytes_saved)&&(de={timestamp:O,command_family:Oe,tokens_saved:Ae,bytes_saved:bn})}let cr=p.map(S=>({timestamp:cn(S),command_family:xe(A(S.command)),reason:A(S.degradation_reason)||A(S.reason)||"unknown"})).sort((S,O)=>S.timestamp.localeCompare(O.timestamp)),E=new Map;for(let S of cr)E.set(S.reason,(E.get(S.reason)??0)+1);let I=Bx(cr),st=Mx(l),jt=jx([...T.values()],st,I),yn=[...y.entries()].sort((S,O)=>O[1]-S[1]||S[0].localeCompare(O[0]))[0];return{schema_version:"red.rsp.gains.v1",window:{requested_days:r,data_days:f,since:o,until:s,label:`window: ${r}d, data: ${f}d`,empty:c.length===0&&p.length===0,invocations:c.length,degradations:p.length},latency:{global:Zm(b),by_command_family:[..._.entries()].sort((S,O)=>O[1].length-S[1].length||S[0].localeCompare(O[0])).map(([S,O])=>({command_family:S,count:O.length,...Zm(O)}))},throughput:{requests_per_day:[...h.entries()].sort(([S],[O])=>S.localeCompare(O)).map(([S,O])=>({date:S,requests:O})),active_minute_avg:y.size===0?null:ne([...y.values()].reduce((S,O)=>S+O,0)/y.size),peak_minute:yn?{minute:yn[0],requests:yn[1]}:null,hour_weekday_heatmap:Kx(w)},savings:{tokens:ja(M,Te),measured_control_holdout:Dx(c,u),weekly_tokens_saved:Xx(k),elision_rate:c.length===0?0:ne(we/c.length),top_commands_by_tokens_saved:[...T.values()].sort((S,O)=>O.tokens_saved-S.tokens_saved||O.bytes_saved-S.bytes_saved||S.command_family.localeCompare(O.command_family)).slice(0,10),top_commands_by_invocation_count:[...T.values()].sort((S,O)=>O.invocations-S.invocations||O.tokens_saved-S.tokens_saved||S.command_family.localeCompare(O.command_family)).slice(0,10),single_biggest_elision:de},health:{degradation_timeline:cr,degradations_by_reason:[...E.entries()].sort((S,O)=>O[1]-S[1]||S[0].localeCompare(O[0])).map(([S,O])=>({reason:S,count:O})),cold_boots:wt===0?null:pe,warm_hits:wt===0?null:Math.max(0,wt-pe)},mining:{recovery_usage_by_family:st,degradation_clusters:I,threshold_tuning_suggestions:jt}}}async function eg(e,t){let n=(await ss(e,fe)).filter(i=>Yn(i)>=t),r=n.some(i=>A(i.event_type)!=="show"||A(i.degradation_reason)!==""),s=(await ss(e,Se)).filter(i=>Yn(i)>=t).filter(i=>!r&&i.accounting_recorded!==!0).map(i=>({...i,event_type:A(i.event_type)||"invocation"})),o=(await ss(e,Qe)).filter(i=>Yn(i)>=t).filter(i=>!r&&i.accounting_recorded!==!0).map(i=>({...i,event_type:"invocation",degradation_reason:A(i.reason)||"unknown"}));return[...n,...s,...o]}function Xn(e,t){let n=vt(e[t==="raw"?"tokens_raw":"tokens_emitted"]);if(n!=null)return{tokens:n,estimated:!1};let r=Ee(e[t==="raw"?"raw_bytes":"emitted_bytes"]);return{tokens:Math.ceil(r/4),estimated:r>0}}function Dx(e,t){let n=Hx(t.map(a=>vt(a.holdout_share)))??0;if(t.length===0)return{enabled:!1,holdout_share:n,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 r=e.map(Qm).filter(a=>a!=null),s=t.map(Qm).filter(a=>a!=null),o=r.length>0?r:s,i=o.length===0?null:ne(Gx(o));return{enabled:!0,holdout_share:ne(n),holdout_invocations:t.length,compressed_invocations:e.length,savings_rate:i,confidence_interval_95:i==null?null:Nx(o,i),note:"measured from opt-in uncompressed control holdout; report proposes, it does not tune automatically"}}function Qm(e){let t=Xn(e,"raw").tokens;if(t<=0)return null;let n=Xn(e,"emitted").tokens;return Math.max(0,t-n)/t}function Nx(e,t){if(e.length<=1)return{low:ne(Math.max(0,t)),high:ne(Math.min(1,t))};let n=e.reduce((s,o)=>s+(o-t)**2,0)/(e.length-1),r=1.96*Math.sqrt(n/e.length);return{low:ne(Math.max(0,t-r)),high:ne(Math.min(1,t+r))}}function Mx(e){let t=new Map;for(let n of e){let r=xe(A(n.recovered_command)||A(n.command)),s=t.get(r)??{command_family:r,show_total:0,show_hits:0,show_misses:0};s.show_total++,n.hit===!0?s.show_hits++:s.show_misses++,t.set(r,s)}return[...t.values()].sort((n,r)=>r.show_total-n.show_total||n.command_family.localeCompare(r.command_family)).map(n=>({...n,show_hit_rate:n.show_total===0?0:ne(n.show_hits/n.show_total)}))}function Bx(e){let t=new Map;for(let n of e){let r=`${n.command_family}\0${n.reason}`,s=t.get(r)??{command_family:n.command_family,reason:n.reason,count:0};s.count++,t.set(r,s)}return[...t.values()].sort((n,r)=>r.count-n.count||n.command_family.localeCompare(r.command_family)||n.reason.localeCompare(r.reason)).map(n=>({...n,suggestion:Fx(n)}))}function Fx(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 jx(e,t,n){let r=[];for(let s of t.filter(o=>o.show_total>0))r.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 n.filter(o=>o.count>1))r.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))r.push({command_family:s.command_family,signal:"zero_token_savings",suggestion:"Consider bypassing or raising admission thresholds for this family"});return r.slice(0,10)}function Gx(e){return e.reduce((t,n)=>t+n,0)/e.length}function Hx(e){let t=e.filter(n=>n!=null);return t.length===0?null:Math.max(...t)}function Ux(e){let t=qx();for(let n of e){if(A(n.event_type)==="show"||A(n.degradation_reason)!==""||n.elided!==!0)continue;let r=Wx(n.storage_class)??yt(A(n.command));t[r].records+=1;let s=Ee(n.raw_bytes);t[r].bytes+=s,t[r].raw_bytes+=s}return t}function Wx(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"?e:null}function qx(){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 ss(e,t){return(await e.kv(t).list({limit:1e4}).catch(r=>{if(r instanceof Error&&/\bnot found\b/i.test(r.message))return{items:[]};throw r})).items.map(r=>Jx(r.value)).filter(r=>Hn(r))}function Jx(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function Yn(e){let t=Date.parse(cn(e));return Number.isFinite(t)?t:0}function cn(e){return A(e.created_at)||A(e.ts)||""}function A(e){return typeof e=="string"?e:""}function zn(e,t){if(e.length===0)return null;let n=[...e].sort((s,o)=>s-o),r=Math.min(n.length-1,Math.max(0,Math.ceil(n.length*t)-1));return ne(n[r])}function Zm(e){return{wrapper_ms_p50:zn(e,.5),wrapper_ms_p90:zn(e,.9),wrapper_ms_p95:zn(e,.95),wrapper_ms_p99:zn(e,.99)}}function ne(e){return Math.round(e*100)/100}function Vx(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${zx(t.getUTCDay())}:${t.getUTCHours()}`:null}function Kx(e){let t=[];for(let n of["sun","mon","tue","wed","thu","fri","sat"])for(let r=0;r<24;r++){let s=e.get(`${n}:${r}`)??0;s>0&&t.push({weekday:n,hour:r,requests:s})}return t}function zx(e){return["sun","mon","tue","wed","thu","fri","sat"][e]??"unknown"}function Yx(e){let t=new Date(e);if(!Number.isFinite(t.getTime()))return null;let n=t.getUTCDay(),r=n===0?-6:1-n;return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()+r)).toISOString().slice(0,10)}function Xx(e){let t=null;return[...e.entries()].sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>{let s=t==null||t===0?null:ne((r-t)/t*100);return t=r,{week_start:n,tokens_saved:r,wow_delta_pct:s}})}function Qx(){return 24*60*60*1e3}var tg=g(()=>{"use strict";Ur();Go();Ga();_o();_c()});var os={};B(os,{RSP_ACCOUNTING_EVENTS_COLLECTION:()=>fe,RSP_DECISIONS_COLLECTION:()=>te,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:()=>Qe,RSP_TELEMETRY_INDEX_COLLECTION:()=>Fr,RSP_TELEMETRY_INVOCATIONS_COLLECTION:()=>Se,RSP_TELEMETRY_LEGACY_SPOOL_FILE:()=>bc,RSP_TELEMETRY_SPOOL_CORRECTIONS_FILE:()=>wc,RSP_TELEMETRY_SPOOL_FILE:()=>yc,appendTelemetryEvent:()=>ht,appendTelemetryEventSync:()=>Ct,drainTelemetrySpool:()=>vc,parseTelemetryEvent:()=>Wn,readAccountingLaneStats:()=>iu,readTelemetryGainsReport:()=>au,readTelemetryStats:()=>Ho,takeTelemetrySpool:()=>ZS,telemetryLegacySpoolPath:()=>So,telemetrySpoolCorrectionsPath:()=>xc,telemetrySpoolPath:()=>gt});var Ge=g(()=>{"use strict";_o();dm();tg()});var rg={};B(rg,{readGhConditionalJson:()=>me,readGhEtagCache:()=>mo,sweepGhEtagCache:()=>fc});import{spawn as Zx}from"node:child_process";import{createHash as ev,randomUUID as tv}from"node:crypto";async function me(e){let t=e.cwd??process.cwd(),n=e.telemetryRoot??t,r=process.hrtime.bigint(),s=e.overheadCeiling??De,o=nv(e.path,e.params),i=rv(o),c=wa(n,"gh-api-json")?void 0:await lc(n,i),u=["api","--include","--method","GET",e.path];for(let[f,b]of ng(e.params))u.push("-f",`${f}=${String(b)}`);c?.etag&&u.push("-H",`If-None-Match: ${c.etag}`);let l=await sv(u,t,e.env,e.signal),p=f=>{let b=Sr();Rr(n,{family:"gh-api-json",wrapperMs:Number(process.hrtime.bigint()-r)/1e6,childMs:b.childMs,selfStateBytesRead:b.selfStateBytesRead,bytesSaved:f},s)},d=ov(l.stdout);if(d.statusCode===304&&!!c)return p(Buffer.byteLength(c.body)),await cu(n,e.command??`gh api ${e.path}`,!0),{status:0,stdout:c.body,stderr:l.stderr,etag:c.etag,quotaFree:!0};if(d.statusCode>=200&&d.statusCode<300){let f=d.headers.get("etag");return f&&await dc(n,{key:i,request:o,etag:f,body:d.body,updated_at:new Date().toISOString()},{maxBytes:e.cacheMaxBytes}),p(0),await cu(n,e.command??`gh api ${e.path}`,!1),{status:l.status,stdout:d.body,stderr:l.stderr,etag:f??void 0,quotaFree:!1}}return p(0),await cu(n,e.command??`gh api ${e.path}`,!1),{status:l.status,stdout:d.body||l.stdout,stderr:l.stderr,quotaFree:!1}}function ng(e){return Object.entries(e??{}).filter(t=>t[1]!==void 0).sort(([t],[n])=>t.localeCompare(n))}function nv(e,t){return JSON.stringify({method:"GET",path:e,params:ng(t)})}function rv(e){return ev("sha256").update(`rsp-gh-etag-v1\0${e}`).digest("hex")}async function sv(e,t,n,r){return r?.aborted?{status:1,stdout:"",stderr:"gh call cancelled"}:await new Promise(s=>{let o=!1,i=d=>{o||(o=!0,r?.removeEventListener("abort",c),s(d))},a=Zx("gh",e,{cwd:t,env:n?{...process.env,...n}:process.env,stdio:["ignore","pipe","pipe"]});function c(){try{a.kill("SIGKILL")}catch{}i({status:1,stdout:"",stderr:"gh call cancelled"})}r?.addEventListener("abort",c,{once:!0});let u=ce();a.once("close",u),a.once("error",u);let l=[],p=[];a.stdout.on("data",d=>l.push(Buffer.from(d))),a.stderr.on("data",d=>p.push(Buffer.from(d))),a.once("error",d=>i({status:1,stdout:"",stderr:d.message})),a.once("close",d=>{i({status:d??1,stdout:Buffer.concat(l).toString("utf8"),stderr:Buffer.concat(p).toString("utf8").trim()})})})}function ov(e){let t=e.replace(/\r\n/g,`
|
|
83
|
-
`),
|
|
80
|
+
`).find(p=>p.startsWith("data: "));l&&(yield JSON.parse(l.slice(6)))}}watchPrefix(t,r={}){return this.watch(`${t}.*`,r)}}});function Vx(e,t,r){let{waitMs:n,group:s=null,count:o=null}=r??{};if(!Number.isInteger(n)||n<0)throw new D("INVALID_QUEUE_WAIT","queue readWait requires an explicit non-negative integer waitMs (no infinite wait)");let i=$t(e),a=$t(t),c=s!=null?` GROUP ${$t(s)}`:"",u=o!=null?Au(o):"";return`QUEUE READ ${i}${c} CONSUMER ${a}${u} WAIT ${n}ms`}function $t(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_QUEUE_NAME",`invalid queue name "${t}": expected an SQL identifier`);return t}function Au(e){if(e==null)return"";if(!Number.isInteger(e)||e<0)throw new D("INVALID_QUEUE_COUNT","queue count must be a non-negative integer");return` COUNT ${e}`}function Jx(e){if(!Number.isInteger(e))throw new D("INVALID_QUEUE_PRIORITY","queue priority must be an integer");return String(e)}function Kx(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 ${Jx(e.priority)}`),e.key!=null&&(t+=` KEY ${Pu(e.key)}`),e.dedup!=null&&(t+=` DEDUP ${Pu(e.dedup)}`),e.delay!=null&&(t+=` DELAY ${e.delay}`),e.at!=null&&(t+=` AVAILABLE AT ${e.at}`),t}function zx(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="string"?Pu(e):JSON.stringify(e)}function Pu(e){return`'${String(e).replace(/'/g,"''")}'`}function Ou(e){return Array.isArray(e?.rows)?e.rows.map(t=>t.payload):[]}var ks,Iu=y(()=>{Yt();ks=class{constructor(t){this.client=t}create(t){return this.client.call("query",{sql:`CREATE QUEUE IF NOT EXISTS ${$t(t)}`})}push(t,r,n={}){let s=Kx(n);return this.client.call("query",{sql:`QUEUE PUSH ${$t(t)} ${zx(r)}${s}`})}async pop(t,r){let n=await this.client.call("query",{sql:`QUEUE POP ${$t(t)}${Au(r)}`});return Ou(n)}async peek(t,r){let n=await this.client.call("query",{sql:`QUEUE PEEK ${$t(t)}${Au(r)}`});return Ou(n)}async len(t){let r=await this.client.call("query",{sql:`QUEUE LEN ${$t(t)}`});return Number(r?.rows?.[0]?.len??0)}purge(t){return this.client.call("query",{sql:`QUEUE PURGE ${$t(t)}`})}async readWait(t,r,n={}){let s=Vx(t,r,n),o=await this.client.call("query",{sql:s});return Ou(o)}}});function Zg(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new D("INVALID_ARGUMENT",`${t} must be an object`)}function Yx(e){if(e==null)return 100;if(!Number.isInteger(e)||e<=0)throw new D("INVALID_ARGUMENT","limit must be a positive integer");return e}function li(e){return String(e).split(".").map(eh).join(".")}function eh(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_ARGUMENT",`invalid SQL identifier "${t}"`);return t}function Qx(e){return th(JSON.stringify(e))}function Xx(e){return JSON.stringify(e)}function Zx(e){return e==null?"NULL":typeof e=="number"||typeof e=="boolean"?String(e):typeof e=="object"?Qx(e):th(e)}function th(e){return`'${String(e).replace(/'/g,"''")}'`}var Ss,Lu=y(()=>{Yt();Ss=class{constructor(t){this.db=t}async insert(t,r){Zg(r,"documents.insert document"),await this.ensureCollection(t);let n=await this.db.query(`INSERT INTO ${li(t)} DOCUMENT VALUES (${Xx(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=Yx(r.limit),s=r.orderBy??r.order_by??"rid ASC",o=r.filter?` WHERE ${String(r.filter)}`:"";return{items:(await this.db.query(`SELECT * FROM ${li(t)}${o} ORDER BY ${s} LIMIT ${n}`)).rows??[]}}async patch(t,r,n){Zg(n,"documents.patch patch");let s=Object.entries(n);if(s.length===0)throw new D("INVALID_ARGUMENT","documents.patch patch must be a non-empty object");for(let[c]of s)if(c.includes("/"))throw new D("INVALID_ARGUMENT","documents.patch currently accepts top-level document fields");let o=s.map(([c,u])=>`${eh(c)} = ${Zx(u)}`).join(", "),a=(await this.db.query(`UPDATE ${li(t)} SET ${o} WHERE rid = $1 RETURNING *`,r)).rows?.[0];if(!a)throw new D("NOT_FOUND",`document ${String(r)} was not found`);return a}async delete(t,r){let s=(await this.db.delete(t,r)).affected??0;return{affected:s,deleted:s>0}}async ensureCollection(t){try{await this.db.query(`CREATE DOCUMENT ${li(t)}`)}catch(r){if(!String(r?.message??"").includes("already exists"))throw r}}}});function eC(e,t){if(t.secretRef){let{collection:r,key:n}=t.secretRef;return`SECRET_REF(vault, ${Qt(r)}.${Qt(n)})`}return rC(e)}function tC(e,t){for(let r of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[r]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function Qt(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function rC(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):rh(e)}function rh(e){return`'${String(e).replace(/'/g,"''")}'`}var Ts,Du=y(()=>{Ts=class{constructor(t,r="red.config"){this.client=t,this.collection=r}put(t,r,n={}){tC(n,"config");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(rh).join(", ")}]`:"";return this.client.call("query",{sql:`PUT CONFIG ${Qt(s)} ${Qt(t)} = ${eC(r,n)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`GET CONFIG ${Qt(n)} ${Qt(t)}`})}resolve(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`RESOLVE CONFIG ${Qt(n)} ${Qt(t)}`})}}});function nC(e,t){for(let r of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[r]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function gn(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function sC(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):nh(e)}function nh(e){return`'${String(e).replace(/'/g,"''")}'`}var vs,Gu=y(()=>{vs=class{constructor(t,r="red.vault"){this.client=t,this.collection=r}put(t,r,n={}){nC(n,"vault");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(nh).join(", ")}]`:"";return this.client.call("query",{sql:`VAULT PUT ${gn(s)}.${gn(t)} = ${sC(r)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`VAULT GET ${gn(n)}.${gn(t)}`})}unseal(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`UNSEAL VAULT ${gn(n)}.${gn(t)}`})}}});async function oh(e){return((await e.query("SHOW COLLECTIONS")).rows??[]).map(oC)}async function ih(e,t){return((await e.query(`SHOW COLLECTIONS WHERE name = ${aC(t)}`)).rows??[]).some(n=>n.name===String(t))}function oC(e){return{...e,name:String(e.name),model:String(e.model),capabilities:Array.isArray(e.capabilities)?e.capabilities:[]}}function sh(e){return String(e).split(".").map(iC).join(".")}function iC(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 aC(e){return`'${String(e).replace(/'/g,"''")}'`}var xs,$u=y(()=>{Yt();xs=class e{constructor(t,r,n=null,s=[],o=[]){this.db=t,this.collection=r,this.columns=n,this.whereClauses=s,this.params=o}select(...t){let r=t.length===1&&Array.isArray(t[0])?t[0]:t,n=r.length===1&&r[0]==="*"?null:r;return new e(this.db,this.collection,n!=null&&n.length>0?n:null,this.whereClauses,this.params)}where(t,...r){if(typeof t!="string"||t.trim().length===0)throw new D("INVALID_QUERY_BUILDER","where() requires a non-empty SQL condition");let n=r.length===1&&Array.isArray(r[0])?r[0]:r;return new e(this.db,this.collection,this.columns,[...this.whereClauses,t.trim()],[...this.params,...n])}async run(){let t=this.columns==null?"*":this.columns.map(sh).join(", "),r=this.whereClauses.length>0?` WHERE ${this.whereClauses.map(i=>`(${i})`).join(" AND ")}`:"",n=`SELECT ${t} FROM ${sh(this.collection)}${r}`,o=(this.params.length>0?await this.db.query(n,this.params):await this.db.query(n)).rows??[];return this.columns==null?o:o.map(i=>{let a={};for(let c of this.columns)a[c]=i[c];return a})}}});async function mi(e,t={}){let r=ku(e);if(yC(r),r.kind==="embedded"){let n=hC(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=gC(r),o=t.binary??zg(),i=await Wg(o,s),a=new ui(i);return await a.call("version",{}),new Fu(a,{transport:"embedded"})}}function ch(e){return lC(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:pC(e)}:typeof e=="number"&&!Number.isFinite(e)?Number.isNaN(e)?{$float:"NaN"}:{$float:e>0?"Infinity":"-Infinity"}:typeof e=="string"&&fC(e)?{$uuid:e}:e}function lC(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 dC(e){return e.length===0?null:e.length===1&&Array.isArray(e[0])?e[0].map(ch):e.map(ch)}function pC(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 mC(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 fC(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}function di(e){if(Array.isArray(e))return e.map(di);if(e&&typeof e=="object"){if(Object.keys(e).length===1){if(typeof e.$bytes=="string")return mC(e.$bytes);if(typeof e.$uuid=="string")return e.$uuid;if(typeof e.$float=="string"){if(e.$float==="NaN")return Number.NaN;if(e.$float==="Infinity"||e.$float==="+Infinity")return 1/0;if(e.$float==="-Infinity")return-1/0}if(typeof e.$ts=="string"||typeof e.$ts=="number"){let n=typeof e.$ts=="string"?BigInt(e.$ts):BigInt(Math.trunc(e.$ts));return new Date(Number(n/1000000n))}}let r={};for(let[n,s]of Object.entries(e))r[n]=di(s);return r}return e}function gC(e){return e.path?["rpc","--stdio","--path",e.path]:["rpc","--stdio"]}function hC(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 yC(e){if(e.kind!=="embedded")throw new D("EMBEDDED_ONLY",cC)}function Mu(){return new D(ah,`${ah}: nested transactions are not supported on one connection`)}function lh(e,t){if(e&&typeof e=="object")try{e.rollbackError=t}catch{}}function bC(e,t){if(!e||typeof e!="object"||e.rid==null&&e.id==null)throw new D("ENGINE_TOO_OLD",`${t}() requires RedDB engine >= ${uh} with insert id support`);return e.rid==null&&(e.rid=e.id),e.id==null&&(e.id=e.rid),e}function wC(e,t){if(!e||typeof e!="object"||!Array.isArray(e.rids)&&!Array.isArray(e.ids))throw new D("ENGINE_TOO_OLD",`bulkInsert() requires RedDB engine >= ${uh} with bulk insert id support`);if(Array.isArray(e.rids)||(e.rids=e.ids),Array.isArray(e.ids)||(e.ids=e.rids),e.rids.length!==t)throw new D("INVALID_RESPONSE",`bulkInsert() expected ${t} rids, got ${e.rids.length}`);return e}var cC,uC,uh,ah,pi,Nu,Fu,dh=y(()=>{Vg();Yg();Yt();Su();Tu();Cu();Iu();Lu();Du();Gu();$u();Tu();Cu();Iu();Lu();Du();Gu();$u();Su();cC="remote URIs are not supported in @reddb-io/sdk; install @reddb-io/client for grpc/http/red transports",uC="1.0",uh="1.0.9",ah="NESTED_TX_NOT_SUPPORTED";pi=class{constructor(t){this.db=t}query(t,...r){return this.db.query(t,...r)}execute(t,...r){return this.db.execute(t,...r)}insert(t,r){return this.db.insert(t,r)}bulkInsert(t,r){return this.db.bulkInsert(t,r)}async transaction(){throw Mu()}},Nu=class{constructor(t){this.db=t,this.active=!1}async begin(){if(this.db.inTransaction)throw Mu();this.db.inTransaction=!0,this.active=!0;try{return await this.db.query("BEGIN")}catch(t){throw this.db.inTransaction=!1,this.active=!1,t}}async commit(){if(!this.active)throw new D("INVALID_ARGUMENT","tx.commit() called without an open transaction");try{return await this.db.query("COMMIT")}finally{this.active=!1,this.db.inTransaction=!1}}async rollback(){if(!this.active)throw new D("INVALID_ARGUMENT","tx.rollback() called without an open transaction");try{return await this.db.query("ROLLBACK")}finally{this.active=!1,this.db.inTransaction=!1}}async run(t){if(typeof t!="function")throw new TypeError("tx.run(callback) requires a function");if(this.db.inTransaction)throw new D("INVALID_ARGUMENT","nested tx.run() is not supported; issue savepoints via tx.query() instead");await this.begin();try{let r=await t(new pi(this.db));return await this.commit(),r}catch(r){if(this.active)try{await this.rollback()}catch(n){lh(r,n)}throw r}}},Fu=class{constructor(t,r={}){this.client=t,this.transport=r.transport??null,this.helperSpecVersion=uC,this.cache=new Rs(t,this.transport),this.queue=new ks(t),this.queues=this.queue,this.documents=new Ss(this);let n=new fn(t);this.kv=Object.assign((s="kv_default")=>new fn(t,s),{put:n.put.bind(n),invalidateTags:n.invalidateTags.bind(n),watch:n.watch.bind(n),watchPrefix:n.watchPrefix.bind(n)}),this.config=(s="red.config")=>new Ts(t,s),this.vault=(s="red.vault")=>new vs(t,s),this.inTransaction=!1}query(t,...r){if(typeof t!="string"||t.trim().length===0)return Promise.reject(new D("INVALID_ARGUMENT","query() requires a non-empty SQL string"));let n=dC(r);return n==null?this.client.call("query",{sql:t}).then(di):this.client.call("query",{sql:t,params:n}).then(di)}execute(t,...r){return this.query(t,...r)}async insert(t,r){let n=await this.client.call("insert",{collection:t,payload:r});return bC(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 wC(n,r.length)}tx(){return new Nu(this)}async transaction(t){if(this.inTransaction)throw Mu();if(typeof t!="function")throw new TypeError("transaction(callback) requires a function");this.inTransaction=!0;let r=!1;try{await this.query("BEGIN"),r=!0;let n=await t(new pi(this));return await this.query("COMMIT"),n}catch(n){if(r)try{await this.query("ROLLBACK")}catch(s){lh(n,s)}throw n}finally{this.inTransaction=!1}}exists(t){return ih(this,t)}list(){return oh(this)}from(t){return new xs(this,t)}get(t,r){return this.client.call("get",{collection:t,id:String(r)})}delete(t,r){return this.client.call("delete",{collection:t,id:String(r)})}health(){return this.client.call("health",{})}version(){return this.client.call("version",{})}login(t,r){return this.client.call("auth.login",{username:t,password:r})}whoami(){return this.client.call("auth.whoami",{})}changePassword(t,r){return this.client.call("auth.change_password",{current_password:t,new_password:r})}createApiKey({username:t,role:r}={}){return this.client.call("auth.create_api_key",{username:t,role:r})}revokeApiKey(t){return this.client.call("auth.revoke_api_key",{key:t})}close(){return this.client.close()}}});import{createHash as _C}from"node:crypto";import{existsSync as ph}from"node:fs";import{mkdir as EC,readFile as RC,rename as Bu,rm as Cs,stat as ju}from"node:fs/promises";import{basename as kC,dirname as SC}from"node:path";async function mh(e){await(await xr.open({...e,allowResidentOpen:!0})).close()}var xr,fh=y(()=>{"use strict";dh();Xo();ci();xr=class e{constructor(t,r){this.opts=r;this.path=t}document;db;path;dirty=!1;static async open(t){if(process.env.RSP_FAIL_IF_STORE_OPEN==="1"&&!t.allowResidentOpen)throw new Error("RSP_FAIL_IF_STORE_OPEN blocked store open");let r=qg(t.uri),n=await Ug(r),s=new e(n,{uri:t.uri,ttlDays:ni(t.ttlDays,ze),ephemeralTtlHours:ni(t.ephemeralTtlHours,Ye),byteBudget:ni(t.byteBudget,Qe),now:t.now??(()=>new Date)});return Hg(n)?(await ai(),await EC(SC(n),{recursive:!0}),s.db=await mi(`file://${n}`),await s.ensureRedDbCollections(),await s.ensureRedDbStore()):s.document=await jg(s.path),s}async close(){await this.db?.close()}redDb(){return this.db}async mint(t,r){if(this.db)return await this.mintRedDb(t,r);let n=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=bs(n,r),a=zt(i),c=Gt(r.command),u=c==="derivable"?gu(n,r.command):null,l=c==="re-executable"?hu(n,r.command):null,p=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,d=fu(s,p,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Sr(n),f=p==="ephemeral"?wu(n,g,o):null,k=yu(n,u,l,f);f&&!this.document.blobs[f.key]&&(this.document.blobs[f.key]=f,this.dirty=!0);let E={collection:ue,handle:i,original_bytes:n.length,stored_bytes:k,command:r.command,created_at:o,expires_at:d,loss:r.loss,storage_class:p,content_hash:g,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};return delete this.document.tombstones[Tr(i)],this.document.records[a]=E,this.upsertIndex({handle:i,key:a,bytes:k,raw_bytes:n.length,command:r.command,created_at:o,expires_at:d,storage_class:p,blob_key:f?.key}),this.prune(),await this.flush(),i}async get(t){if(this.db)return await this.getRedDb(t);if(!_s(t))return null;let r=this.tombstone(t);if(r)return r;let n=this.document.records[zt(t)];if(!Es(n))return null;if(Date.parse(n.expires_at)<=this.opts.now().getTime()){let o={status:"expired",expired_at:n.expires_at,command:n.command};return this.expireEntry({handle:n.handle,key:zt(n.handle),bytes:bu(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:ws(n),blob_key:n.blob_key},n.expires_at),await this.flush(),o}let s=await this.readOriginal(n);return!s&&(n.derivation_recipe||n.reexecution_recipe)?{status:"expired",expired_at:n.expires_at,command:n.command}:s?{collection:ue,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:ws(n)}:null}async stats(){if(this.db)return await this.statsRedDb();this.prune(),await this.flush();let r=this.readIndex().records;return{records:r.length,bytes:vr(r),oldest:r.reduce((n,s)=>n==null||s.created_at<n?s.created_at:n,null),budget:this.opts.byteBudget,storage_classes:pu(r)}}async recoveryHandles(t=5){return this.db?await this.recoveryHandlesRedDb(t):(this.prune(),await this.flush(),mu(this.readIndex().records,this.opts.now(),t))}readIndex(){return this.document.index}writeIndex(t){this.document.index=t}upsertIndex(t){let n=this.readIndex().records.filter(s=>s.handle!==t.handle);n.push(t),this.writeIndex({version:1,records:n}),this.dirty=!0}prune(){let t=this.opts.now().getTime(),r=new Date(t).toISOString(),n=this.readIndex(),s=[];for(let i of n.records)Date.parse(i.expires_at)<=t?this.expireEntry(i,i.expires_at):s.push(i);let o=vr(s);for(s.sort((i,a)=>i.created_at.localeCompare(a.created_at));o>this.opts.byteBudget&&s.length>0;){let i=s.shift();this.expireEntry(i,r),o=vr(s)}s.length<n.records.length&&this.writeIndex({version:1,records:s}),this.deleteUnreferencedLocalBlobs(s)}expireEntry(t,r){delete this.document.records[t.key],this.document.tombstones[Tr(t.handle)]={status:"expired",expired_at:r,command:t.command},this.dirty=!0}tombstone(t){let r=this.document.tombstones[Tr(t)];return oi(r)?r:null}async readOriginal(t){if(t.original)return Buffer.from(t.original,"base64");if(t.derivation_recipe)return Dg(t.derivation_recipe);if(t.reexecution_recipe)return Gg(t.reexecution_recipe);if(t.blob_key){let r=this.db?await this.kvGet(t.blob_key):this.document.blobs[t.blob_key];return si(r)?Lg(r):null}return null}deleteUnreferencedLocalBlobs(t){let r=new Set(t.map(n=>n.blob_key).filter(n=>typeof n=="string"));for(let n of Object.keys(this.document.blobs))r.has(n)||(delete this.document.blobs[n],this.dirty=!0)}async flush(){this.dirty&&(await mn(this.path,this.document),this.dirty=!1),await this.rotateLocalGenerationIfOversized()}async rotateLocalGenerationIfOversized(){let t=await ju(this.path).then(a=>a.size,()=>0);if(t<=this.opts.byteBudget)return;let r=this.readIndex().records,n=new Set(r.map(a=>a.key)),s=new Set(r.map(a=>a.blob_key).filter(a=>typeof a=="string")),o={version:1,records:Object.fromEntries(Object.entries(this.document.records).filter(([a])=>n.has(a))),blobs:Object.fromEntries(Object.entries(this.document.blobs).filter(([a])=>s.has(a))),tombstones:{},index:{version:1,records:r}},i=Buffer.byteLength(`${JSON.stringify(o)}
|
|
81
|
+
`,"utf8");i>this.opts.byteBudget||i>=t||(this.document=o,await mn(this.path,this.document))}kv(){if(!this.db)throw new Error("rsp RedDB store is not open");return this.db.kv(ue)}async kvGet(t){let r=await this.kv().get(t);if(typeof r!="string")return r;try{return JSON.parse(r)}catch{return r}}async ensureRedDbStore(){let t=await this.readRedDbIndex();await this.writeRedDbIndex(t)}async ensureRedDbCollections(){if(!this.db)throw new Error("rsp RedDB store is not open");let t=(await this.db.list()).find(r=>r.name===ue);if(!t){await this.db.query(`CREATE KV IF NOT EXISTS ${ue}`);return}if(t.model!=="kv"){if(t.model!=="table")throw new Error(`cannot self-heal elision collection ${ue}: unsupported model ${t.model}`);await this.db.query(`DROP TABLE ${ue}`),await this.db.query(`CREATE KV IF NOT EXISTS ${ue}`)}}async mintRedDb(t,r){let n=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=bs(n,r),a=zt(i),c=Gt(r.command),u=c==="derivable"?gu(n,r.command):null,l=c==="re-executable"?hu(n,r.command):null,p=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,d=fu(s,p,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Sr(n),f=p==="ephemeral"?wu(n,g,o):null,k=yu(n,u,l,f);f&&!si(await this.kvGet(f.key))&&await this.kv().put(f.key,f);let E={collection:ue,handle:i,original_bytes:n.length,stored_bytes:k,command:r.command,created_at:o,expires_at:d,loss:r.loss,storage_class:p,content_hash:g,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};await this.kv().delete(Tr(i)),await this.kv().put(a,E);let _=(await this.readRedDbIndex()).records.filter(T=>T.handle!==i);return _.push({handle:i,key:a,bytes:k,raw_bytes:n.length,command:r.command,created_at:o,expires_at:d,storage_class:p,blob_key:f?.key}),await this.pruneRedDb({version:1,records:_},!0),await this.assertRedDbMintPersisted(i,k),i}async getRedDb(t){if(!_s(t))return null;let r=await this.kvGet(Tr(t));if(oi(r))return r;let n=await this.kvGet(zt(t));if(!Es(n))return null;if(Date.parse(n.expires_at)<=this.opts.now().getTime()){let o={status:"expired",expired_at:n.expires_at,command:n.command};return await this.expireRedDbEntry({handle:n.handle,key:zt(n.handle),bytes:bu(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:ws(n),blob_key:n.blob_key},n.expires_at),o}let s=await this.readOriginal(n);return!s&&(n.derivation_recipe||n.reexecution_recipe)?{status:"expired",expired_at:n.expires_at,command:n.command}:s?{collection:ue,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:ws(n)}:null}async statsRedDb(){let t=await this.pruneRedDb(await this.readRedDbIndex());return{records:t.records.length,bytes:vr(t.records),oldest:t.records.reduce((r,n)=>r==null||n.created_at<r?n.created_at:r,null),budget:this.opts.byteBudget,storage_classes:pu(t.records)}}async recoveryHandlesRedDb(t){let r=await this.pruneRedDb(await this.readRedDbIndex());return mu(r.records,this.opts.now(),t)}async memory(t,r){if(!this.db)throw new Error("resident memory operations require the shared RedDB store");if(await this.ensureMemoryGraphStore(),t==="recall"){let n=Ng(r);return await this.memoryRecallRedDb(n.query,n.limit)}if(t==="ingest"){let n=Fg(r);return await this.memoryIngestRedDb(n)}throw new Error(`unsupported memory action: ${t}`)}async ensureMemoryGraphStore(){if(!this.db)throw new Error("rsp RedDB store is not open");await this.db.execute("CREATE GRAPH IF NOT EXISTS memory_nodes"),await this.db.execute("CREATE GRAPH IF NOT EXISTS memory_edges")}async memoryIngestRedDb(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await Mg(t.cwd,t.maxFiles??200,t.ignore??[]),n=0;for(let s of r){let i=(await RC(s,"utf8").catch(()=>"")).trim();if(!i)continue;let a=kC(s),c=_C("sha256").update("resident-memory-v1\0").update(s).update("\0").update(i).digest("hex");if(await this.db.kv("memory_kv").get(`resident-node-hash:${c}`)!=null)continue;let u=Date.now(),l={title:a,content:i,source:s,confidence:"EXTRACTED",hash:c,project:"default",scope:"project",importance:1,tier:"durable",provenance_tier:"oracle",created_at:u,updated_at:u,accessed_at:u,access_count:0,provenance:{source_kind:"system",writer:"rsp-resident",confidence:"EXTRACTED",evidence:[s],created_at:u,updated_at:u}},p=await this.db.query("INSERT INTO memory_nodes NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *",a,"concept",c,l),d=Number(p.rows[0]?.red_entity_id??p.rows[0]?.rid);Number.isFinite(d)&&await this.db.kv("memory_kv").put(`resident-node-hash:${c}`,d),n+=1}return{files:r.length,nodes:n,edges:0,docs:r.length,added:n,updated:0,skipped:r.length-n,stale:0,semantic:{enabled:!1,nodes:0,edges:0,token_cost:{input:0,output:0}},durationMs:0}}async memoryRecallRedDb(t,r){if(!this.db)throw new Error("rsp RedDB store is not open");let n=await this.db.query("SELECT * FROM memory_nodes"),s=t.toLowerCase().split(/\s+/).filter(Boolean),o=n.rows.map(i=>Bg(i,s)).filter(i=>i!=null).sort((i,a)=>a.score-i.score).slice(0,Math.max(1,Math.min(100,r)));return{hits:o,context_md:o.map(i=>`- memory_nodes:${i.rid} ${i.label}: ${i.excerpt}`).join(`
|
|
82
|
+
`),diagnostics:{vector:{status:"unavailable",candidates:0,contributed:0,reason:"resident-basic-recall"}}}}async readRedDbIndex(){let t=await this.kvGet(ti());return _u(t)?t:{version:1,records:[]}}async writeRedDbIndex(t){await this.kv().put(ti(),t)}async pruneRedDb(t,r=!1){let n=this.opts.now().getTime(),s=new Date(n).toISOString(),o=[];for(let c of t.records)Date.parse(c.expires_at)<=n?await this.expireRedDbEntry(c,c.expires_at):o.push(c);let i=vr(o);for(o.sort((c,u)=>c.created_at.localeCompare(u.created_at));i>this.opts.byteBudget&&o.length>0;){let c=o.shift();await this.expireRedDbEntry(c,s),i=vr(o)}let a={version:1,records:o};return(r||o.length<t.records.length)&&await this.writeRedDbIndex(a),await this.deleteUnreferencedRedDbBlobs(o),await this.rotateRedDbGenerationIfOversized(a),a}async rotateRedDbGenerationIfOversized(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await ju(this.path).then(u=>u.size,()=>0);if(r<=this.opts.byteBudget)return;let n=await this.snapshotRedDbKvCollections(t);if(!n)return;let s=`${process.pid}.${Date.now()}`,o=`${this.path}.${s}.compact`,i=`${this.path}.${s}.old`;await Cs(o,{force:!0}),await Cs(i,{force:!0});let a=await mi(`file://${o}`);try{for(let u of n){await a.query(`CREATE KV IF NOT EXISTS ${Pg(u.name)}`);let l=a.kv(u.name);for(let p of u.items)await l.put(p.key,p.value)}}finally{await a.close()}let c=await ju(o).then(u=>u.size,()=>0);if(c===0||c>this.opts.byteBudget||c>=r){await Cs(o,{force:!0});return}await this.db.close(),this.db=void 0;try{await Bu(this.path,i),await Bu(o,this.path),await Cs(i,{force:!0})}catch(u){throw!ph(this.path)&&ph(i)&&await Bu(i,this.path),await Cs(o,{force:!0}),u}finally{this.db=await mi(`file://${this.path}`)}}async snapshotRedDbKvCollections(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await this.db.list();if(r.some(o=>o.model!=="kv"))return null;let n=[],s=!1;for(let o of r){let i=String(o.name??"").trim();if(i===ue){n.push(await this.snapshotRedDbElisions(t)),s=!0;continue}let a=await this.db.kv(i).list({limit:1e4});if(a.items.length>=1e4)return null;n.push({name:i,items:a.items})}return s||n.push(await this.snapshotRedDbElisions(t)),n}async snapshotRedDbElisions(t){let r=[{key:ti(),value:t}],n=new Set;for(let s of t.records)n.add(s.key),s.blob_key&&n.add(s.blob_key);for(let s of n){let o=await this.kvGet(s);o!=null&&r.push({key:s,value:o})}return{name:ue,items:r}}async expireRedDbEntry(t,r){await this.kv().delete(t.key),await this.kv().put(Tr(t.handle),{status:"expired",expired_at:r,command:t.command})}async deleteUnreferencedRedDbBlobs(t){let r=new Set(t.map(s=>s.blob_key).filter(s=>typeof s=="string")),n=await this.kv().list({limit:1e4}).catch(()=>({items:[]}));for(let s of n.items)s.key.startsWith("blob:")&&!r.has(s.key)&&await this.kv().delete(s.key)}async assertRedDbMintPersisted(t,r){let n=await this.kvGet(zt(t));if(!Es(n))throw new Error(`rsp resident failed to persist elision record ${t}`);let o=(await this.readRedDbIndex()).records.find(i=>i.handle===t);if(!o||o.bytes!==r)throw new Error(`rsp resident failed to persist elision index ${t}`)}}});var gh={};K(gh,{DEFAULT_RSP_BYTE_BUDGET:()=>Qe,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Ye,DEFAULT_RSP_TTL_DAYS:()=>ze,RSP_ELISION_COLLECTION:()=>ue,RspElisionStore:()=>xr,contentHandle:()=>bs,ensureReddbBinaryFromWarmCache:()=>ai,provisionElisionStore:()=>mh,storageClassForCommand:()=>Gt});var fi=y(()=>{"use strict";Xo();ci();ci();fh()});async function gi(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:30,s=r.getTime()-n*24*60*60*1e3,o=await bh(e,s),i=(await Os(e,he)).filter(P=>yn(P)>=s),a=o.filter(P=>F(P.event_type)!=="show"&&F(P.degradation_reason)===""),c=o.filter(P=>F(P.event_type)==="show"),u=o.filter(P=>F(P.degradation_reason)!==""),l=0,p=0,d=0,g=0,f=!1,k=new Map,E=new Map,h=[],_=0,T=0,v=0;for(let P of a){P.elided===!0&&l++;let M=Me(P.raw_bytes),De=Me(P.emitted_bytes),_t=Math.max(0,M-De),Mt=bn(P,"raw"),O=bn(P,"emitted"),N=Math.max(0,Mt.tokens-O.tokens);f||=(P.estimated===!0||Mt.estimated||O.estimated)&&N>0,p+=M,d+=De,g+=N;let Et=Cr(P).slice(0,10);Et&&k.set(Et,(k.get(Et)??0)+N);let st=F(P.command)||"unknown",ve=E.get(st)??{command:st,invocations:0,bytes_saved:0,tokens_saved:0};ve.invocations++,ve.bytes_saved+=_t,ve.tokens_saved+=N,E.set(st,ve);let xe=Jt(P.wrapper_ms);xe!=null&&h.push(xe),_+=Me(P.store_open_count);let Rt=Jt(P.store_elapsed_ms);Rt!=null&&(T+=Rt,v++)}let G=new Map,B=new Map,J=[],te=null;for(let P of u){let M=F(P.degradation_reason)||F(P.reason)||"unknown",De=F(P.wrapper_family)||Be(F(P.command));G.set(M,(G.get(M)??0)+1),B.set(De,(B.get(De)??0)+1);let _t=Cr(P);J.push({timestamp:_t,family:De,command:F(P.command)||"unknown",reason:M,exit_code:Jt(P.wrapper_exit_code),stderr_head:F(P.stderr_head)||null}),(!te||_t>te.timestamp)&&(te={timestamp:_t,reason:M,command:F(P.command)||"unknown"})}let re=a.length+u.length,He=c.filter(P=>P.hit===!0).length,de=Rc(g,f),Ft=TC(i);return{window_days:n,empty:o.length===0,savings:{invocations:a.length,elided:l,raw_bytes:p,emitted_bytes:d,bytes_saved:Math.max(0,p-d),tokens_saved:g,tokens_saved_estimated:de.tokens_saved_estimated,token_estimate_range_pct:de.token_estimate_range_pct,tokens_saved_low:de.tokens_saved_low,tokens_saved_high:de.tokens_saved_high,dollars_saved_estimate_usd:de.dollars_saved_estimate_usd,dollars_saved_low_usd:de.dollars_saved_low_usd,dollars_saved_high_usd:de.dollars_saved_high_usd,pricing_model_family:de.pricing_model_family,pricing_input_usd_per_million_tokens:de.pricing_input_usd_per_million_tokens,pricing_note:de.pricing_note,daily_tokens_saved:[...k.entries()].sort(([P],[M])=>P.localeCompare(M)).map(([P,M])=>({date:P,tokens_saved:M})),top_commands:[...E.values()].sort((P,M)=>M.bytes_saved-P.bytes_saved||M.tokens_saved-P.tokens_saved||P.command.localeCompare(M.command))},health:{degradations:u.length,degradation_rate:re===0?0:u.length/re,show_total:c.length,show_hits:He,show_misses:Math.max(0,c.length-He),show_hit_rate:c.length===0?0:ye(He/c.length),by_reason:[...G.entries()].sort((P,M)=>M[1]-P[1]||P[0].localeCompare(M[0])).map(([P,M])=>({reason:P,count:M})),by_family:[...B.entries()].sort((P,M)=>M[1]-P[1]||P[0].localeCompare(M[0])).map(([P,M])=>({family:P,count:M})),recent_failures:J.sort((P,M)=>M.timestamp.localeCompare(P.timestamp)).slice(0,20),most_recent:te},latency:{wrapper_ms_p50:hn(h,.5),wrapper_ms_p95:hn(h,.95),store_open_count_sum:_,store_elapsed_ms_sum:ye(T),store_elapsed_ms_avg:v===0?null:ye(T/v)},decisions:Ft}}function TC(e){let t=0,r=0,n=0,s=0,o=new Map,i=new Map;for(let a of e){let c=F(a.decision);if(c==="contributed"?t++:c==="failed-open"?n++:r++,a.quota_free===!0&&(s+=Math.max(1,Me(a.saved_units))),c!=="contributed"){let p=F(a.reason)||"unknown";o.set(p,(o.get(p)??0)+1)}let u=F(a.command_family)||"unknown",l=i.get(u)??{contributed:0,passed:0,failed_open:0};c==="contributed"?l.contributed++:c==="failed-open"?l.failed_open++:l.passed++,i.set(u,l)}return{seen:e.length,contributed:t,passed:r,failed_open:n,quota_free_saved_units:s,contribution_rate:e.length===0?0:ye(t/e.length),top_pass_reasons:[...o.entries()].sort((a,c)=>c[1]-a[1]||a[0].localeCompare(c[0])).map(([a,c])=>({reason:a,count:c})),by_command_family:[...i.entries()].sort((a,c)=>{let u=a[1].contributed+a[1].passed+a[1].failed_open;return c[1].contributed+c[1].passed+c[1].failed_open-u||a[0].localeCompare(c[0])}).map(([a,c])=>{let u=c.contributed+c.passed+c.failed_open;return{command_family:a,contributed:c.contributed,passed:c.passed,failed_open:c.failed_open,contribution_rate:u===0?0:ye(c.contributed/u)}})}}async function Uu(e,t,r=new Date){let s=(await Os(e,Ce)).filter(o=>yn(o)<=r.getTime()||Cr(o)==="");return{records:s.length,bytes:s.reduce((o,i)=>o+Buffer.byteLength(JSON.stringify(i),"utf8"),0),oldest:s.reduce((o,i)=>{let a=Cr(i);return a&&(o==null||a<o)?a:o},null),budget:t,storage_classes:DC(s)}}async function Hu(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:28,s=r.toISOString(),o=new Date(r.getTime()-n*24*60*60*1e3).toISOString(),i=Date.parse(o),a=await bh(e,i),c=a.filter(O=>F(O.event_type)!=="show"&&F(O.event_type)!=="control_holdout"&&O.control_holdout!==!0&&F(O.degradation_reason)===""),u=a.filter(O=>F(O.event_type)==="control_holdout"||O.control_holdout===!0),l=a.filter(O=>F(O.event_type)==="show"),p=a.filter(O=>F(O.degradation_reason)!==""),d=[...c,...p].map(yn).filter(O=>Number.isFinite(O)&&O>0),g=d.length===0?null:Math.min(...d),f=g==null?0:Math.max(1,Math.min(n,Math.ceil((r.getTime()-g)/HC()))),k=[],E=new Map,h=new Map,_=new Map,T=new Map,v=new Map,G=new Map,B=0,J=!1,te=0,re=null,He=0,de=0;for(let O of c){let N=Cr(O),Et=N.slice(0,10),st=N.slice(0,16),ve=Be(F(O.command)),xe=Math.max(0,bn(O,"raw").tokens-bn(O,"emitted").tokens);B+=xe,J||=O.estimated===!0&&xe>0;let Rt=Math.max(0,Me(O.raw_bytes)-Me(O.emitted_bytes)),Fr=Jt(O.wrapper_ms);if(Fr!=null){k.push(Fr);let In=E.get(ve)??[];In.push(Fr),E.set(ve,In)}Et&&h.set(Et,(h.get(Et)??0)+1),st&&_.set(st,(_.get(st)??0)+1);let Bt=FC(N);Bt&&T.set(Bt,(T.get(Bt)??0)+1);let Pn=jC(N);Pn&&v.set(Pn,(v.get(Pn)??0)+xe);let ur=G.get(ve)??{command_family:ve,invocations:0,tokens_saved:0,bytes_saved:0};ur.invocations++,ur.tokens_saved+=xe,ur.bytes_saved+=Rt,G.set(ve,ur),O.elided===!0&&te++,(O.store_open_count!=null||O.store_elapsed_ms!=null)&&(He++,Me(O.store_open_count)>0&&de++),xe>0&&(!re||xe>re.tokens_saved||xe===re.tokens_saved&&Rt>re.bytes_saved)&&(re={timestamp:N,command_family:ve,tokens_saved:xe,bytes_saved:Rt})}let Ft=p.map(O=>({timestamp:Cr(O),command_family:Be(F(O.command)),reason:F(O.degradation_reason)||F(O.reason)||"unknown"})).sort((O,N)=>O.timestamp.localeCompare(N.timestamp)),P=new Map;for(let O of Ft)P.set(O.reason,(P.get(O.reason)??0)+1);let M=OC(Ft),De=CC(l),_t=PC([...G.values()],De,M),Mt=[..._.entries()].sort((O,N)=>N[1]-O[1]||O[0].localeCompare(N[0]))[0];return{schema_version:"red.rsp.gains.v1",window:{requested_days:n,data_days:f,since:o,until:s,label:`window: ${n}d, data: ${f}d`,empty:c.length===0&&p.length===0,invocations:c.length,degradations:p.length},latency:{global:yh(k),by_command_family:[...E.entries()].sort((O,N)=>N[1].length-O[1].length||O[0].localeCompare(N[0])).map(([O,N])=>({command_family:O,count:N.length,...yh(N)}))},throughput:{requests_per_day:[...h.entries()].sort(([O],[N])=>O.localeCompare(N)).map(([O,N])=>({date:O,requests:N})),active_minute_avg:_.size===0?null:ye([..._.values()].reduce((O,N)=>O+N,0)/_.size),peak_minute:Mt?{minute:Mt[0],requests:Mt[1]}:null,hour_weekday_heatmap:MC(T)},savings:{tokens:Rc(B,J),measured_control_holdout:vC(c,u),weekly_tokens_saved:UC(v),elision_rate:c.length===0?0:ye(te/c.length),top_commands_by_tokens_saved:[...G.values()].sort((O,N)=>N.tokens_saved-O.tokens_saved||N.bytes_saved-O.bytes_saved||O.command_family.localeCompare(N.command_family)).slice(0,10),top_commands_by_invocation_count:[...G.values()].sort((O,N)=>N.invocations-O.invocations||N.tokens_saved-O.tokens_saved||O.command_family.localeCompare(N.command_family)).slice(0,10),single_biggest_elision:re},health:{degradation_timeline:Ft,degradations_by_reason:[...P.entries()].sort((O,N)=>N[1]-O[1]||O[0].localeCompare(N[0])).map(([O,N])=>({reason:O,count:N})),cold_boots:He===0?null:de,warm_hits:He===0?null:Math.max(0,He-de)},mining:{recovery_usage_by_family:De,degradation_clusters:M,threshold_tuning_suggestions:_t}}}async function bh(e,t){let r=(await Os(e,Ce)).filter(i=>yn(i)>=t),n=r.some(i=>F(i.event_type)!=="show"||F(i.degradation_reason)!==""),s=(await Os(e,Fe)).filter(i=>yn(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:F(i.event_type)||"invocation"})),o=(await Os(e,ft)).filter(i=>yn(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:"invocation",degradation_reason:F(i.reason)||"unknown"}));return[...r,...s,...o]}function bn(e,t){let r=Jt(e[t==="raw"?"tokens_raw":"tokens_emitted"]);if(r!=null)return{tokens:r,estimated:!1};let n=Me(e[t==="raw"?"raw_bytes":"emitted_bytes"]);return{tokens:Math.ceil(n/4),estimated:n>0}}function vC(e,t){let r=LC(t.map(a=>Jt(a.holdout_share)))??0;if(t.length===0)return{enabled:!1,holdout_share:r,holdout_invocations:0,compressed_invocations:e.length,savings_rate:null,confidence_interval_95:null,note:"control holdout disabled or no holdout samples in window"};let n=e.map(hh).filter(a=>a!=null),s=t.map(hh).filter(a=>a!=null),o=n.length>0?n:s,i=o.length===0?null:ye(IC(o));return{enabled:!0,holdout_share:ye(r),holdout_invocations:t.length,compressed_invocations:e.length,savings_rate:i,confidence_interval_95:i==null?null:xC(o,i),note:"measured from opt-in uncompressed control holdout; report proposes, it does not tune automatically"}}function hh(e){let t=bn(e,"raw").tokens;if(t<=0)return null;let r=bn(e,"emitted").tokens;return Math.max(0,t-r)/t}function xC(e,t){if(e.length<=1)return{low:ye(Math.max(0,t)),high:ye(Math.min(1,t))};let r=e.reduce((s,o)=>s+(o-t)**2,0)/(e.length-1),n=1.96*Math.sqrt(r/e.length);return{low:ye(Math.max(0,t-n)),high:ye(Math.min(1,t+n))}}function CC(e){let t=new Map;for(let r of e){let n=Be(F(r.recovered_command)||F(r.command)),s=t.get(n)??{command_family:n,show_total:0,show_hits:0,show_misses:0};s.show_total++,r.hit===!0?s.show_hits++:s.show_misses++,t.set(n,s)}return[...t.values()].sort((r,n)=>n.show_total-r.show_total||r.command_family.localeCompare(n.command_family)).map(r=>({...r,show_hit_rate:r.show_total===0?0:ye(r.show_hits/r.show_total)}))}function OC(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:AC(r)}))}function AC(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 PC(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 IC(e){return e.reduce((t,r)=>t+r,0)/e.length}function LC(e){let t=e.filter(r=>r!=null);return t.length===0?null:Math.max(...t)}function DC(e){let t=$C();for(let r of e){if(F(r.event_type)==="show"||F(r.degradation_reason)!==""||r.elided!==!0)continue;let n=GC(r.storage_class)??Gt(F(r.command));t[n].records+=1;let s=Me(r.raw_bytes);t[n].bytes+=s,t[n].raw_bytes+=s}return t}function GC(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"?e:null}function $C(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}async function Os(e,t){return(await e.kv(t).list({limit:1e4}).catch(n=>{if(n instanceof Error&&/\bnot found\b/i.test(n.message))return{items:[]};throw n})).items.map(n=>NC(n.value)).filter(n=>un(n))}function NC(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function yn(e){let t=Date.parse(Cr(e));return Number.isFinite(t)?t:0}function Cr(e){return F(e.created_at)||F(e.ts)||""}function F(e){return typeof e=="string"?e:""}function hn(e,t){if(e.length===0)return null;let r=[...e].sort((s,o)=>s-o),n=Math.min(r.length-1,Math.max(0,Math.ceil(r.length*t)-1));return ye(r[n])}function yh(e){return{wrapper_ms_p50:hn(e,.5),wrapper_ms_p90:hn(e,.9),wrapper_ms_p95:hn(e,.95),wrapper_ms_p99:hn(e,.99)}}function ye(e){return Math.round(e*100)/100}function FC(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${BC(t.getUTCDay())}:${t.getUTCHours()}`:null}function MC(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 BC(e){return["sun","mon","tue","wed","thu","fri","sat"][e]??"unknown"}function jC(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 UC(e){let t=null;return[...e.entries()].sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>{let s=t==null||t===0?null:ye((n-t)/t*100);return t=n,{week_start:r,tokens_saved:n,wow_delta_pct:s}})}function HC(){return 24*60*60*1e3}var wh=y(()=>{"use strict";fs();fi();kc();Jo();ru()});var As={};K(As,{RSP_ACCOUNTING_EVENTS_COLLECTION:()=>Ce,RSP_DECISIONS_COLLECTION:()=>he,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:()=>ft,RSP_TELEMETRY_INDEX_COLLECTION:()=>ls,RSP_TELEMETRY_INVOCATIONS_COLLECTION:()=>Fe,RSP_TELEMETRY_LEGACY_SPOOL_FILE:()=>eu,RSP_TELEMETRY_SPOOL_CORRECTIONS_FILE:()=>tu,RSP_TELEMETRY_SPOOL_FILE:()=>Zc,appendTelemetryEvent:()=>Dt,appendTelemetryEventSync:()=>Kt,drainTelemetrySpool:()=>cu,parseTelemetryEvent:()=>dn,readAccountingLaneStats:()=>Uu,readTelemetryGainsReport:()=>Hu,readTelemetryStats:()=>gi,takeTelemetrySpool:()=>qv,telemetryLegacySpoolPath:()=>Yo,telemetrySpoolCorrectionsPath:()=>au,telemetrySpoolPath:()=>Lt});var et=y(()=>{"use strict";Jo();Og();wh()});var Eh={};K(Eh,{readGhConditionalJson:()=>Oe,readGhEtagCache:()=>jo,sweepGhEtagCache:()=>zc});import{spawn as qC}from"node:child_process";import{createHash as WC,randomUUID as VC}from"node:crypto";async function Oe(e){let t=e.cwd??process.cwd(),r=e.telemetryRoot??t,n=process.hrtime.bigint(),s=e.overheadCeiling??Ke,o=JC(e.path,e.params),i=KC(o),c=tc(r,"gh-api-json")?void 0:await Vc(r,i),u=["api","--include","--method","GET",e.path];for(let[f,k]of _h(e.params))u.push("-f",`${f}=${String(k)}`);c?.etag&&u.push("-H",`If-None-Match: ${c.etag}`);let l=await zC(u,t,e.env,e.signal),p=f=>{let k=Kn();Vn(r,{family:"gh-api-json",wrapperMs:Number(process.hrtime.bigint()-n)/1e6,childMs:k.childMs,selfStateBytesRead:k.selfStateBytesRead,bytesSaved:f},s)},d=YC(l.stdout);if(d.statusCode===304&&!!c)return p(Buffer.byteLength(c.body)),await qu(r,e.command??`gh api ${e.path}`,!0),{status:0,stdout:c.body,stderr:l.stderr,etag:c.etag,quotaFree:!0};if(d.statusCode>=200&&d.statusCode<300){let f=d.headers.get("etag");return f&&await Jc(r,{key:i,request:o,etag:f,body:d.body,updated_at:new Date().toISOString()},{maxBytes:e.cacheMaxBytes}),p(0),await qu(r,e.command??`gh api ${e.path}`,!1),{status:l.status,stdout:d.body,stderr:l.stderr,etag:f??void 0,quotaFree:!1}}return p(0),await qu(r,e.command??`gh api ${e.path}`,!1),{status:l.status,stdout:d.body||l.stdout,stderr:l.stderr,quotaFree:!1}}function _h(e){return Object.entries(e??{}).filter(t=>t[1]!==void 0).sort(([t],[r])=>t.localeCompare(r))}function JC(e,t){return JSON.stringify({method:"GET",path:e,params:_h(t)})}function KC(e){return WC("sha256").update(`rsp-gh-etag-v1\0${e}`).digest("hex")}async function zC(e,t,r,n){return n?.aborted?{status:1,stdout:"",stderr:"gh call cancelled"}:await new Promise(s=>{let o=!1,i=d=>{o||(o=!0,n?.removeEventListener("abort",c),s(d))},a=qC("gh",e,{cwd:t,env:r?{...process.env,...r}:process.env,stdio:["ignore","pipe","pipe"]});function c(){try{a.kill("SIGKILL")}catch{}i({status:1,stdout:"",stderr:"gh call cancelled"})}n?.addEventListener("abort",c,{once:!0});let u=ke();a.once("close",u),a.once("error",u);let l=[],p=[];a.stdout.on("data",d=>l.push(Buffer.from(d))),a.stderr.on("data",d=>p.push(Buffer.from(d))),a.once("error",d=>i({status:1,stdout:"",stderr:d.message})),a.once("close",d=>{i({status:d??1,stdout:Buffer.concat(l).toString("utf8"),stderr:Buffer.concat(p).toString("utf8").trim()})})})}function YC(e){let t=e.replace(/\r\n/g,`
|
|
83
|
+
`),r=[...t.matchAll(/^HTTP\/\S+\s+(\d{3})[^\n]*\n/gm)];if(r.length===0)return{statusCode:0,headers:new Map,body:e};let n=r[r.length-1],s=Number(n[1]),o=n.index+n[0].length,i=t.indexOf(`
|
|
84
84
|
|
|
85
85
|
`,o),a=i>=0?t.slice(o,i):t.slice(o),c=new Map;for(let u of a.split(`
|
|
86
|
-
`)){let l=u.indexOf(":");l<=0||c.set(u.slice(0,l).trim().toLowerCase(),u.slice(l+1).trim())}return{statusCode:s,headers:c,body:i>=0?t.slice(i+2):""}}async function
|
|
87
|
-
`),stdout:JSON.stringify({number:
|
|
88
|
-
`)}var uu=g(()=>{"use strict"});var dg=g(()=>{"use strict";D()});var pg=g(()=>{"use strict"});function gv(e){return Object.keys(e)}function Qn(e){return{...e,fields:gv(e.fields)}}var fg,mg,gg,hv,yv,bv,hg,lu=g(()=>{"use strict";fg="red.castle.lane.v1",mg="red.castle.state.v1",gg="red.castle.history.v1",hv="red.castle.validation.v2",yv="red.castle.envelope.v1",bv="red.castle.hitl-card.v1",hg=[Qn({schemaId:fg,docPath:".red/contracts/red.castle.lane.v1.md",typeNames:["CastleLaneRecord","CastleLaneKind"],fields:{at:!0,kind:!0,worker_id:!0,supervisor_id:!0,issue:!0,attempt:!0,payload:!0}}),Qn({schemaId:mg,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}}),Qn({schemaId:gg,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}}),Qn({schemaId:hv,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}}),Qn({schemaId:yv,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}}),Qn({schemaId:bv,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 d1,Wo=g(()=>{"use strict";D();lu();d1=new Map(hg.map(e=>[e.schemaId,new Set(e.fields)]))});var yg=g(()=>{"use strict";pg();Wo()});var bg=g(()=>{"use strict"});var qo=g(()=>{"use strict"});var du=g(()=>{"use strict";qo()});var Jo=g(()=>{"use strict"});import{appendFile as Rv,mkdir as kv,readFile as Sv}from"node:fs/promises";import{dirname as Ev,join as xv}from"node:path";function pu(e,t){if(typeof e!="string"||e.length===0)throw new Error(`singleton event ${t} must be a non-empty string`);return e}function wg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton event must be a record");let t={...e},n=t.payload;if(typeof n=="string")try{t.payload=JSON.parse(n)}catch{throw new Error("singleton event payload is not valid JSON")}if(t.payload!==void 0&&(t.payload===null||typeof t.payload!="object"||Array.isArray(t.payload)))throw new Error("singleton event payload must be a record");return{at:pu(t.at,"at"),singleton:pu(t.singleton,"singleton"),kind:pu(t.kind,"kind"),...t.payload===void 0?{}:{payload:t.payload}}}function vv(e){return{at:e.at,singleton:e.singleton,kind:e.kind,...e.payload===void 0?{}:{payload:JSON.stringify(e.payload)}}}function Cv(e){if(e!==void 0&&(!Number.isSafeInteger(e)||e<0))throw new Error("singleton event tail must be a non-negative integer")}function Tv(e){return xv(e.castleStateRoot,"singleton-events.toonl")}function fu(e,t={}){let n=t.fs??{appendFile:Rv,mkdir:kv,readFile:Sv},r=t.clock??(()=>new Date().toISOString()),s=Tv(e);return{path:s,async append(o){let i=wg({at:o.at??r(),...o});return await n.mkdir(Ev(s),{recursive:!0}),await n.appendFile(s,kt().push(vv(i)),"utf8"),i},async read(o={}){Cv(o.tail);let i;try{i=await n.readFile(s,"utf8")}catch(c){if(c.code==="ENOENT")return[];throw c}let a=Rt(i).map(wg);return o.tail===void 0?a:o.tail===0?[]:a.slice(-o.tail)}}}var mu=g(()=>{"use strict";D()});var Vo=g(()=>{"use strict";D();Jo();mu()});var _g=g(()=>{"use strict";qo();du();Vo()});var Rg=g(()=>{"use strict"});var z1,kg=g(()=>{"use strict";D();z1=24*60*60*1e3});var Sg=g(()=>{"use strict";Wo()});var Z1,eB,Eg=g(()=>{"use strict";Z1=15*6e4,eB=30*6e4});var xg=g(()=>{"use strict"});var Av,Pv,rB,sB,vg=g(()=>{"use strict";Av=["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"],Pv={pre_worktree:["cargo","gradle"]},rB=Object.values(Pv).flat(),sB=new Set(Av)});var Cg=g(()=>{"use strict"});var Tg=g(()=>{"use strict";Vo()});var Og=g(()=>{"use strict"});var Ag=g(()=>{"use strict"});var Pg=g(()=>{"use strict"});var gu=g(()=>{"use strict"});var Ig=g(()=>{"use strict";D();gu()});var Lg=g(()=>{"use strict";D()});var hu=g(()=>{"use strict"});var yu=g(()=>{"use strict"});import{resolve as re}from"node:path";function $g(e){let t=re(e),n=re(t,"state"),r=re(n,"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:n,castleStateRoot:r,castleHistory:re(r,"history.toonl"),castleValidation:re(r,"validation.toonl"),tmpRoot:s,supervisorsRoot:o,supervisor:u=>re(o,u),projectSupervisor:re(o,Iv),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 Iv,Dg=g(()=>{"use strict";Iv="default"});var Ng=g(()=>{"use strict";Jo()});var Mg=g(()=>{"use strict"});var Bg=g(()=>{"use strict";hu();yu()});import{mkdir as Lv,readFile as $v,rename as Dv,rm as Nv,writeFile as Mv}from"node:fs/promises";import{dirname as Bv,join as Fv}from"node:path";function Gv(e){if(!jv.test(e)||e==="."||e==="..")throw new Error(`invalid singleton name ${JSON.stringify(e)}`)}function Hv(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function Uv(e){return e.code==="ENOENT"}function Wv(e){return e.code==="EEXIST"}function qv(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 n of["start_time","acquired_at","renewed_at"])if(typeof t[n]!="string"||t[n].length===0)throw new Error(`singleton lease ${n} must be a non-empty string`);return t}function bu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function Ko(e,t){return Gv(t),Fv(e.castleStateRoot,"singletons",t,"lease.toon")}function Fg(e,t={}){let n=t.fs??{mkdir:Lv,readFile:$v,rename:Dv,rm:Nv,writeFile:Mv},r=t.clock??(()=>new Date().toISOString()),s=t.isPidAlive??Hv;async function o(a){try{return qv(L(await n.readFile(a,"utf8")))}catch(c){if(Uv(c))return;throw c}}async function i(a,c){let u=`${a}.tmp-${c.pid}-${crypto.randomUUID()}`;await n.writeFile(u,C(c,{keyedMapCollapse:!0}),{encoding:"utf8"}),await n.rename(u,a)}return{read(a){return o(Ko(e,a))},async acquire(a,c){let u=Ko(e,a);await n.mkdir(Bv(u),{recursive:!0});let l=!1;for(;;){let p=r(),d={pid:c.pid,start_time:c.startTime,acquired_at:p,renewed_at:p};try{return await n.writeFile(u,C(d,{keyedMapCollapse:!0}),{encoding:"utf8",flag:"wx"}),{acquired:!0,reaped:l,lease:d}}catch(f){if(!Wv(f))throw f}let m=await o(u);if(m){if(bu(m,c))return{acquired:!0,reaped:l,lease:m};if(await s(m.pid))return{acquired:!1,lease:m};await n.rm(u,{force:!0}),l=!0}}},async renew(a,c){let u=Ko(e,a),l=await o(u);if(!l||!bu(l,c))throw new zo(a);let p={...l,renewed_at:r()};return await i(u,p),p},async release(a,c){let u=Ko(e,a),l=await o(u);if(!l)return!1;if(!bu(l,c))throw new zo(a);return await n.rm(u,{force:!0}),!0}}}var zo,jv,jg=g(()=>{"use strict";D();zo=class extends Error{constructor(t){super(`singleton lease ${JSON.stringify(t)} is held by another owner`),this.name="SingletonLeaseOwnershipError"}},jv=/^[a-z0-9][a-z0-9._-]{0,63}$/});var wu=g(()=>{"use strict"});var Gg=g(()=>{"use strict"});var Jv,Vv,Kv,HB,Hg=g(()=>{"use strict";Jv={refreshCadenceS:270,tolerance:3},Vv=270,Kv=2700,HB={...Jv,claimGraceS:Vv,recentCommitProtectionS:Kv}});var Ug=g(()=>{"use strict"});function Wg(e){return e==="single-object"?"rest":"graphql"}function U(e,t,n,r,s,o){return{key:e,kind:"read",cardinality:t,volatility:n,surface:o??Wg(t),budget:r,...o?{only:o}:{},why:s}}function ge(e,t,n,r){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:n,why:r}}var qg,WB,Jg=g(()=>{qg=[U("issue view","single-object","stable-poll","rest","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),U("pr view","single-object","stable-poll","rest","one pull request by number, polled per Worker per iteration"),U("repo view","single-object","stable-poll","rest","one repository's own metadata, repeatedly read while usually unchanged"),U("run view","single-object","stable-poll","rest","one Actions run repeatedly polled to terminal; Actions has no GraphQL surface"),U("release view","single-object","stable-poll","rest","one release by tag, repeatedly checked while usually absent or unchanged"),U("pr diff","single-object","one-shot","rest","one pull request's diff, read once for review and served by a REST media type"),U("issue list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged issue connection; GraphQL avoids N REST pages"),U("pr list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged pull-request connection; GraphQL avoids N REST pages"),U("pr checks","multi-node","stable-poll","graphql","check contexts form a connection repeatedly polled while awaiting terminal state"),U("release list","multi-node","stable-poll","rest","release waits poll a usually-unchanged list; Releases has no GraphQL connection gh reads","rest"),U("run list","multi-node","stable-poll","rest","run waits poll a usually-unchanged list; Actions has no GraphQL surface","rest"),U("label list","multi-node","one-shot","graphql","a label connection loaded once for the current operation"),U("issue list (search)","multi-node","stable-poll","search","queue discovery polls usually-unchanged search results through the 30/min search connection"),U("pr list (search)","multi-node","stable-poll","search","PR discovery polls usually-unchanged search results through the 30/min search connection"),U("search issues","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),U("search prs","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),U("search repos","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),U("api graphql","multi-node","one-shot","graphql","the caller supplies one explicit GraphQL query rather than a routed poll"),U("api rest","single-object","one-shot","rest","the caller supplies one explicit REST path rather than a routed poll"),ge("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),ge("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),ge("issue close","graphql","graphql","gh closes with the closeIssue mutation"),ge("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),ge("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),ge("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),ge("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),ge("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),ge("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),ge("pr close","graphql","graphql","gh closes with a GraphQL mutation"),ge("pr edit","graphql","graphql","gh edits with GraphQL mutations"),ge("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),ge("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),ge("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],WB=new Map(qg.map(e=>[e.key,e]))});var Vg=g(()=>{D()});var Kg=g(()=>{});var zg=g(()=>{});var Yg=g(()=>{});var Xg=g(()=>{Jg();Vg();Kg();zg();Yg()});import{execFile as Zv}from"node:child_process";import{promisify as e0}from"node:util";var HF,Qg=g(()=>{"use strict";Xg();wu();HF=e0(Zv)});var Zg=g(()=>{"use strict";dg();yg();bg();qo();_g();Rg();kg();Sg();Wo();Eg();xg();vg();Cg();du();Tg();Og();Ag();Pg();Vo();Ig();Lg();lu();hu();yu();Dg();Ng();Mg();Bg();Jo();gu();mu();jg();wu();Gg();Hg();Ug();Qg()});import{EventEmitter as t0}from"node:events";import{spawn as n0}from"node:child_process";function Xo(e,t){let n=Number(t);return!Number.isSafeInteger(n)||n<=0?!1:!!(e.pull_request?.number===n||e.check_run?.pull_requests?.some(r=>r.number===n)||e.check_suite?.pull_requests?.some(r=>r.number===n))}function Qo(e,t){return e.workflow_run!=null&&String(e.workflow_run.id)===t}var cs,_u,r0,s0,o0,i0,Yo,Ru=g(()=>{cs="github-webhook",_u="github.webhook.delivery";r0="pull_request,pull_request_review,check_run,check_suite,workflow_run",s0=3,o0=1e3,i0=/no extension matched|unknown command|command not found/i,Yo=class extends t0{constructor(n,r){super();this.opts=n;this.terminate=r}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 n=this.child;this.child=void 0,n&&(this.stopping=this.terminate(n,o0).then(()=>{}),await this.stopping)}makeWakeSignalFor(n,r){return()=>{if(this._mode!=="webhook"||this._dead)return;let s=new AbortController,o=c=>{(n==="pr"?Xo(c,r):Qo(c,r))&&(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 n=this.opts.ghBin??"gh",r;try{r=n0(n,["webhook","forward",`--events=${r0}`],{cwd:this.opts.cwd,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"})}catch{return}this.child=r;let s="";r.stdout?.setEncoding("utf8"),r.stdout?.on("data",i=>{s+=i;let a;for(;(a=s.indexOf(`
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
`).length:0,files:f,summary:`${n?`${f.length}/${m.length}`:f.length} files, ${b} changed, +${_} -${h}`},n,["rsp git blame --query <author-or-path>","rsp git diff --query <path>"])}function Pt(e,t,n){return t?ct(e,n):e}function pC(e){return e==="??"?"untracked":e.includes("A")?"added":e.includes("D")?"deleted":e.includes("R")?"renamed":e.includes("M")?"modified":"changed"}function bh(e,t){let n={};for(let r of e){let s=String(r[t]??"");n[s]=(n[s]??0)+1}return n}function fC(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function mC(e){for(let t of["rows","commits","files","refs","ranges","branches"]){let n=e[t];if(Array.isArray(n)&&n.length>1)return{payload:{...e,[t]:n.slice(0,1)},rowsElided:n.length-1}}return null}var fh,ni,ri,un=g(()=>{"use strict";V();D();je();wr();Ve();je();fh=["%h","%an","%as","%s"];ni=class extends Error{constructor(n,r,s){super(`unknown flag: ${r}`);this.command=n;this.flag=r;this.validFlags=s}render(){return Ad(this.command,this.flag,this.validFlags,`${this.command} --help`)}},ri=class extends Error{constructor(n){super("git status output was not recognized; passing raw stdout through");this.reason=n}}});var $u={};B($u,{NORMALIZATION_ALLOWLIST:()=>xh,NORMALIZE_ANSI:()=>oi,NORMALIZE_BLANK_LINES:()=>ci,NORMALIZE_CR_PROGRESS:()=>ii,NORMALIZE_JSON_TOON:()=>Eh,NORMALIZE_TRAILING_WHITESPACE:()=>ai,crushJsonArrayItems:()=>ds,formatCodexNormalizeDecision:()=>Ah,formatNormalizeDecision:()=>Oh,hookDecisionFromClaudePostExecJson:()=>vh,hookDecisionFromCodexPostExecJson:()=>Ch,normalizeOutput:()=>ui,renderGenericJsonLane:()=>Iu,runClaudePostExecHook:()=>yC,runCodexPostExecHook:()=>bC,transcodeJsonToToon:()=>Sh});import{readFileSync as si}from"node:fs";function Sh(e,t){let n=t?.encode??C,r=t?.decode??L,s=e.trimEnd();if(!s)return e;let o;try{o=JSON.parse(s)}catch{return e}let i;try{i=n(o)}catch{return e}let a;try{a=r(i)}catch{return e}return Pu(o,a)?i.trimEnd():e}async function Iu(e,t={}){let n=kC(e);if(!n)return{output:e,detected:!1,lossy:!1};let r=n.value;if(!Array.isArray(r))return{output:C(r).trimEnd(),detected:!0,lossy:!1};let s=r.length,o=kh(t.minTokens,gC),i=kh(t.maxItems,hC);if(!(s>i&&CC(e)>=o))return{output:C(r).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s};let c;try{c=(t.crusher??ds)(r,i)}catch(b){return{output:C(r).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s,degradation:{reason:"json-array-crusher-failed",family:"json",stderrHead:TC(b)}}}let u=c.items,l={items:u},p=`items: ${c.kept} kept, ${c.dropped} dropped (shape outliers: ${c.shapeOutliers}, value outliers: ${c.valueOutliers})`,d;t.level&&t.level!=="lossless"&&(d=await t.store?.mint(Buffer.from(e),{command:t.command??"rsp json",loss:{level:t.level,bytes_elided:Buffer.byteLength(e)}}));let m=d?`original: rsp show ${d}`:`original: unavailable - re-run: ${t.command??"command"}`,f=C(l).trimEnd();return{output:[p,m,f].filter(Boolean).join(`
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
`)},
|
|
86
|
+
`)){let l=u.indexOf(":");l<=0||c.set(u.slice(0,l).trim().toLowerCase(),u.slice(l+1).trim())}return{statusCode:s,headers:c,body:i>=0?t.slice(i+2):""}}async function qu(e,t,r){await Dt(e,{collection:he,id:VC(),created_at:new Date().toISOString(),command:t,command_family:"gh api",decision:"contributed",reason:r?"gh-conditional-304":"gh-conditional-fetch",quota_free:r,saved_units:r?1:0})}var hi=y(()=>{"use strict";us();us();oe();et()});import{spawn as QC}from"node:child_process";async function Ps(e,t){return await XC(t,async r=>{let n=await eO(e,t.cwd,r);return n||await ZC(e,t.cwd,r)})}async function XC(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 ZC(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=QC("gh",e,{cwd:t,stdio:["ignore","pipe","pipe"]});function a(){let l=i.pid;l&&Ao(l).then(p=>Oo(p,"SIGKILL"));try{i.kill("SIGKILL")}catch{}o({status:1,stdout:"",stderr:"gh call cancelled"})}r.addEventListener("abort",a,{once:!0});let c=[],u=[];i.stdout.on("data",l=>c.push(Buffer.from(l))),i.stderr.on("data",l=>u.push(Buffer.from(l))),i.once("error",l=>o({status:1,stdout:"",stderr:l.message})),i.once("close",l=>{o({status:l??1,stdout:Buffer.concat(c).toString("utf8"),stderr:Buffer.concat(u).toString("utf8").trim()})})})}async function eO(e,t,r){if(e[0]==="pr"&&e[1]==="view"&&e[2])return await tO(e[2],t,r);if(e[0]==="run"&&e[1]==="view"&&e[2]){let n=await Oe({path:`repos/{owner}/{repo}/actions/runs/${e[2]}`,cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(n.status!==0)return n;let s=pt(JSON.parse(n.stdout));return{status:0,stderr:n.stderr,stdout:JSON.stringify({databaseId:sn(s,"database_id")||sn(s,"id"),status:ge(s,"status").toUpperCase(),conclusion:ge(s,"conclusion").toUpperCase(),workflowName:ge(s,"workflow_name")||ge(s,"name"),headBranch:ge(s,"head_branch"),url:ge(s,"html_url")})}}if(e[0]==="run"&&e[1]==="list"){let n=Go(e,"--branch"),s=Go(e,"--limit")??"20",o=await Oe({path:"repos/{owner}/{repo}/actions/runs",params:{branch:n,per_page:s},cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(o.status!==0)return o;let i=Rr(pt(JSON.parse(o.stdout)).workflow_runs).map(a=>({databaseId:sn(a,"database_id")||sn(a,"id")}));return{status:0,stdout:JSON.stringify(i),stderr:o.stderr}}if(e[0]==="release"&&e[1]==="list"){let n=Go(e,"--limit")??"20",s=await Oe({path:"repos/{owner}/{repo}/releases",params:{per_page:n},cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(s.status!==0)return s;let o=Rr(JSON.parse(s.stdout)).map(i=>({tagName:ge(i,"tag_name"),publishedAt:ge(i,"published_at"),isDraft:i.draft===!0}));return{status:0,stdout:JSON.stringify(o),stderr:s.stderr}}return null}async function tO(e,t,r){let n=await Oe({path:`repos/{owner}/{repo}/pulls/${e}`,cwd:t,signal:r,command:`gh pr view ${e}`});if(n.status!==0)return n;let s=pt(JSON.parse(n.stdout));if(Array.isArray(s.statusCheckRollup))return{status:0,stdout:n.stdout,stderr:n.stderr};let o=ge(pt(s.head),"sha"),[i,a]=o?await Promise.all([Oe({path:`repos/{owner}/{repo}/commits/${o}/status`,cwd:t,signal:r,command:`gh pr view ${e} status`}),Oe({path:`repos/{owner}/{repo}/commits/${o}/check-runs`,cwd:t,signal:r,command:`gh pr view ${e} check-runs`})]):[{status:0,stdout:"{}",stderr:"",quotaFree:!1},{status:0,stdout:"{}",stderr:"",quotaFree:!1}],c=i.status===0?Rr(pt(JSON.parse(i.stdout)).statuses):[],u=a.status===0?Rr(pt(JSON.parse(a.stdout)).check_runs):[];return{status:0,stderr:[n.stderr,i.stderr,a.stderr].filter(Boolean).join(`
|
|
87
|
+
`),stdout:JSON.stringify({number:sn(s,"number"),state:ge(s,"state").toUpperCase(),mergeable:rO(s),statusCheckRollup:[...c.map(l=>({conclusion:ge(l,"state").toUpperCase()})),...u.map(l=>({status:ge(l,"status").toUpperCase(),conclusion:ge(l,"conclusion").toUpperCase()}))],url:ge(s,"html_url")})}}function rO(e){let t=ge(e,"mergeable_state").toUpperCase();return t&&t!=="UNKNOWN"?t==="CLEAN"?"MERGEABLE":t:e.mergeable===!0?"MERGEABLE":e.mergeable===!1?"CONFLICTING":"UNKNOWN"}var Rh=y(()=>{"use strict";hi();$o();Pt()});function Sh(e,t,r){let n=Date.now();return()=>nO(e,t,r,n)}async function nO(e,t,r,n){if(!/^[1-9][0-9]*$/.test(e))return fe("missing PR number");let s=await Ps(["pr","view",e,"--json","number,state,mergeable,statusCheckRollup,url"],t);if(s.status!==0)return fe(s.stderr||"gh pr view failed");let o=Uc(s.stdout),i=Array.isArray(o.statusCheckRollup)?o.statusCheckRollup:[],a=String(o.mergeable??""),c=i.map(sO),u=c.filter(p=>p==="failure").length,l=c.filter(p=>p==="pending").length;if(String(o.state)!=="OPEN")return At("failure",`PR #${e} is ${String(o.state).toLowerCase()}`,{mergeable:a});if(a==="CONFLICTING")return At("failure",`PR #${e} has merge conflicts`,{failing:u,pending:l,mergeable:a});if(u>0)return At("failure",`PR #${e} has failing checks`,{failing:u,pending:l,mergeable:a});if(l>0)return Xr(`PR #${e} has ${l} pending checks`);if(i.length===0){let p=Date.now()-n;return a==="UNKNOWN"||a==="BLOCKED"||p<r.emptyChecksGraceMs?Xr(`PR #${e} has no registered checks yet`,{checks:0,mergeable:a,empty_checks_elapsed_ms:p}):At("success",`PR #${e} has no checks configured`,{checks:0,mergeable:a})}return a==="UNKNOWN"?Xr(`PR #${e} mergeability is still unknown`,{checks:i.length,mergeable:a}):At("success",`PR #${e} checks passed`,{checks:i.length,mergeable:a})}async function Th(e,t){if(!e)return fe("missing run id");let r=await Ps(["run","view",e,"--json","databaseId,status,conclusion,workflowName,headBranch,url"],t);if(r.status!==0)return fe(r.stderr||"gh run view failed");let n=Uc(r.stdout),s=String(n.status??"").toLowerCase(),o=String(n.conclusion??"").toLowerCase();return s!=="completed"?Xr(`run ${e} is ${s||"pending"}`):o==="success"?At("success",`run ${e} succeeded`,kh(n)):At("failure",`run ${e} concluded ${o||"unknown"}`,kh(n))}async function vh(e,t){let r=await Ps(["run","list","--branch",e,"--limit","1","--json","databaseId"],t);if(r.status!==0)return"";let n=JSON.parse(r.stdout),s=Array.isArray(n)?n[0]:void 0;return nn(s)&&s.databaseId!=null?String(s.databaseId):""}async function xh(e,t,r){let n=await Ps(["release","list","--limit","20","--json","tagName,publishedAt,isDraft"],r);if(n.status!==0)return fe(n.stderr||"gh release list failed");let o=Rr(JSON.parse(n.stdout)).find(i=>{let a=String(i.tagName??""),c=new Date(String(i.publishedAt??""));return i.isDraft!==!0&&(!e||oO(e,a))&&c>=t});return o?At("success",`release ${String(o.tagName)} published`,{tag:String(o.tagName),published_at:String(o.publishedAt??"")}):Xr("no matching release is published yet")}function sO(e){let t=nn(e)?e:{},r=String(t.conclusion??t.state??t.status??"").toLowerCase();return["success","successful","passed","completed","neutral","skipped"].includes(r)?"success":["failure","failed","error","timed_out","cancelled","action_required"].includes(r)?"failure":"pending"}function kh(e){return{database_id:typeof e.databaseId=="number"?e.databaseId:String(e.databaseId??""),conclusion:String(e.conclusion??""),workflow:String(e.workflowName??""),branch:String(e.headBranch??""),url:String(e.url??"")}}function oO(e,t){let r=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${r}$`).test(t)}var Ch=y(()=>{"use strict";_r();Rh();$o()});function Is(){return["usage: rsp wait <subcommand> [options]","","Subcommands:"," rsp wait pr <number> [--timeout 45m] [--reason <text>]"," rsp wait run <id|--branch <branch> --latest> [--timeout 45m]"," rsp wait release [--tag <glob>] [--timeout 2h]",' rsp wait cmd -- "<command line>" [--timeout 30m]'," rsp wait ls","","Examples:",' rsp wait pr 123 --reason "before merge"'," rsp wait run --branch feature/wait --latest",' rsp wait release --tag "v2.*"',' rsp wait cmd -- "pnpm -C apps/rsp build"'," rsp wait ls","","Doctrine: never hand-write sleep polling loops; run rsp wait in a background shell - process exit IS the signal.","Exit codes: 0 = success verdict, 1 = failure verdict, 2 = timeout/indeterminate.","Result: TOON by default; --json selects JSON; --result-file <path> is written atomically before any wake.","Command capture: --capture-bytes <n> (default 16384); elision handles recover larger stdout/stderr.",'Completion hooks: --signal-pid <pid> [--signal USR1] and --notify-cmd "<cmd>" run after the result is durable.',"Hook timeout: --notify-timeout 10s. Process termination: TERM, --terminate-grace 2s, then KILL.","GitHub bounds: --probe-timeout 60s caps one probe, so a hung gh call cannot outlive --timeout.",""].join(`
|
|
88
|
+
`)}var Wu=y(()=>{"use strict"});var Oh=y(()=>{"use strict";W()});var Ah=y(()=>{"use strict"});function iO(e){return Object.keys(e)}function wn(e){return{...e,fields:iO(e.fields)}}var Ph,Ih,Lh,aO,cO,uO,Dh,Vu=y(()=>{"use strict";Ph="red.castle.lane.v1",Ih="red.castle.state.v1",Lh="red.castle.history.v1",aO="red.castle.validation.v2",cO="red.castle.envelope.v1",uO="red.castle.hitl-card.v1",Dh=[wn({schemaId:Ph,docPath:".red/contracts/red.castle.lane.v1.md",typeNames:["CastleLaneRecord","CastleLaneKind"],fields:{at:!0,kind:!0,worker_id:!0,supervisor_id:!0,issue:!0,attempt:!0,payload:!0}}),wn({schemaId:Ih,docPath:".red/contracts/red.castle.state.v1.md",typeNames:["CastleStateSnapshot","CastleStateKind"],fields:{kind:!0,id:!0,version:!0,updated_at:!0,worker_id:!0,supervisor_id:!0,runner:!0,bundle_version:!0,pid:!0,started_at:!0,current:!0,queue:!0,completed:!0,envelope:!0}}),wn({schemaId:Lh,docPath:".red/contracts/red.castle.history.v1.md",typeNames:["CastleHistoryRecord","CastleHistoryEvent"],fields:{ts:!0,epoch:!0,worker:!0,issue:!0,event:!0,duration_s:!0,runner:!0,merge_sha:!0,reason:!0}}),wn({schemaId:aO,docPath:".red/contracts/red.castle.validation.v2.md",typeNames:["CastleValidationRecord","CastleValidationStatus"],fields:{schema:!0,name:!0,status:!0,command:!0,exitCode:!0,durationMs:!0,summary:!0}}),wn({schemaId:cO,docPath:".red/contracts/red.castle.envelope.v1.md",typeNames:["CastleEnvelope","CastleEnvelopeSection","CastleAttemptStatus"],fields:{status:!0,worker:!0,duration:!0,diff:!0,attempt:!0,mergeSha:!0,sections:!0}}),wn({schemaId:uO,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 gj,yi=y(()=>{"use strict";W();Vu();gj=new Map(Dh.map(e=>[e.schemaId,new Set(e.fields)]))});var Gh=y(()=>{"use strict";Ah();yi()});var $h=y(()=>{"use strict"});var bi=y(()=>{"use strict"});var Ju=y(()=>{"use strict";bi()});var wi=y(()=>{"use strict"});import{appendFile as pO,mkdir as mO,readFile as fO}from"node:fs/promises";import{dirname as gO,join as hO}from"node:path";function Ku(e,t){if(typeof e!="string"||e.length===0)throw new Error(`singleton event ${t} must be a non-empty string`);return e}function Nh(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton event must be a record");let t={...e},r=t.payload;if(typeof r=="string")try{t.payload=JSON.parse(r)}catch{throw new Error("singleton event payload is not valid JSON")}if(t.payload!==void 0&&(t.payload===null||typeof t.payload!="object"||Array.isArray(t.payload)))throw new Error("singleton event payload must be a record");return{at:Ku(t.at,"at"),singleton:Ku(t.singleton,"singleton"),kind:Ku(t.kind,"kind"),...t.payload===void 0?{}:{payload:t.payload}}}function yO(e){return{at:e.at,singleton:e.singleton,kind:e.kind,...e.payload===void 0?{}:{payload:JSON.stringify(e.payload)}}}function bO(e){if(e!==void 0&&(!Number.isSafeInteger(e)||e<0))throw new Error("singleton event tail must be a non-negative integer")}function wO(e){return hO(e.castleStateRoot,"singleton-events.toonl")}function zu(e,t={}){let r=t.fs??{appendFile:pO,mkdir:mO,readFile:fO},n=t.clock??(()=>new Date().toISOString()),s=wO(e);return{path:s,async append(o){let i=Nh({at:o.at??n(),...o});return await r.mkdir(gO(s),{recursive:!0}),await r.appendFile(s,Ht().push(yO(i)),"utf8"),i},async read(o={}){bO(o.tail);let i;try{i=await r.readFile(s,"utf8")}catch(c){if(c.code==="ENOENT")return[];throw c}let a=Ut(i).map(Nh);return o.tail===void 0?a:o.tail===0?[]:a.slice(-o.tail)}}}var Yu=y(()=>{"use strict";W()});var _i=y(()=>{"use strict";W();wi();Yu()});var Fh=y(()=>{"use strict";bi();Ju();_i()});var Mh=y(()=>{"use strict"});var Zj,Bh=y(()=>{"use strict";W();Zj=24*60*60*1e3});var jh=y(()=>{"use strict";yi()});var nU,sU,Uh=y(()=>{"use strict";nU=15*6e4,sU=30*6e4});var Hh=y(()=>{"use strict"});var EO,RO,aU,cU,qh=y(()=>{"use strict";EO=["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"],RO={pre_worktree:["cargo","gradle"]},aU=Object.values(RO).flat(),cU=new Set(EO)});var Wh=y(()=>{"use strict"});var Vh=y(()=>{"use strict";_i()});var Jh=y(()=>{"use strict"});var Kh=y(()=>{"use strict"});var zh=y(()=>{"use strict"});var Qu=y(()=>{"use strict"});var Yh=y(()=>{"use strict";W();Qu()});var Qh=y(()=>{"use strict";W()});var Xu=y(()=>{"use strict"});var Zu=y(()=>{"use strict"});import{resolve as be}from"node:path";function Xh(e){let t=be(e),r=be(t,"state"),n=be(r,"castle"),s=be(t,"tmp"),o=be(s,"supervisors"),i=be(s,"workers"),a=be(s,"monitors"),c=be(s,"worktrees");return{redRoot:t,stateRoot:r,castleStateRoot:n,castleHistory:be(n,"history.toonl"),castleValidation:be(n,"validation.toonl"),tmpRoot:s,supervisorsRoot:o,supervisor:u=>be(o,u),projectSupervisor:be(o,kO),workersRoot:i,worker:u=>be(i,u),workerSteerFile:u=>be(i,u,"steer.toon"),monitorsRoot:a,monitor:u=>be(a,u),worktreesRoot:c,worktreeLane:u=>be(c,u)}}var kO,Zh=y(()=>{"use strict";kO="default"});var ey=y(()=>{"use strict";wi()});var ty=y(()=>{"use strict"});var ry=y(()=>{"use strict";Xu();Zu()});import{mkdir as SO,readFile as TO,rename as vO,rm as xO,writeFile as CO}from"node:fs/promises";import{dirname as OO,join as AO}from"node:path";function IO(e){if(!PO.test(e)||e==="."||e==="..")throw new Error(`invalid singleton name ${JSON.stringify(e)}`)}function LO(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function DO(e){return e.code==="ENOENT"}function GO(e){return e.code==="EEXIST"}function $O(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton lease must be a record");let t=e;if(!Number.isInteger(t.pid)||t.pid<=0)throw new Error("singleton lease pid must be a positive integer");for(let r of["start_time","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)throw new Error(`singleton lease ${r} must be a non-empty string`);return t}function el(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function Ei(e,t){return IO(t),AO(e.castleStateRoot,"singletons",t,"lease.toon")}function ny(e,t={}){let r=t.fs??{mkdir:SO,readFile:TO,rename:vO,rm:xO,writeFile:CO},n=t.clock??(()=>new Date().toISOString()),s=t.isPidAlive??LO;async function o(a){try{return $O(H(await r.readFile(a,"utf8")))}catch(c){if(DO(c))return;throw c}}async function i(a,c){let u=`${a}.tmp-${c.pid}-${crypto.randomUUID()}`;await r.writeFile(u,$(c,{keyedMapCollapse:!0}),{encoding:"utf8"}),await r.rename(u,a)}return{read(a){return o(Ei(e,a))},async acquire(a,c){let u=Ei(e,a);await r.mkdir(OO(u),{recursive:!0});let l=!1;for(;;){let p=n(),d={pid:c.pid,start_time:c.startTime,acquired_at:p,renewed_at:p};try{return await r.writeFile(u,$(d,{keyedMapCollapse:!0}),{encoding:"utf8",flag:"wx"}),{acquired:!0,reaped:l,lease:d}}catch(f){if(!GO(f))throw f}let g=await o(u);if(g){if(el(g,c))return{acquired:!0,reaped:l,lease:g};if(await s(g.pid))return{acquired:!1,lease:g};await r.rm(u,{force:!0}),l=!0}}},async renew(a,c){let u=Ei(e,a),l=await o(u);if(!l||!el(l,c))throw new Ri(a);let p={...l,renewed_at:n()};return await i(u,p),p},async release(a,c){let u=Ei(e,a),l=await o(u);if(!l)return!1;if(!el(l,c))throw new Ri(a);return await r.rm(u,{force:!0}),!0}}}var Ri,PO,sy=y(()=>{"use strict";W();Ri=class extends Error{constructor(t){super(`singleton lease ${JSON.stringify(t)} is held by another owner`),this.name="SingletonLeaseOwnershipError"}},PO=/^[a-z0-9][a-z0-9._-]{0,63}$/});var tl=y(()=>{"use strict"});var oy=y(()=>{"use strict"});var NO,FO,MO,VU,iy=y(()=>{"use strict";NO={refreshCadenceS:270,tolerance:3},FO=270,MO=2700,VU={...NO,claimGraceS:FO,recentCommitProtectionS:MO}});var ay=y(()=>{"use strict"});function cy(e){return e==="single-object"?"rest":"graphql"}function Z(e,t,r,n,s,o){return{key:e,kind:"read",cardinality:t,volatility:r,surface:o??cy(t),budget:n,...o?{only:o}:{},why:s}}function Ae(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,why:n}}var uy,KU,ly=y(()=>{uy=[Z("issue view","single-object","stable-poll","rest","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),Z("pr view","single-object","stable-poll","rest","one pull request by number, polled per Worker per iteration"),Z("repo view","single-object","stable-poll","rest","one repository's own metadata, repeatedly read while usually unchanged"),Z("run view","single-object","stable-poll","rest","one Actions run repeatedly polled to terminal; Actions has no GraphQL surface"),Z("release view","single-object","stable-poll","rest","one release by tag, repeatedly checked while usually absent or unchanged"),Z("pr diff","single-object","one-shot","rest","one pull request's diff, read once for review and served by a REST media type"),Z("issue list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged issue connection; GraphQL avoids N REST pages"),Z("pr list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged pull-request connection; GraphQL avoids N REST pages"),Z("pr checks","multi-node","stable-poll","graphql","check contexts form a connection repeatedly polled while awaiting terminal state"),Z("release list","multi-node","stable-poll","rest","release waits poll a usually-unchanged list; Releases has no GraphQL connection gh reads","rest"),Z("run list","multi-node","stable-poll","rest","run waits poll a usually-unchanged list; Actions has no GraphQL surface","rest"),Z("label list","multi-node","one-shot","graphql","a label connection loaded once for the current operation"),Z("issue list (search)","multi-node","stable-poll","search","queue discovery polls usually-unchanged search results through the 30/min search connection"),Z("pr list (search)","multi-node","stable-poll","search","PR discovery polls usually-unchanged search results through the 30/min search connection"),Z("search issues","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),Z("search prs","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),Z("search repos","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),Z("api graphql","multi-node","one-shot","graphql","the caller supplies one explicit GraphQL query rather than a routed poll"),Z("api rest","single-object","one-shot","rest","the caller supplies one explicit REST path rather than a routed poll"),Ae("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ae("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ae("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ae("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ae("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ae("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ae("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ae("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ae("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ae("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ae("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ae("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ae("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ae("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],KU=new Map(uy.map(e=>[e.key,e]))});var dy=y(()=>{W()});var sl=Qd((rl,nl)=>{(function(e,t){typeof rl=="object"&&typeof nl<"u"?nl.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(rl,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(I){return I&&I.default||I}var r=function(I,b,m={}){var w,R,S;for(w in b)S=b[w],m[w]=(R=I[w])!=null?R:S;return m},n=function(I,b,m={}){var w,R;for(w in I)R=I[w],b[w]!==void 0&&(m[w]=R);return m},s={load:r,overwrite:n},o;o=class{constructor(b,m){this.incr=b,this.decr=m,this._first=null,this._last=null,this.length=0}push(b){var m;this.length++,typeof this.incr=="function"&&this.incr(),m={value:b,prev:this._last,next:null},this._last!=null?(this._last.next=m,this._last=m):this._first=this._last=m}shift(){var b;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),b=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,b}first(){if(this._first!=null)return this._first.value}getArray(){var b,m,w;for(b=this._first,w=[];b!=null;)w.push((m=b,b=b.next,m.value));return w}forEachShift(b){var m;for(m=this.shift();m!=null;)b(m),m=this.shift()}debug(){var b,m,w,R,S;for(b=this._first,S=[];b!=null;)S.push((m=b,b=b.next,{value:m.value,prev:(w=m.prev)!=null?w.value:void 0,next:(R=m.next)!=null?R.value:void 0}));return S}};var i=o,a;a=class{constructor(b){if(this.instance=b,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(m,w)=>this._addListener(m,"many",w),this.instance.once=(m,w)=>this._addListener(m,"once",w),this.instance.removeAllListeners=(m=null)=>m!=null?delete this._events[m]:this._events={}}_addListener(b,m,w){var R;return(R=this._events)[b]==null&&(R[b]=[]),this._events[b].push({cb:w,status:m}),this.instance}listenerCount(b){return this._events[b]!=null?this._events[b].length:0}async trigger(b,...m){var w,R;try{return b!=="debug"&&this.trigger("debug",`Event triggered: ${b}`,m),this._events[b]==null?void 0:(this._events[b]=this._events[b].filter(function(S){return S.status!=="none"}),R=this._events[b].map(async S=>{var C,A;if(S.status!=="none"){S.status==="once"&&(S.status="none");try{return A=typeof S.cb=="function"?S.cb(...m):void 0,typeof A?.then=="function"?await A:A}catch(U){return C=U,this.trigger("error",C),null}}}),(await Promise.all(R)).find(function(S){return S!=null}))}catch(S){return w=S,this.trigger("error",w),null}}};var c=a,u,l,p;u=i,l=c,p=class{constructor(b){var m;this.Events=new l(this),this._length=0,this._lists=function(){var w,R,S;for(S=[],m=w=1,R=b;1<=R?w<=R:w>=R;m=1<=R?++w:--w)S.push(new u(()=>this.incr(),()=>this.decr()));return S}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(b){return this._lists[b.options.priority].push(b)}queued(b){return b!=null?this._lists[b].length:this._length}shiftAll(b){return this._lists.forEach(function(m){return m.forEachShift(b)})}getFirst(b=this._lists){var m,w,R;for(m=0,w=b.length;m<w;m++)if(R=b[m],R.length>0)return R;return[]}shiftLastFrom(b){return this.getFirst(this._lists.slice(b).reverse()).shift()}};var d=p,g;g=class extends Error{};var f=g,k,E,h,_,T;_=10,E=5,T=s,k=f,h=class{constructor(b,m,w,R,S,C,A,U){this.task=b,this.args=m,this.rejectOnDrop=S,this.Events=C,this._states=A,this.Promise=U,this.options=T.load(w,R),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===R.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((ie,pe)=>{this._resolve=ie,this._reject=pe}),this.retryCount=0}_sanitizePriority(b){var m;return m=~~b!==b?E:b,m<0?0:m>_-1?_-1:m}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:b,message:m="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(b??new k(m)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(b){var m;if(m=this._states.jobStatus(this.options.id),!(m===b||b==="DONE"&&m===null))throw new k(`Invalid job status ${m}, expected ${b}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(b,m){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:b,blocked:m})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(b,m,w,R){var S,C,A;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),C={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",C);try{if(A=await(b!=null?b.schedule(this.options,this.task,...this.args):this.task(...this.args)),m())return this.doDone(C),await R(this.options,C),this._assertStatus("DONE"),this._resolve(A)}catch(U){return S=U,this._onFailure(S,C,m,w,R)}}doExpire(b,m,w){var R,S;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),S={args:this.args,options:this.options,retryCount:this.retryCount},R=new k(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(R,S,b,m,w)}async _onFailure(b,m,w,R,S){var C,A;if(w())return C=await this.Events.trigger("failed",b,m),C!=null?(A=~~C,this.Events.trigger("retry",`Retrying ${this.options.id} after ${A} ms`,m),this.retryCount++,R(A)):(this.doDone(m),await S(this.options,m),this._assertStatus("DONE"),this._reject(b))}doDone(b){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",b)}};var v=h,G,B,J;J=s,G=f,B=class{constructor(b,m,w){this.instance=b,this.storeOptions=m,this.clientId=this.instance._randomIndex(),J.load(w,w,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var b;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(b=this.heartbeat=setInterval(()=>{var m,w,R,S,C;if(S=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&S>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=S,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&S>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:m,reservoirIncreaseMaximum:R,reservoir:C}=this.storeOptions,this._lastReservoirIncrease=S,w=R!=null?Math.min(m,R-C):m,w>0))return this.storeOptions.reservoir+=w,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?b.unref():void 0:clearInterval(this.heartbeat)}async __publish__(b){return await this.yieldLoop(),this.instance.Events.trigger("message",b.toString())}async __disconnect__(b){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(b=0){return new this.Promise(function(m,w){return setTimeout(m,b)})}computePenalty(){var b;return(b=this.storeOptions.penalty)!=null?b:15*this.storeOptions.minTime||5e3}async __updateSettings__(b){return await this.yieldLoop(),J.overwrite(b,b,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(b){return await this.yieldLoop(),this._nextRequest+this.timeout<b}computeCapacity(){var b,m;return{maxConcurrent:b,reservoir:m}=this.storeOptions,b!=null&&m!=null?Math.min(b-this._running,m):b!=null?b-this._running:m??null}conditionsCheck(b){var m;return m=this.computeCapacity(),m==null||b<=m}async __incrementReservoir__(b){var m;return await this.yieldLoop(),m=this.storeOptions.reservoir+=b,this.instance._drainAll(this.computeCapacity()),m}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(b){return this._unblockTime>=b}check(b,m){return this.conditionsCheck(b)&&this._nextRequest-m<=0}async __check__(b){var m;return await this.yieldLoop(),m=Date.now(),this.check(b,m)}async __register__(b,m,w){var R,S;return await this.yieldLoop(),R=Date.now(),this.conditionsCheck(m)?(this._running+=m,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=m),S=Math.max(this._nextRequest-R,0),this._nextRequest=R+S+this.storeOptions.minTime,{success:!0,wait:S,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(b,m){var w,R,S;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&m>this.storeOptions.maxConcurrent)throw new G(`Impossible to add a job having a weight of ${m} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return R=Date.now(),S=this.storeOptions.highWater!=null&&b===this.storeOptions.highWater&&!this.check(m,R),w=this.strategyIsBlock()&&(S||this.isBlocked(R)),w&&(this._unblockTime=R+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:S,blocked:w,strategy:this.storeOptions.strategy}}async __free__(b,m){return await this.yieldLoop(),this._running-=m,this._done+=m,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var te=B,re,He;re=f,He=class{constructor(b){this.status=b,this._jobs={},this.counts=this.status.map(function(){return 0})}next(b){var m,w;if(m=this._jobs[b],w=m+1,m!=null&&w<this.status.length)return this.counts[m]--,this.counts[w]++,this._jobs[b]++;if(m!=null)return this.counts[m]--,delete this._jobs[b]}start(b){var m;return m=0,this._jobs[b]=m,this.counts[m]++}remove(b){var m;return m=this._jobs[b],m!=null&&(this.counts[m]--,delete this._jobs[b]),m!=null}jobStatus(b){var m;return(m=this.status[this._jobs[b]])!=null?m:null}statusJobs(b){var m,w,R,S,C;if(b!=null){if(w=this.status.indexOf(b),w<0)throw new re(`status must be one of ${this.status.join(", ")}`);R=this._jobs,S=[];for(m in R)C=R[m],C===w&&S.push(m);return S}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((b,m,w)=>(b[this.status[w]]=m,b),{})}};var de=He,Ft,P;Ft=i,P=class{constructor(b,m){this.schedule=this.schedule.bind(this),this.name=b,this.Promise=m,this._running=0,this._queue=new Ft}isEmpty(){return this._queue.length===0}async _tryToRun(){var b,m,w,R,S,C,A;if(this._running<1&&this._queue.length>0)return this._running++,{task:A,args:b,resolve:S,reject:R}=this._queue.shift(),m=await async function(){try{return C=await A(...b),function(){return S(C)}}catch(U){return w=U,function(){return R(w)}}}(),this._running--,this._tryToRun(),m()}schedule(b,...m){var w,R,S;return S=R=null,w=new this.Promise(function(C,A){return S=C,R=A}),this._queue.push({task:b,args:m,resolve:S,reject:R}),this._tryToRun(),w}};var M=P,De="2.19.5",_t={version:De},Mt=Object.freeze({version:De,default:_t}),O=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),N=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Et=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),st,ve,xe,Rt,Fr,Bt;Bt=s,st=c,Rt=O,xe=N,Fr=Et,ve=function(){class I{constructor(m={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=m,Bt.load(this.limiterOptions,this.defaults,this),this.Events=new st(this),this.instances={},this.Bottleneck=zd,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Rt(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new xe(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(m=""){var w;return(w=this.instances[m])!=null?w:(()=>{var R;return R=this.instances[m]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${m}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",R,m),R})()}async deleteKey(m=""){var w,R;return R=this.instances[m],this.connection&&(w=await this.connection.__runCommand__(["del",...Fr.allKeys(`${this.id}-${m}`)])),R!=null&&(delete this.instances[m],await R.disconnect()),R!=null||w>0}limiters(){var m,w,R,S;w=this.instances,R=[];for(m in w)S=w[m],R.push({key:m,limiter:S});return R}keys(){return Object.keys(this.instances)}async clusterKeys(){var m,w,R,S,C,A,U,ie,pe;if(this.connection==null)return this.Promise.resolve(this.keys());for(A=[],m=null,pe=`b_${this.id}-`.length,w=9;m!==0;)for([ie,R]=await this.connection.__runCommand__(["scan",m??0,"match",`b_${this.id}-*_settings`,"count",1e4]),m=~~ie,S=0,U=R.length;S<U;S++)C=R[S],A.push(C.slice(pe,-w));return A}_startAutoCleanup(){var m;return clearInterval(this.interval),typeof(m=this.interval=setInterval(async()=>{var w,R,S,C,A,U;A=Date.now(),S=this.instances,C=[];for(R in S){U=S[R];try{await U._store.__groupCheck__(A)?C.push(this.deleteKey(R)):C.push(void 0)}catch(ie){w=ie,C.push(U.Events.trigger("error",w))}}return C},this.timeout/2)).unref=="function"?m.unref():void 0}updateSettings(m={}){if(Bt.overwrite(m,this.defaults,this),Bt.overwrite(m,m,this.limiterOptions),m.timeout!=null)return this._startAutoCleanup()}disconnect(m=!0){var w;if(!this.sharedConnection)return(w=this.connection)!=null?w.disconnect(m):void 0}}return I.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},I}.call(e);var Pn=ve,ur,In,jd;jd=s,In=c,ur=function(){class I{constructor(m={}){this.options=m,jd.load(this.options,this.defaults,this),this.Events=new In(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((m,w)=>this._resolve=m)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(m){var w;return this._arr.push(m),w=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),w}}return I.prototype.defaults={maxTime:null,maxSize:null,Promise},I}.call(e);var UE=ur,HE=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),qE=t(Mt),Ud,Hd,ma,fa,qd,ga,Wd,Vd,Jd,ha,ot,Kd=[].splice;ga=10,Hd=5,ot=s,Wd=d,fa=v,qd=te,Vd=HE,ma=c,Jd=de,ha=M,Ud=function(){class I{constructor(m={},...w){var R,S;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(m,w),ot.load(m,this.instanceDefaults,this),this._queues=new Wd(ga),this._scheduled={},this._states=new Jd(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new ma(this),this._submitLock=new ha("submit",this.Promise),this._registerLock=new ha("register",this.Promise),S=ot.load(m,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return R=ot.load(m,this.redisStoreDefaults,{}),new Vd(this,S,R);if(this.datastore==="local")return R=ot.load(m,this.localStoreDefaults,{}),new qd(this,S,R);throw new I.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var C;return(C=this._store.heartbeat)!=null&&typeof C.ref=="function"?C.ref():void 0}),this._queues.on("zero",()=>{var C;return(C=this._store.heartbeat)!=null&&typeof C.unref=="function"?C.unref():void 0})}_validateOptions(m,w){if(!(m!=null&&typeof m=="object"&&w.length===0))throw new I.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(m){return this._store.__publish__(m)}disconnect(m=!0){return this._store.__disconnect__(m)}chain(m){return this._limiter=m,this}queued(m){return this._queues.queued(m)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(m){return this._states.jobStatus(m)}jobs(m){return this._states.statusJobs(m)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(m=1){return this._store.__check__(m)}_clearGlobalState(m){return this._scheduled[m]!=null?(clearTimeout(this._scheduled[m].expiration),delete this._scheduled[m],!0):!1}async _free(m,w,R,S){var C,A;try{if({running:A}=await this._store.__free__(m,R.weight),this.Events.trigger("debug",`Freed ${R.id}`,S),A===0&&this.empty())return this.Events.trigger("idle")}catch(U){return C=U,this.Events.trigger("error",C)}}_run(m,w,R){var S,C,A;return w.doRun(),S=this._clearGlobalState.bind(this,m),A=this._run.bind(this,m,w),C=this._free.bind(this,m,w),this._scheduled[m]={timeout:setTimeout(()=>w.doExecute(this._limiter,S,A,C),R),expiration:w.options.expiration!=null?setTimeout(function(){return w.doExpire(S,A,C)},R+w.options.expiration):void 0,job:w}}_drainOne(m){return this._registerLock.schedule(()=>{var w,R,S,C,A;return this.queued()===0?this.Promise.resolve(null):(A=this._queues.getFirst(),{options:C,args:w}=S=A.first(),m!=null&&C.weight>m?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${C.id}`,{args:w,options:C}),R=this._randomIndex(),this._store.__register__(R,C.weight,C.expiration).then(({success:U,wait:ie,reservoir:pe})=>{var Ln;return this.Events.trigger("debug",`Drained ${C.id}`,{success:U,args:w,options:C}),U?(A.shift(),Ln=this.empty(),Ln&&this.Events.trigger("empty"),pe===0&&this.Events.trigger("depleted",Ln),this._run(R,S,ie),this.Promise.resolve(C.weight)):this.Promise.resolve(null)})))})}_drainAll(m,w=0){return this._drainOne(m).then(R=>{var S;return R!=null?(S=m!=null?m-R:m,this._drainAll(S,w+R)):this.Promise.resolve(w)}).catch(R=>this.Events.trigger("error",R))}_dropAllQueued(m){return this._queues.shiftAll(function(w){return w.doDrop({message:m})})}stop(m={}){var w,R;return m=ot.load(m,this.stopDefaults),R=S=>{var C;return C=()=>{var A;return A=this._states.counts,A[0]+A[1]+A[2]+A[3]===S},new this.Promise((A,U)=>C()?A():this.on("done",()=>{if(C())return this.removeAllListeners("done"),A()}))},w=m.dropWaitingJobs?(this._run=function(S,C){return C.doDrop({message:m.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var S,C,A;C=this._scheduled;for(S in C)A=C[S],this.jobStatus(A.job.options.id)==="RUNNING"&&(clearTimeout(A.timeout),clearTimeout(A.expiration),A.job.doDrop({message:m.dropErrorMessage}));return this._dropAllQueued(m.dropErrorMessage),R(0)}))):this.schedule({priority:ga-1,weight:0},()=>R(1)),this._receive=function(S){return S._reject(new I.prototype.BottleneckError(m.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new I.prototype.BottleneckError("stop() has already been called")),w}async _addToQueue(m){var w,R,S,C,A,U,ie;({args:w,options:C}=m);try{({reachedHWM:A,blocked:R,strategy:ie}=await this._store.__submit__(this.queued(),C.weight))}catch(pe){return S=pe,this.Events.trigger("debug",`Could not queue ${C.id}`,{args:w,options:C,error:S}),m.doDrop({error:S}),!1}return R?(m.doDrop(),!0):A&&(U=ie===I.prototype.strategy.LEAK?this._queues.shiftLastFrom(C.priority):ie===I.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(C.priority+1):ie===I.prototype.strategy.OVERFLOW?m:void 0,U?.doDrop(),U==null||ie===I.prototype.strategy.OVERFLOW)?(U==null&&m.doDrop(),A):(m.doQueue(A,R),this._queues.push(m),await this._drainAll(),A)}_receive(m){return this._states.jobStatus(m.options.id)!=null?(m._reject(new I.prototype.BottleneckError(`A job with the same id already exists (id=${m.options.id})`)),!1):(m.doReceive(),this._submitLock.schedule(this._addToQueue,m))}submit(...m){var w,R,S,C,A,U,ie;return typeof m[0]=="function"?(A=m,[R,...m]=A,[w]=Kd.call(m,-1),C=ot.load({},this.jobDefaults)):(U=m,[C,R,...m]=U,[w]=Kd.call(m,-1),C=ot.load(C,this.jobDefaults)),ie=(...pe)=>new this.Promise(function(Ln,VE){return R(...pe,function(...Yd){return(Yd[0]!=null?VE:Ln)(Yd)})}),S=new fa(ie,m,C,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),S.promise.then(function(pe){return typeof w=="function"?w(...pe):void 0}).catch(function(pe){return Array.isArray(pe)?typeof w=="function"?w(...pe):void 0:typeof w=="function"?w(pe):void 0}),this._receive(S)}schedule(...m){var w,R,S;return typeof m[0]=="function"?([S,...m]=m,R={}):[R,S,...m]=m,w=new fa(S,m,R,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(w),w.promise}wrap(m){var w,R;return w=this.schedule.bind(this),R=function(...S){return w(m.bind(this),...S)},R.withOptions=function(S,...C){return w(S,m,...C)},R}async updateSettings(m={}){return await this._store.__updateSettings__(ot.overwrite(m,this.storeDefaults)),ot.overwrite(m,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(m=0){return this._store.__incrementReservoir__(m)}}return I.default=I,I.Events=ma,I.version=I.prototype.version=qE.version,I.strategy=I.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},I.BottleneckError=I.prototype.BottleneckError=f,I.Group=I.prototype.Group=Pn,I.RedisConnection=I.prototype.RedisConnection=O,I.IORedisConnection=I.prototype.IORedisConnection=N,I.Batcher=I.prototype.Batcher=UE,I.prototype.jobDefaults={priority:Hd,weight:1,expiration:null,id:"<no-id>"},I.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:I.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},I.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},I.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},I.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},I.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},I}.call(e);var zd=Ud,WE=zd;return WE})});var Nt,ol=y(()=>{Nt=class extends Error{name;status;request;response;constructor(t,r,n){super(t,{cause:n.cause}),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0);"response"in n&&(this.response=n.response);let s=Object.assign({},n.request);n.request.headers.authorization&&(s.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),s.url=s.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=s}}});function jO(e){return e.request!==void 0}async function py(e,t,r,n){if(!jO(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 UO(e,t,r,n){let s=new my.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(HO.bind(null,e,t,r),n)}async function HO(e,t,r,n){let s=await r(n);if(s.data&&s.data.errors&&s.data.errors.length>0&&/Something went wrong while executing your query/.test(s.data.errors[0].message)){let o=new Nt(s.data.errors[0].message,500,{request:n,response:s});return py(e,t,o,n)}return s}function il(e,t){let r=Object.assign({enabled:!0,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,410,422,451],retries:3},t.retry),n={retry:{retryRequest:(s,o,i)=>(s.request.request=Object.assign({},s.request.request,{retries:o,retryAfter:i}),s)}};return r.enabled&&(e.hook.error("request",py.bind(null,r,n)),e.hook.wrap("request",UO.bind(null,r,n))),n}var my,BO,fy=y(()=>{my=ba(sl(),1);ol();BO="0.0.0-development";il.VERSION=BO});function WO(e,t,r){return e.retryLimiter.schedule(VO,e,t,r)}async function VO(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),s=JO(r.method,n),o=!s&&r.method!=="GET"&&r.method!=="HEAD",i=r.method==="GET"&&n.startsWith("/search/"),a=n.startsWith("/graphql"),u=~~t.retryCount>0?{priority:0,weight:0}:{};e.clustering&&(u.expiration=1e3*60),(o||a)&&await e.write.key(e.id).schedule(u,al),o&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(u,al),i&&await e.search.key(e.id).schedule(u,al);let l=(s?e.auth:e.global).key(e.id).schedule(u,t,r);if(a){let p=await l;if(p.data.errors!=null&&p.data.errors.some(d=>d.type==="RATE_LIMITED"))throw Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:p,data:p.data})}return l}function JO(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 zO(e){let r=`^(?:${e.map(n=>n.split("/").map(s=>s.startsWith("{")?"(?:.+?)":s).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}function ki(e,t){let{enabled:r=!0,Bottleneck:n=hy.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:yy,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:s},t.throttle);if(typeof c.onSecondaryRateLimit!="function"||typeof c.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
|
|
89
|
+
You must pass the onSecondaryRateLimit and onRateLimit error handlers.
|
|
90
|
+
See https://octokit.github.io/rest.js/#throttling
|
|
91
|
+
|
|
92
|
+
const octokit = new Octokit({
|
|
93
|
+
throttle: {
|
|
94
|
+
onSecondaryRateLimit: (retryAfter, options) => {/* ... */},
|
|
95
|
+
onRateLimit: (retryAfter, options) => {/* ... */}
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
`);let u=!1,l=()=>{if(u)return;u=!0,tt.global==null&&YO(n,a),c.global=c.global??tt.global,c.auth=c.auth??tt.auth,c.search=c.search??tt.search,c.write=c.write??tt.write,c.notifications=c.notifications??tt.notifications,c.retryLimiter=c.retryLimiter??new n;let p={},d=new n.Events(p);p.on("secondary-limit",c.onSecondaryRateLimit),p.on("rate-limit",c.onRateLimit),p.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),c.retryLimiter.on("failed",async function(g,f){let[k,E,h]=f.args,{pathname:_}=new URL(h.url,"http://github.test");if(!(_.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let v=~~E.retryCount;E.retryCount=v,h.request.retryCount=v;let{wantRetry:G,retryAfter:B=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let J=Number(g.response.headers["retry-after"])||k.fallbackSecondaryRateRetryAfter;return{wantRetry:await d.trigger("secondary-limit",J,h,e,v),retryAfter:J}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(J=>J.type==="RATE_LIMITED")){let J=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),te=Math.max(Math.ceil((J-Date.now())/1e3)+1,0);return{wantRetry:await d.trigger("rate-limit",te,h,e,v),retryAfter:te}}return{}}();if(G)return E.retryCount++,B*k.retryAfterBaseValue})};return e.hook.wrap("request",(p,d)=>(l(),WO(c,p,d))),{}}var hy,qO,al,KO,gy,yy,tt,YO,by=y(()=>{hy=ba(sl(),1),qO="0.0.0-development",al=()=>Promise.resolve();KO=["/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"];gy=zO(KO),yy=gy.test.bind(gy),tt={},YO=function(e,t){tt.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),tt.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),tt.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),tt.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),tt.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};ki.VERSION=qO;ki.triggersNotification=yy});function Xt(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:"<environment undetectable>"}var Ls=y(()=>{});function Si(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((s,o)=>Si.bind(null,e,o,s,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((s,o)=>o.hook.bind(null,s,n),r)():r(n))}var wy=y(()=>{});function _y(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 Ey=y(()=>{});function Ry(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(s=>s.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var ky=y(()=>{});function vy(e,t,r){let n=Ty(Ry,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(s=>{let o=r?[t,s,r]:[t,s];e[s]=e.api[s]=Ty(_y,null).apply(null,o)})}function QO(){let e=Symbol("Singular"),t={registry:{}},r=Si.bind(null,t,e);return vy(r,t,e),r}function XO(){let e={registry:{}},t=Si.bind(null,e);return vy(t,e),t}var Sy,Ty,xy,Cy=y(()=>{wy();Ey();ky();Sy=Function.bind,Ty=Sy.bind(Sy);xy={Singular:QO,Collection:XO}});function r0(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function n0(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 Py(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{n0(t[n])?n in e?r[n]=Py(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Oy(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function ul(e,t,r){if(typeof t=="string"){let[s,o]=t.split(" ");r=Object.assign(o?{method:s,url:o}:{url:s},r)}else r=Object.assign({},t);r.headers=r0(r.headers),Oy(r),Oy(r.headers);let n=Py(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 s0(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 i0(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function a0(e){let t=e.match(o0);return t?t.map(i0).reduce((r,n)=>r.concat(n),[]):[]}function Ay(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Iy(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function En(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Ds(e,t,r){return t=e==="+"||e==="#"?Iy(t):En(t),r?En(r)+"="+t:t}function _n(e){return e!=null}function cl(e){return e===";"||e==="&"||e==="?"}function c0(e,t,r,n){var s=e[r],o=[];if(_n(s)&&s!=="")if(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||typeof s=="boolean")s=s.toString(),n&&n!=="*"&&(s=s.substring(0,parseInt(n,10))),o.push(Ds(t,s,cl(t)?r:""));else if(n==="*")Array.isArray(s)?s.filter(_n).forEach(function(i){o.push(Ds(t,i,cl(t)?r:""))}):Object.keys(s).forEach(function(i){_n(s[i])&&o.push(Ds(t,s[i],i))});else{let i=[];Array.isArray(s)?s.filter(_n).forEach(function(a){i.push(Ds(t,a))}):Object.keys(s).forEach(function(a){_n(s[a])&&(i.push(En(a)),i.push(Ds(t,s[a].toString())))}),cl(t)?o.push(En(r)+"="+i.join(",")):i.length!==0&&o.push(i.join(","))}else t===";"?_n(s)&&o.push(En(r)):s===""&&(t==="&"||t==="?")?o.push(En(r)+"="):s===""&&o.push("");return o}function u0(e){return{expand:l0.bind(null,e)}}function l0(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(c0(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 Iy(o)}),e==="/"?e:e.replace(/\/$/,"")}function Ly(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),s,o=Ay(e,["method","baseUrl","url","headers","request","mediaType"]),i=a0(r);r=u0(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=Ay(o,a);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(l=>l.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let l=n.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g)||[];n.accept=l.concat(e.mediaType.previews).map(p=>{let d=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${p}-preview${d}`}).join(",")}return["GET","HEAD"].includes(t)?r=s0(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 d0(e,t,r){return Ly(ul(e,t,r))}function Dy(e,t){let r=ul(e,t),n=d0.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Dy.bind(null,r),merge:ul.bind(null,r),parse:Ly})}var ZO,e0,t0,o0,Gy,$y=y(()=>{Ls();ZO="0.0.0-development",e0=`octokit-endpoint.js/${ZO} ${Xt()}`,t0={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":e0},mediaType:{format:""}};o0=/\{[^{}}]+\}/g;Gy=Dy(null,t0)});var Hy=Qd(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});Ti.format=g0;Ti.parse=h0;var p0=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,Fy=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,m0=/[\\"]/g,f0=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,My=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function g0(e){let{type:t,parameters:r}=e;if(!t||!f0.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let s of Object.keys(r)){if(!Fy.test(s))throw new TypeError(`Invalid parameter name: ${s}`);n+=`; ${s}=${_0(r[s])}`}return n}function h0(e,t){let r=e.length,n=dl(e,0,r),s=n;n=ll(e,n,r);let o=pl(e,s,n),i=e.slice(s,o).toLowerCase(),a=t?.parameters===!1?new My:w0(e,n,r);return{type:i,parameters:a}}var By=32,jy=9,Uy=59,y0=61,Ny=34,b0=92;function w0(e,t,r){let n=new My;e:for(;t<r;){t=dl(e,t+1,r);let s=t;for(;t<r;){let o=e.charCodeAt(t);if(o===Uy)continue e;if(o===y0){let i=pl(e,s,t),a=e.slice(s,i).toLowerCase();if(t=dl(e,t+1,r),t<r&&e.charCodeAt(t)===Ny){t++;let u="";for(;t<r;){let l=e.charCodeAt(t++);if(l===Ny){t=ll(e,t,r),n[a]===void 0&&(n[a]=u);break}if(l===b0&&t<r){u+=e[t++];continue}u+=String.fromCharCode(l)}continue e}let c=t;if(t=ll(e,t,r),n[a]===void 0){let u=pl(e,c,t);n[a]=e.slice(c,u)}continue e}t++}}return n}function ll(e,t,r){for(;t<r&&e.charCodeAt(t)!==Uy;)t++;return t}function dl(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==By&&n!==jy)break;t++}return t}function pl(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==By&&n!==jy)break;r--}return r}function _0(e){if(Fy.test(e))return e;if(p0.test(e))return`"${e.replace(m0,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});var E0,xi,Zt,ml,Ky,qy,Wy,fl,gl,R0,zy,vi,k0,S0,T0,Yy,Vy,v0,x0,C0,Jy,Qy,Xy=y(()=>{E0=/^-?\d+$/,xi=/^-?\d+n+$/,Zt=JSON.stringify,ml=JSON.parse,Ky=/^-?\d+n$/,qy=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Wy=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,fl=e=>e===void 0||typeof e=="function"||typeof e=="symbol",gl=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",R0=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let s=typeof t=="function",o=Array.isArray(t)?new Set(t.map(String)):null,i=(f,k,E)=>(E!==null&&typeof E=="object"&&typeof E.toJSON=="function"&&(E=E.toJSON(k)),typeof E=="string"&&xi.test(E)?E+"n":typeof E=="bigint"?"rawJSON"in JSON?JSON.rawJSON(E.toString()):E.toString()+"n":(s&&(E=t.call(f,k,E)),E!==null&&typeof E=="object"&&(E instanceof Number||E instanceof String||E instanceof Boolean)&&(E=E.valueOf()),E)),a=i({"":e},"",e);if(fl(a))return;let c=a===null||typeof a!="object",u=gl(a);if(c||u)return Zt(a);let l=[],p=0,d=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;d.length>0;){let f=d[d.length-1];f.index===0&&(l.push(f.isArray?"[":"{"),p++);let k=!1;if(f.isArray)if(f.index<f.val.length){f.first||l.push(","),n&&l.push(`
|
|
99
|
+
`+n.repeat(p));let E=f.val[f.index],h=i(f.val,String(f.index),E);if(fl(h))l.push("null"),f.first=!1,f.index++;else{let _=h!==null&&typeof h=="object",T=gl(h);if(_&&!T){if(g.has(h))throw new TypeError("Converting circular structure to JSON");g.add(h),d.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(Zt(h)),f.first=!1,f.index++}}else k=!0;else{for(;f.index<f.keys.length;){let h=f.keys[f.index++];if(o&&!o.has(h))continue;let T=f.val[h],v=i(f.val,h,T);if(fl(v))continue;f.first||l.push(","),n?l.push(`
|
|
100
|
+
`+n.repeat(p)+Zt(h)+": "):l.push(Zt(h)+":");let G=v!==null&&typeof v=="object",B=gl(v);if(G&&!B){if(g.has(v))throw new TypeError("Converting circular structure to JSON");g.add(v),d.push({parent:f.val,key:h,val:v,isArray:Array.isArray(v),keys:Array.isArray(v)?null:Object.keys(v),index:0,first:!0}),f.first=!1;break}else l.push(Zt(v)),f.first=!1}f.index>=f.keys.length&&d[d.length-1]===f&&(k=!0)}k&&(p--,!f.first&&n&&l.push(`
|
|
101
|
+
`+n.repeat(p)),l.push(f.isArray?"]":"}"),g.delete(f.val),d.pop())}return l.join("")},zy=(e,t,r)=>{try{return"rawJSON"in JSON?Zt(e,(a,c)=>typeof c=="bigint"?JSON.rawJSON(c.toString()):typeof t=="function"?t(a,c):(Array.isArray(t)&&t.includes(a),c),r):e?Zt(e,(a,c)=>typeof c=="string"&&xi.test(c)||typeof c=="bigint"?c.toString()+"n":typeof t=="function"?t(a,c):(Array.isArray(t)&&t.includes(a),c),r).replace(qy,"$1$2$3").replace(Wy,"$1$2$3"):Zt(e,t,r)}catch(n){if(n instanceof RangeError){let s=R0(e,t,r);return s===void 0?void 0:"rawJSON"in JSON?s:s.replace(qy,"$1$2$3").replace(Wy,"$1$2$3")}throw n}},vi=new Map,k0=()=>{let e=JSON.parse.toString();if(vi.has(e))return vi.get(e);try{let t=JSON.parse("1",(r,n,s)=>!!s?.source&&s.source==="1");return vi.set(e,t),t}catch{return vi.set(e,!1),!1}},S0=(e,t,r,n)=>typeof t=="string"&&Ky.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&xi.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,T0=(e,t)=>JSON.parse(e,(r,n,s)=>{let o=typeof n=="number",i=n>Number.MAX_SAFE_INTEGER||n<Number.MIN_SAFE_INTEGER,a=o&&i,c=s&&E0.test(s.source);return a&&c?BigInt(s.source):typeof t=="function"?t(r,n,s):n}),Yy=Number.MAX_SAFE_INTEGER.toString(),Vy=Yy.length,v0=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,x0=/^"-?\d+n+"$/,C0=(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"&&(Ky.test(a)?a=BigInt(a.slice(0,-1)):xi.test(a)&&(a=a.slice(0,-1))),typeof t=="function"&&(a=t.call(o,i,a)),a===void 0?delete o[i]:o[i]=a,n.pop()}else{s.visited=!0;let o=s.parent[s.key];if(o!==null&&typeof o=="object"){let a=Object.keys(o);for(let c=a.length-1;c>=0;c--)n.push({parent:o,key:a[c],visited:!1})}}}return r[""]},Jy=e=>e.replace(v0,(t,r,n,s)=>{let o=t[0]==='"';if(o&&x0.test(t))return t.substring(0,t.length-1)+'n"';let a=n||s,c=r&&(r.length<Vy||r.length===Vy&&r<=Yy);return o||a||c?t:'"'+t+'n"'}),Qy=(e,t)=>{if(!e)return ml(e,t);try{if(k0())return T0(e,t);let r=Jy(e);return ml(r,(n,s,o)=>S0(n,s,o,t))}catch(r){if(r instanceof RangeError){let n=Jy(e),s=ml(n);return C0(s,t)}throw r}}});function P0(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 eb(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=P0(e.body)||Array.isArray(e.body)?zy(e.body):e.body,o=Object.fromEntries(Object.entries(e.headers).map(([p,d])=>[p,String(d)])),i;try{i=await t(e.url,{method:e.method,body:s,redirect:e.request?.redirect,headers:o,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(p){let d="Unknown Error";if(p instanceof Error){if(p.name==="AbortError")throw p.status=500,p;d=p.message,p.name==="TypeError"&&"cause"in p&&(p.cause instanceof Error?d=p.cause.message:typeof p.cause=="string"&&(d=p.cause))}let g=new Nt(d,500,{request:e});throw g.cause=p,g}let a=i.status,c=i.url,u={};for(let[p,d]of i.headers)u[p]=d;let l={url:c,status:a,headers:u,data:""};if("deprecation"in u){let p=u.link&&u.link.match(/<([^<>]+)>; rel="deprecation"/),d=p&&p.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${u.sunset}${d?`. See ${d}`:""}`)}if(a===204||a===205)return l;if(e.method==="HEAD"){if(a<400)return l;throw new Nt(i.statusText,a,{response:l,request:e})}if(a===304)throw l.data=await hl(i),new Nt("Not modified",a,{response:l,request:e});if(a>=400)throw l.data=await hl(i),new Nt(L0(l.data),a,{response:l,request:e});return l.data=n?await hl(i):i.body,l}async function hl(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(Zy);let r=(0,tb.parse)(t);if(I0(r)){let n="";try{return n=await e.text(),Qy(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(Zy):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function I0(e){return e.type==="application/json"||e.type==="application/scim+json"}function L0(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if(typeof e=="object"&&e!==null&&"message"in e){let t=e,r="documentation_url"in t?` - ${t.documentation_url}`:"";return Array.isArray(t.errors)?`${t.message}: ${t.errors.map(n=>JSON.stringify(n)).join(", ")}${r}`:`${t.message}${r}`}return`Unknown error: ${JSON.stringify(e)}`}function yl(e,t){let r=e.defaults(t);return Object.assign(function(s,o){let i=r.merge(s,o);if(!i.request||!i.request.hook)return eb(r.parse(i));let a=(c,u)=>eb(r.parse(r.merge(c,u)));return Object.assign(a,{endpoint:r,defaults:yl.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:yl.bind(null,r)})}var tb,O0,A0,Zy,Gs,bl=y(()=>{$y();Ls();tb=ba(Hy(),1);Xy();ol();O0="10.0.13",A0={headers:{"user-agent":`octokit-request.js/${O0} ${Xt()}`}};Zy=()=>"";Gs=yl(Gy,A0);});function G0(e){return`Request failed due to following response errors:
|
|
102
|
+
`+e.errors.map(t=>` - ${t.message}`).join(`
|
|
103
|
+
`)}function M0(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(F0.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)=>N0.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 rb.test(o)&&(s.url=o.replace(rb,"/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 $0(s,a,i.data)}return i.data.data})}function wl(e,t){let r=e.defaults(t);return Object.assign((s,o)=>M0(r,s,o),{defaults:wl.bind(null,r),endpoint:r.endpoint})}function nb(e){return wl(e,{method:"POST",url:"/graphql"})}var D0,$0,N0,F0,rb,OH,sb=y(()=>{bl();Ls();D0="0.0.0-development";$0=class extends Error{constructor(e,t,r){super(G0(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},N0=["method","baseUrl","url","headers","request","query","mediaType","operationName"],F0=["query","method","url"],rb=/\/api\/v3\/?$/;OH=wl(Gs,{headers:{"user-agent":`octokit-graphql.js/${D0} ${Xt()}`},method:"POST",url:"/graphql"});});async function j0(e){let t=B0(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 U0(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function H0(e,t,r,n){let s=t.endpoint.merge(r,n);return s.headers.authorization=U0(e),t(s)}var _l,ob,ib,B0,ab,cb=y(()=>{_l="(?:[a-zA-Z0-9_-]+)",ob="\\.",ib=new RegExp(`^${_l}${ob}${_l}${ob}${_l}$`),B0=ib.test.bind(ib);ab=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(j0.bind(null,t),{hook:H0.bind(null,t)})}});var El,ub=y(()=>{El="7.0.7"});function V0(e={}){return typeof e.debug!="function"&&(e.debug=lb),typeof e.info!="function"&&(e.info=lb),typeof e.warn!="function"&&(e.warn=q0),typeof e.error!="function"&&(e.error=W0),e}var lb,q0,W0,db,Ci,pb=y(()=>{Ls();Cy();bl();sb();cb();ub();lb=()=>{},q0=console.warn.bind(console),W0=console.error.bind(console);db=`octokit-core.js/${El} ${Xt()}`,Ci=class{static VERSION=El;static defaults(t){return class extends this{constructor(...n){let s=n[0]||{};if(typeof t=="function"){super(t(s));return}super(Object.assign({},t,s,s.userAgent&&t.userAgent?{userAgent:`${s.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(s=>!r.includes(s)))}}constructor(t={}){let r=new xy.Collection,n={baseUrl:Gs.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${db}`:db,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Gs.defaults(n),this.graphql=nb(this.request).defaults(n),this.log=V0(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=ab(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 mb,fb=y(()=>{mb="6.0.0"});function Rl(e){e.hook.wrap("request",(t,r)=>{e.log.debug("request",r);let n=Date.now(),s=e.request.endpoint.parse(r),o=s.url.replace(r.baseUrl,"");return t(r).then(i=>{let a=i.headers["x-github-request-id"];return e.log.info(`${s.method} ${o} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i}).catch(i=>{let a=i.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${s.method} ${o} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i})})}var gb=y(()=>{fb();Rl.VERSION=mb});function K0(e){if(!e.data)return{...e,data:[]};if(!(("total_count"in e.data||"total_commits"in e.data)&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,s=e.data.total_count,o=e.data.total_commits;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count,delete e.data.total_commits;let i=Object.keys(e.data)[0],a=e.data[i];return e.data=a,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=s,e.data.total_commits=o,e}function kl(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),s=typeof t=="function"?t:e.request,o=n.method,i=n.headers,a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{let c=await s({method:o,url:a,headers:i}),u=K0(c);if(a=((u.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in u.data){let l=new URL(u.url),p=l.searchParams,d=parseInt(p.get("page")||"1",10),g=parseInt(p.get("per_page")||"250",10);d*g<u.data.total_commits&&(p.set("page",String(d+1)),a=l.toString())}return{value:u}}catch(c){if(c.status!==409)throw c;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function hb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),yb(e,[],kl(e,t,r)[Symbol.asyncIterator](),n)}function yb(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:yb(e,t,r,n)})}function Sl(e){return{paginate:Object.assign(hb.bind(null,e),{iterator:kl.bind(null,e)})}}var J0,VH,bb=y(()=>{J0="0.0.0-development";VH=Object.assign(hb,{iterator:kl});Sl.VERSION=J0});var Tl,wb=y(()=>{Tl="17.0.0"});var z0,_b,Eb=y(()=>{z0={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"]}},_b=z0});function vl(e){let t={};for(let r of Or.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},Y0);return t}function Q0(e,t,r,n,s){let o=e.request.defaults(n);function i(...a){let c=o.endpoint.merge(...a);if(s.mapToData)return c=Object.assign({},c,{data:c[s.mapToData],[s.mapToData]:void 0}),o(c);if(s.renamed){let[u,l]=s.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${u}.${l}()`)}if(s.deprecated&&e.log.warn(s.deprecated),s.renamedParameters){let u=o.endpoint.merge(...a);for(let[l,p]of Object.entries(s.renamedParameters))l in u&&(e.log.warn(`"${l}" parameter is deprecated for "octokit.${t}.${r}()". Use "${p}" instead`),p in u||(u[p]=u[l]),delete u[l]);return o(u)}return o(...a)}return Object.assign(i,o)}var Or,Y0,Rb=y(()=>{Eb();Or=new Map;for(let[e,t]of Object.entries(_b))for(let[r,n]of Object.entries(t)){let[s,o,i]=n,[a,c]=s.split(/ /),u=Object.assign({method:a,url:c},o);Or.has(e)||Or.set(e,new Map),Or.get(e).set(r,{scope:e,methodName:r,endpointDefaults:u,decorations:i})}Y0={has({scope:e},t){return Or.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Or.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let s=Or.get(t).get(n);if(!s)return;let{endpointDefaults:o,decorations:i}=s;return i?r[n]=Q0(e,t,n,o,i):r[n]=e.request.defaults(o),r[n]}}});function X0(e){return{rest:vl(e)}}function xl(e){let t=vl(e);return{...t,rest:t}}var kb=y(()=>{wb();Rb();X0.VERSION=Tl;xl.VERSION=Tl});var Sb,Tb=y(()=>{Sb="22.0.1"});var vb,xb=y(()=>{pb();gb();bb();kb();Tb();vb=Ci.plugin(Rl,xl,Sl).defaults({userAgent:`octokit-rest.js/${Sb}`})});var dq,Cb=y(()=>{fy();by();xb();dq=vb.plugin(il,ki)});var Ob=y(()=>{});var Ab=y(()=>{});var Pb=y(()=>{});var Ib=y(()=>{ly();dy();Cb();Ob();Ab();Pb()});import{execFile as nA}from"node:child_process";import{promisify as sA}from"node:util";var pW,Lb=y(()=>{"use strict";Ib();tl();pW=sA(nA)});var Db=y(()=>{"use strict";Oh();Gh();$h();bi();Fh();Mh();Bh();jh();yi();Uh();Hh();qh();Wh();Ju();Vh();Jh();Kh();zh();_i();Yh();Qh();Vu();Xu();Zu();Zh();ey();ty();ry();wi();Qu();Yu();sy();tl();oy();iy();ay();Lb()});import{EventEmitter as oA}from"node:events";import{spawn as iA}from"node:child_process";function Ai(e,t){let r=Number(t);return!Number.isSafeInteger(r)||r<=0?!1:!!(e.pull_request?.number===r||e.check_run?.pull_requests?.some(n=>n.number===r)||e.check_suite?.pull_requests?.some(n=>n.number===r))}function Pi(e,t){return e.workflow_run!=null&&String(e.workflow_run.id)===t}var $s,Cl,aA,cA,uA,lA,Oi,Ol=y(()=>{$s="github-webhook",Cl="github.webhook.delivery";aA="pull_request,pull_request_review,check_run,check_suite,workflow_run",cA=3,uA=1e3,lA=/no extension matched|unknown command|command not found/i,Oi=class extends oA{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,uA).then(()=>{}),await this.stopping)}makeWakeSignalFor(r,n){return()=>{if(this._mode!=="webhook"||this._dead)return;let s=new AbortController,o=c=>{(r==="pr"?Ai(c,n):Pi(c,n))&&(a(),s.abort())},i=()=>{a()},a=()=>{this.off("delivery",o),this.off("stopped",i)};return this.on("delivery",o),this.once("stopped",i),s.signal}}spawnChild(){if(this._dead)return;let r=this.opts.ghBin??"gh",n;try{n=iA(r,["webhook","forward",`--events=${aA}`],{cwd:this.opts.cwd,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"})}catch{return}this.child=n;let s="";n.stdout?.setEncoding("utf8"),n.stdout?.on("data",i=>{s+=i;let a;for(;(a=s.indexOf(`
|
|
104
|
+
`))>=0;){let c=s.slice(0,a).trim();s=s.slice(a+1),c&&this.onLine(c)}});let o=[];n.stderr?.on("data",i=>{o.push(Buffer.from(i))}),n.once("error",()=>{this.child===n&&(this.child=void 0),this.scheduleRestart()}),n.once("close",i=>{if(this.child===n&&(this.child=void 0),this._dead)return;let a=Buffer.concat(o).toString("utf8");lA.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>=cA)return;let r=Math.min(500*Math.pow(2,this.restarts),5e3);this.restarts++,setTimeout(()=>this.spawnChild(),r).unref()}}});var Ii,Gb=y(()=>{"use strict";Ol();Ol();Pt();Ii=class extends Oi{constructor(t){super(t,Zr)}}});import{EventEmitter as dA}from"node:events";import{join as pA}from"node:path";function Pl(e){let t=Io(e.cwd),r=Xh(pA(t,".red"));return new Al({...e,leases:e.leases??ny(r),lane:e.lane??zu(r),makeForwarder:e.makeForwarder??((n,s)=>new Ii({cwd:n,cancelSignal:s})),isLeaseHolderLive:e.isLeaseHolderLive??(n=>en(n.pid,n.start_time))})}var Al,$b=y(()=>{"use strict";Db();Gb();Pt();Nc();Al=class extends dA{constructor(r){super();this.options=r}_mode="polling";cursor=0;timer;fallback;stopped=!1;syncing=!1;get mode(){return this.fallback?.mode??this._mode}async start(){let r=await this.options.leases.read($s).catch(()=>{});if(!r||!await this.options.isLeaseHolderLive(r)){this.startFallback();return}let n=await this.options.lane.read().catch(()=>{});if(!n){this.degradeToFallback();return}this.cursor=n.length,this._mode="webhook",this.emit("mode-changed","webhook"),this.timer=setInterval(()=>void this.sync().catch(()=>this.degradeToFallback()),this.options.pollIntervalMs??100),this.timer.unref(),this.options.cancelSignal.addEventListener("abort",()=>void this.stop(),{once:!0})}async stop(){this.stopped||(this.stopped=!0,this.timer&&clearInterval(this.timer),await this.fallback?.stop(),this.emit("stopped"))}makeWakeSignalFor(r,n){return()=>{if(this.fallback)return this.fallback.makeWakeSignalFor(r,n)();if(this._mode!=="webhook"||this.stopped)return;let s=new AbortController,o=a=>{(r==="pr"?Ai(a,n):Pi(a,n))&&(i(),s.abort())},i=()=>{this.off("delivery",o),this.off("stopped",i)};return this.on("delivery",o),this.once("stopped",i),s.signal}}startFallback(){this.fallback||this.stopped||(this.fallback=this.options.makeForwarder(this.options.cwd,this.options.cancelSignal),this.fallback.on("mode-changed",r=>{this.emit("mode-changed",r)}),this.fallback.on("delivery",r=>{this.emit("delivery",r)}),this.fallback.start())}degradeToFallback(){this.timer&&clearInterval(this.timer),this.timer=void 0,this._mode="polling",this.startFallback()}async sync(){if(!(this.syncing||this.stopped)){this.syncing=!0;try{let r=await this.options.lane.read();r.length<this.cursor&&(this.cursor=0);let n=r.slice(this.cursor);this.cursor=r.length;for(let o of n)o.singleton===$s&&o.kind===Cl&&o.payload&&this.emit("delivery",o.payload);let s=await this.options.leases.read($s);(!s||!await this.options.isLeaseHolderLive(s))&&this.degradeToFallback()}finally{this.syncing=!1}}}}});var Il={};K(Il,{listWaits:()=>Do,renderWaitHelp:()=>Is,runWait:()=>gA});import{randomUUID as Nb}from"node:crypto";import{mkdir as mA,rm as fA}from"node:fs/promises";async function gA(e,t=process.cwd()){let r;try{r=await xf(e)}catch(n){return await _A(e,n)}if(r.kind==="help"||e.includes("--help")||e.includes("-h"))return process.stdout.write(Is()),0;if(r.kind==="ls"){let n={schema:wf,version:1,waits:await Do(t)};return process.stdout.write(on(n,r.options.format)),0}return Gc(r.kind)?await hA({...r,kind:r.kind},t):(process.stdout.write(Is()),2)}async function hA(e,t){let r=e.kind,n=jc({id:Nb(),kind:r,target:wA(e),reason:e.options.reason,pid:process.pid,pid_start_time:await ts(process.pid),started_at:new Date().toISOString(),deadline_at:new Date(Date.now()+e.options.timeoutMs).toISOString(),timeout_ms:e.options.timeoutMs,poll_tier:Lc[r],status:"running",attempts:0}),s=Df(t,n.id),o=new AbortController,i,a=l=>{i=l,o.abort()},c=()=>a("SIGINT"),u=()=>a("SIGTERM");process.once("SIGINT",c),process.once("SIGTERM",u);try{await mA(tn(t),{recursive:!0}),await rn(s,n);let l=await yA(e,t,s,n,o.signal);i&&(l={...l,verdict:fe(`wait interrupted by ${i}`,l.verdict.details)});let p=await Ff({kind:r,entry:n,verdict:l.verdict,options:e.options,cwd:t,cleanupProven:l.cleanupProven,survivors:l.survivors});return process.stdout.write(on(p.result,e.options.format)),p.exitCode}catch(l){let p=fe(l instanceof Error?l.message:String(l)),d=as(r,n,p,{status:"success"},new Date().toISOString());return await cs(e.options.resultFile,d,e.options.format).catch(()=>{}),process.stdout.write(on(d,e.options.format)),2}finally{process.removeListener("SIGINT",c),process.removeListener("SIGTERM",u),await fA(s,{force:!0}).catch(()=>{})}}async function yA(e,t,r,n,s){let o={cwd:t,signal:s,timeoutMs:e.options.probeTimeoutMs};switch(e.kind){case"cmd":return await dg({commandLine:e.commandLine??"",options:e.options,cwd:t,spoolDir:Pf(t),registryPath:r,entry:n,signal:s});case"pr":{let i=e.target??"";if(!/^[1-9][0-9]*$/.test(i))return{verdict:fe("missing PR number")};n.webhook_mode="polling";let a=Pl({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await Vo({probe:Sh(i,o,{emptyChecksGraceMs:ns("RSP_WAIT_PR_EMPTY_CHECKS_GRACE_MS",3e4)}),timeoutMs:e.options.timeoutMs,baseSleepMs:ns("RSP_WAIT_PR_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("pr",i),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"run":{let i=await bA(e,o,r,n);if(!i.ok)return{verdict:fe(i.reason)};n.webhook_mode="polling";let a=Pl({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await Vo({probe:()=>Th(i.value,o),timeoutMs:e.options.timeoutMs,baseSleepMs:ns("RSP_WAIT_RUN_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("run",i.value),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"release":return await Vo({probe:()=>xh(e.tagGlob,new Date(n.started_at),o),timeoutMs:e.options.timeoutMs,baseSleepMs:ns("RSP_WAIT_RELEASE_POLL_MS",6e4),registryPath:r,entry:n,signal:s})}}async function bA(e,t,r,n){if(e.target)return{ok:!0,value:e.target};if(!(e.latest&&e.branch))return{ok:!1,reason:"missing run id"};let s=await vh(e.branch,t);return s?(e.target=s,n.target=`run:${s}`,await rn(r,n),{ok:!0,value:s}):{ok:!1,reason:`no run found for branch ${e.branch}`}}function wA(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 _A(e,t){let r=e.includes("--json")?"json":"toon",n=e.indexOf("--result-file"),s=n>=0?e[n+1]:void 0,o=Gc(e[1])?e[1]:"cmd",i=new Date().toISOString(),a=jc({id:Nb(),kind:o,target:`${o}:`,reason:"",pid:process.pid,started_at:i,deadline_at:i,timeout_ms:0,poll_tier:Lc[o],status:"indeterminate",attempts:0}),c=as(o,a,fe(t instanceof Error?t.message:String(t)),{status:"success"},i);return await cs(s,c,r).catch(()=>{}),process.stdout.write(on(c,r)),2}var Ll=y(()=>{"use strict";Cf();Bf();mg();_r();Fc();Ch();Pt();is();Wu();$b();is();Wu()});import{existsSync as TA}from"node:fs";import{join as vA}from"node:path";function xA(){for(let e of(process.env.PATH??"").split(":"))if(e&&TA(vA(e,"rsp")))return!0;return!1}function Ns(){return xA()?["rsp"]:[process.execPath,process.argv[1]]}var Dl=y(()=>{"use strict"});var Li={};K(Li,{parseProxyCommandLine:()=>Ub,rewriteProxyCommandLine:()=>jb,runProxy:()=>AA});import{spawn as CA}from"node:child_process";function OA(e){return/[^\w@%+=:,./-]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}async function AA(e,t){let r="",n="",s=[],o=process.hrtime.bigint();try{if(r=Ub(e),process.env.RSP_PROXY_FAIL_INTERNAL==="1")throw new Error("forced proxy failure");let c=jb(r,t.level??"lossless");n=c.commandLine,s=c.matches}catch(c){if(r)return await PA(t.telemetryRoot,r,c),await Bb(r);throw c}for(let c of s)await IA(t.telemetryRoot,c);let i=await Bb(n||r),a=Number(process.hrtime.bigint()-o)/1e6;return await Dt(t.telemetryRoot,{collection:Fe,ts:new Date().toISOString(),command:r,wrapper:"proxy",loss:"lossless",elided:!1,raw_bytes:0,emitted_bytes:0,wrapper_ms:a,accounting_recorded:!1}),i}function jb(e,t="lossless",r=Ns()){let n=FA(e),s=[];return{commandLine:n.map((i,a)=>{if(i.kind==="operator"||NA(n,a)==="|")return i.text;let c=LA(i.text,t,r);return c?(s.push(c.match),c.text):i.text}).join(""),matches:s}}function Ub(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 PA(e,t,r){await Dt(e,{collection:he,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t,command_family:Be(t),decision:"failed-open",reason:"proxy-internal-error",error:r instanceof Error?r.name:typeof r})}async function IA(e,t){await Dt(e,{collection:he,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t.command,command_family:t.commandFamily,decision:t.decision,reason:t.reason,capability_id:t.capabilityId})}async function Bb(e){let t=CA(e,{shell:!0,stdio:"inherit"}),r=ke();return t.once("close",r),t.once("error",r),await new Promise(n=>{t.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
|
|
105
|
+
`),n(127)}),t.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}function LA(e,t,r){let n=e.match(/^\s*/)?.[0]??"",s=e.match(/\s*$/)?.[0]??"",o=e.trim();if(!o)return null;let i=BA(o);if(!i)return null;let a=$A(i);if(a>=i.length)return null;let c=i.slice(a),u=c.map(f=>f.value);if(kr(u))return{text:e,match:{command:c.map(f=>f.raw).join(" "),commandFamily:Be(u.join(" ")),decision:"passed",reason:"lossless-gh-json-jq"}};let l=DA(c);if(!l)return null;let p=i.slice(0,a).map(f=>f.raw),d=t==="lossless"?[]:[`--${t}`],g=[...p,...r.map(OA),...d,...l.wrapperWords].join(" ");return{text:`${n}${g}${s}`,match:{command:c.map(f=>f.raw).join(" "),commandFamily:Be(u.join(" ")),decision:"contributed",reason:"proxy-segment",capabilityId:l.capabilityId}}}function DA(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}:GA(t,r)}function GA(e,t){return e[0]==="cat"&&e.length===2&&Gl(e[1])?{capabilityId:"cat:file",wrapperWords:["cat",t[1]]}:(e[0]==="head"||e[0]==="tail")&&e.length===2&&Gl(e[1])?{capabilityId:`cat:${e[0]}`,wrapperWords:["cat",`--${e[0]}`,"10",t[1]]}:(e[0]==="head"||e[0]==="tail")&&e.length===4&&e[1]==="-n"&&/^[1-9][0-9]*$/.test(e[2])&&Gl(e[3])?{capabilityId:`cat:${e[0]}`,wrapperWords:["cat",`--${e[0]}`,e[2],t[3]]}:null}function Gl(e){return!!e&&!e.startsWith("-")}function $A(e){let t=0;for(;t<e.length&&pn(e[t].value);)t+=1;if(e[t]?.value!=="env")return t;for(t+=1;t<e.length&&pn(e[t].value);)t+=1;return t}function NA(e,t){for(let r=t+1;r<e.length;r+=1)if(e[r].kind==="operator")return e[r].text}function FA(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=MA(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 MA(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 BA(e){let t=[],r="",n="",s,o=!1,i=!1,a=()=>{i&&(t.push({raw:r,value:n}),r="",n="",i=!1)};for(let c=0;c<e.length;c+=1){let u=e[c];if(o){r+=u,n+=u,o=!1,i=!0;continue}if(u==="\\"){r+=u,o=!0,i=!0;continue}if(s){r+=u,u===s?s=void 0:n+=u,i=!0;continue}if(u==="'"||u==='"'){r+=u,s=u,i=!0;continue}if(/[ \t]/.test(u)){a();continue}if(/[()<>`]/.test(u))return null;r+=u,n+=u,i=!0}return s||o?null:(a(),t)}var Di=y(()=>{"use strict";oe();fs();Dl();et()});function Wb(e,t={}){let r=jA(e);if(r.length<12)return[];let n=new Map,s=new Map;for(let d of r){s.set(d.signature,(s.get(d.signature)??0)+1);for(let g of new Set(d.tokens))n.set(g,(n.get(g)??0)+1)}let o=r.map(d=>d.length),i=r.map(d=>d.tokens.length),a=r.map(d=>d.numbers.length===0?0:Math.max(...d.numbers.map(Math.abs))),c=$l(o),u=$l(i),l=$l(a),p=t.excludedByteRanges??[];return r.filter(d=>d.text.trim().length>0).filter(d=>!p.some(g=>JA(d.start,d.end,g.start,g.end))).map(d=>({line:d,score:Nl(d.length,c)+Nl(d.tokens.length,u)+Nl(d.numbers.length===0?0:Math.max(...d.numbers.map(Math.abs)),l)+WA(d.tokens,n,r.length)+VA(d.signature,s,r.length)})).filter(d=>d.score>=(t.minScore??7)).sort((d,g)=>g.score-d.score||d.line.index-g.line.index).slice(0,t.maxOutliers??3).sort((d,g)=>d.line.index-g.line.index).map(d=>({lineNumber:d.line.index+1,score:Math.round(d.score*100)/100,text:d.line.text}))}function jA(e){let t=[],r=0,n=0;for(let s of e.matchAll(/\n/g)){let o=s.index??e.length;t.push(Hb(n++,r,o,e.slice(r,o).replace(/\r$/,""))),r=o+1}return(r<e.length||e.length===0)&&t.push(Hb(n,r,e.length,e.slice(r).replace(/\r$/,""))),t}function Hb(e,t,r,n){return{index:e,start:t,end:r,text:n,signature:UA(n),tokens:HA(n),numbers:qA(n),length:n.length}}function UA(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 HA(e){return e.toLowerCase().match(/[a-z0-9_.:/-]{3,}/g)??[]}function qA(e){return[...e.matchAll(/[-+]?\d+(?:\.\d+)?/g)].map(t=>Number(t[0])).filter(t=>Number.isFinite(t))}function WA(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 VA(e,t,r){return Math.log2(r/Math.max(1,t.get(e)??r))}function $l(e){let t=qb(e),r=qb(e.map(n=>Math.abs(n-t)))||1;return{median:t,mad:r}}function Nl(e,t){return Math.abs(e-t.median)/t.mad}function qb(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 JA(e,t,r,n){return e<n&&r<t}var Vb=y(()=>{"use strict"});var Fl={};K(Fl,{DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>It,GIT_LOG_MACHINE_FIELDS:()=>Kb,StructuredUsageError:()=>Gi,cleanStatusPayload:()=>Xb,recoveryInstruction:()=>rt,renderGitContract:()=>zb,runGitWrapper:()=>zA});import{spawn as KA}from"node:child_process";async function zA(e,t){let r=Yb(e),n=Qb(r.argv),s=await ZA(n,r.argv.slice(1));return zb(e,s,t)}async function zb(e,t,r){let n=Yb(e);if((t.status??0)!==0||t.signal){let p=Je(e.join(" "),t.stdout,t.stderr);return{stdout:V(p),stderr:Buffer.from(t.stderr),status:p.exitCode??1,signal:t.signal}}let s=Qb(n.argv),o;try{o=eP(s,n.argv,t.stdout,n.query)}catch(p){if(p instanceof $i)return{stdout:Buffer.from(t.stdout),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,rawOutput:Buffer.from(t.stdout),degradation:{reason:p.reason,family:"git status",stderrHead:p.message}};throw p}let i=$(o);if(YA(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=bP(o);if(!a)return{stdout:Buffer.from(i),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o};let c=Buffer.byteLength(i),u=await r.store?.mint(Buffer.from(i),{command:e.join(" "),loss:{level:"terse",bytes_elided:c}});if(!u)throw new Error("terse git output requires an elision store");let l=`\u2026 elided ${a.rowsElided} rows (+${c}) \u2014 ${rt(u)}
|
|
106
|
+
`;return{stdout:Buffer.from(`${$(a.payload)}
|
|
107
|
+
${l}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:a.payload,mintedHandle:u,bytesElided:c,rowsElided:a.rowsElided,rawOutput:Buffer.from(i)}}function rt(e){return e.startsWith("el:")?`rsp show ${e}`:e}function Yb(e){let{argv:t,query:r,full:n}=gm(e),s=t.slice(2).find(o=>o.startsWith("--rsp-"));if(s)throw new Gi(e.join(" "),s,["--full","--brief","--terse","--query"]);return{argv:t,query:r,full:n}}function YA(e,t,r,n){if(n.level==="terse")return!1;if(r||n.level==="full"||!QA(e)||n.level!=="lossless")return!0;let s=yP(n.heavyGitByteThreshold,It);return Buffer.byteLength(t)<=s}function QA(e){return e==="diff"||e==="log"||e==="blame"||e==="show"}function Qb(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 XA(e,t){let r=t.slice(1);switch(e){case"status":return["status","--porcelain=v2","-z","-b",...r];case"log":return["log",`--format=%x1e${Kb.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 ZA(e,t){let r=KA("git",XA(e,t),{stdio:["ignore","pipe","pipe"]}),n=ke();r.once("close",n),r.once("error",n);let s=[],o=[];return r.stdout.on("data",i=>s.push(i)),r.stderr.on("data",i=>o.push(i)),await new Promise((i,a)=>{r.on("error",a),r.on("close",(c,u)=>{i({stdout:Buffer.concat(s).toString("utf8"),stderr:Buffer.concat(o).toString("utf8"),status:c,signal:u})})})}function eP(e,t,r,n){switch(e){case"status":return tP(t,r,n);case"log":return uP(t,r,n);case"diff":return lP(t,r,n);case"commit":return er(dP(t,r),n,["rsp git status --query <path-or-state>"]);case"push":return er(pP(t,r),n,["rsp gh pr list --query <branch>"]);case"blame":return mP(t,r,n);case"branch":return fP(t,r,n);case"show":return gP(t,r,n)}}function tP(e,t,r){let n="",s=[],o=!1,i=!1;for(let u of rP(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=oP(u),o=!0;continue}let l=nP(u);if(l){o=!0,s.push(l);continue}let p=sP(u);p&&(o=!0,s.push(p))}if(s.length===0){if(!i||o)return Xb(e.join(" "),n);throw new $i("git-status-unparseable")}let a=Re(s,r),c=Zb(a,"state");return er({command:e.join(" "),branch:n,rows:a,summary:cP(a.length,s.length,c,r)},r,["rsp git diff --query <path>","rsp git log --query <subject>"])}function rP(e){return e.includes("\0")?e.split("\0"):e.split(/\r?\n/)}function nP(e){if(e.startsWith("1 ")){let t=e.split(" "),r=t[1]??"..",n=t.slice(8).join(" ");return Fs(n,r)}if(e.startsWith("2 ")){let t=e.split(" "),r=t[1]??"..";return Fs(t.slice(9).join(" "),r)}if(e.startsWith("u ")){let t=e.split(" "),r=t[1]??"..";return Fs(t.slice(10).join(" "),r)}return e.startsWith("? ")?Fs(e.slice(2),"??"):null}function sP(e){if(e.length<4||e[2]!==" ")return null;let t=e.slice(0,2);return/^[ MADRCU?!][ MADRCU?!?]$/.test(t)?Fs(iP(e.slice(3),t),t):null}function Fs(e,t){let r=Jb(t[0]??"."),n=Jb(t[1]??".");return{path:aP(e),index:r,worktree:n,state:hP(`${r}${n}`)}}function Jb(e){return e===" "?".":e}function oP(e){let t=e.slice(3).split("...")[0]?.trim()??"";return t==="HEAD (no branch)"?"HEAD":t}function iP(e,t){if(!t.includes("R")&&!t.includes("C"))return e;let r=e.lastIndexOf(" -> ");return r>=0?e.slice(r+4):e}function aP(e){let t=e.trim();if(!t.startsWith('"')||!t.endsWith('"'))return t;try{return JSON.parse(t)}catch{return t.slice(1,-1)}}function cP(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 Xb(e="git status",t=""){return{command:e,category:"no-op",exit_code:0,noop:!0,scope:"git status",empty:!0,branch:t,rows:[],summary:"git status clean: 0 changes"}}function uP(e,t,r){let n=t.split("\0").filter(Boolean).map(o=>{let i=o.replace(/^\x1e/,"").split("");return{short:i[0]??"",author:i[1]??"",date:i[2]??"",subject:i[3]??""}}),s=Re(n,r);return er({command:e.join(" "),commits:s,summary:`${r?`${s.length}/${n.length}`:s.length} commits`},r,["rsp git diff --query <path>","rsp gh pr list --query <branch>"])}function lP(e,t,r){let s=t.split("\0").filter(Boolean).map(a=>{let[c,u,l]=a.split(" ");return{path:l??"",added:c==="-"?null:Number(c??0),deleted:u==="-"?null:Number(u??0)}}),o=Re(s,r),i=o.reduce((a,c)=>(a.added+=typeof c.added=="number"?c.added:0,a.deleted+=typeof c.deleted=="number"?c.deleted:0,a),{added:0,deleted:0});return er({command:e.join(" "),files:o,summary:`${r?`${o.length}/${s.length}`:o.length} files, +${i.added} -${i.deleted}`},r,["rsp git status --query <path>","rsp git log --query <subject>"])}function dP(e,t){let r=t.split(`
|
|
108
|
+
`)[0]??"",n=/^\[([^ ]+) ([0-9a-f]+)\] (.+)$/.exec(r),s=/(\d+) files? changed/.exec(t),o=/(\d+) insertions?\(\+\)/.exec(t),i=/(\d+) deletions?\(-\)/.exec(t),a=n?.[1]??"",c=n?.[2]??"",u=Number(s?.[1]??0),l=Number(o?.[1]??0),p=Number(i?.[1]??0);return{command:e.join(" "),branch:a,commit:c,subject:n?.[3]??"",files_changed:u,insertions:l,deletions:p,summary:`commit ${c} on ${a}: ${u} files, +${l} -${p}`}}function pP(e,t){let r=t.split(`
|
|
109
|
+
`).filter(Boolean),n=r.find(c=>c.startsWith("To "))?.slice(3)??"",s=r.filter(c=>c.includes(" ")).map(c=>{let[u,l,p=""]=c.split(" "),[d,g]=(l??"").split(":");return{flag:u??"",from:d??"",to:g??"",summary:p}}),o=s.find(c=>c.flag!=="=")??s[0],i=o?.to.startsWith("refs/heads/")?o.to.slice(11):o?.to??"",a=o?.summary.includes("..")?1:0;return s.length>0&&s.every(c=>c.flag==="=")?{command:e.join(" "),category:"no-op",exit_code:0,noop:!0,remote:n,refs:s,summary:`push already satisfied for ${i} -> ${n}`,help:["rsp gh pr list --query <branch>"]}:{command:e.join(" "),remote:n,refs:s,summary:`pushed ${i} -> ${n} +${a} commits`}}function mP(e,t,r){let n=t.split(`
|
|
110
|
+
`),s=[],o=null;for(let c of n){let u=/^([0-9a-f]{8,40}) \d+ (\d+)(?: \d+)?$/.exec(c);if(u){o={commit:u[1]??"",finalLine:Number(u[2]??0),author:"",path:""};continue}if(!o)continue;if(c.startsWith("author ")){o.author=c.slice(7);continue}if(c.startsWith("filename ")){o.path=c.slice(9);continue}if(!c.startsWith(" "))continue;let l=s.at(-1),p=o.commit.slice(0,12);l&&l.commit===p&&l.author===o.author&&l.path===o.path&&l.line_end+1===o.finalLine?l.line_end=o.finalLine:s.push({line_start:o.finalLine,line_end:o.finalLine,author:o.author,commit:p,path:o.path}),o=null}let i=Re(s,r),a=Zb(i,"author");return er({command:e.join(" "),ranges:i,authors:a,summary:`${r?`${i.length}/${s.length}`:i.length} ranges, ${Object.keys(a).length} authors`},r,["rsp git show --query <commit>","rsp git log --query <author>"])}function fP(e,t,r){let n=t.split(`
|
|
111
|
+
`).filter(Boolean).map(i=>{let[a,c,u,l,p,d]=i.split("\0");return{current:a==="*",name:c??"",commit:u??"",upstream:l||null,worktree:p||null,subject:d??""}}),s=Re(n,r),o=s.find(i=>i.current)?.name??"";return er({command:e.join(" "),branches:s,summary:`${r?`${s.length}/${n.length}`:s.length} branches${o?`, current ${o}`:""}`},r,["rsp git log --query <branch>","rsp gh pr list --query <branch>"])}function gP(e,t,r){let n=t.indexOf(""),s=n>=0?t.indexOf("",n+1):-1,o=n>=0&&s>=0?t.slice(n+1,s):"",i=s>=0?t.slice(s+1):t,[a,c,u,l,p,d=""]=o.split(""),g=[];for(let _ of i.split(`
|
|
112
|
+
`)){let T=/^\s*(.+?)\s+\|\s+(\d+)\s+([+\-]+|Bin.*)$/.exec(_);if(!T)continue;let v=T[3]??"";g.push({path:(T[1]??"").trim(),changed:Number(T[2]??0),added:[...v].filter(G=>G==="+").length,deleted:[...v].filter(G=>G==="-").length,binary:v.startsWith("Bin")})}let f=Re(g,r),k=0,E=0,h=0;for(let _ of f)k+=typeof _.changed=="number"?_.changed:0,E+=typeof _.added=="number"?_.added:0,h+=typeof _.deleted=="number"?_.deleted:0;return er({command:e.join(" "),commit:a??"",short:c??"",author:u??"",date:l??"",subject:p??"",body_lines:d.trim()?d.trim().split(`
|
|
113
|
+
`).length:0,files:f,summary:`${r?`${f.length}/${g.length}`:f.length} files, ${k} changed, +${E} -${h}`},r,["rsp git blame --query <author-or-path>","rsp git diff --query <path>"])}function er(e,t,r){return t?vt(e,r):e}function hP(e){return e==="??"?"untracked":e.includes("A")?"added":e.includes("D")?"deleted":e.includes("R")?"renamed":e.includes("M")?"modified":"changed"}function Zb(e,t){let r={};for(let n of e){let s=String(n[t]??"");r[s]=(r[s]??0)+1}return r}function yP(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function bP(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 Kb,Gi,$i,Ar=y(()=>{"use strict";oe();W();Ze();qn();ut();Ze();Kb=["%h","%an","%as","%s"];Gi=class extends Error{constructor(r,n,s){super(`unknown flag: ${n}`);this.command=r;this.flag=n;this.validFlags=s}render(){return Kp(this.command,this.flag,this.validFlags,`${this.command} --help`)}},$i=class extends Error{constructor(r){super("git status output was not recognized; passing raw stdout through");this.reason=r}}});var Ul={};K(Ul,{NORMALIZATION_ALLOWLIST:()=>iw,NORMALIZE_ANSI:()=>Fi,NORMALIZE_BLANK_LINES:()=>ji,NORMALIZE_CR_PROGRESS:()=>Mi,NORMALIZE_JSON_TOON:()=>ow,NORMALIZE_TRAILING_WHITESPACE:()=>Bi,crushJsonArrayItems:()=>Ms,formatCodexNormalizeDecision:()=>dw,formatNormalizeDecision:()=>lw,hookDecisionFromClaudePostExecJson:()=>aw,hookDecisionFromCodexPostExecJson:()=>cw,normalizeOutput:()=>Ui,renderGenericJsonLane:()=>Bl,runClaudePostExecHook:()=>EP,runCodexPostExecHook:()=>RP,transcodeJsonToToon:()=>sw});import{readFileSync as Ni}from"node:fs";function sw(e,t){let r=t?.encode??$,n=t?.decode??H,s=e.trimEnd();if(!s)return e;let o;try{o=JSON.parse(s)}catch{return e}let i;try{i=r(o)}catch{return e}let a;try{a=n(i)}catch{return e}return Ml(o,a)?i.trimEnd():e}async function Bl(e,t={}){let r=vP(e);if(!r)return{output:e,detected:!1,lossy:!1};let n=r.value;if(!Array.isArray(n))return{output:$(n).trimEnd(),detected:!0,lossy:!1};let s=n.length,o=nw(t.minTokens,wP),i=nw(t.maxItems,_P);if(!(s>i&&PP(e)>=o))return{output:$(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s};let c;try{c=(t.crusher??Ms)(n,i)}catch(k){return{output:$(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s,degradation:{reason:"json-array-crusher-failed",family:"json",stderrHead:IP(k)}}}let u=c.items,l={items:u},p=`items: ${c.kept} kept, ${c.dropped} dropped (shape outliers: ${c.shapeOutliers}, value outliers: ${c.valueOutliers})`,d;t.level&&t.level!=="lossless"&&(d=await t.store?.mint(Buffer.from(e),{command:t.command??"rsp json",loss:{level:t.level,bytes_elided:Buffer.byteLength(e)}}));let g=d?`original: rsp show ${d}`:`original: unavailable - re-run: ${t.command??"command"}`,f=$(l).trimEnd();return{output:[p,g,f].filter(Boolean).join(`
|
|
114
|
+
`),detected:!0,lossy:!0,totalItems:s,keptItems:u.length,handle:d}}function Ms(e,t){if(e.length<=t)return{items:[...e],total:e.length,kept:e.length,dropped:0,shapeOutliers:0,valueOutliers:0};let r=new Set([0,e.length-1]),n=xP(e),s=new Set;n&&e.forEach((a,c)=>{jl(a)!==n&&s.add(c)});let o=CP(e,n);for(let a of s)r.add(a);for(let a of o)r.add(a);let i=[...r].sort((a,c)=>a-c).slice(0,Math.max(2,t));return{items:i.map(a=>e[a]),total:e.length,kept:i.length,dropped:e.length-i.length,shapeOutliers:[...s].filter(a=>i.includes(a)).length,valueOutliers:[...o].filter(a=>i.includes(a)).length}}function Ui(e){let t=e;for(let r of iw)t=r.apply(t);return t}async function aw(e,t){return await uw(e,t)}async function cw(e,t){return await uw(e,t)}async function uw(e,t){let r=TP(e),n=LP(r,["cwd"])||t.cwd;if(!await(t.isEnabled??SP)(n))return{kind:"passthrough",reason:"disabled"};let o=DP(r,"tool_response");if(!o)return{kind:"passthrough",reason:"missing-output"};if(typeof o.output!="string")return{kind:"passthrough",reason:"missing-output"};let i=o.output,c=(t.normalize??Ui)(i);return c===i?{kind:"passthrough",reason:"no-change"}:{kind:"normalized",output:c}}function lw(e){return e.kind==="normalized"?{stdout:JSON.stringify({tool_response:{output:e.output}}),status:0}:{stdout:"",status:0}}function dw(e){return{stdout:"",status:0}}async function EP(e){let t=e?Ni(e,"utf8"):Ni(0,"utf8"),r=await aw(t,{cwd:process.cwd()}),n=lw(r);return n.stdout&&process.stdout.write(n.stdout),n.status}async function RP(e){let t=e?Ni(e,"utf8"):Ni(0,"utf8"),r=await cw(t,{cwd:process.cwd()}),n=dw(r);return n.stdout&&process.stdout.write(n.stdout),n.status}function kP(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&&ew(e.charCodeAt(r));)r++;r<e.length&&r++;continue}r+=s>=32?2:1;continue}if(n===155){for(r++;r<e.length&&ew(e.charCodeAt(r));)r++;r<e.length&&r++;continue}t+=e[r++]}return t}function ew(e){return e>=32&&e<=63}function SP(e){return Xe(e,process.env).enabled}function TP(e){try{let t=JSON.parse(e);return Rn(t)?t:{}}catch{return{}}}function vP(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return Rn(n)||Array.isArray(n)?{value:n}:null}catch{}let r=[];for(let n of e.split(/\r?\n/))if(n.trim())try{r.push(JSON.parse(n))}catch{return null}return r.length>0?{value:r}:null}function xP(e){let t=new Map;for(let s of e){let o=jl(s);t.set(o,(t.get(o)??0)+1)}let[r,n]=[...t.entries()].sort((s,o)=>o[1]-s[1]||s[0].localeCompare(o[0]))[0]??[];return typeof r=="string"&&typeof n=="number"&&n>e.length/2?r:null}function jl(e){return Array.isArray(e)?"array":Rn(e)?Object.keys(e).sort().map(t=>`${t}:${tw(e[t])}`).join("|"):tw(e)}function CP(e,t){let r=new Set,n=new Map;e.forEach((s,o)=>{if(!(t&&jl(s)!==t))for(let[i,a]of pw(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 OP(s))r.add(o);for(let o of AP(s))r.add(o)}return r}function OP(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=rw(r),s=r.map(a=>Math.abs(a-n)).sort((a,c)=>a-c),o=rw(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 AP(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 pw(e,t=""){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"?[[t||"$",e]]:Array.isArray(e)?[]:Rn(e)?Object.entries(e).flatMap(([r,n])=>pw(n,t?`${t}.${r}`:r)):[]}function tw(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function rw(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 PP(e){return Math.ceil(e.length/4)}function nw(e,t){return e==null?t:Number.isFinite(e)&&e>0?Math.floor(e):t}function IP(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 LP(e,t){let r=e;for(let n of t){if(!Rn(r))return"";r=r[n]}return typeof r=="string"?r:""}function DP(e,t){let r=e[t];return Rn(r)?r:null}function Rn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ml(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=typeof t||typeof e!="object"||Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){let i=t;return e.length!==i.length?!1:e.every((a,c)=>Ml(a,i[c]))}let r=e,n=t,s=Object.keys(r),o=Object.keys(n);return s.length!==o.length?!1:s.every(i=>Object.prototype.hasOwnProperty.call(n,i)&&Ml(r[i],n[i]))}var Fi,Mi,Bi,ji,ow,wP,_P,iw,Bs=y(()=>{"use strict";W();Ze();Fi={id:"ansi",apply:kP},Mi={id:"cr-progress",apply:e=>e.split(`
|
|
115
|
+
`).map(t=>{let r=t.endsWith("\r")?t.slice(0,-1):t,n=r.lastIndexOf("\r");return n>=0?r.slice(n+1):r}).join(`
|
|
116
|
+
`)},Bi={id:"trailing-whitespace",apply:e=>e.split(`
|
|
102
117
|
`).map(t=>t.replace(/[ \t]+$/,"")).join(`
|
|
103
|
-
`)},
|
|
118
|
+
`)},ji={id:"blank-lines",apply:e=>e.replace(/\n{3,}/g,`
|
|
104
119
|
|
|
105
|
-
`)};
|
|
106
|
-
`}function
|
|
107
|
-
`,status:0}}async function
|
|
120
|
+
`)};ow={id:"json-to-toon",apply:e=>sw(e)},wP=200,_P=15;iw=[Fi,Mi,Bi,ji,ow]});var Hs={};K(Hs,{parseExecCommandLine:()=>bw,renderExecContract:()=>yw,runExecWrapper:()=>MP});import{isUtf8 as GP}from"node:buffer";import{spawn as $P}from"node:child_process";async function MP(e,t){let r=bw(e),n=await BP(r);return await yw(r,n,t)}async function yw(e,t,r){let n=Buffer.from(t.stdout,"binary"),s=Buffer.from(t.stderr,"binary");if((t.status??0)!==0||t.signal){let d=Je(e,t.stdout,t.stderr);return{stdout:V(d),stderr:s,status:d.exitCode??1,signal:t.signal,rawOutput:n}}if(n.length===0)return{stdout:n,stderr:s,status:t.status,signal:t.signal,rawOutput:n};let o=jP(n),i=o.kind==="text"?Buffer.from(o.text):n,a=aI(r.heavyByteThreshold,NP);if(i.length<=a&&r.level!=="terse")return{stdout:i,stderr:s,status:t.status,signal:t.signal,rawOutput:n};let c=n.length,u=r.level==="lossless"?"terse":r.level,l=await r.store?.mint(n,{command:e,loss:{level:u,bytes_elided:c}});if(!l)throw new Error("rsp exec output elision requires an elision store");let p=o.kind==="text"?HP(o.text,n.length,l,r.level,e,r.anomalyScorer,r.jsonArrayCrusher):qP(n,n.length,l,e);return{stdout:Buffer.from(p.text),stderr:s,status:t.status,signal:t.signal,mintedHandle:l,bytesElided:c,rawOutput:n,degradation:p.degradation}}function bw(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 BP(e){let t=$P(e,{shell:!0,stdio:["inherit","pipe","pipe"]}),r=ke();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",(a,c)=>{o({stdout:Buffer.concat(n).toString("binary"),stderr:Buffer.concat(s).toString("binary"),status:a,signal:c})})})}function jP(e){return GP(e)?{kind:"text",text:UP(e.toString("utf8"))}:{kind:"bytes"}}function UP(e){let t=e;for(let r of[Fi,Mi,Bi,ji])t=r.apply(t);return t}function HP(e,t,r,n,s,o=eI,i=Ms){let c=Math.max(1,Math.floor((n==="terse"?hw:FP)/2)),u=Buffer.from(e),l=Math.max(0,u.length-c),p=ZP(e,c,l,o),d=WP(e),g=VP(d,e,u,c,l,p.kind==="ok"?p.lines:[],i),f=ww(s,d,t,iI(u),r,g.summary),k=p.kind==="failed"?{reason:"exec-anomaly-scorer-failed",family:"exec",stderrHead:Tw(p.error)}:g.degradation;return{text:Sw(f),degradation:k}}function qP(e,t,r,n){let s=Math.max(1,Math.floor(hw/2)),o={head_hex:e.subarray(0,s).toString("hex"),tail_hex:e.subarray(Math.max(0,e.length-s)).toString("hex")};return{text:Sw(ww(n,"bytes",t,0,r,o))}}function ww(e,t,r,n,s,o){return{family:"exec",command:e,content:t,bytes:r,lines:n,summary:o,recovery:{original:rt(s)}}}function WP(e){let t=e.trim();return t?Ew(t)?"json":Rw(e)?"jsonl":tI(e)?"unified-diff":kw(e)?"tabular":rI(e)?"log-like":nI(e)?"prose":"untyped":"untyped"}function VP(e,t,r,n,s,o,i=Ms){switch(e){case"json":return JP(t,i);case"jsonl":return{summary:KP(t)};case"unified-diff":return{summary:zP(t)};case"tabular":return{summary:YP(t)};case"log-like":return{summary:QP(t,o)};case"prose":return{summary:XP(t)};case"bytes":return{summary:{}};case"untyped":return{summary:_w(r,n,s,o)}}}function JP(e,t){let r=Ew(e);if(Array.isArray(r)){if(r.length>15)try{let n=t(r,15);return{summary:{root_type:"array",total:n.total,kept:n.kept,dropped:n.dropped,shape_outliers:n.shapeOutliers,value_outliers:n.valueOutliers,items:n.items.map(tr),item_keys:ql(r)}}}catch(n){return{summary:fw(r),degradation:{reason:"exec-json-array-crusher-failed",family:"exec",stderrHead:Tw(n)}}}return{summary:fw(r)}}if(Us(r)){let n=Object.entries(r);return{summary:{root_type:"object",keys:n.map(([s])=>s).slice(0,20),key_count:n.length,sample:Object.fromEntries(n.slice(0,8).map(([s,o])=>[s,tr(o)]))}}}return{summary:{root_type:typeof r,value:tr(r)}}}function fw(e){return{root_type:"array",items:e.length,sample:e.slice(0,5).map(tr),item_keys:ql(e)}}function KP(e){let t=Rw(e)??[],r=sI(t,"level");return{records:t.length,keys:ql(t),levels:r,first:tr(t[0]),last:tr(t.at(-1))}}function zP(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 YP(e){let t=kw(e);return t?{columns:t.columns,rows:t.rows.length,sample:t.rows.slice(0,5)}:_w(Buffer.from(e),512,Math.max(0,Buffer.byteLength(e)-512),[])}function QP(e,t){let r=js(e);return{entries:r.length,levels:oI(r),first:Pr(r[0]??""),last:Pr(r.at(-1)??""),outliers:t.map(n=>({line:n.lineNumber,score:Number(n.score.toFixed(2)),text:Pr(n.text)}))}}function XP(e){let t=e.trim().split(/\n\s*\n/).filter(n=>n.trim()),r=e.trim().split(/\s+/).filter(Boolean);return{paragraphs:t.length,words:r.length,opening:Pr(t[0]??""),closing:Pr(t.at(-1)??"")}}function _w(e,t,r,n){let s=gw(e.subarray(0,t)),o=gw(e.subarray(r));return{head:s,tail:o,outliers:n.map(i=>({line:i.lineNumber,score:Number(i.score.toFixed(2)),text:Pr(i.text)}))}}function ZP(e,t,r,n){try{return{kind:"ok",lines:n(e,{headBytes:t,tailStart:r})}}catch(s){return{kind:"failed",error:s}}}function eI(e,t){return Wb(e,{excludedByteRanges:[{start:0,end:t.headBytes},{start:t.tailStart,end:Buffer.byteLength(e,"utf8")}]})}function Ew(e){let t=e.trim();if(!t||!/^[\[{]/.test(t))return null;try{let r=JSON.parse(t);return Us(r)||Array.isArray(r)?r:null}catch{return null}}function Rw(e){let t=js(e);if(t.length<2||!t.every(n=>/^[\[{]/.test(n.trim())))return null;let r=[];for(let n of t)try{r.push(JSON.parse(n))}catch{return null}return r}function tI(e){let t=js(e),r=t[0]??"";if(!/^diff --git a\/.+ b\/.+/.test(r)&&!/^--- /.test(r))return!1;let n=t.some(i=>/^diff --git a\/.+ b\/.+/.test(i))||t.some(i=>/^--- /.test(i))&&t.some(i=>/^\+\+\+ /.test(i)),s=t.some(i=>/^@@ /.test(i)),o=t.some(i=>/^[+-]/.test(i)&&!/^(---|\+\+\+) /.test(i));return n&&s&&o}function kw(e){let t=js(e);if(t.length<3)return null;let r=t[0]??"";if(/[=:{}/]/.test(r)||/^\d{4}-\d{2}-\d{2}/.test(r))return null;let n=r.includes(" ")?/\t+/:/\s{2,}/,s=r.split(n).map(i=>i.trim()).filter(Boolean);if(s.length<2||s.some(i=>!/^[A-Za-z0-9_.-]+$/.test(i)))return null;let o=[];for(let i of t.slice(1)){let a=i.split(n).map(c=>c.trim());if(a.length!==s.length||a.some(c=>c===""))return null;o.push(Object.fromEntries(s.map((c,u)=>[c,a[u]??""])))}return o.length>0?{columns:s,rows:o}:null}function rI(e){let t=js(e);return t.length<3?!1:t.filter(n=>/^\d{4}-\d{2}-\d{2}[T\s]/.test(n)||/\b(?:TRACE|DEBUG|INFO|WARN|WARNING|ERROR|FATAL|PANIC)\b/i.test(n)||(n.match(/\b[A-Za-z0-9_.+:-]+=/g)?.length??0)>=2||/^\[[^\]]+\]\s+/.test(n)).length/t.length>=.6}function nI(e){let t=e.trim();if(!t)return!1;let r=t.split(/\s+/).filter(Boolean),n=t.match(/[.!?](?:\s|$)/g)?.length??0;return r.length>=20&&n>=2}function js(e){return e.split(/\r?\n/).filter(t=>t.trim()!=="")}function ql(e){let t=new Map;for(let r of e)if(Us(r))for(let n of Object.keys(r))t.set(n,(t.get(n)??0)+1);return[...t.entries()].sort((r,n)=>n[1]-r[1]||r[0].localeCompare(n[0])).slice(0,20).map(([r])=>r)}function sI(e,t){let r=new Map;for(let n of e){if(!Us(n))continue;let s=n[t];if(typeof s=="string"||typeof s=="number"||typeof s=="boolean"){let o=String(s).toLowerCase();r.set(o,(r.get(o)??0)+1)}}return Object.fromEntries([...r.entries()].sort((n,s)=>n[0].localeCompare(s[0])))}function oI(e){let t=new Map;for(let r of e){let n=/\blevel=([A-Za-z]+)\b/.exec(r)??/\b(TRACE|DEBUG|INFO|WARN|WARNING|ERROR|FATAL|PANIC)\b/i.exec(r);if(!n)continue;let s=(n[1]??n[0]).toLowerCase();t.set(s,(t.get(s)??0)+1)}return Object.fromEntries([...t.entries()].sort((r,n)=>r[0].localeCompare(n[0])))}function tr(e){return typeof e=="string"?Pr(e):typeof e=="number"||typeof e=="boolean"||e===null?e:Array.isArray(e)?e.slice(0,5).map(tr):Us(e)?Object.fromEntries(Object.entries(e).slice(0,8).map(([t,r])=>[t,tr(r)])):String(e)}function Pr(e){let t=e.replace(/\s+/g," ").trim();return t.length<=mw?t:`${t.slice(0,mw-1)}\u2026`}function Sw(e){let t=$(e).trimEnd(),r=H(t);if(!Hl(e,r))throw new Error("exec TOON round-trip guard failed");return`${t}
|
|
121
|
+
`}function Hl(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=typeof t||typeof e!="object"||Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){let i=t;return e.length!==i.length?!1:e.every((a,c)=>Hl(a,i[c]))}let r=e,n=t,s=Object.keys(r),o=Object.keys(n);return s.length!==o.length?!1:s.every(i=>Object.prototype.hasOwnProperty.call(n,i)&&Hl(r[i],n[i]))}function Us(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Tw(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 gw(e){return e.toString("utf8").replace(/�$/g,"")}function iI(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 aI(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}var NP,FP,hw,mw,qs=y(()=>{"use strict";oe();W();Vb();Ar();Bs();ut();NP=8*1024,FP=2*1024,hw=1024,mw=240});var Xi={};K(Xi,{RSP_WRAPPER_CAPABILITIES:()=>Js,_testOnlyResetBinaryState:()=>bI,formatCodexHookDecision:()=>Fw,formatHookDecision:()=>Nw,hookDecisionFromClaudePreExecJson:()=>SI,hookDecisionFromCodexPreExecJson:()=>TI,rewriteCommand:()=>Gw,rewriteTableFromCapabilities:()=>Dw,runClaudePreExecHook:()=>vI,runCodexPreExecHook:()=>xI});import{accessSync as fI,constants as gI,existsSync as hI,readFileSync as Yi}from"node:fs";import{fileURLToPath as yI}from"node:url";function bI(){zi=void 0,Wl=!1}function wI(){let e=(process.env.PATH??"").split(":");for(let t of e)if(t)try{return fI(`${t}/rsp`,gI.X_OK),!0}catch{}return!1}function _I(e){return zi===void 0&&(zi=e()),zi}function EI(){Wl||(Wl=!0,process.stderr.write("rsp: entrypoint not found on PATH; run `rsp setup` to provision. See apps/rsp/docs/TROUBLESHOOTING.md\n"))}function Dw(e){let t=new Map;for(let r of e)t.set(WI(r.command),["rsp",...r.wrapper]);return t}function Gw(e,t=Ns()){let r=$I(e);if(r)return r;let n=DI(e);if(!n)return Ki(e,t);let s=n.tokens.map(u=>u.text);if(s.length>0&&pn(s[0]))return Ki(e,t);let o=kI(n,t);if(o)return o;if(n.tokens.some(u=>u.quoted))return Ki(e,t);let i=[...Js].sort((u,l)=>l.command.length-u.command.length).find(u=>GI(s,u.command));if(!i)return Ki(e,t);let a=[...t,...i.wrapper,...s.slice(i.command.length)],c=Hw(n.redirectSuffix);return{kind:"rewrite",command:[...a.map(rr),...c].join(" "),capabilityId:i.id}}function kI(e,t){let r=e.tokens.map(i=>i.text),n=r[0],s=Hw(e.redirectSuffix),o=t.map(rr);return n==="cat"&&r.length===2&&Ji(r[1])?{kind:"rewrite",command:[...o,"cat",rr(r[1]),...s].join(" "),capabilityId:"cat:file"}:(n==="head"||n==="tail")&&r.length===2&&Ji(r[1])?{kind:"rewrite",command:[...o,"cat",`--${n}`,"10",rr(r[1]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===4&&r[1]==="-n"&&/^[1-9][0-9]*$/.test(r[2])&&Ji(r[3])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[2],rr(r[3]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===3&&/^-[1-9][0-9]*$/.test(r[1])&&Ji(r[2])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[1].slice(1),rr(r[2]),...s].join(" "),capabilityId:`cat:${n}`}:null}function Ji(e){return!!e&&!e.startsWith("-")}async function SI(e,t){return await $w(e,t)}async function TI(e,t){return await $w(e,t)}async function $w(e,t){return(await Jl(e,t,"pre-exec")).decision}async function Jl(e,t,r){let n=Jw(e);if(!n.ok){let f={kind:"passthrough",reason:n.reason};return{decision:f,telemetryRoot:t.cwd,event:kn({hook:r,command:"",decision:f,reason:n.reason})}}let s=n.payload,o=nt(s,["cwd"])||nt(s,["tool_input","cwd"])||t.cwd;if(!await(t.isEnabled??CI)(o)){let f={kind:"passthrough",reason:"disabled"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:Vl(s),decision:f,reason:"disabled"})}}let a=Vl(s);if(!a){let f={kind:"passthrough",reason:"missing-command"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:a,decision:f,reason:"missing-command"})}}let c=t.rspInvocationPrefix??Ns();if(!_I(t.resolveBinary??(()=>t.rspInvocationPrefix!==void 0||c[0]!=="rsp"||wI()))){EI();let f={kind:"passthrough",reason:"binary-unresolved"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:a,decision:f,reason:"binary-unresolved"})}}let l=process.hrtime.bigint(),d=Xe(o,process.env).proxyEnabled?NI(a,c):(t.rewrite??(f=>Gw(f,c)))(a),g=Number(process.hrtime.bigint()-l)/1e6;if(d.kind!=="rewrite"){let f=d.reason?d:{...d,reason:"unsupported-command"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:a,decision:f,reason:f.reason??"unsupported-command",decisionMs:g})}}return await AI(o,t.wakeResident??OI),{decision:d,telemetryRoot:o,event:kn({hook:r,command:a,decision:d,reason:d.capabilityId==="proxy:universal"?"universal-proxy":"matched-capability",decisionMs:g})}}function Nw(e){return e.kind==="rewrite"?Mw(e.command):{stdout:"",status:0}}function Fw(e){return e.kind==="rewrite"?Mw(e.command):{stdout:"",status:0}}function Mw(e){return{stdout:`${JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{command:e}}})}
|
|
122
|
+
`,status:0}}async function vI(e){let t="";try{t=e?Yi(e,"utf8"):Yi(0,"utf8");let r=await Jl(t,{cwd:process.cwd()},"claude-pre-exec");Qi(r.telemetryRoot,r.event);let n=r.decision;jw("claude-pre-exec",n);let s=Nw(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return Qi(process.cwd(),Bw("claude-pre-exec",t,r)),Uw("claude-pre-exec",r),0}}async function xI(e){let t="";try{t=e?Yi(e,"utf8"):Yi(0,"utf8");let r=await Jl(t,{cwd:process.cwd()},"codex-pre-exec");Qi(r.telemetryRoot,r.event);let n=r.decision;jw("codex-pre-exec",n);let s=Fw(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return Qi(process.cwd(),Bw("codex-pre-exec",t,r)),Uw("codex-pre-exec",r),0}}function Qi(e,t){Dt(e,t).catch(()=>{})}function kn(e){let t=e.command.trim(),r=e.decision.kind==="rewrite"?e.decision.capabilityId:void 0;return{collection:he,event_type:"decision",ts:new Date().toISOString(),hook:e.hook,command:t||"unknown",command_family:Be(t),decision:r?"contributed":"passed",reason:e.reason,capability_id:r,decision_ms:e.decisionMs}}function Bw(e,t,r){let n=Jw(t),s=n.ok?Vl(n.payload):"";return{collection:he,event_type:"decision",ts:new Date().toISOString(),hook:e,command:s||"unknown",command_family:Be(s),decision:"failed-open",reason:"hook-exception",error:Kl(r)}}function CI(e){return Xe(e,process.env).enabled}async function OI(e){let t=Xe(e,process.env);if(!t.enabled||!LI(t))return;let r=lt(e);await So(r,II(t))}async function AI(e,t){try{await Promise.resolve(t(e))}catch(r){PI(r)}}function jw(e,t){if(process.env.RSP_DEBUG==="1"){if(t.kind==="rewrite"){process.stderr.write(`rsp hook ${e}: rewrite ${t.capabilityId}
|
|
108
123
|
`);return}process.stderr.write(`rsp hook ${e}: passthrough ${t.reason??"unsupported-command"}
|
|
109
|
-
`)}}function
|
|
110
|
-
`)}function
|
|
111
|
-
`)}function
|
|
112
|
-
`)}function
|
|
113
|
-
`),u=o.map(({alias:d,number:
|
|
114
|
-
`)),l=i.map(({alias:d,name:
|
|
115
|
-
`);return{kind:e,query:p,aliases:o,labelAliases:i}}function
|
|
116
|
-
`)}}function
|
|
117
|
-
`)}}function
|
|
118
|
-
`).map(
|
|
119
|
-
`)}function
|
|
120
|
-
`),subIssues:"subIssues(first: 100) { nodes { number } }"}});import{spawn as
|
|
121
|
-
`))}async function
|
|
122
|
-
`),stderr:Buffer.from(
|
|
123
|
-
${e.stdout}`)}function
|
|
124
|
-
`)[0]?.slice(0,240)??""}function
|
|
125
|
-
`;return{stdout:Buffer.from(`${
|
|
126
|
-
${d}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:u.payload,mintedHandle:p,bytesElided:l,rowsElided:u.rowsElided,rawOutput:Buffer.from(c)}}function qy(e){let t=br(e);if(t.argv[0]!=="gh")throw new Error("expected rsp gh <surface> <subcommand>");let n=t.argv[1],r=t.argv[2];if(!(n==="pr"||n==="issue"||n==="run"))throw new Error(`unsupported gh surface: ${n??""}`);let s=n==="pr"&&r&&r!=="list"&&r!=="view";if(!(r==="list"||r==="view"||s))throw new Error(`unsupported gh subcommand: ${r??""}`);let o=n,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=jy(l[++m]??""):f.startsWith("--fields=")?u=jy(f.slice(9)):i.push(f)}let d={kind:o,action:s?"combined":r==="list"?"list":"view",target:s?r:void 0,full:a,wide:c,fields:u,passthrough:i,query:t.query};return UO(d),d}function Fy(e){if(e.action==="combined")throw new Error("combined gh command uses multiple machine calls");let t=`${e.kind}:${e.action}`,n=e.wide||e.fields.size>0?FO[t]:BO[t];return[e.kind,e.action,...e.passthrough,"--json",n.join(",")]}function jy(e){return new Set(e.split(",").map(t=>t.trim()).filter(Boolean))}function UO(e){if(e.fields.size===0)return;if(e.action!=="list")throw new xi(e,"--fields is supported for list outputs");let t=`${e.kind}:list`,n=GO[t];for(let r of e.fields)if(!n.includes(r))throw new xi(e,`unknown field: ${r}`,n)}async function WO(e){if(e.action==="combined")return await qO(e);let t=JO(e);if(!t)return await XO(Fy(e));let n=await me({...t,command:["gh",...Fy(e)].join(" ")});return n.status!==0?{stdout:n.stdout,stderr:n.stderr,status:n.status,signal:null}:{stdout:JSON.stringify(await VO(e,n.stdout)),stderr:n.stderr,status:0,signal:null}}async function qO(e){let t=e.target??"",[n,r,s]=await Promise.all([me({path:`repos/{owner}/{repo}/pulls/${t}`,command:`gh pr view ${t}`}),me({path:`repos/{owner}/{repo}/pulls/${t}/commits`,command:`gh pr checks ${t}`}),me({path:`repos/{owner}/{repo}/issues/${t}/comments`,command:`gh pr view ${t} --comments`})]),o=[n,r,s].find(a=>(a.status??0)!==0);if(o)return{stdout:o.stdout,stderr:o.stderr,status:o.status,signal:null};let i=Vy(ks(n.stdout));return{stdout:JSON.stringify({view:i,checks:[],comments:{comments:be(ks(s.stdout)).map(zO)}}),stderr:[n.stderr,r.stderr,s.stderr].filter(Boolean).join(""),status:0,signal:null}}function JO(e){let t=Ky(e.passthrough),n=YO(e.passthrough,"--limit")??30,r=tt(e.passthrough,"--state")??"open";switch(`${e.kind}:${e.action}`){case"pr:list":return{path:"repos/{owner}/{repo}/pulls",params:{state:r,per_page:n}};case"pr:view":return t?{path:`repos/{owner}/{repo}/pulls/${t}`}:null;case"issue:list":return{path:"repos/{owner}/{repo}/issues",params:{state:r,labels:tt(e.passthrough,"--label"),per_page:n}};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:n}};case"run:view":return t?{path:`repos/{owner}/{repo}/actions/runs/${t}`}:null;default:return null}}async function VO(e,t){let n=ks(t);switch(`${e.kind}:${e.action}`){case"pr:list":return be(n).map(Jy);case"pr:view":return Vy(n);case"issue:list":return be(n).filter(r=>!fn(r.pull_request)).map(Gy);case"issue:view":return Gy(n);case"run:list":return{items:be(j(n).workflow_runs).map(Hy),total:he(j(n),"total_count")};case"run:view":{let r=Hy(n),s=Ky(e.passthrough);if(!s)return r;let o=await me({path:`repos/{owner}/{repo}/actions/runs/${s}/jobs`,command:`gh run view ${s} jobs`});return{...r,jobs:o.status===0?be(j(ks(o.stdout)).jobs).map(KO):[]}}default:return n}}function Jy(e){let t=j(e);return{number:he(t,"number"),title:x(t,"title"),state:x(t,"state").toUpperCase(),isDraft:!!t.draft,author:al(t.user),labels:be(t.labels).map(n=>({name:x(n,"name")})),url:x(t,"html_url"),updatedAt:x(t,"updated_at"),body:x(t,"body"),baseRefName:x(j(t.base),"ref"),headRefName:x(j(t.head),"ref")}}function Vy(e){return Jy(e)}function Gy(e){let t=j(e);return{number:he(t,"number"),title:x(t,"title"),state:x(t,"state").toUpperCase(),labels:be(t.labels).map(n=>({name:x(n,"name")})),author:al(t.user),url:x(t,"html_url"),updatedAt:x(t,"updated_at"),body:x(t,"body")}}function Hy(e){let t=j(e);return{databaseId:he(t,"database_id")||he(t,"id"),name:x(t,"name")||x(t,"display_title"),status:x(t,"status").toUpperCase(),conclusion:x(t,"conclusion").toUpperCase(),event:x(t,"event"),headBranch:x(t,"head_branch"),workflowName:x(t,"workflow_name"),createdAt:x(t,"created_at"),url:x(t,"html_url"),jobs:[]}}function KO(e){let t=j(e);return{name:x(t,"name"),status:x(t,"status").toUpperCase(),conclusion:x(t,"conclusion").toUpperCase(),log:""}}function zO(e){let t=j(e);return{author:al(t.user),body:x(t,"body"),createdAt:x(t,"created_at")}}function al(e){let t=j(e);return{login:x(t,"login")}}function Ky(e){return e.find(t=>!t.startsWith("-"))}function tt(e,t){let n=e.indexOf(t);return n>=0?e[n+1]:void 0}function YO(e,t){let n=tt(e,t);if(!n)return;let r=Number(n);return Number.isFinite(r)&&r>0?r:void 0}async function XO(e){let t=MO("gh",e,{stdio:["ignore","pipe","pipe"]}),n=ce();t.once("close",n),t.once("error",n);let r=[],s=[];return t.stdout.on("data",o=>r.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(r).toString("utf8"),stderr:Buffer.concat(s).toString("utf8"),status:a,signal:c})})})}function QO(e,t,n){let r={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let s=nl(n,"prs"),o=s.rows.map(c=>zy(c,e)),i=ae(o,e.query),a=rl(i.length,o.length,s.total,e.query);return i.length===0?sl(r,e,"prs",a,["rsp gh issue list","rsp gh pr list --query <title-or-label>"]):ir({...r,prs:i,aggregate:a,summary:`${ol(i.length,o.length,e.query)} ${Uy(i,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return ir({...r,pr:Yy(j(n),e),summary:`PR #${he(j(n),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return ZO(e,t,j(n));case"issue:list":{let s=nl(n,"issues"),o=s.rows.map(c=>Xy(c,e)),i=ae(o,e.query),a=rl(i.length,o.length,s.total,e.query);return i.length===0?sl(r,e,"issues",a,["rsp gh issue list --state all","rsp gh issue list --query <label-or-title>"]):ir({...r,issues:i,aggregate:a,summary:`${ol(i.length,o.length,e.query)} ${Uy(i,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return ir({...r,issue:sA(j(n),e),summary:`issue #${he(j(n),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let s=nl(n,"runs"),o=s.rows.map(c=>Qy(c,e)),i=ae(o,e.query),a=rl(i.length,o.length,s.total,e.query);return i.length===0?sl(r,e,"runs",a,["rsp gh run list --limit 20","rsp gh run list --query <workflow-or-status>"]):ir({...r,runs:i,aggregate:a,summary:`${ol(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 ir({...r,run:oA(j(n),e),summary:`run ${he(j(n),"databaseId")}`},e,["rsp gh run view <id> --full"])}throw new Error(`unsupported gh command: ${e.kind} ${e.action}`)}function ZO(e,t,n){let r=Yy(j(n.view),{...e,action:"view",wide:!0}),s=ae(be(n.checks).map(eA),e.query),o=j(n.comments).comments,i=ae(be(o).map(tA).slice(-3),e.query);return ct({command:t.join(" "),pr:r,checks:s,comments:i,summary:`PR #${he(j(n.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 eA(e){return{name:x(e,"name"),state:Ss(e),bucket:x(e,"bucket"),conclusion:x(e,"conclusion"),workflow:x(e,"workflow"),link:x(e,"link")}}function tA(e){return{author:eb(e.author),body:vi(e,"body",il,!1),created:x(e,"createdAt")}}function nl(e,t){if(Array.isArray(e))return{rows:be(e)};let n=j(e),r=he(n,"total")||he(n,"total_count")||void 0;return Array.isArray(n.items)?{rows:be(n.items),total:r}:t==="runs"&&Array.isArray(n.workflow_runs)?{rows:be(n.workflow_runs),total:r}:{rows:[]}}function rl(e,t,n,r){let s={returned:e};return typeof n=="number"&&n>0&&(s.total=n),r&&(s.unfiltered=t),s}function sl(e,t,n,r,s){return ct({...e,empty:!0,scope:nA(t),[n]:[],aggregate:r,summary:`0 ${rA(t)}`},s)}function nA(e){let t=tt(e.passthrough,"--state")??"open",n=e.query?` query=${e.query}`:"";if(e.kind==="pr")return`${t} PRs${n}`;if(e.kind==="issue"){let o=tt(e.passthrough,"--label");return`${t} issues${o?` label=${o}`:""}${n}`}let r=tt(e.passthrough,"--branch")??tt(e.passthrough,"-b"),s=tt(e.passthrough,"--workflow")??tt(e.passthrough,"-w");return`workflow runs${r?` branch=${r}`:""}${s?` workflow=${s}`:""}${n}`}function rA(e){let t=tt(e.passthrough,"--state")??"open";return e.kind==="pr"?`${t} PRs`:e.kind==="issue"?`${t} issues`:"runs"}function zy(e,t){let n={number:he(e,"number"),title:x(e,"title"),state:Ss(e),draft:!!e.isDraft};return cl(n,e,t,["author","labels","url","updated"]),n}function Yy(e,t){let n=zy(e,t);return n.body=vi(e,"body",il,t.full),t.wide&&(n.base=x(e,"baseRefName"),n.head=x(e,"headRefName")),n}function Xy(e,t){let n={number:he(e,"number"),title:x(e,"title"),state:Ss(e),labels:Zy(e.labels)};return cl(n,e,t,["author","url","updated"]),n}function sA(e,t){let n=Xy(e,t);return n.body=vi(e,"body",il,t.full),n}function Qy(e,t){let n={id:he(e,"databaseId"),name:x(e,"name"),status:Ss(e),conclusion:x(e,"conclusion")};return cl(n,e,t,["event","branch","workflow","created"]),n}function oA(e,t){let n=Qy(e,t),r=be(e.jobs).map(s=>({name:x(s,"name"),status:Ss(s),conclusion:x(s,"conclusion"),log:vi(s,"log",jO,t.full)}));return n.jobs=r,n}function vi(e,t,n,r){let s=x(e,t);if(r||Buffer.byteLength(s)<=n)return s;let o=s.slice(0,n),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 iA(e){let t=[e];for(;t.length>0;){let n=t.pop();if(Array.isArray(n))t.push(...n);else if(fn(n)){if(fn(n.truncated)&&n.truncated.handle===""&&typeof n.preview=="string"){let r=typeof n.__rsp_original=="string"?n.__rsp_original:n.preview;return{target:n,original:r,bytes:Number(n.truncated.bytes??0)}}t.push(...Object.values(n))}}return null}function aA(e){for(let t of["prs","issues","runs","jobs"]){let n=e[t];if(Array.isArray(n)&&n.length>1)return{payload:{...e,[t]:n.slice(0,1)},rowsElided:n.length-1}}return null}function Uy(e,t){return e.every(n=>n.state===t)?t:"returned"}function ol(e,t,n){return n?`${e}/${t}`:String(e)}function ir(e,t,n){return t.query?ct(e,n):e}function Ss(e){return(x(e,"state")||x(e,"status")).toLowerCase()}function cl(e,t,n,r){if(!(!n.wide&&n.fields.size===0))for(let s of r)!n.wide&&!n.fields.has(s)||(s==="author"?e.author=eb(t.author):s==="labels"?e.labels=Zy(t.labels):s==="url"?e.url=x(t,"url"):s==="updated"?e.updated=x(t,"updatedAt"):s==="event"?e.event=x(t,"event"):s==="branch"?e.branch=x(t,"headBranch"):s==="workflow"?e.workflow=x(t,"workflowName"):s==="created"&&(e.created=x(t,"createdAt")))}function Zy(e){return Array.isArray(e)?e.map(t=>fn(t)?x(t,"name"):String(t)).filter(Boolean):[]}function eb(e){return fn(e)?x(e,"login"):""}function ks(e){return e.trim()?JSON.parse(e):null}function be(e){return Array.isArray(e)?e.filter(fn):[]}function j(e){return fn(e)?e:{}}function x(e,t){let n=e[t];return typeof n=="string"?n:""}function he(e,t){let n=e[t];return typeof n=="number"?n:0}function fn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var BO,FO,il,jO,GO,xi,ll=g(()=>{"use strict";V();D();Uo();By();un();wr();Ve();BO={"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"]},FO={"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"]},il=160,jO=160,GO={"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"]};xi=class extends Error{constructor(n,r,s=[]){super(r);this.command=n;this.validFields=s}render(){return N({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 fl={};B(fl,{renderTestContract:()=>tb,runTestWrapper:()=>pA});import{spawn as cA}from"node:child_process";async function pA(e,t){let n=br(e),r=await yA(n.argv);return await tb(e,r,t)}async function tb(e,t,n){let r=br(e),o=nb(r.argv)==="vitest"?bA(t.stdout):wA(t.stdout),i=t.status;if(!o||(i??0)!==0&&o.failed===0){let f=$e(e.join(" "),t.stdout,t.stderr);return{stdout:N(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 ${kA(o.durationSeconds)}`,c=ae(o.failures,r.query);if(n.level==="terse")return await fA(r.argv,t,{...o,failures:c},i,a,n,r.query);let u=[],l,p=0;for(let f of c){let b=await _A(f.excerpt,r.argv.join(" "),n.store);u.push({suite:f.suite,name:f.name,excerpt:b.text}),l??=b.handle,p+=b.bytesElided}let d={exit_code:i,summary:r.query?`${a} \xB7 ${c.length}/${o.failures.length} failures matched`:a};u.length>0&&(d.failures=u);let m=r.query?ct(d,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):d;return{stdout:Buffer.from(C(m)),stderr:Buffer.from(t.stderr),status:pl(t.status),signal:t.signal,payload:m,mintedHandle:l,bytesElided:p>0?p:void 0,rowsElided:u.length>0?Math.max(0,o.total-u.length):void 0}}async function fA(e,t,n,r,s,o,i){let a=mA(n.failures),c={exit_code:r,summary:i?`${s} \xB7 ${n.failures.length} failures matched`:s};a.length>0&&(c.failures=a);let u=i?ct(c,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):c,l=C(u),p=Math.max(0,n.failures.length-a.length),d=a.some((w,k)=>w.excerpt!==n.failures[k].excerpt);if(p===0&&!d)return{stdout:Buffer.from(l),stderr:Buffer.from(t.stderr),status:pl(t.status),signal:t.signal,payload:u};let m={exit_code:r,summary:s};n.failures.length>0&&(m.failures=n.failures.map(w=>({suite:w.suite,name:w.name,excerpt:w.excerpt})));let f=C(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 y=`\u2026 elided ${p>0?`${p} failures`:"full detail"} (+${b}) \u2014 ${He(_)}`;return{stdout:Buffer.from(`${l}
|
|
127
|
-
${
|
|
128
|
-
`),r
|
|
124
|
+
`)}}function Uw(e,t){process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook ${e}: exception ${Kl(t)}
|
|
125
|
+
`)}function PI(e){Tc(e)||process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook pre-exec: resident-wake-failed ${Kl(e)}
|
|
126
|
+
`)}function Kl(e){return e instanceof Error?e.name||"Error":typeof e}function II(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 LI(e){if(!e.storeUri.startsWith("file://"))return!0;try{return hI(yI(e.storeUri))}catch{return!1}}function Vl(e){return nt(e,["tool_input","command"])||nt(e,["tool_input","cmd"])||nt(e,["tool_input","args","command"])||nt(e,["input","command"])||nt(e,["input","cmd"])||nt(e,["arguments","command"])||nt(e,["arguments","cmd"])||nt(e,["command"])||nt(e,["cmd"])}function DI(e){let t=e.trim();if(!t||/[\n\r|;()$`]/.test(t))return null;let r=zl(t);if(r.length===0||r[0]?.quoted||r.some(o=>/[()$`]/.test(o.text))||r.some(o=>o.text.includes("=")&&pn(o.text)))return null;let n=[],s=[];for(let o of r){if(o.text.includes(">")||o.text.includes("<")){if(o.quoted||o.text!=="2>/dev/null"&&o.text!=="2>&1")return null;s.push(o);continue}n.push(o)}return n.length===0?null:{tokens:n,redirectSuffix:s}}function zl(e){let t=[],r="",n=!1,s=null,o=()=>{!r&&!n||(t.push({text:r,quoted:n}),r="",n=!1)};for(let i=0;i<e.length;i+=1){let a=e[i];if(s){if(a===s){s=null;continue}if(s==='"'&&a==="\\"&&i+1<e.length){i+=1,r+=e[i];continue}r+=a;continue}if(a==="'"||a==='"'){s=a,n=!0;continue}if(a==="\\"&&i+1<e.length){i+=1,r+=e[i];continue}if(/[ \t]/.test(a)){o();continue}r+=a}return s?[]:(o(),t)}function GI(e,t){return e.length<t.length?!1:t.every((r,n)=>e[n]===r)}function $I(e){let t=zl(e.trim()).map(r=>r.text);return kr(t)?{kind:"passthrough",reason:RI}:null}function Hw(e){return e.map(t=>t.text)}function rr(e){return/[^\w@%+=:,./-]/.test(e)?Yl(e):e}function NI(e,t){let r=MI(e);return r?{kind:"passthrough",reason:r}:{kind:"rewrite",command:`${t.map(rr).join(" ")} proxy -- ${Yl(e.trim())}`,capabilityId:"proxy:universal"}}function FI(e){if(!process.argv[1])return!1;let t=zl(e);return t[0]?.text===process.execPath&&t[1]?.text===process.argv[1]}function MI(e){let t=e.trim();if(!t)return"missing-command";if(Ww(t))return"background";if(/\b(?:RSP_NO_PROXY|RED_SKILLS_RSP_NO_PROXY)=1\b/.test(t))return"opt-out";let r=ms(ps(t)[0]??"")[0];if(r==="rsp"||FI(t))return"opt-out";if(r&&qw.has(r))return"interactive"}function Ki(e,t){let r=e.trim();return BI(r)?{kind:"rewrite",command:`${t.map(rr).join(" ")} exec -- ${Yl(r)}`,capabilityId:"exec:compound"}:{kind:"passthrough"}}function BI(e){return!(!e||!jI(e)||!UI(e)||Ww(e)||/<<-?/.test(e)||/\$\(|`/.test(e)||/[<>]/.test(e)||HI(e,"rsp")||Vw(e,qw)||qI(e))}function jI(e){return/&&|[;|]/.test(e)}function Ww(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 UI(e){return ps(e).some(t=>{let r=ms(t);return r.length===0?!1:r[0]==="git"?["log","diff","show","blame"].includes(r[1]??""):r[0]==="gh"?r.some((n,s)=>s>0&&(n==="list"||n==="view")):r[0]==="vitest"?!0:r[0]==="cargo"&&r[1]==="test"})}function Vw(e,t){return ps(e).some(r=>{let n=ms(r)[0];return n?t.has(n):!1})}function HI(e,t){return Vw(e,new Set([t]))}function qI(e){return ps(e).some(t=>{let r=ms(t);return r[0]==="grep"&&r.includes("-q")})}function Yl(e){return`'${e.replace(/'/g,"'\\''")}'`}function WI(e){return e.join("\0")}function Jw(e){try{let t=JSON.parse(e);return Kw(t)?{ok:!0,payload:t}:{ok:!1,reason:"payload-not-object"}}catch{return{ok:!1,reason:"payload-parse-error"}}}function nt(e,t){let r=e;for(let n of t){if(!Kw(r))return"";r=r[n]}return typeof r=="string"?r:""}function Kw(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var zi,Wl,Js,CJ,RI,qw,Ks=y(()=>{"use strict";fs();Ze();dt();wr();Dl();et();Wl=!1;Js=[{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"]}],CJ=Dw(Js),RI="lossless-gh-json-jq";qw=new Set(["bash","fish","htop","less","more","nano","node","python","python3","ssh","top","vi","vim","zsh"])});var t_={};K(t_,{fastTelemetryRoot:()=>Xl,isFastGitStatus:()=>Zi,runFastGitStatus:()=>ea});import{spawnSync as Zw}from"node:child_process";import{existsSync as e_,readdirSync as eL}from"node:fs";function Zi(e){return e.length===2&&e[0]==="git"&&e[1]==="status"}async function ea(){if(tL(process.cwd()))return{stdout:Ql(),stderr:Buffer.alloc(0),status:0,signal:null};if(Zw("git",["diff-index","--quiet","HEAD","--"],{stdio:"ignore"}).status===0)return{stdout:Ql(),stderr:Buffer.alloc(0),status:0,signal:null};let t=Zw("git",["status","--porcelain=v1"],{encoding:"buffer"});if((t.status??0)!==0)return{stdout:t.stdout,stderr:t.stderr,status:t.status??1,signal:t.signal};let r=t.stdout.length===0?Ql():t.stdout;return{stdout:r,stderr:t.stderr,status:0,signal:t.signal,rawOutput:r}}async function Xl(e){try{let{resolveResidentPaths:t}=await Promise.resolve().then(()=>(dt(),br));return t(e).rootDir}catch{return e}}function Ql(){return Buffer.from(`${se({command:"git status",category:"no-op",exit_code:0,noop:!0,scope:"git status",empty:!0,branch:"",rows:[],summary:"git status clean: 0 changes"})}
|
|
127
|
+
`)}function tL(e){try{return!e_(`${e}/.git`)||e_(`${e}/.git/index`)?!1:eL(e).every(t=>t===".git")}catch{return!1}}var Zl=y(()=>{"use strict";Tt()});async function Tn(e,t,r){let n=new Array(e.length),s=0,o=Math.min(Math.max(1,Math.floor(t)),e.length),i=Array.from({length:o},async()=>{for(;s<e.length;){let a=s++;n[a]=await r(e[a])}});return await Promise.all(i),n}function s_(e,t,r,n={}){bL(t);let s=e==="issue"?"i":"p",o=t.map((d,g)=>({alias:`${s}${g}`,number:d})),i=(n.labelNames??[]).map((d,g)=>({alias:`l${g}`,name:d})),c=wL(["id","number",...r]).map(d=>_L(yL[d],6)).join(`
|
|
128
|
+
`),u=o.map(({alias:d,number:g})=>[` ${d}: ${e}(number: ${g}) {`,c," }"].join(`
|
|
129
|
+
`)),l=i.map(({alias:d,name:g})=>` ${d}: label(name: ${JSON.stringify(g)}) { id name }`),p=["query RspGitHubBatch($owner: String!, $repo: String!) {"," repository(owner: $owner, name: $repo) {",...u,...l," }","}"].join(`
|
|
130
|
+
`);return{kind:e,query:p,aliases:o,labelAliases:i}}function o_(e,t){let r=Sn(t),n=Sn(r.data),s=Sn(n.repository),o=Array.isArray(r.errors)?r.errors.map(Sn):[];return e.aliases.map(({alias:i,number:a})=>{let c=s[i];if(c_(c))return{number:a,value:c};let u=o.find(l=>{let p=l.path;return Array.isArray(p)&&p.includes(i)});return{number:a,error:u_(u?.message)||"not found"}})}function i_(e,t,r){let n=[],s=[];return e.forEach((o,i)=>{if(t.length>0){let a=`add${i}`;n.push({alias:a,number:o.number}),s.push(` ${a}: addLabelsToLabelable(input: { labelableId: ${sr(o.nodeId)}, labelIds: ${n_(t)}, clientMutationId: ${sr(String(o.number))} }) { clientMutationId }`)}if(r.length>0){let a=`remove${i}`;n.push({alias:a,number:o.number}),s.push(` ${a}: removeLabelsFromLabelable(input: { labelableId: ${sr(o.nodeId)}, labelIds: ${n_(r)}, clientMutationId: ${sr(String(o.number))} }) { clientMutationId }`)}}),{aliases:n,query:["mutation RspEditLabels {",...s,"}"].join(`
|
|
131
|
+
`)}}function a_(e,t){let r=t.map((s,o)=>({alias:`link${o}`,number:s.number})),n=t.map((s,o)=>` link${o}: addSubIssue(input: { issueId: ${sr(e.nodeId)}, subIssueId: ${sr(s.nodeId)}, clientMutationId: ${sr(String(s.number))} }) { clientMutationId }`);return{aliases:r,query:["mutation RspLinkSubIssues {",...n,"}"].join(`
|
|
132
|
+
`)}}function ed(e,t){let r=Sn(t),n=Array.isArray(r.errors)?r.errors.map(Sn):[],s=new Map;for(let{alias:o}of e){let i=n.find(a=>Array.isArray(a.path)&&a.path.includes(o));i&&s.set(o,u_(i.message)||"mutation failed")}return s}function bL(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 wL(e){return[...new Set(e)]}function _L(e,t){let r=" ".repeat(t);return e.split(`
|
|
133
|
+
`).map(n=>`${r}${n}`).join(`
|
|
134
|
+
`)}function sr(e){return JSON.stringify(e)}function n_(e){return`[${e.map(sr).join(", ")}]`}function Sn(e){return c_(e)?e:{}}function c_(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function u_(e){return typeof e=="string"?e:""}var yL,l_=y(()=>{yL={id:"id",number:"number",title:"title",state:"state",labels:"labels(first: 100) { nodes { id name } }",body:"body",mergeable:"mergeable",checks:["commits(last: 1) {"," nodes { commit { statusCheckRollup {"," state"," contexts(first: 100) { nodes {"," __typename"," ... on CheckRun { name status conclusion detailsUrl }"," ... on StatusContext { context state targetUrl }"," } }"," } } }","}"].join(`
|
|
135
|
+
`),subIssues:"subIssues(first: 100) { nodes { number } }"}});import{spawn as RL,spawnSync as kL}from"node:child_process";function nd(e){return e[0]==="gh"&&["issues","prs","edit-labels","link-sub-issues"].includes(e[1]??"")}async function m_(e,t={}){let r=NL(e),n=r.repo??t.repo??process.env.GH_REPO??ML();if(!n||!n.includes("/"))return id(e,"repository is required; pass --repo owner/repo");let s=t.exec??BL,o=Math.max(1,Math.floor(t.restConcurrency??p_));return r.verb==="issues"||r.verb==="prs"?await vL(r,n,s,o,e):r.verb==="edit-labels"?await CL(r,n,s,o,e):await AL(r,n,s,o,e)}async function vL(e,t,r,n,s){let o=e.verb==="issues"?"issue":"pullRequest",i=f_(e),a=[],c=[];for(let l of od(e.numbers,100)){let p=s_(o,l,i.query),d=await sd(r,t,p.query);if(cd(d))return await xL(e,t,r,n,s);if(d.code!==0){c.push(d.stderr),a.push(...l.map(g=>({number:g,value:{error:Ue(d)||`failed to read ${g}`},failed:!0})));continue}a.push(...o_(p,or(d.stdout)).map(g=>({number:g.number,value:g.error?{error:g.error}:IL(e.verb,g.value??{},i.output),failed:!!g.error})))}let u=a.filter(l=>l.failed).length;return ra({command:na(s),transport:"graphql",order:e.numbers,[e.verb]:zs(a),summary:`${a.length-u}/${a.length} read`},c.length>0?1:0,c.filter(Boolean).join(`
|
|
136
|
+
`))}async function xL(e,t,r,n,s){let o=f_(e),i=e.verb==="issues"?"issues":"pulls",a=await Tn(e.numbers,n,async u=>{let l=await r(["api",`repos/${t}/${i}/${u}`]);if(l.code!==0)return{number:u,value:{error:Ue(l)||"REST fallback failed"}};let p=ht(or(l.stdout));if(e.verb==="prs"&&o.output.some(g_)){let d=ee(ht(p.head).sha);if(!d)return{number:u,value:{error:"REST fallback pull response omitted head SHA"}};let g=await r(["api",`repos/${t}/commits/${d}/check-runs`]);if(g.code!==0)return{number:u,value:{error:Ue(g)||"REST check-runs fallback failed"}};let f=await r(["api",`repos/${t}/commits/${d}/status`]);if(f.code!==0)return{number:u,value:{error:Ue(f)||"REST commit-status fallback failed"}};p={...p,restCheckRollup:DL(ht(or(g.stdout)),ht(or(f.stdout)))}}return{number:u,value:LL(e.verb,p,o.output)}}),c=a.filter(u=>"error"in u.value).length;return ra({command:na(s),transport:"rest-fallback",degraded:"graphql-quota",concurrency:n,order:e.numbers,[e.verb]:zs(a),summary:`${a.length-c}/${a.length} read via REST fallback`})}async function CL(e,t,r,n,s){if(e.add.length===0&&e.remove.length===0)return id(s,"pass --add and/or --remove");let o=[...new Set([...e.add,...e.remove])],[i,a]=await Promise.all([h_(e.numbers,t,r,n),Tn(o,n,async d=>{let g=await r(["api",`repos/${t}/labels/${encodeURIComponent(d)}`]);return{name:d,nodeId:ee(ht(or(g.stdout)).node_id),error:g.code===0?"":Ue(g)}})]),c=new Map(a.map(d=>[d.name,d.nodeId])),u=o.filter(d=>!c.get(d));if(u.length>0)return xn(s,e.numbers,ad(e.numbers,()=>({error:`label not found: ${u.join(", ")}`})),"graphql");let l=new Map(i.filter(d=>d.error).map(d=>[d.number,{error:d.error}])),p=i.flatMap(d=>d.nodeId?[{number:d.number,nodeId:d.nodeId}]:[]);for(let d of od(p,100)){let g=i_(d,e.add.map(E=>c.get(E)),e.remove.map(E=>c.get(E))),f=await sd(r,t,g.query);if(cd(f))return await OL(e,t,r,n,s);if(f.code!==0){for(let E of d)l.set(E.number,{error:Ue(f)||"label mutation failed"});continue}let k=ed(g.aliases,or(f.stdout));for(let E of d){let _=g.aliases.filter(T=>T.number===E.number).map(T=>k.get(T.alias)).find(Boolean);l.set(E.number,_?{error:_}:{ok:!0})}}return xn(s,e.numbers,y_(e.numbers,l),"graphql")}async function OL(e,t,r,n,s){let o=await Tn(e.numbers,n,async i=>{for(let a of e.remove){let c=await r(["api","-X","DELETE",`repos/${t}/issues/${i}/labels/${encodeURIComponent(a)}`]);if(c.code!==0)return{number:i,value:{error:Ue(c)||`failed to remove label ${a}`}}}if(e.add.length>0){let a=["api","-X","POST",`repos/${t}/issues/${i}/labels`];for(let u of e.add)a.push("-f",`labels[]=${u}`);let c=await r(a);if(c.code!==0)return{number:i,value:{error:Ue(c)||"failed to add labels"}}}return{number:i,value:{ok:!0}}});return xn(s,e.numbers,zs(o),"rest-fallback",n)}async function AL(e,t,r,n,s){if(e.numbers.length<2)return id(s,"pass a parent and at least one child issue");let[o,...i]=e.numbers,a=await h_(e.numbers,t,r,n),c=a[0],u=c?.nodeId;if(!u)return xn(s,i,ad(i,()=>({error:c?.error??"parent not found"})),"graphql");let l=new Map,p=a.slice(1).flatMap(d=>d.nodeId?[{number:d.number,nodeId:d.nodeId}]:(l.set(d.number,{error:d.error??"child not found"}),[]));for(let d of od(p,100)){let g=a_({number:o,nodeId:u},d),f=await sd(r,t,g.query);if(cd(f))return await PL(o,i,t,r,n,s);if(f.code!==0){for(let E of d)l.set(E.number,{error:Ue(f)||"sub-issue mutation failed"});continue}let k=ed(g.aliases,or(f.stdout));for(let E of g.aliases){let h=k.get(E.alias);l.set(E.number,h?{error:h}:{ok:!0})}}return xn(s,i,y_(i,l),"graphql")}async function PL(e,t,r,n,s,o){let i=await Tn(t,s,async a=>{let c=await n(["api",`repos/${r}/issues/${a}`,"--jq",".id"]),u=Number(c.stdout.trim());if(c.code!==0||!Number.isSafeInteger(u)||u<=0)return{number:a,value:{error:Ue(c)||"REST id lookup failed"}};let l=await n(["api","-X","POST",`repos/${r}/issues/${e}/sub_issues`,"-F",`sub_issue_id=${u}`]);return{number:a,value:l.code===0?{ok:!0}:{error:Ue(l)||"REST link failed"}}});return xn(o,t,zs(i),"rest-fallback",s)}function xn(e,t,r,n,s){let o=Object.values(r).filter(i=>Cn(i)&&"error"in i).length;return ra({command:na(e),transport:n,...n==="rest-fallback"?{degraded:"graphql-quota",concurrency:s??p_}:{},order:[...t],issues:r,summary:`${t.length-o}/${t.length} mutated`})}function f_(e){if(e.verb==="issues"){let r=e.fields.length>0?e.fields:["title","state","labels","body"];return d_(r,SL),{output:r,query:r}}let t=e.fields.length>0?e.fields:["title","state","mergeable","checks"];return d_(t,TL),{output:t,query:t.map(r=>["checkRollup","statusCheckRollup"].includes(r)?"checks":r)}}function d_(e,t){let r=e.find(n=>!t.has(n));if(r)throw new Error(`unknown GitHub batch field: ${r}`)}function IL(e,t,r){let n={};for(let s of r)s==="labels"?n.labels=td(t.labels).map(o=>ee(o.name)).filter(Boolean):["checks","checkRollup","statusCheckRollup"].includes(s)?n[s]=$L(t.commits):s==="state"||s==="mergeable"?n[s]=ee(t[s]).toLowerCase():s!=="id"&&s!=="subIssues"&&(n[s]=b_(t[s]));return"number"in n||(n.number=ud(t.number)),n}function LL(e,t,r){let n={};for(let s of r)if(s==="labels"){let o=Array.isArray(t.labels)?t.labels.filter(Cn):[];n.labels=o.map(i=>ee(i.name)).filter(Boolean)}else if(g_(s))n[s]=ht(t.restCheckRollup);else if(s==="state")n.state=ee(t.state).toLowerCase();else if(s==="mergeable"){let o=t.mergeable;n.mergeable=typeof o=="boolean"?o?"mergeable":"conflicting":"unknown"}else n[s]=b_(t[s]);return"number"in n||(n.number=ud(t.number)),n}function DL(e,t){let r=Array.isArray(e.check_runs)?e.check_runs.filter(Cn):[],n=Array.isArray(t.statuses)?t.statuses.filter(Cn):[],s=[...r.map(o=>({name:ee(o.name),state:(ee(o.conclusion)||ee(o.status)).toLowerCase()})),...n.map(o=>({name:ee(o.context),state:ee(o.state).toLowerCase()}))];return{state:ee(t.state).toLowerCase()||GL(s.map(o=>o.state)),contexts:s}}function GL(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 g_(e){return["checks","checkRollup","statusCheckRollup"].includes(e)}function $L(e){let t=td(e).at(-1),r=ht(ht(t?.commit).statusCheckRollup);return{state:ee(r.state).toLowerCase(),contexts:td(r.contexts).map(n=>({name:ee(n.name)||ee(n.context),state:(ee(n.conclusion)||ee(n.status)||ee(n.state)).toLowerCase()}))}}async function sd(e,t,r){let[n,s]=FL(t);return await e(["api","graphql","-f",`query=${r}`,"-F",`owner=${n}`,"-F",`repo=${s}`])}async function h_(e,t,r,n){return await Tn(e,n,async s=>{let o=await r(["api",`repos/${t}/issues/${s}`]),i=ht(or(o.stdout)),a=ee(i.node_id),c=ud(i.id);return o.code!==0||!a?{number:s,error:Ue(o)||"REST issue lookup failed"}:{number:s,nodeId:a,databaseId:c>0?c:void 0}})}function od(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function NL(e){if(!nd(e))throw new Error("unsupported rsp gh batch command");let t=e[1],r=[],n=[],s=[],o=[],i;for(let a=2;a<e.length;a++){let c=e[a];if(c==="--repo")i=e[++a];else if(c==="--json")n.push(...vn(e[++a]??""));else if(c.startsWith("--json="))n.push(...vn(c.slice(7)));else if(c==="--add")s.push(...vn(e[++a]??""));else if(c.startsWith("--add="))s.push(...vn(c.slice(6)));else if(c==="--remove")o.push(...vn(e[++a]??""));else if(c.startsWith("--remove="))o.push(...vn(c.slice(9)));else{let u=Number(c);if(!Number.isSafeInteger(u)||u<=0)throw new Error(`invalid GitHub number: ${c}`);r.push(u)}}if(r.length===0)throw new Error("at least one GitHub number is required");return{verb:t,numbers:r,repo:i,fields:n,add:s,remove:o}}function ra(e,t=0,r=""){return{stdout:Buffer.from(`${$(e)}
|
|
137
|
+
`),stderr:Buffer.from(r),status:t,signal:null,payload:e}}function id(e,t){return ra({command:na(e),category:"usage",error:t,help:"rsp gh --help",exit_code:2},2)}function ad(e,t){return zs(e.map(r=>({number:r,value:t(r)})))}function zs(e){return Object.fromEntries(e.map(t=>[String(t.number),t.value]))}function y_(e,t){return ad(e,r=>t.get(r)??{error:"mutation skipped"})}function cd(e){return e.code!==0&&/rate.?limit|rate_limit|RATE_LIMITED|quota/i.test(`${e.stderr}
|
|
138
|
+
${e.stdout}`)}function Ue(e){return(e.stderr||e.stdout).trim().split(`
|
|
139
|
+
`)[0]?.slice(0,240)??""}function or(e){try{return e.trim()?JSON.parse(e):{}}catch{return{}}}function td(e){let t=ht(e).nodes;return Array.isArray(t)?t.filter(Cn):[]}function b_(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||e===null?e:""}function ud(e){let t=Number(e);return Number.isFinite(t)?t:0}function vn(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function FL(e){let t=e.indexOf("/");return[e.slice(0,t),e.slice(t+1)]}function na(e){return`rsp ${e.join(" ")}`}function ML(){let e=kL("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 BL(e){let t=RL("gh",e,{stdio:["ignore","pipe","pipe"]}),r=ke();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",a=>o({code:a??1,stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(s).toString("utf8")}))})}function ht(e){return Cn(e)?e:{}}function Cn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ee(e){return typeof e=="string"?e:""}var p_,SL,TL,w_=y(()=>{"use strict";oe();W();l_();p_=4,SL=new Set(["number","title","state","labels","body"]),TL=new Set(["number","title","state","mergeable","checks","checkRollup","statusCheckRollup","body"])});var yd={};K(yd,{renderGhContract:()=>T_,runGhWrapper:()=>VL});import{spawn as jL}from"node:child_process";async function VL(e,t){if(nd(e))return await m_(e);let r=v_(e),n=await KL(r);return T_(e,n,t)}async function T_(e,t,r){if((t.status??0)!==0||t.signal){let g=Je(e.join(" "),t.stdout,t.stderr);return{stdout:V(g),stderr:Buffer.from(t.stderr),status:g.exitCode??1,signal:t.signal}}let n=v_(e),s=Ys(t.stdout),o=rD(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=lD(o);if(i){if(!r.store)throw new Error("truncated gh output requires an elision store");let g=await r.store.mint(Buffer.from(i.original),{command:e.join(" "),loss:{level:n.full?"brief":r.level,bytes_elided:i.bytes}});i.target.truncated.handle=g}let a=i?.target.truncated.handle||void 0,c=$(o);if(r.level!=="terse")return{stdout:Buffer.from(c),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o,mintedHandle:a,bytesElided:i?.bytes};let u=dD(o);if(!u)return{stdout:Buffer.from(c),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o,mintedHandle:a,bytesElided:i?.bytes};let l=Buffer.byteLength(c),p=await r.store?.mint(Buffer.from(c),{command:e.join(" "),loss:{level:"terse",bytes_elided:l}});if(!p)throw new Error("terse gh output requires an elision store");let d=`\u2026 elided ${u.rowsElided} rows (+${l}) \u2014 ${rt(p)}
|
|
140
|
+
`;return{stdout:Buffer.from(`${$(u.payload)}
|
|
141
|
+
${d}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:u.payload,mintedHandle:p,bytesElided:l,rowsElided:u.rowsElided,rawOutput:Buffer.from(c)}}function v_(e){let t=Hn(e);if(t.argv[0]!=="gh")throw new Error("expected rsp gh <surface> <subcommand>");let r=t.argv[1],n=t.argv[2];if(!(r==="pr"||r==="issue"||r==="run"))throw new Error(`unsupported gh surface: ${r??""}`);let s=r==="pr"&&n&&n!=="list"&&n!=="view";if(!(n==="list"||n==="view"||s))throw new Error(`unsupported gh subcommand: ${n??""}`);let o=r,i=[],a=!1,c=!1,u=new Set,l=t.argv.slice(3);for(let g=0;g<l.length;g+=1){let f=l[g]??"";f==="--full"?a=!0:f==="--wide"?c=!0:f==="--fields"?u=E_(l[++g]??""):f.startsWith("--fields=")?u=E_(f.slice(9)):i.push(f)}let d={kind:o,action:s?"combined":n==="list"?"list":"view",target:s?n:void 0,full:a,wide:c,fields:u,passthrough:i,query:t.query};return JL(d),d}function __(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?HL[t]:UL[t];return[e.kind,e.action,...e.passthrough,"--json",r.join(",")]}function E_(e){return new Set(e.split(",").map(t=>t.trim()).filter(Boolean))}function JL(e){if(e.fields.size===0)return;if(e.action!=="list")throw new sa(e,"--fields is supported for list outputs");let t=`${e.kind}:list`,r=WL[t];for(let n of e.fields)if(!r.includes(n))throw new sa(e,`unknown field: ${n}`,r)}async function KL(e){if(e.action==="combined")return await zL(e);let t=YL(e);if(!t)return await tD(__(e));let r=await Oe({...t,command:["gh",...__(e)].join(" ")});return r.status!==0?{stdout:r.stdout,stderr:r.stderr,status:r.status,signal:null}:{stdout:JSON.stringify(await QL(e,r.stdout)),stderr:r.stderr,status:0,signal:null}}async function zL(e){let t=e.target??"",[r,n,s]=await Promise.all([Oe({path:`repos/{owner}/{repo}/pulls/${t}`,command:`gh pr view ${t}`}),Oe({path:`repos/{owner}/{repo}/pulls/${t}/commits`,command:`gh pr checks ${t}`}),Oe({path:`repos/{owner}/{repo}/issues/${t}/comments`,command:`gh pr view ${t} --comments`})]),o=[r,n,s].find(a=>(a.status??0)!==0);if(o)return{stdout:o.stdout,stderr:o.stderr,status:o.status,signal:null};let i=C_(Ys(r.stdout));return{stdout:JSON.stringify({view:i,checks:[],comments:{comments:Le(Ys(s.stdout)).map(ZL)}}),stderr:[r.stderr,n.stderr,s.stderr].filter(Boolean).join(""),status:0,signal:null}}function YL(e){let t=O_(e.passthrough),r=eD(e.passthrough,"--limit")??30,n=yt(e.passthrough,"--state")??"open";switch(`${e.kind}:${e.action}`){case"pr:list":return{path:"repos/{owner}/{repo}/pulls",params:{state:n,per_page:r}};case"pr:view":return t?{path:`repos/{owner}/{repo}/pulls/${t}`}:null;case"issue:list":return{path:"repos/{owner}/{repo}/issues",params:{state:n,labels:yt(e.passthrough,"--label"),per_page:r}};case"issue:view":return t?{path:`repos/{owner}/{repo}/issues/${t}`}:null;case"run:list":return{path:"repos/{owner}/{repo}/actions/runs",params:{per_page:r}};case"run:view":return t?{path:`repos/{owner}/{repo}/actions/runs/${t}`}:null;default:return null}}async function QL(e,t){let r=Ys(t);switch(`${e.kind}:${e.action}`){case"pr:list":return Le(r).map(x_);case"pr:view":return C_(r);case"issue:list":return Le(r).filter(n=>!Dr(n.pull_request)).map(R_);case"issue:view":return R_(r);case"run:list":return{items:Le(Y(r).workflow_runs).map(k_),total:Pe(Y(r),"total_count")};case"run:view":{let n=k_(r),s=O_(e.passthrough);if(!s)return n;let o=await Oe({path:`repos/{owner}/{repo}/actions/runs/${s}/jobs`,command:`gh run view ${s} jobs`});return{...n,jobs:o.status===0?Le(Y(Ys(o.stdout)).jobs).map(XL):[]}}default:return r}}function x_(e){let t=Y(e);return{number:Pe(t,"number"),title:L(t,"title"),state:L(t,"state").toUpperCase(),isDraft:!!t.draft,author:gd(t.user),labels:Le(t.labels).map(r=>({name:L(r,"name")})),url:L(t,"html_url"),updatedAt:L(t,"updated_at"),body:L(t,"body"),baseRefName:L(Y(t.base),"ref"),headRefName:L(Y(t.head),"ref")}}function C_(e){return x_(e)}function R_(e){let t=Y(e);return{number:Pe(t,"number"),title:L(t,"title"),state:L(t,"state").toUpperCase(),labels:Le(t.labels).map(r=>({name:L(r,"name")})),author:gd(t.user),url:L(t,"html_url"),updatedAt:L(t,"updated_at"),body:L(t,"body")}}function k_(e){let t=Y(e);return{databaseId:Pe(t,"database_id")||Pe(t,"id"),name:L(t,"name")||L(t,"display_title"),status:L(t,"status").toUpperCase(),conclusion:L(t,"conclusion").toUpperCase(),event:L(t,"event"),headBranch:L(t,"head_branch"),workflowName:L(t,"workflow_name"),createdAt:L(t,"created_at"),url:L(t,"html_url"),jobs:[]}}function XL(e){let t=Y(e);return{name:L(t,"name"),status:L(t,"status").toUpperCase(),conclusion:L(t,"conclusion").toUpperCase(),log:""}}function ZL(e){let t=Y(e);return{author:gd(t.user),body:L(t,"body"),createdAt:L(t,"created_at")}}function gd(e){let t=Y(e);return{login:L(t,"login")}}function O_(e){return e.find(t=>!t.startsWith("-"))}function yt(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}function eD(e,t){let r=yt(e,t);if(!r)return;let n=Number(r);return Number.isFinite(n)&&n>0?n:void 0}async function tD(e){let t=jL("gh",e,{stdio:["ignore","pipe","pipe"]}),r=ke();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",(a,c)=>{o({stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(s).toString("utf8"),status:a,signal:c})})})}function rD(e,t,r){let n={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let s=ld(r,"prs"),o=s.rows.map(c=>A_(c,e)),i=Re(o,e.query),a=dd(i.length,o.length,s.total,e.query);return i.length===0?pd(n,e,"prs",a,["rsp gh issue list","rsp gh pr list --query <title-or-label>"]):On({...n,prs:i,aggregate:a,summary:`${md(i.length,o.length,e.query)} ${S_(i,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return On({...n,pr:P_(Y(r),e),summary:`PR #${Pe(Y(r),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return nD(e,t,Y(r));case"issue:list":{let s=ld(r,"issues"),o=s.rows.map(c=>I_(c,e)),i=Re(o,e.query),a=dd(i.length,o.length,s.total,e.query);return i.length===0?pd(n,e,"issues",a,["rsp gh issue list --state all","rsp gh issue list --query <label-or-title>"]):On({...n,issues:i,aggregate:a,summary:`${md(i.length,o.length,e.query)} ${S_(i,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return On({...n,issue:cD(Y(r),e),summary:`issue #${Pe(Y(r),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let s=ld(r,"runs"),o=s.rows.map(c=>L_(c,e)),i=Re(o,e.query),a=dd(i.length,o.length,s.total,e.query);return i.length===0?pd(n,e,"runs",a,["rsp gh run list --limit 20","rsp gh run list --query <workflow-or-status>"]):On({...n,runs:i,aggregate:a,summary:`${md(i.length,o.length,e.query)} runs`},e,["rsp gh run view <id>","rsp gh run list --query <workflow-or-status>"])}case"run:view":return On({...n,run:uD(Y(r),e),summary:`run ${Pe(Y(r),"databaseId")}`},e,["rsp gh run view <id> --full"])}throw new Error(`unsupported gh command: ${e.kind} ${e.action}`)}function nD(e,t,r){let n=P_(Y(r.view),{...e,action:"view",wide:!0}),s=Re(Le(r.checks).map(sD),e.query),o=Y(r.comments).comments,i=Re(Le(o).map(oD).slice(-3),e.query);return vt({command:t.join(" "),pr:n,checks:s,comments:i,summary:`PR #${Pe(Y(r.view),"number")}: ${s.length} checks, ${i.length} comments`},["rsp gh pr view <number> --full","rsp gh pr <number> --query <check-or-comment>","rsp gh run view <id>"])}function sD(e){return{name:L(e,"name"),state:Qs(e),bucket:L(e,"bucket"),conclusion:L(e,"conclusion"),workflow:L(e,"workflow"),link:L(e,"link")}}function oD(e){return{author:G_(e.author),body:oa(e,"body",fd,!1),created:L(e,"createdAt")}}function ld(e,t){if(Array.isArray(e))return{rows:Le(e)};let r=Y(e),n=Pe(r,"total")||Pe(r,"total_count")||void 0;return Array.isArray(r.items)?{rows:Le(r.items),total:n}:t==="runs"&&Array.isArray(r.workflow_runs)?{rows:Le(r.workflow_runs),total:n}:{rows:[]}}function dd(e,t,r,n){let s={returned:e};return typeof r=="number"&&r>0&&(s.total=r),n&&(s.unfiltered=t),s}function pd(e,t,r,n,s){return vt({...e,empty:!0,scope:iD(t),[r]:[],aggregate:n,summary:`0 ${aD(t)}`},s)}function iD(e){let t=yt(e.passthrough,"--state")??"open",r=e.query?` query=${e.query}`:"";if(e.kind==="pr")return`${t} PRs${r}`;if(e.kind==="issue"){let o=yt(e.passthrough,"--label");return`${t} issues${o?` label=${o}`:""}${r}`}let n=yt(e.passthrough,"--branch")??yt(e.passthrough,"-b"),s=yt(e.passthrough,"--workflow")??yt(e.passthrough,"-w");return`workflow runs${n?` branch=${n}`:""}${s?` workflow=${s}`:""}${r}`}function aD(e){let t=yt(e.passthrough,"--state")??"open";return e.kind==="pr"?`${t} PRs`:e.kind==="issue"?`${t} issues`:"runs"}function A_(e,t){let r={number:Pe(e,"number"),title:L(e,"title"),state:Qs(e),draft:!!e.isDraft};return hd(r,e,t,["author","labels","url","updated"]),r}function P_(e,t){let r=A_(e,t);return r.body=oa(e,"body",fd,t.full),t.wide&&(r.base=L(e,"baseRefName"),r.head=L(e,"headRefName")),r}function I_(e,t){let r={number:Pe(e,"number"),title:L(e,"title"),state:Qs(e),labels:D_(e.labels)};return hd(r,e,t,["author","url","updated"]),r}function cD(e,t){let r=I_(e,t);return r.body=oa(e,"body",fd,t.full),r}function L_(e,t){let r={id:Pe(e,"databaseId"),name:L(e,"name"),status:Qs(e),conclusion:L(e,"conclusion")};return hd(r,e,t,["event","branch","workflow","created"]),r}function uD(e,t){let r=L_(e,t),n=Le(e.jobs).map(s=>({name:L(s,"name"),status:Qs(s),conclusion:L(s,"conclusion"),log:oa(s,"log",qL,t.full)}));return r.jobs=n,r}function oa(e,t,r,n){let s=L(e,t);if(n||Buffer.byteLength(s)<=r)return s;let o=s.slice(0,r),i={preview:o,truncated:{bytes:Buffer.byteLength(s),shown_bytes:Buffer.byteLength(o),hint:"--full",handle:""}};return Object.defineProperty(i,"__rsp_original",{value:s,enumerable:!1}),i}function lD(e){let t=[e];for(;t.length>0;){let r=t.pop();if(Array.isArray(r))t.push(...r);else if(Dr(r)){if(Dr(r.truncated)&&r.truncated.handle===""&&typeof r.preview=="string"){let n=typeof r.__rsp_original=="string"?r.__rsp_original:r.preview;return{target:r,original:n,bytes:Number(r.truncated.bytes??0)}}t.push(...Object.values(r))}}return null}function dD(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 S_(e,t){return e.every(r=>r.state===t)?t:"returned"}function md(e,t,r){return r?`${e}/${t}`:String(e)}function On(e,t,r){return t.query?vt(e,r):e}function Qs(e){return(L(e,"state")||L(e,"status")).toLowerCase()}function hd(e,t,r,n){if(!(!r.wide&&r.fields.size===0))for(let s of n)!r.wide&&!r.fields.has(s)||(s==="author"?e.author=G_(t.author):s==="labels"?e.labels=D_(t.labels):s==="url"?e.url=L(t,"url"):s==="updated"?e.updated=L(t,"updatedAt"):s==="event"?e.event=L(t,"event"):s==="branch"?e.branch=L(t,"headBranch"):s==="workflow"?e.workflow=L(t,"workflowName"):s==="created"&&(e.created=L(t,"createdAt")))}function D_(e){return Array.isArray(e)?e.map(t=>Dr(t)?L(t,"name"):String(t)).filter(Boolean):[]}function G_(e){return Dr(e)?L(e,"login"):""}function Ys(e){return e.trim()?JSON.parse(e):null}function Le(e){return Array.isArray(e)?e.filter(Dr):[]}function Y(e){return Dr(e)?e:{}}function L(e,t){let r=e[t];return typeof r=="string"?r:""}function Pe(e,t){let r=e[t];return typeof r=="number"?r:0}function Dr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var UL,HL,fd,qL,WL,sa,bd=y(()=>{"use strict";oe();W();hi();w_();Ar();qn();ut();UL={"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"]},HL={"pr:list":["number","title","state","isDraft","author","labels","url","updatedAt"],"pr:view":["number","title","state","body","author","labels","url","baseRefName","headRefName"],"issue:list":["number","title","state","labels","author","url","updatedAt"],"issue:view":["number","title","state","body","author","labels","url","updatedAt"],"run:list":["databaseId","name","status","conclusion","event","headBranch","workflowName","createdAt"],"run:view":["databaseId","name","status","conclusion","event","headBranch","workflowName","createdAt","jobs","url"]},fd=160,qL=160,WL={"pr:list":["number","title","state","draft","author","labels","url","updated"],"issue:list":["number","title","state","labels","author","url","updated"],"run:list":["id","name","status","conclusion","event","branch","workflow","created"]};sa=class extends Error{constructor(r,n,s=[]){super(n);this.command=r;this.validFields=s}render(){return V({command:`gh ${this.command.kind} ${this.command.action}`,category:"usage",error:this.message,help:`gh ${this.command.kind} ${this.command.action} --help`,validFlags:this.validFields})}}});var Ed={};K(Ed,{renderTestContract:()=>$_,runTestWrapper:()=>hD});import{spawn as pD}from"node:child_process";async function hD(e,t){let r=Hn(e),n=await ED(r.argv);return await $_(e,n,t)}async function $_(e,t,r){let n=Hn(e),o=N_(n.argv)==="vitest"?RD(t.stdout):kD(t.stdout),i=t.status;if(!o||(i??0)!==0&&o.failed===0){let f=Je(e.join(" "),t.stdout,t.stderr);return{stdout:V(f),stderr:Buffer.from(t.stderr),status:f.exitCode??1,signal:t.signal}}let a=`${o.failed}/${o.total} failed \xB7 ${o.suites} suites \xB7 ${vD(o.durationSeconds)}`,c=Re(o.failures,n.query);if(r.level==="terse")return await yD(n.argv,t,{...o,failures:c},i,a,r,n.query);let u=[],l,p=0;for(let f of c){let k=await SD(f.excerpt,n.argv.join(" "),r.store);u.push({suite:f.suite,name:f.name,excerpt:k.text}),l??=k.handle,p+=k.bytesElided}let d={exit_code:i,summary:n.query?`${a} \xB7 ${c.length}/${o.failures.length} failures matched`:a};u.length>0&&(d.failures=u);let g=n.query?vt(d,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):d;return{stdout:Buffer.from($(g)),stderr:Buffer.from(t.stderr),status:_d(t.status),signal:t.signal,payload:g,mintedHandle:l,bytesElided:p>0?p:void 0,rowsElided:u.length>0?Math.max(0,o.total-u.length):void 0}}async function yD(e,t,r,n,s,o,i){let a=bD(r.failures),c={exit_code:n,summary:i?`${s} \xB7 ${r.failures.length} failures matched`:s};a.length>0&&(c.failures=a);let u=i?vt(c,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):c,l=$(u),p=Math.max(0,r.failures.length-a.length),d=a.some((T,v)=>T.excerpt!==r.failures[v].excerpt);if(p===0&&!d)return{stdout:Buffer.from(l),stderr:Buffer.from(t.stderr),status:_d(t.status),signal:t.signal,payload:u};let g={exit_code:n,summary:s};r.failures.length>0&&(g.failures=r.failures.map(T=>({suite:T.suite,name:T.name,excerpt:T.excerpt})));let f=$(g),k=Buffer.byteLength(f),E=await o.store?.mint(Buffer.from(f),{command:e.join(" "),loss:{level:"terse",bytes_elided:k}});if(!E)throw new Error("terse test output requires an elision store");let _=`\u2026 elided ${p>0?`${p} failures`:"full detail"} (+${k}) \u2014 ${rt(E)}`;return{stdout:Buffer.from(`${l}
|
|
142
|
+
${_}`),stderr:Buffer.from(t.stderr),status:_d(t.status),signal:t.signal,payload:u,mintedHandle:E,bytesElided:k,rowsElided:p,rawOutput:Buffer.from(f)}}function _d(e){return e===0||e===null?0:1}function bD(e){let t=[],r=fD;for(let n of e.slice(0,gD)){let s=wD(n.excerpt,Math.min(mD,r));r=Math.max(0,r-Buffer.byteLength(s)),t.push({suite:n.suite,name:n.name,excerpt:s})}return t}function wD(e,t){if(t<=0)return"";let r=e.split(`
|
|
143
|
+
`),n=r.length<=2?e:`${r[0]}
|
|
129
144
|
\u2026
|
|
130
|
-
${
|
|
131
|
-
`).filter(Boolean).map(c=>
|
|
132
|
-
`)}),o||=1,
|
|
133
|
-
\u2026 elided ${i} bytes (+${
|
|
134
|
-
`):""}function
|
|
135
|
-
`),status:1,signal:null}}return
|
|
136
|
-
`;if(!i&&Buffer.byteLength(c)<=
|
|
137
|
-
`;return{stdout:Buffer.from(`${c}${l}`),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,mintedHandle:u,bytesElided:
|
|
138
|
-
`),r
|
|
139
|
-
`)}${
|
|
140
|
-
`:""}`,truncated:i.length<s.length}}function
|
|
141
|
-
`);return t.at(-1)===""?t.slice(0,-1):t}function
|
|
142
|
-
`),s=
|
|
145
|
+
${r[r.length-1]}`,s=Buffer.from(n);return s.length<=t?n:s.subarray(0,t).toString("utf8").replace(/�$/,"")}function N_(e){if(e[0]==="vitest")return"vitest";if(e[0]==="cargo"&&e[1]==="test")return"cargo";throw new Error(`unsupported test command: ${e.join(" ")}`)}function _D(e){if(N_(e)==="vitest"){let s=e.slice(1);return{executable:"vitest",args:s.some(i=>i==="--reporter=json"||i==="--reporter"||i.startsWith("--reporter="))?s:["run","--reporter=json",...s]}}let r=e.slice(1);return{executable:"cargo",args:r.some(s=>s==="--message-format=json"||s.startsWith("--message-format="))?r:["test","--message-format=json",...r.slice(1)]}}async function ED(e){let t=_D(e),r=pD(t.executable,t.args,{stdio:["ignore","pipe","pipe"]}),n=ke();r.once("close",n),r.once("error",n);let s=[],o=[];return r.stdout.on("data",i=>s.push(i)),r.stderr.on("data",i=>o.push(i)),await new Promise((i,a)=>{r.on("error",a),r.on("close",(c,u)=>{i({stdout:Buffer.concat(s).toString("utf8"),stderr:Buffer.concat(o).toString("utf8"),status:c,signal:u})})})}function RD(e){let t=F_(e);if(!ir(t))return null;let r=Array.isArray(t.testResults)?t.testResults:[],n=[],s=ar(t.numTotalTests),o=ar(t.numFailedTests),i=xD(ar(t.startTime),ar(t.endTime));for(let a of r){if(!ir(a))continue;let c=bt(a.name)||bt(a.file)||"",u=Array.isArray(a.assertionResults)?a.assertionResults:[];for(let l of u)ir(l)&&l.status==="failed"&&n.push({suite:c,name:bt(l.fullName)||bt(l.title)||bt(l.name),excerpt:TD(l.failureMessages)||bt(l.failureMessage)})}return s||=r.reduce((a,c)=>!ir(c)||!Array.isArray(c.assertionResults)?a:a+c.assertionResults.length,0),o||=n.length,i||=r.reduce((a,c)=>ir(c)?a+ar(c.perfStats&&ir(c.perfStats)?c.perfStats.runtime:c.duration)/1e3:a,0),{failed:o,total:s,suites:r.length||1,durationSeconds:i,failures:n}}function kD(e){let t=e.split(`
|
|
146
|
+
`).filter(Boolean).map(c=>F_(c)).filter(ir);if(t.length===0)return null;let r=[],n=0,s=0,o=0,i=0,a=[];for(let c of t){if(c.type==="suite"){c.event==="started"&&(o+=1,n+=ar(c.test_count)),(c.event==="failed"||c.event==="ok")&&(s+=ar(c.failed),i+=ar(c.exec_time));continue}if(c.type==="test"&&c.event==="failed"){r.push({suite:bt(c.name).split("::").slice(0,-1).join("::"),name:bt(c.name),excerpt:bt(c.stdout)});continue}if(c.reason==="compiler-message"&&ir(c.message)){let u=bt(c.message.rendered);u&&a.push(u)}}return r.length===0&&a.length>0&&(r.push({suite:"cargo check",name:"compile-error",excerpt:a.join(`
|
|
147
|
+
`)}),o||=1,n||=1,s||=1),s||=r.length,o||=1,n||=Math.max(s,r.length),{failed:s,total:n,suites:o,durationSeconds:i,failures:r}}async function SD(e,t,r){let n=Buffer.from(e);if(n.length<=wd)return{text:e,bytesElided:0};if(!r)throw new Error("over-limit test failure excerpt requires an elision store");let s=await r.mint(n,{command:t,loss:{level:"brief",bytes_elided:n.length}}),o=n.subarray(0,wd).toString("utf8").replace(/\uFFFD$/,""),i=n.length-Buffer.byteLength(o);return{text:`${o}
|
|
148
|
+
\u2026 elided ${i} bytes (+${n.length}) \u2014 ${rt(s)}`,handle:s,bytesElided:n.length}}function F_(e){try{return JSON.parse(e)}catch{return null}}function TD(e){return Array.isArray(e)?e.map(t=>String(t)).filter(Boolean).join(`
|
|
149
|
+
`):""}function vD(e){return`${Number(e.toFixed(1))}s`}function xD(e,t){return e>0&&t>e?(t-e)/1e3:0}function ar(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function bt(e){return typeof e=="string"?e:""}function ir(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var wd,mD,fD,gD,Rd=y(()=>{"use strict";oe();W();Ar();qn();ut();wd=320,mD=160,fD=wd,gD=3});var Td={};K(Td,{parseCatCommand:()=>Sd,renderCatContract:()=>GD,runCatWrapper:()=>DD});import{isUtf8 as CD}from"node:buffer";import{readFile as OD}from"node:fs/promises";import{extname as AD}from"node:path";async function DD(e,t){let r=Sd(e),n;try{n=await OD(r.file)}catch(s){let o=s instanceof Error?s.message:String(s),i=Je(e.join(" "),"",o);return{stdout:V({...i,help:`ls ${r.file}`}),stderr:Buffer.from(`${o}
|
|
150
|
+
`),status:1,signal:null}}return q_(n)?{stdout:n,stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:n}:await H_(e,r,n,t)}async function GD(e,t,r){if((t.status??0)!==0||t.signal){let i=Je(e.join(" "),t.stdout,t.stderr);return{stdout:V(i),stderr:Buffer.from(t.stderr),status:i.exitCode??1,signal:t.signal}}let n=Sd(e),s=Buffer.from(t.stdout,"utf8");return q_(s)?{stdout:s,stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,rawOutput:s}:{...await H_(e,n,s,r),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal}}function Sd(e){if(e[0]!=="cat")throw new Error("expected rsp cat <file>");let t=e.slice(1),r="full",n,s=!1,o=[];for(let i=0;i<t.length;i++){let a=t[i];if(a==="--full"){s=!0;continue}if(a==="--head"||a==="--tail"){r=a.slice(2),n=U_(t[++i],kd);continue}if(a.startsWith("--head=")||a.startsWith("--tail=")){let[c,u]=a.split("=",2);r=c.slice(2),n=U_(u,kd);continue}o.push(a)}if(o.length!==1)throw new Error("usage: rsp cat [--full] [--head N|--tail N] <file>");return{file:o[0],mode:r,...n?{limit:n}:{},...s?{inlineFull:s}:{}}}async function H_(e,t,r,n){let s=r.toString("utf8"),o=FD(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>j_(n.heavyByteThreshold,M_)||o.truncated;if(!B_(t.file)&&!i)return{stdout:Buffer.from(o.text),stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:r};let a=B_(t.file)?$D(e,t.file,r,s,n.level,o):ND(e,t.file,r,s,o),c=`${$(a)}
|
|
151
|
+
`;if(!i&&Buffer.byteLength(c)<=j_(n.heavyByteThreshold,M_))return{stdout:Buffer.from(c),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,rawOutput:r};let u=await n.store?.mint(r,{command:e.join(" "),loss:{level:n.level==="lossless"?"terse":n.level,bytes_elided:r.length}});if(!u)throw new Error("rsp cat elision requires an elision store");let l=`\u2026 elided file bytes (+${r.length}) \u2014 ${rt(u)}
|
|
152
|
+
`;return{stdout:Buffer.from(`${c}${l}`),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,mintedHandle:u,bytesElided:r.length,rawOutput:r}}function $D(e,t,r,n,s,o){let i=ia(n),a=s==="terse"?ID:PD,c=ia(o.text),u=c.slice(0,a),l=c.slice(Math.max(u.length,c.length-a));return{command:e.join(" "),file:t,kind:"code",outline_source:"regex",bytes:r.length,lines:i.length,symbols:MD(i),content:{head:u,tail:l,truncated:o.truncated||u.length+l.length<i.length}}}function ND(e,t,r,n,s){return{command:e.join(" "),file:t,kind:"text",bytes:r.length,lines:ia(n).length,content:ia(s.text),truncated:s.truncated}}function FD(e,t){if(t.mode==="full")return{text:e,truncated:!1};let r=e.split(`
|
|
153
|
+
`),n=r.at(-1)==="",s=n?r.slice(0,-1):r,o=t.limit??kd,i=t.mode==="head"?s.slice(0,o):s.slice(Math.max(0,s.length-o));return{text:`${i.join(`
|
|
154
|
+
`)}${n&&i.length>0?`
|
|
155
|
+
`:""}`,truncated:i.length<s.length}}function MD(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&&!BD(a[1])&&t.push({kind:"method",name:a[1],line:r+1,signature:s})}return t}function ia(e){let t=e.split(`
|
|
156
|
+
`);return t.at(-1)===""?t.slice(0,-1):t}function q_(e){return e.includes(0)||!CD(e)}function B_(e){return LD.has(AD(e).toLowerCase())}function BD(e){return["for","if","switch","while"].includes(e)}function j_(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function U_(e,t){let r=Number(e);return Number.isInteger(r)&&r>0?r:t}var M_,kd,PD,ID,LD,vd=y(()=>{"use strict";W();Ar();ut();M_=8*1024,kd=10,PD=8,ID=2,LD=new Set([".c",".cc",".cpp",".cs",".go",".java",".js",".jsx",".mjs",".py",".rs",".ts",".tsx"])});var X_={};K(X_,{REPO_STORE_PATH:()=>Od,mergeRspBlock:()=>z_,provisionRspRepoStore:()=>YD});import{constants as jD}from"node:fs";import{access as UD,copyFile as HD,mkdir as V_,readFile as qD,rename as WD,writeFile as J_}from"node:fs/promises";import{dirname as VD,join as Xs,resolve as JD}from"node:path";async function YD(e,t={}){let r=JD(e),n=Xs(r,".red"),s=Xs(n,"config.yaml"),o=Xs(r,Od);await V_(n,{recursive:!0}),await V_(VD(o),{recursive:!0});let i="";try{i=await qD(s,"utf8")}catch(g){if(g.code!=="ENOENT")throw g}let a=z_(i,{enabled:!0,ttlDays:t.ttlDays??ze,ephemeralTtlHours:t.ephemeralTtlHours??Ye,byteBudget:t.byteBudget??Qe,heavyGitByteThreshold:t.heavyGitByteThreshold??It}),c=a!==i;c&&await J_(s,a,"utf8");let u=!await Cd(o),l=!1,p=!1;if(u){let g=Xs(r,KD),f=Xs(r,zD);if(await Cd(g))await WD(g,o),p=!0;else if(await Cd(f))await HD(f,o),l=!0;else{let{provisionElisionStore:k}=await Promise.resolve().then(()=>(fi(),gh)),E=process.env.REDDB_BIN;try{await k({uri:`file://${o}`,ttlDays:t.ttlDays??ze,ephemeralTtlHours:t.ephemeralTtlHours??Ye,byteBudget:t.byteBudget??Qe})}finally{E===void 0?delete process.env.REDDB_BIN:process.env.REDDB_BIN=E}}}let d=QD(a,Od);return d!==a&&await J_(s,d,"utf8"),{configPath:s,storePath:o,configChanged:c||d!==a,storeCreated:u,memoryStoreMigrated:l,legacyStoreMigrated:p}}function z_(e,t){let r=["rsp:",` enabled: ${t.enabled?"true":"false"}`,` ttlDays: ${aa(t.ttlDays,ze)}`,` ephemeralTtlHours: ${aa(t.ephemeralTtlHours,Ye)}`,` byteBudget: ${aa(t.byteBudget,Qe)}`,` heavyGitByteThreshold: ${aa(t.heavyGitByteThreshold,It)}`],n=e===""?[]:e.replace(/\n+$/,"").split(`
|
|
157
|
+
`),s=Y_(n,"rsp");if(s===-1){let a=[...n];return a.length>0&&a[a.length-1].trim()!==""&&a.push(""),a.push(...r),`${a.join(`
|
|
143
158
|
`)}
|
|
144
|
-
`}let o=
|
|
159
|
+
`}let o=Ad(n,s,0);return`${[...n.slice(0,s),...r,...n.slice(o)].join(`
|
|
145
160
|
`)}
|
|
146
|
-
`}function
|
|
147
|
-
`),
|
|
161
|
+
`}function Y_(e,t){for(let r=0;r<e.length;r++){let n=e[r];if(Id(n)&&Pd(n)===0&&Q_(n)===t)return r}return-1}function Ad(e,t,r){let n=e.length;for(let s=t+1;s<e.length;s++)if(Id(e[s])&&Pd(e[s])<=r){n=s;break}for(;n-1>t&&e[n-1].trim()==="";)n--;return n}function Pd(e){return(e.match(/^ */)?.[0]??"").length}function Id(e){let t=e.trim();return t!==""&&!t.startsWith("#")}function Q_(e){return e.replace(/^ */,"").replace(/:.*$/,"").trim()}function aa(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function QD(e,t){let r=e===""?[]:e.replace(/\n+$/,"").split(`
|
|
162
|
+
`),n=Y_(r,"plugins");if(n===-1)return e;let s=Ad(r,n,0),o=K_(r,"memory",n+1,s,2);if(o===-1)return e;let i=Ad(r,o,2),a=[...r],c=K_(a,"storePath",o+1,i,4);return c!==-1?a[c]=` storePath: ${t}`:a.splice(i,0,` storePath: ${t}`),`${a.join(`
|
|
148
163
|
`)}
|
|
149
|
-
`}function
|
|
150
|
-
`}function
|
|
164
|
+
`}function K_(e,t,r,n,s){for(let o=r;o<n;o++){let i=e[o];if(Id(i)&&Pd(i)===s&&Q_(i)===t)return o}return-1}async function Cd(e){try{return await UD(e,jD.F_OK),!0}catch{return!1}}var Od,KD,zD,Z_=y(()=>{"use strict";$e();Ze();Od=Qc,KD=um,zD=".red/memory/graph.rdb"});var oE={};K(oE,{runRspMcpServer:()=>ZD});import{createInterface as XD}from"node:readline";async function ZD(){let e=Xe(process.cwd(),process.env),t=XD({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 eG(n,e);rE({jsonrpc:"2.0",id:n.id??null,result:s})}catch(s){rE({jsonrpc:"2.0",id:typeof nE(r)?.id>"u"?null:nE(r)?.id,error:{code:-32e3,message:s instanceof Error?s.message:String(s)}})}}}async function eG(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:tE(t)}]};if(!t.enabled)return{content:[{type:"text",text:tE(t)}],isError:!0};let n=cG(t);if(r?.name==="rsp_stats")return{content:[{type:"text",text:Gr({tool:"rsp_stats",...await n.accountingStats(t.telemetryByteBudget)})}]};if(r?.name==="rsp_show"){let s=String(r.arguments?.handle??""),o=await n.get(s);return o?"status"in o?{content:[{type:"text",text:Gr({tool:"rsp_show",handle:s,found:!1,category:"real-error",error:o.status,expired_at:o.expired_at,help:[o.command]})}],isError:!0}:{content:[{type:"text",text:Gr({tool:"rsp_show",handle:s,found:!0,bytes:o.original.length,text:o.original.toString("utf8")})}]}:{content:[{type:"text",text:Gr(tG(s,"not found"))}],isError:!0}}if(r?.name==="rsp_compress")return{content:[{type:"text",text:await rG(r.arguments,n)}]}}return{}}function Gr(e){return`${se(e)}
|
|
165
|
+
`}function tG(e,t){return{tool:"rsp_show",handle:e,found:!1,category:"real-error",error:t,help:["rsp show el:<id>"]}}async function rG(e,t){let r=sG(e?.payload);try{return await nG(r,e,t)}catch(n){if(process.env.RSP_DEBUG==="1")throw n;return sE(r)}}async function nG(e,t,r){let n=oG(t?.level),s=await Bl(e,{level:n,command:"rsp mcp compress",store:r});if(s.detected)return sE(s.output);let o=Ui(e);if(n==="brief"&&Buffer.byteLength(o)<=2*1024)return Gr({tool:"rsp_compress",level:n,detected:"text",bytes:Buffer.byteLength(e),text:o});let i=Buffer.from(e),a=await r.mint(i,{command:"rsp mcp compress",loss:{level:n,bytes_elided:i.length}});return iG(o,i.length,a,n)}function sG(e){return typeof e=="string"?e:e==null?"":JSON.stringify(e)}function oG(e){return e==="terse"?"terse":"brief"}function iG(e,t,r,n){let s=n==="terse"?1024:2048,o=Buffer.from(e),i=Math.max(1,Math.floor(s/2)),a=eE(o.subarray(0,i)),c=eE(o.subarray(Math.max(0,o.length-i)));return Gr({tool:"rsp_compress",level:n,detected:"text",bytes:t,lines:aG(o),head:a,tail:c&&c!==a?c:null,handle:r,help:[`rsp show ${r}`]})}function sE(e){return e.endsWith(`
|
|
151
166
|
`)?e:`${e}
|
|
152
|
-
`}function
|
|
153
|
-
`)}function
|
|
154
|
-
`)}function
|
|
155
|
-
`)}function Oi(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 n=t.map(o=>o.command.slice(1)).filter(o=>o.length===1).map(o=>o[0]).filter(Ai),r=t.map(o=>o.command.slice(1)).filter(o=>o.length>1&&o.every(Ai)),s=[`${e}() {`," if ! command -v rsp >/dev/null 2>&1; then",` command ${e} "$@"`," return"," fi",' case "$1" in'];if(n.length>0){let o=n.map(i=>vb(i)).join("|");s.push(` ${o}) command rsp ${e} "$@" ;;`)}for(let[o,i]of cP(r)){let a=i.map(c=>c.map((u,l)=>`[ "$${l+2}" = '${lP(u)}' ]`).join(" && ")).join(" || ");s.push(` ${vb(o)}) if ${a}; then command rsp ${e} "$@"; else command ${e} "$@"; fi ;;`)}return s.push(` *) command ${e} "$@" ;;`," esac","}"),s}function cP(e){let t=new Map;for(let[n,...r]of e){if(!n)continue;let s=t.get(n)??[];s.push(r),t.set(n,s)}return t}function uP(e){let t=new Map;for(let n of e){let r=n.command[0];if(!r||!Ai(r))continue;let s=t.get(r)??[];s.push(n),t.set(r,s)}return t}function Ai(e){return!!(e&&/^[A-Za-z0-9_./:-]+$/.test(e))}function vb(e){return e.replace(/[\\|)&;]/g,"\\$&")}function lP(e){return e.replace(/'/g,"'\\''")}function dP(e){return e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}var Tb=g(()=>{"use strict";_s()});function xl(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"&&pP(t.chosenOption)&&fP(t.outcome)&&mP(t.cost)}function pP(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.kind=="string"&&t.kind.length>0}function fP(e){return e==="success"||e==="failure"||e==="escalated"}function mP(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 Ob=g(()=>{});import{createHash as gP}from"node:crypto";function Gb(e,t){return new Cl(e,t)}function Ab(e){let t=Number(e.red_entity_id??e.rid),n=Tl(e.properties??e.PROPERTIES),r=Hb(String(e.node_type??e.NODE_TYPE??n.kind??"note"));if(!Number.isFinite(t))return null;let s=String(n.id??e.label??e.LABEL??t),o=String(n.title??e.label??e.LABEL??s),i=String(n.content??""),a=Array.isArray(n.tags)?n.tags.map(String):[],c=Date.now();return{rid:t,label:String(e.label??e.LABEL??s),kind:r,properties:{...n,id:s,title:o,content:i,tags:a,created_at:Number(n.created_at??c),updated_at:Number(n.updated_at??n.created_at??c),hash:String(n.hash??"")}}}function Pb(e){let t=Number(e.red_entity_id??e.rid),n=Number(e.from??e.FROM??e.from_rid??e.source),r=Number(e.to??e.TO??e.to_rid??e.target),s=Ub(String(e.label??e.LABEL??"related_to"));return!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(r)?null:{rid:t,kind:s,from_rid:n,to_rid:r,weight:Number(e.weight??1),properties:Tl(e.properties??e.PROPERTIES)}}function bP(e){let t=Number(e.red_entity_id??e.rid),n=Tl(e.properties??e.PROPERTIES);return!Number.isFinite(t)||!xl(n)?null:{rid:t,event:n}}function Tl(e){return e==null?{}:typeof e=="string"?JSON.parse(e):Pi(e)?e:{}}function Hb(e){let t=e==="contact"?"person":e;if(hP.has(t))return t;throw new Error(`invalid Brain artifact kind: ${e}`)}function Ub(e){if(yP.has(e))return e;throw new Error(`invalid Brain connection kind: ${e}`)}function wP(e){return e==="hour"||e==="week"||e==="month"?e:"day"}function Ib(e){if(typeof e=="number")return e;let t=String(e??"");return/^\d+$/.test(t)?Number(t):t}function hn(e){return Pi(e)?e:{}}function Lb(e,t){return hn(e)[t]}function $b(e,t){let n=e[t];if(typeof n!="string")throw new Error(`brain ${t} must be a string`);return n}function Db(e,t){let n=e[t];return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Nb(e){let t=hn(e);return{excludeRids:Array.isArray(t.excludeRids)?t.excludeRids.map(Number).filter(Number.isFinite):void 0}}function ye(e){return typeof e=="string"&&e.length>0?e:void 0}function Pi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function vl(e){return e!=null}function _P(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean))).sort()}function RP(e){return gP("sha256").update(JSON.stringify(e)).digest("hex")}function kP(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"artifact"}function Mb(e){return`artifact-hash:${e}`}function Bb(e,t,n){return`connection:${e}:${t}:${n}`}function Fb(){return"model-tier-bandit:v1"}function SP(e){return e.toLowerCase().split(/[^a-z0-9_]+/).map(t=>t.trim()).filter(t=>t.length>1)}function jb(e,t){let n=0,r=e.indexOf(t);for(;r>=0;)n++,r=e.indexOf(t,r+t.length);return n}function Wb(e,t){let n=e.properties.title.toLowerCase(),r=e.properties.content.toLowerCase(),s=e.properties.tags.map(i=>i.toLowerCase()),o=e.kind.toLowerCase();return{lexical:t.reduce((i,a)=>i+jb(n,a)*3+jb(r,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 EP(e,t,n,r){let s=0;for(let o of n){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=r.get(i);if(!a)continue;let c=qb({...Wb(a,t),connections:0,vector:0}).total;c>0&&(s+=Math.min(c,12)*.35)}return gn(s)}function qb(e){return{...e,lexical:gn(e.lexical),tags:gn(e.tags),kind:gn(e.kind),connections:gn(e.connections),vector:gn(e.vector),total:gn(e.lexical+e.tags+e.kind+e.connections+e.vector)}}function gn(e){return Math.round(e*1e3)/1e3}function xP(e,t){if(e.length<=220)return e;let n=e.toLowerCase(),r=t.map(o=>n.indexOf(o)).filter(o=>o>=0).sort((o,i)=>o-i)[0]??0,s=Math.max(0,r-80);return`${s>0?"...":""}${e.slice(s,s+220)}${s+220<e.length?"...":""}`}function vP(e,t){let n=t.length===0?"none":t[0].score>=5?"high":t[0].score>=3?"medium":"low",r=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:n,missing_evidence:r}}function CP(e){let t={};for(let n of e)t[n]=(t[n]??0)+1;return t}var rt,hP,yP,Cl,Jb=g(()=>{"use strict";Ob();rt={artifacts:"brain_artifacts",connections:"brain_connections",outcomeEvents:"brain_outcome_events",kv:"brain_kv"},hP=new Set(["pillar","decision","concept","question","playbook","task","event","pattern","hypothesis","fact","source","bookmark","note","reference","custom","project","idea","meeting","claim","organization","person"]),yP=new Set(["supports","contradicts","depends_on","derived_from","related_to","part_of","preceded_by","followed_by","authored","tagged"]),Cl=class{constructor(t,n){this.db=t;this.uri=n}async request(t,n){if(await this.bootstrap(),t==="status")return await this.status();if(t==="capture")return await this.capture(hn(n));if(t==="getArtifact")return await this.getArtifact(Lb(n,"ridOrId"));if(t==="listArtifacts")return await this.listArtifacts();if(t==="search"){let r=hn(n);return await this.search($b(r,"query"),Db(r,"limit")??10,Nb(r.options))}if(t==="think"){let r=hn(n);return await this.think($b(r,"query"),Db(r,"limit")??8,Nb(r.options))}if(t==="link")return await this.link(hn(n));if(t==="backlinks")return await this.backlinks(Lb(n,"target"));if(t==="listConnections")return await this.listConnections();if(t==="eventKpis")return await this.eventKpis(hn(n));if(t==="appendOutcomeEvent")return await this.appendOutcomeEvent(n);if(t==="replayOutcomeEvents")return await this.replayOutcomeEvents();if(t==="loadModelTierBanditDocument")return await this.loadModelTierBanditDocument();if(t==="saveModelTierBanditDocument")return await this.saveModelTierBanditDocument(n);if(t==="refreshModelTierBanditDocument")return await this.refreshModelTierBanditDocument();throw new Error(`unsupported resident brain action: ${t}`)}async bootstrap(){await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${rt.artifacts}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${rt.connections}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${rt.outcomeEvents}`)}async status(){let t=await this.listArtifacts(),n=await this.listConnections();return{uri:this.uri,artifacts:t.length,connections:n.length,kinds:CP(t.map(r=>r.kind))}}async capture(t){let n=ye(t.title)||"Untitled artifact",r=ye(t.content);if(!r)throw new Error("brain capture requires content");let s=Hb(ye(t.kind)||"note"),o=_P(Array.isArray(t.tags)?t.tags.map(String):[]),i=Date.now(),a=RP([s,n,r,o,ye(t.sourcePath),ye(t.sourceSession)]),c=await this.kv().get(Mb(a));if(c!=null){let f=await this.getArtifact(Number(c));if(f)return f}let u=`${kP(n)}-${a.slice(0,8)}`,l={id:u,title:n,content:r,tags:o,source_agent:ye(t.sourceAgent),source_runner:ye(t.sourceRunner),source_session:ye(t.sourceSession),source_path:ye(t.sourcePath),created_at:i,updated_at:i,hash:a,metadata:Pi(t.metadata)?t.metadata:void 0},d=(await this.db.query(`INSERT INTO ${rt.artifacts} NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *`,u,s,a,l)).rows[0];if(!d)throw new Error("INSERT artifact returned no row");let m=Ab(d);if(!m)throw new Error("INSERT artifact returned invalid row");return await this.kv().put(Mb(a),m.rid),await this.materializeTagConnections(m),m}async getArtifact(t){let n=await this.listArtifacts();return typeof t=="number"?n.find(r=>r.rid===t)??null:n.find(r=>r.properties.id===t||r.label===t)??null}async listArtifacts(){return(await this.db.query(`SELECT * FROM ${rt.artifacts}`)).rows.map(Ab).filter(vl)}async search(t,n,r={}){let s=SP(t),o=new Set(r.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=Wb(u,s),p=qb({...l,connections:EP(u,s,a,c),vector:0});return{artifact:u,score:p.total,score_breakdown:p,excerpt:xP(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,n)))}async think(t,n,r={}){let s=(await this.search(t,Math.max(n*2,n+5),r)).slice(0,n);return vP(t,s)}async link(t){let n=await this.getArtifact(Ib(t.from)),r=await this.getArtifact(Ib(t.to));if(!n)throw new Error(`Brain artifact not found: ${String(t.from)}`);if(!r)throw new Error(`Brain artifact not found: ${String(t.to)}`);let s=Ub(ye(t.kind)||"related_to"),o=await this.findConnection(n.rid,r.rid,s);if(o!=null){let l=(await this.listConnections()).find(p=>p.rid===o);if(l)return l}let i={reason:ye(t.reason),confidence:ye(t.confidence)||"explicit",created_at:Date.now(),metadata:Pi(t.metadata)?t.metadata:void 0},c=(await this.db.query(`INSERT INTO ${rt.connections} EDGE (label, from, to, weight, properties) VALUES ($1, $2, $3, $4, $5) RETURNING *`,s,n.rid,r.rid,1,i)).rows[0];if(!c)throw new Error("INSERT connection returned no row");let u=Pb(c);if(!u)throw new Error("INSERT connection returned invalid row");return await this.kv().put(Bb(n.rid,r.rid,s),u.rid),u}async backlinks(t){let n=await this.getArtifact(t);if(!n)throw new Error(`Brain artifact not found: ${t}`);return(await this.listConnections()).filter(r=>r.to_rid===n.rid)}async listConnections(){return(await this.db.query(`SELECT * FROM ${rt.connections}`)).rows.map(Pb).filter(vl)}async eventKpis(t){let n=(await this.listArtifacts()).filter(o=>o.kind==="event"),r=wP(ye(t.interval)||"day"),s=ye(t.timeField)==="ingested"?"ingested":"event";return{kind:"event",interval:r,timeField:s,range:{from:null,to:null},total:n.length,series:[{group:null,total:n.length,buckets:[]}]}}async appendOutcomeEvent(t){if(!xl(t))throw new Error("invalid Brain outcome event");if(!(await this.db.query(`INSERT INTO ${rt.outcomeEvents} NODE (label, node_type, properties) VALUES ($1, $2, $3) RETURNING *`,t.id,`outcome_event.v${t.schemaVersion}`,t)).rows[0])throw new Error("INSERT outcome event returned no row");return t}async replayOutcomeEvents(){return(await this.db.query(`SELECT * FROM ${rt.outcomeEvents}`)).rows.map(bP).filter(vl).sort((n,r)=>n.rid-r.rid).map(({event:n})=>n)}async loadModelTierBanditDocument(){let t=await this.kv().get(Fb());return typeof t=="string"?JSON.parse(t):t}async saveModelTierBanditDocument(t){return await this.kv().put(Fb(),JSON.stringify(t)),t}async refreshModelTierBanditDocument(){let t=await this.loadModelTierBanditDocument();if(t!=null)return t;let n={schema_version:"brain.model-tier-bandit.v1",updated_at:new Date().toISOString(),arms:{}};return await this.saveModelTierBanditDocument(n),n}async materializeTagConnections(t){if(t.properties.metadata?.derived_kind!=="tag")for(let n of t.properties.tags){let r=await this.capture({title:n,content:`Tag: ${n}`,kind:"custom",tags:["tag"],metadata:{derived:!0,derived_kind:"tag"}});await this.link({from:t.rid,to:r.rid,kind:"tagged",confidence:"derived"})}}async findConnection(t,n,r){let s=await this.kv().get(Bb(t,n,r));return s!=null?Number(s):null}kv(){return this.db.kv(rt.kv)}}});var sw={};B(sw,{runResidentServer:()=>DP});import{randomUUID as ar}from"node:crypto";import{execFileSync as TP,spawn as OP}from"node:child_process";import{existsSync as AP}from"node:fs";import{mkdir as Zb,rename as PP,rm as Vb,writeFile as ew}from"node:fs/promises";import{createServer as IP}from"node:net";import{dirname as Il,join as Ii}from"node:path";import{fileURLToPath as LP,pathToFileURL as $P}from"node:url";async function DP(e){await Zb(Il(e.socketPath),{recursive:!0});let t=KP();VP();let n=e.telemetryDrainTimeoutMs??tw,r={kind:"opening",startedAt:process.hrtime.bigint()},s,o=!1,i=e.idleMs??bo,a,c,u=!1,l=new Set,p=e.telemetryDrainIntervalMs??3e4,d=IP(k=>{l.add(k),k.once("close",()=>l.delete(k)),f(),tI(k,async(T,M)=>{f();let Te=await nI(r,T,e.storeUri,e.residentVersion??"0.0.0-dev"),we={id:T.id,ok:!0,value:Te,storeOpenCount:r.kind==="ready"?r.storeOpenCount:void 0,storeElapsedMs:r.kind==="ready"?r.storeElapsedMs:void 0};M(we),T.op==="handover"&&setImmediate(()=>m())})});function m(){o=!0,u=!0,c=JP(c),d.close();for(let k of l)k.destroy()}function f(){r.kind!=="opening"&&(a&&clearTimeout(a),a=setTimeout(()=>{m()},i),a.unref())}let _=["SIGINT","SIGTERM"].map(k=>{let T=()=>{Li(),d.close();for(let M of l)M.destroy();setTimeout(()=>process.exit(0),1e3)};return process.once(k,T),{signal:k,handler:T}});await new Promise((k,T)=>{d.once("error",T),d.listen(e.socketPath,()=>{d.off("error",T),k()})}),(async()=>{let k=process.hrtime.bigint();process.env.RSP_TEST_HANG_RESIDENT_STORE_OPEN==="1"&&await new Promise(()=>{});let T=Number(process.env.RSP_TEST_DELAY_RESIDENT_STORE_OPEN_MS??"0");Number.isFinite(T)&&T>0&&await new Promise(de=>setTimeout(de,T));let M=await an.open({uri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,allowResidentOpen:!0}),Te=Number(process.hrtime.bigint()-k)/1e6,we=new Pl(M,{rootDir:e.rootDir??process.cwd(),ttlDays:e.telemetryTtlDays??ho,byteBudget:e.telemetryByteBudget??e.byteBudget??yo});if(o){await M.close();return}if(await Ol(we,n),o){await M.close();return}r={kind:"ready",store:M,telemetry:we,storeOpenCount:1,storeElapsedMs:Te},s=setInterval(()=>{let de=r.kind==="ready"?r:void 0;de&&Ol(de.telemetry,n)},p),s.unref(),f()})().catch(k=>{r={kind:"failed",error:k instanceof Error?k:new Error(String(k))},f()}),e.pidPath&&await ew(e.pidPath,`${process.pid}
|
|
156
|
-
`,{encoding:"utf8",mode:384});let h=e.residentVersion??"0.0.0-dev",
|
|
157
|
-
`,{encoding:"utf8",mode:384}),await
|
|
158
|
-
`)}}async function
|
|
167
|
+
`}function eE(e){return e.toString("utf8").replace(/�$/g,"")}function aG(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 cG(e){return Sc(process.cwd(),e)}function tE(e){let t=e.enabled?Wt(process.cwd(),e.overhead):null;return Gr({tool:"rsp_status",enabled:e.enabled,status:e.enabled?"enabled":"disabled",message:e.enabled?"rsp is enabled in this directory":"rsp is not enabled in this directory",overhead_verdict:t?.verdict??"unknown",overhead_summary:t?.summary??"rsp is not enabled in this directory",overhead_disabled_families:t?.disabled_families.map(r=>r.family)??[],help:e.enabled?[]:["/red-setup"]})}function rE(e){process.stdout.write(`${JSON.stringify(e)}
|
|
168
|
+
`)}function nE(e){try{return JSON.parse(e)}catch{return null}}var iE=y(()=>{"use strict";Tt();Ze();oe();Bs();wr()});var cE={};K(cE,{renderShellInit:()=>uG});function uG(e,t=Js){if(e==="fish")return lG(t);if(e==="bash"||e==="zsh")return dG(e,t);throw new Error(`unsupported shell: ${e}`)}function lG(e){return["# rsp shell-init fish","# Opt-in only: source this output from config.fish; remove that line to restore raw commands.","if type -q rsp",...[...new Set(e.map(r=>r.command[0]).filter(ua))].map(r=>` abbr --add --position command -- ${r} '${gG(`rsp ${r}`)}'`)," function rspx --description 'Run a shell pipeline through rsp exec'"," rsp exec -- $argv"," end","else"," # rsp is not on PATH; rsp abbreviations and rspx were not installed.","end",""].join(`
|
|
169
|
+
`)}function dG(e,t){let r=mG(t);return[`# rsp shell-init ${e}`,`# Opt-in only: source this output from ${e} startup files; remove that line to restore raw commands.`,...ca("git",r.get("git")??[]),...ca("gh",r.get("gh")??[]),...ca("vitest",r.get("vitest")??[]),...ca("cargo",r.get("cargo")??[]),"rspx() {"," if command -v rsp >/dev/null 2>&1; then",' command rsp exec -- "$@"'," return"," fi"," printf '%s\\n' 'rspx requires rsp with exec support on PATH' >&2"," return 127","}",""].join(`
|
|
170
|
+
`)}function ca(e,t){if(t.length===0)return[];if(t.some(o=>o.command.length===1))return[`${e}() {`," if command -v rsp >/dev/null 2>&1; then",` command rsp ${e} "$@"`," return"," fi",` command ${e} "$@"`,"}"];let r=t.map(o=>o.command.slice(1)).filter(o=>o.length===1).map(o=>o[0]).filter(ua),n=t.map(o=>o.command.slice(1)).filter(o=>o.length>1&&o.every(ua)),s=[`${e}() {`," if ! command -v rsp >/dev/null 2>&1; then",` command ${e} "$@"`," return"," fi",' case "$1" in'];if(r.length>0){let o=r.map(i=>aE(i)).join("|");s.push(` ${o}) command rsp ${e} "$@" ;;`)}for(let[o,i]of pG(n)){let a=i.map(c=>c.map((u,l)=>`[ "$${l+2}" = '${fG(u)}' ]`).join(" && ")).join(" || ");s.push(` ${aE(o)}) if ${a}; then command rsp ${e} "$@"; else command ${e} "$@"; fi ;;`)}return s.push(` *) command ${e} "$@" ;;`," esac","}"),s}function pG(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 mG(e){let t=new Map;for(let r of e){let n=r.command[0];if(!n||!ua(n))continue;let s=t.get(n)??[];s.push(r),t.set(n,s)}return t}function ua(e){return!!(e&&/^[A-Za-z0-9_./:-]+$/.test(e))}function aE(e){return e.replace(/[\\|)&;]/g,"\\$&")}function fG(e){return e.replace(/'/g,"'\\''")}function gG(e){return e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}var uE=y(()=>{"use strict";Ks()});function Ld(e){if(typeof e!="object"||e===null)return!1;let t=e;return t.schemaVersion===1&&typeof t.id=="string"&&t.id.length>0&&typeof t.emitter=="string"&&t.emitter.length>0&&typeof t.occurredAt=="string"&&typeof t.taskClass=="string"&&hG(t.chosenOption)&&yG(t.outcome)&&bG(t.cost)}function hG(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.kind=="string"&&t.kind.length>0}function yG(e){return e==="success"||e==="failure"||e==="escalated"}function bG(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 lE=y(()=>{});import{createHash as wG}from"node:crypto";function RE(e,t){return new Gd(e,t)}function dE(e){let t=Number(e.red_entity_id??e.rid),r=$d(e.properties??e.PROPERTIES),n=kE(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 pE(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=SE(String(e.label??e.LABEL??"related_to"));return!Number.isFinite(t)||!Number.isFinite(r)||!Number.isFinite(n)?null:{rid:t,kind:s,from_rid:r,to_rid:n,weight:Number(e.weight??1),properties:$d(e.properties??e.PROPERTIES)}}function RG(e){let t=Number(e.red_entity_id??e.rid),r=$d(e.properties??e.PROPERTIES);return!Number.isFinite(t)||!Ld(r)?null:{rid:t,event:r}}function $d(e){return e==null?{}:typeof e=="string"?JSON.parse(e):la(e)?e:{}}function kE(e){let t=e==="contact"?"person":e;if(_G.has(t))return t;throw new Error(`invalid Brain artifact kind: ${e}`)}function SE(e){if(EG.has(e))return e;throw new Error(`invalid Brain connection kind: ${e}`)}function kG(e){return e==="hour"||e==="week"||e==="month"?e:"day"}function mE(e){if(typeof e=="number")return e;let t=String(e??"");return/^\d+$/.test(t)?Number(t):t}function Nr(e){return la(e)?e:{}}function fE(e,t){return Nr(e)[t]}function gE(e,t){let r=e[t];if(typeof r!="string")throw new Error(`brain ${t} must be a string`);return r}function hE(e,t){let r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function yE(e){let t=Nr(e);return{excludeRids:Array.isArray(t.excludeRids)?t.excludeRids.map(Number).filter(Number.isFinite):void 0}}function Ie(e){return typeof e=="string"&&e.length>0?e:void 0}function la(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Dd(e){return e!=null}function SG(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean))).sort()}function TG(e){return wG("sha256").update(JSON.stringify(e)).digest("hex")}function vG(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"artifact"}function bE(e){return`artifact-hash:${e}`}function wE(e,t,r){return`connection:${e}:${t}:${r}`}function _E(){return"model-tier-bandit:v1"}function xG(e){return e.toLowerCase().split(/[^a-z0-9_]+/).map(t=>t.trim()).filter(t=>t.length>1)}function EE(e,t){let r=0,n=e.indexOf(t);for(;n>=0;)r++,n=e.indexOf(t,n+t.length);return r}function TE(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+EE(r,a)*3+EE(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 CG(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=vE({...TE(a,t),connections:0,vector:0}).total;c>0&&(s+=Math.min(c,12)*.35)}return $r(s)}function vE(e){return{...e,lexical:$r(e.lexical),tags:$r(e.tags),kind:$r(e.kind),connections:$r(e.connections),vector:$r(e.vector),total:$r(e.lexical+e.tags+e.kind+e.connections+e.vector)}}function $r(e){return Math.round(e*1e3)/1e3}function OG(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 AG(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 PG(e){let t={};for(let r of e)t[r]=(t[r]??0)+1;return t}var wt,_G,EG,Gd,xE=y(()=>{"use strict";lE();wt={artifacts:"brain_artifacts",connections:"brain_connections",outcomeEvents:"brain_outcome_events",kv:"brain_kv"},_G=new Set(["pillar","decision","concept","question","playbook","task","event","pattern","hypothesis","fact","source","bookmark","note","reference","custom","project","idea","meeting","claim","organization","person"]),EG=new Set(["supports","contradicts","depends_on","derived_from","related_to","part_of","preceded_by","followed_by","authored","tagged"]),Gd=class{constructor(t,r){this.db=t;this.uri=r}async request(t,r){if(await this.bootstrap(),t==="status")return await this.status();if(t==="capture")return await this.capture(Nr(r));if(t==="getArtifact")return await this.getArtifact(fE(r,"ridOrId"));if(t==="listArtifacts")return await this.listArtifacts();if(t==="search"){let n=Nr(r);return await this.search(gE(n,"query"),hE(n,"limit")??10,yE(n.options))}if(t==="think"){let n=Nr(r);return await this.think(gE(n,"query"),hE(n,"limit")??8,yE(n.options))}if(t==="link")return await this.link(Nr(r));if(t==="backlinks")return await this.backlinks(fE(r,"target"));if(t==="listConnections")return await this.listConnections();if(t==="eventKpis")return await this.eventKpis(Nr(r));if(t==="appendOutcomeEvent")return await this.appendOutcomeEvent(r);if(t==="replayOutcomeEvents")return await this.replayOutcomeEvents();if(t==="loadModelTierBanditDocument")return await this.loadModelTierBanditDocument();if(t==="saveModelTierBanditDocument")return await this.saveModelTierBanditDocument(r);if(t==="refreshModelTierBanditDocument")return await this.refreshModelTierBanditDocument();throw new Error(`unsupported resident brain action: ${t}`)}async bootstrap(){await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${wt.artifacts}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${wt.connections}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${wt.outcomeEvents}`)}async status(){let t=await this.listArtifacts(),r=await this.listConnections();return{uri:this.uri,artifacts:t.length,connections:r.length,kinds:PG(t.map(n=>n.kind))}}async capture(t){let r=Ie(t.title)||"Untitled artifact",n=Ie(t.content);if(!n)throw new Error("brain capture requires content");let s=kE(Ie(t.kind)||"note"),o=SG(Array.isArray(t.tags)?t.tags.map(String):[]),i=Date.now(),a=TG([s,r,n,o,Ie(t.sourcePath),Ie(t.sourceSession)]),c=await this.kv().get(bE(a));if(c!=null){let f=await this.getArtifact(Number(c));if(f)return f}let u=`${vG(r)}-${a.slice(0,8)}`,l={id:u,title:r,content:n,tags:o,source_agent:Ie(t.sourceAgent),source_runner:Ie(t.sourceRunner),source_session:Ie(t.sourceSession),source_path:Ie(t.sourcePath),created_at:i,updated_at:i,hash:a,metadata:la(t.metadata)?t.metadata:void 0},d=(await this.db.query(`INSERT INTO ${wt.artifacts} NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *`,u,s,a,l)).rows[0];if(!d)throw new Error("INSERT artifact returned no row");let g=dE(d);if(!g)throw new Error("INSERT artifact returned invalid row");return await this.kv().put(bE(a),g.rid),await this.materializeTagConnections(g),g}async getArtifact(t){let r=await this.listArtifacts();return typeof t=="number"?r.find(n=>n.rid===t)??null:r.find(n=>n.properties.id===t||n.label===t)??null}async listArtifacts(){return(await this.db.query(`SELECT * FROM ${wt.artifacts}`)).rows.map(dE).filter(Dd)}async search(t,r,n={}){let s=xG(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=TE(u,s),p=vE({...l,connections:CG(u,s,a,c),vector:0});return{artifact:u,score:p.total,score_breakdown:p,excerpt:OG(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 AG(t,s)}async link(t){let r=await this.getArtifact(mE(t.from)),n=await this.getArtifact(mE(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=SE(Ie(t.kind)||"related_to"),o=await this.findConnection(r.rid,n.rid,s);if(o!=null){let l=(await this.listConnections()).find(p=>p.rid===o);if(l)return l}let i={reason:Ie(t.reason),confidence:Ie(t.confidence)||"explicit",created_at:Date.now(),metadata:la(t.metadata)?t.metadata:void 0},c=(await this.db.query(`INSERT INTO ${wt.connections} EDGE (label, from, to, weight, properties) VALUES ($1, $2, $3, $4, $5) RETURNING *`,s,r.rid,n.rid,1,i)).rows[0];if(!c)throw new Error("INSERT connection returned no row");let u=pE(c);if(!u)throw new Error("INSERT connection returned invalid row");return await this.kv().put(wE(r.rid,n.rid,s),u.rid),u}async backlinks(t){let r=await this.getArtifact(t);if(!r)throw new Error(`Brain artifact not found: ${t}`);return(await this.listConnections()).filter(n=>n.to_rid===r.rid)}async listConnections(){return(await this.db.query(`SELECT * FROM ${wt.connections}`)).rows.map(pE).filter(Dd)}async eventKpis(t){let r=(await this.listArtifacts()).filter(o=>o.kind==="event"),n=kG(Ie(t.interval)||"day"),s=Ie(t.timeField)==="ingested"?"ingested":"event";return{kind:"event",interval:n,timeField:s,range:{from:null,to:null},total:r.length,series:[{group:null,total:r.length,buckets:[]}]}}async appendOutcomeEvent(t){if(!Ld(t))throw new Error("invalid Brain outcome event");if(!(await this.db.query(`INSERT INTO ${wt.outcomeEvents} NODE (label, node_type, properties) VALUES ($1, $2, $3) RETURNING *`,t.id,`outcome_event.v${t.schemaVersion}`,t)).rows[0])throw new Error("INSERT outcome event returned no row");return t}async replayOutcomeEvents(){return(await this.db.query(`SELECT * FROM ${wt.outcomeEvents}`)).rows.map(RG).filter(Dd).sort((r,n)=>r.rid-n.rid).map(({event:r})=>r)}async loadModelTierBanditDocument(){let t=await this.kv().get(_E());return typeof t=="string"?JSON.parse(t):t}async saveModelTierBanditDocument(t){return await this.kv().put(_E(),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(wE(t,r,n));return s!=null?Number(s):null}kv(){return this.db.kv(wt.kv)}}});var ME={};K(ME,{runResidentServer:()=>MG});import{randomUUID as An}from"node:crypto";import{execFileSync as IG,spawn as LG}from"node:child_process";import{existsSync as DG}from"node:fs";import{mkdir as DE,rename as GG,rm as CE,writeFile as GE}from"node:fs/promises";import{createServer as $G}from"node:net";import{dirname as Bd,join as da}from"node:path";import{fileURLToPath as NG,pathToFileURL as FG}from"node:url";async function MG(e){await DE(Bd(e.socketPath),{recursive:!0});let t=XG();QG();let r=e.telemetryDrainTimeoutMs??$E,n={kind:"opening",startedAt:process.hrtime.bigint()},s,o=!1,i=e.idleMs??Wo,a,c,u=!1,l=new Set,p=e.telemetryDrainIntervalMs??3e4,d=$G(v=>{l.add(v),v.once("close",()=>l.delete(v)),f(),o$(v,async(G,B)=>{f();let J=await i$(n,G,e.storeUri,e.residentVersion??"0.0.0-dev"),te={id:G.id,ok:!0,value:J,storeOpenCount:n.kind==="ready"?n.storeOpenCount:void 0,storeElapsedMs:n.kind==="ready"?n.storeElapsedMs:void 0};B(te),G.op==="handover"&&setImmediate(()=>g())})});function g(){o=!0,u=!0,c=YG(c),d.close();for(let v of l)v.destroy()}function f(){n.kind!=="opening"&&(a&&clearTimeout(a),a=setTimeout(()=>{g()},i),a.unref())}let E=["SIGINT","SIGTERM"].map(v=>{let G=()=>{pa(),d.close();for(let B of l)B.destroy();setTimeout(()=>process.exit(0),1e3)};return process.once(v,G),{signal:v,handler:G}});await new Promise((v,G)=>{d.once("error",G),d.listen(e.socketPath,()=>{d.off("error",G),v()})}),(async()=>{let v=process.hrtime.bigint();process.env.RSP_TEST_HANG_RESIDENT_STORE_OPEN==="1"&&await new Promise(()=>{});let G=Number(process.env.RSP_TEST_DELAY_RESIDENT_STORE_OPEN_MS??"0");Number.isFinite(G)&&G>0&&await new Promise(re=>setTimeout(re,G));let B=await xr.open({uri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,allowResidentOpen:!0}),J=Number(process.hrtime.bigint()-v)/1e6,te=new Md(B,{rootDir:e.rootDir??process.cwd(),ttlDays:e.telemetryTtlDays??Ho,byteBudget:e.telemetryByteBudget??e.byteBudget??qo});if(o){await B.close();return}if(await Nd(te,r),o){await B.close();return}n={kind:"ready",store:B,telemetry:te,storeOpenCount:1,storeElapsedMs:J},s=setInterval(()=>{let re=n.kind==="ready"?n:void 0;re&&Nd(re.telemetry,r)},p),s.unref(),f()})().catch(v=>{n={kind:"failed",error:v instanceof Error?v:new Error(String(v))},f()}),e.pidPath&&await GE(e.pidPath,`${process.pid}
|
|
171
|
+
`,{encoding:"utf8",mode:384});let h=e.residentVersion??"0.0.0-dev",_=e.registryPath??da(ne(e.rootDir??process.cwd()),"rsp-resident.pid.json");try{await To(_,{socket_path:e.socketPath,store_uri:e.storeUri,resident_version:h})}catch{}await new Promise(v=>d.once("close",v)),a&&clearTimeout(a),s&&clearInterval(s),await CE(e.socketPath,{force:!0});let T=n;T.kind==="ready"&&(await Nd(T.telemetry,r,u),await T.store.close()),c&&clearTimeout(c);for(let{signal:v,handler:G}of E)process.off(v,G);t?.kill("SIGTERM"),pa(),e.pidPath&&await CE(e.pidPath,{force:!0}),await vo(_)}async function WG(e,t,r=new Date){let n=await gi(e,1,r),s=r.toISOString().slice(0,10),o=n.savings.daily_tokens_saved.find(l=>l.date===s)?.tokens_saved??0,i=n.savings.tokens_saved>0?o/n.savings.tokens_saved*n.savings.dollars_saved_estimate_usd:0,a=da(ne(t),HG),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 DE(Bd(a),{recursive:!0}),await GE(c,`${se(u)}
|
|
172
|
+
`,{encoding:"utf8",mode:384}),await GG(c,a)}async function Nd(e,t=$E,r=!1){try{r&&process.env.RSP_TEST_HANG_TELEMETRY_DRAIN==="1"&&await new Promise(()=>{}),await FE(e.drainAndSweep(),t,"telemetry drain timed out")}catch(n){process.stderr.write(`rsp resident: telemetry drain failed: ${n instanceof Error?n.message:String(n)}
|
|
173
|
+
`)}}async function VG(e){let t=[];for(let r of qG){let n=await JG(e,r);n.ok||(n.previousModel&&(n.previousModel!=="collection"&&await KG(e,r,n.previousModel),t.push({collection:r,previousModel:n.previousModel})),await e.query(`CREATE KV IF NOT EXISTS ${NE(r)}`))}return t}async function JG(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 KG(e,t,r){let n=zG(r);if(!n)throw new Error(`cannot self-heal telemetry collection ${t}: unsupported model ${r}`);await e.query(`DROP ${n} ${NE(t)}`)}function zG(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 NE(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid telemetry collection name: ${e}`);return e}function YG(e){return e&&clearTimeout(e),setTimeout(()=>{pa(),process.exit(0)},UG)}function QG(){OE||(OE=!0,process.on("exit",()=>pa()))}function XG(){if(process.platform==="win32")return;let t=LG(process.execPath,["-e",`
|
|
159
174
|
const { execFileSync } = require("node:child_process");
|
|
160
175
|
const parentPid = Number(process.argv[1]);
|
|
161
176
|
const known = new Set();
|
|
@@ -196,23 +211,42 @@ const timer = setInterval(() => {
|
|
|
196
211
|
clearInterval(timer);
|
|
197
212
|
process.exit(0);
|
|
198
213
|
}, 500);
|
|
199
|
-
`,String(process.pid)],{detached:!0,stdio:"ignore"});return t.unref(),t}function Li(){for(let e of zP())try{process.kill(e,"SIGTERM")}catch{}}function zP(){if(process.platform==="win32")return[];let e="";try{e=TP("ps",["-eo","pid=,ppid=,args="],{encoding:"utf8"})}catch{return[]}let t=[];for(let n of e.split(/\n/)){let r=/^\s*(\d+)\s+(\d+)\s+([\s\S]*)$/.exec(n);if(!r)continue;let s=Number(r[1]),o=Number(r[2]),i=r[3]??"";o===process.pid&&/(^|\s)\S*red(?:\.exe)?\s+rpc\s+--stdio(\s|$)/.test(i)&&t.push(s)}return t}async function YP(e){if(e.collection!==Se)return e;let t=await zb(e.raw_text,Xb(e.raw_bytes)),n=await zb(e.emitted_text,Xb(e.emitted_bytes)),{raw_text:r,emitted_text:s,...o}=e;return{...o,tokens_raw:t.tokens,tokens_emitted:n.tokens,estimated:t.estimated||n.estimated}}async function zb(e,t){if(typeof e=="string"){let n=Buffer.byteLength(e,"utf8");if(n<=NP)try{return await rw((async()=>({tokens:(await XP())("cl100k_base").encode(e).length,estimated:!1}))(),MP,"telemetry tokenization timed out")}catch{return{tokens:Math.ceil(n/4),estimated:!0}}return{tokens:Math.ceil(n/4),estimated:!0}}return t!=null?{tokens:Math.ceil(t/4),estimated:!0}:{tokens:0,estimated:!1}}async function XP(){return Yb??=import($P(QP()).href).then(e=>{let t=e.getEncoding;if(!t)throw new Error("js-tiktoken getEncoding export not found");return t}),await Yb}function QP(){let e=Il(LP(import.meta.url)),n=[Ii(e,"..","node_modules","js-tiktoken","dist","index.js"),Ii(e,"..","apps","rsp","node_modules","js-tiktoken","dist","index.js")].find(r=>AP(r));if(!n)throw new Error("js-tiktoken dependency not found");return n}function Xb(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 Al(e){return e.trim().split(/\s+/).filter(Boolean)[0]??"unknown"}async function rw(e,t,n){let r;try{return await Promise.race([e,new Promise((s,o)=>{r=setTimeout(()=>o(new Error(n)),t),r.unref()})])}finally{r&&clearTimeout(r)}}function ZP(e){try{return JSON.parse(e)}catch{return e}}function eI(e){return Qb(e)&&e.version===1&&Array.isArray(e.records)&&e.records.every(t=>Qb(t)&&(t.collection===fe||t.collection===te||t.collection===Se||t.collection===Qe)&&typeof t.key=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&typeof t.bytes=="number")}function Qb(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function tI(e,t){wp(e,(n,r)=>t(n,r),(n,r,s)=>{s({id:r?.id??ar(),ok:!1,error:n instanceof Error?n.message:String(n)})})}async function nI(e,t,n,r){if(t.op==="handover")return{handover:!0,version:r,clientVersion:t.clientVersion};if(e.kind==="opening")throw new Error("rsp resident store is not ready");if(e.kind==="failed")throw new Error(`rsp resident store failed to open: ${e.error.message}`);let s=e.store;if(t.op==="ping")return{pong:!0,version:r};if(t.op==="stats")return await s.stats();if(t.op==="recovery-handles")return await s.recoveryHandles(t.limit);if(t.op==="accounting-stats"){let o=s.redDb();if(!o)throw new Error("rsp accounting stats require the shared RedDB store");return await iu(o,t.byteBudget)}if(t.op==="telemetry-stats"){let o=s.redDb();if(!o)throw new Error("rsp telemetry stats require the shared RedDB store");return await Ho(o,t.sinceDays)}if(t.op==="telemetry-gains"){let o=s.redDb();if(!o)throw new Error("rsp telemetry gains require the shared RedDB store");return await au(o,t.sinceDays)}if(t.op==="mint")return{handle:await s.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return sI(await s.get(t.handle));if(t.op==="memory")return await s.memory(t.action,t.payload);if(t.op==="brain")return await rI(s,n,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}async function rI(e,t,n,r){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await Gb(s,t).request(n,r)}function sI(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var NP,MP,tw,BP,FP,jP,Pl,Kb,Yb,ow=g(()=>{"use strict";Re();Zs();Js();at();Go();Jb();Ge();je();NP=256*1024,MP=500,tw=2e3,BP=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),FP="rsp-status-summary.json",jP=[fe,te,Se,Qe,Fr],Pl=class{constructor(t,n){this.store=t;this.opts=n;this.pendingHeals=[...n.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 n=await HP(t);n.unshift(...this.pendingHeals),this.pendingHeals=[];let r=await this.readIndex(t),s=r.records.length,o=[...r.records];for(let a of n)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 vc(this.opts.rootDir,async a=>{let c=Wn(a);if(!c){let u=await this.writeDrainDegradation(t,{reason:"telemetry parse failed",command:"unknown",bytes:Buffer.byteLength(a,"utf8")});return o.push(u),!0}try{let u=await this.writeEvent(t,c);o.push(u);let l=await this.writeAccountingMirror(t,c);return l&&o.push(l),!0}catch(u){let l=await this.writeDrainDegradation(t,{reason:"telemetry event dropped",command: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 GP(t,this.opts.rootDir)}async writeEvent(t,n){let r=new Date,s=typeof n.created_at=="string"?n.created_at:r.toISOString(),o=new Date(Date.parse(s)+this.opts.ttlDays*24*60*60*1e3).toISOString(),i=typeof n.id=="string"&&n.id.trim()!==""?n.id:ar(),a={...await YP(n),id:i,created_at:s,expires_at:o};return await t.kv(n.collection).put(i,a),{collection:n.collection,key:i,created_at:s,expires_at:o,bytes:n.collection===fe?0:typeof n.bytes=="number"&&Number.isFinite(n.bytes)?Math.max(0,n.bytes):Buffer.byteLength(JSON.stringify(a),"utf8")}}async writeAccountingMirror(t,n){return n.collection===fe||n.accounting_recorded===!0?null:n.collection===Se?await this.writeEvent(t,{collection:fe,id:`mirror:${se(n.id)||ar()}`,created_at:se(n.created_at)||se(n.ts)||new Date().toISOString(),event_type:"invocation",command:se(n.command)||"unknown",command_class:Al(se(n.command)||"unknown"),wrapper:n.wrapper,loss:n.loss,elided:n.elided,raw_bytes:n.raw_bytes,emitted_bytes:n.emitted_bytes,tokens_raw:n.tokens_raw,tokens_emitted:n.tokens_emitted,estimated:n.estimated,wrapper_ms:n.wrapper_ms,store_open_count:n.store_open_count,store_elapsed_ms:n.store_elapsed_ms}):n.collection===Qe?await this.writeEvent(t,{collection:fe,id:`mirror:${se(n.id)||ar()}`,created_at:se(n.created_at)||se(n.ts)||new Date().toISOString(),event_type:"invocation",command:se(n.command)||"unknown",command_class:Al(se(n.command)||"unknown"),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:se(n.reason)||"unknown",wrapper_family:se(n.wrapper_family),wrapper_exit_code:n.wrapper_exit_code,stderr_head:se(n.stderr_head)}):null}async writeDrainDegradation(t,n){let r=await this.writeEvent(t,{collection:Qe,id:ar(),created_at:new Date().toISOString(),reason:n.reason,command:n.command,bytes:n.bytes,source_id:n.source_id,source_collection:n.source_collection,error:n.error});return await this.writeEvent(t,{collection:fe,id:`mirror:${ar()}`,created_at:r.created_at,event_type:"invocation",command:n.command,command_class:Al(n.command),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:n.reason,source_id:n.source_id,source_collection:n.source_collection,error:n.error}),r}async readIndex(t){let n=await t.kv(Fr).get("index:v1"),r=typeof n=="string"?ZP(n):n;return eI(r)?r:{version:1,records:[]}}async writeIndex(t,n){await t.kv(Fr).put("index:v1",n)}async prune(t,n,r=!1){let s=Date.now(),o=[];for(let a of n.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)}(r||o.length<n.records.length)&&await this.writeIndex(t,{version:1,records:o})}};Kb=!1});ji();Ve();var Pd={"store-uri":{kind:"value",coerce:e=>e},brief:{kind:"boolean"},terse:{kind:"boolean"},query:{kind:"value",coerce:e=>e}},H_={json:{kind:"boolean"}},U_={help:{kind:"boolean",aliases:["h"]}},W_={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 Id(e){let{command:t,args:n}=Fi(e,q_);return t==="--version"?{kind:"version",json:lr(n,H_).values.json===!0}:J_(e)?{kind:"help"}:{kind:"command"}}var q_={commands:{"--version":{aliases:["-v"]},run:{}},default:"run",keepArgvOnDefault:!0};function J_(e){return Wt(e,U_).values.help===!0}function Ld(e){let{values:t,rest:n}=K_(e),r=n[0];if(r!==void 0&&r!=="--"&&r.startsWith("--"))throw Ds.unknownFlag(r);let s=Fi(n,W_).command,o=[...n],i=t.query;return i!==void 0&&s!=="show"&&o.push("--query",i),{command:s,handle:n[1],storeUri:t["store-uri"],query:i,level:t.terse===!0?"terse":t.brief===!0?"brief":"lossless",positional:o}}var Ds=class e extends Error{static unknownFlag(t){return new e(`unknown flag: ${t}`)}render(){return N({command:"rsp",category:"usage",error:this.message,help:"rsp --help",validFlags:V_})}},V_=Object.keys(Pd).map(e=>`--${e}`);function K_(e){try{return Wt(e,Pd)}catch(t){throw new Ds(t instanceof Error?t.message:String(t))}}function $d(e){return N({command:`rsp ${e.token}`,category:"usage",error:`unknown command: ${e.token}`,help:"rsp --help",validFlags:e.known})}function Dd(e){return e instanceof ur}function Cn(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}var z_={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:St},"ephemeral-ttl-hours":{kind:"value",coerce:St},"byte-budget":{kind:"value",coerce:St},"telemetry-ttl-days":{kind:"value",coerce:St},"telemetry-byte-budget":{kind:"value",coerce:St},"telemetry-drain-interval-ms":{kind:"value",coerce:St},"telemetry-drain-timeout-ms":{kind:"value",coerce:St},"idle-ms":{kind:"value",coerce:St}};function ua(e){return lr(e,z_).values}var Nd={since:{kind:"value",coerce:X_},full:{kind:"boolean"}};function Ns(e,t){return lr(e,Nd).values.since??t}function Md(e){return lr(e,Nd).values.full===!0}var Y_={field:{kind:"value",type:"array",aliases:["f","F"],coerce:e=>e}};function Bd(e){let{values:t,rest:n}=Wt(e,Y_),r=n[1];if(!r)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:r,params:s}}function St(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function X_(e){let t=/^(\d+)(d)?$/.exec(e);if(!t)return;let n=Number(t[1]);return Number.isFinite(n)&&n>0?n:void 0}la();Ve();import{existsSync as oI}from"node:fs";import{fileURLToPath as iI}from"node:url";at();wr();V();ze();import{existsSync as y0}from"node:fs";import{fileURLToPath as b0}from"node:url";at();Ga();V();import{existsSync as vk}from"node:fs";import{fileURLToPath as Ck}from"node:url";async function Pn(e,t){let n={stats:Tk(e.telemetryByteBudget),telemetry:Ja(t)};if(!e.storeUri.startsWith("file://"))return n;let r=Ck(e.storeUri);if(!vk(r))return n;let{residentElisionStore:s}=await Promise.resolve().then(()=>(Qt(),Or)),o=s(process.cwd(),e);try{return r.endsWith("red-skills.rdb")?{stats:await o.accountingStats(e.telemetryByteBudget),telemetry:await o.telemetryStats(t)}:{stats:await o.stats(),telemetry:Ja(t)}}catch{return n}finally{await o.close()}}function Va(e,t=Ja(30),n=!1,r=zp()){return`${J(Ka(e,t,n,r))}
|
|
200
|
-
`}function
|
|
201
|
-
`}function
|
|
202
|
-
`}function
|
|
203
|
-
`)}function
|
|
204
|
-
`}async function
|
|
205
|
-
`;s+=Buffer.byteLength(a),process.stderr.write(a),o({stdoutBytes:
|
|
206
|
-
`);let s=await
|
|
207
|
-
`),await
|
|
208
|
-
`),
|
|
209
|
-
`),2}let
|
|
210
|
-
`),
|
|
211
|
-
`}async function
|
|
214
|
+
`,String(process.pid)],{detached:!0,stdio:"ignore"});return t.unref(),t}function pa(){for(let e of ZG())try{process.kill(e,"SIGTERM")}catch{}}function ZG(){if(process.platform==="win32")return[];let e="";try{e=IG("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 e$(e){if(e.collection!==Fe)return e;let t=await AE(e.raw_text,IE(e.raw_bytes)),r=await AE(e.emitted_text,IE(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 AE(e,t){if(typeof e=="string"){let r=Buffer.byteLength(e,"utf8");if(r<=BG)try{return await FE((async()=>({tokens:(await t$())("cl100k_base").encode(e).length,estimated:!1}))(),jG,"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 t$(){return PE??=import(FG(r$()).href).then(e=>{let t=e.getEncoding;if(!t)throw new Error("js-tiktoken getEncoding export not found");return t}),await PE}function r$(){let e=Bd(NG(import.meta.url)),r=[da(e,"..","node_modules","js-tiktoken","dist","index.js"),da(e,"..","apps","rsp","node_modules","js-tiktoken","dist","index.js")].find(n=>DG(n));if(!r)throw new Error("js-tiktoken dependency not found");return r}function IE(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function we(e){return typeof e=="string"&&e.trim()!==""?e:void 0}function Fd(e){return e.trim().split(/\s+/).filter(Boolean)[0]??"unknown"}async function FE(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 n$(e){try{return JSON.parse(e)}catch{return e}}function s$(e){return LE(e)&&e.version===1&&Array.isArray(e.records)&&e.records.every(t=>LE(t)&&(t.collection===Ce||t.collection===he||t.collection===Fe||t.collection===ft)&&typeof t.key=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&typeof t.bytes=="number")}function LE(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function o$(e,t){Nm(e,(r,n)=>t(r,n),(r,n,s)=>{s({id:n?.id??An(),ok:!1,error:r instanceof Error?r.message:String(r)})})}async function i$(e,t,r,n){if(t.op==="handover")return{handover:!0,version:n,clientVersion:t.clientVersion};if(e.kind==="opening")throw new Error("rsp resident store is not ready");if(e.kind==="failed")throw new Error(`rsp resident store failed to open: ${e.error.message}`);let s=e.store;if(t.op==="ping")return{pong:!0,version:n};if(t.op==="stats")return await s.stats();if(t.op==="recovery-handles")return await s.recoveryHandles(t.limit);if(t.op==="accounting-stats"){let o=s.redDb();if(!o)throw new Error("rsp accounting stats require the shared RedDB store");return await Uu(o,t.byteBudget)}if(t.op==="telemetry-stats"){let o=s.redDb();if(!o)throw new Error("rsp telemetry stats require the shared RedDB store");return await gi(o,t.sinceDays)}if(t.op==="telemetry-gains"){let o=s.redDb();if(!o)throw new Error("rsp telemetry gains require the shared RedDB store");return await Hu(o,t.sinceDays)}if(t.op==="mint")return{handle:await s.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return c$(await s.get(t.handle));if(t.op==="memory")return await s.memory(t.action,t.payload);if(t.op==="brain")return await a$(s,r,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}async function a$(e,t,r,n){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await RE(s,t).request(r,n)}function c$(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var BG,jG,$E,UG,HG,qG,Md,OE,PE,BE=y(()=>{"use strict";$e();xo();_o();Tt();fi();xE();et();Ze();BG=256*1024,jG=500,$E=2e3,UG=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),HG="rsp-status-summary.json",qG=[Ce,he,Fe,ft,ls],Md=class{constructor(t,r){this.store=t;this.opts=r;this.pendingHeals=[...r.bootHeals??[]]}running;pending=!1;pendingHeals;async drainAndSweep(){if(this.running){this.pending=!0,await this.running;return}this.running=(async()=>{do this.pending=!1,await this.drainAndSweepOnce();while(this.pending)})().finally(()=>{this.running=void 0}),await this.running}async drainAndSweepOnce(){let t=this.store.redDb();if(!t)return;let r=await VG(t);r.unshift(...this.pendingHeals),this.pendingHeals=[];let n=await this.readIndex(t),s=n.records.length,o=[...n.records];for(let a of r)o.push(await this.writeDrainDegradation(t,{reason:"telemetry collection model mismatch",command:"rsp resident telemetry drain",source_collection:a.collection,error:`expected kv, got ${a.previousModel}`,bytes:0}));await cu(this.opts.rootDir,async a=>{let c=dn(a);if(!c){let u=await this.writeDrainDegradation(t,{reason:"telemetry parse failed",command:"unknown",bytes:Buffer.byteLength(a,"utf8")});return o.push(u),!0}try{let u=await this.writeEvent(t,c);o.push(u);let l=await this.writeAccountingMirror(t,c);return l&&o.push(l),!0}catch(u){let l=await this.writeDrainDegradation(t,{reason:"telemetry event dropped",command:we(c.command)||"unknown",source_id:we(c.id),source_collection:we(c.collection),error:u instanceof Error?u.message:String(u),bytes:Buffer.byteLength(a,"utf8")});return o.push(l),!0}});let i=o.length>s;await this.prune(t,{version:1,records:o},i),await WG(t,this.opts.rootDir)}async writeEvent(t,r){let n=new Date,s=typeof r.created_at=="string"?r.created_at:n.toISOString(),o=new Date(Date.parse(s)+this.opts.ttlDays*24*60*60*1e3).toISOString(),i=typeof r.id=="string"&&r.id.trim()!==""?r.id:An(),a={...await e$(r),id:i,created_at:s,expires_at:o};return await t.kv(r.collection).put(i,a),{collection:r.collection,key:i,created_at:s,expires_at:o,bytes:r.collection===Ce?0:typeof r.bytes=="number"&&Number.isFinite(r.bytes)?Math.max(0,r.bytes):Buffer.byteLength(JSON.stringify(a),"utf8")}}async writeAccountingMirror(t,r){return r.collection===Ce||r.accounting_recorded===!0?null:r.collection===Fe?await this.writeEvent(t,{collection:Ce,id:`mirror:${we(r.id)||An()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:Fd(we(r.command)||"unknown"),wrapper:r.wrapper,loss:r.loss,elided:r.elided,raw_bytes:r.raw_bytes,emitted_bytes:r.emitted_bytes,tokens_raw:r.tokens_raw,tokens_emitted:r.tokens_emitted,estimated:r.estimated,wrapper_ms:r.wrapper_ms,store_open_count:r.store_open_count,store_elapsed_ms:r.store_elapsed_ms}):r.collection===ft?await this.writeEvent(t,{collection:Ce,id:`mirror:${we(r.id)||An()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:Fd(we(r.command)||"unknown"),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:we(r.reason)||"unknown",wrapper_family:we(r.wrapper_family),wrapper_exit_code:r.wrapper_exit_code,stderr_head:we(r.stderr_head)}):null}async writeDrainDegradation(t,r){let n=await this.writeEvent(t,{collection:ft,id:An(),created_at:new Date().toISOString(),reason:r.reason,command:r.command,bytes:r.bytes,source_id:r.source_id,source_collection:r.source_collection,error:r.error});return await this.writeEvent(t,{collection:Ce,id:`mirror:${An()}`,created_at:n.created_at,event_type:"invocation",command:r.command,command_class:Fd(r.command),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:r.reason,source_id:r.source_id,source_collection:r.source_collection,error:r.error}),n}async readIndex(t){let r=await t.kv(ls).get("index:v1"),n=typeof r=="string"?n$(r):r;return s$(n)?n:{version:1,records:[]}}async writeIndex(t,r){await t.kv(ls).put("index:v1",r)}async prune(t,r,n=!1){let s=Date.now(),o=[];for(let a of r.records)Date.parse(a.expires_at)<=s?await t.kv(a.collection).delete(a.key):o.push(a);let i=o.reduce((a,c)=>a+c.bytes,0);for(o.sort((a,c)=>a.created_at.localeCompare(c.created_at));i>this.opts.byteBudget&&o.length>0;){let a=o.shift();i-=a.bytes,await t.kv(a.collection).delete(a.key)}(n||o.length<r.records.length)&&await this.writeIndex(t,{version:1,records:o})}};OE=!1});Ra();ut();var zp={"store-uri":{kind:"value",coerce:e=>e},brief:{kind:"boolean"},terse:{kind:"boolean"},query:{kind:"value",coerce:e=>e}},Lk={json:{kind:"boolean"}},Dk={help:{kind:"boolean",aliases:["h"]}},Gk={commands:{dashboard:{},stats:{},gains:{},show:{},git:{},gh:{},vitest:{},cargo:{},cat:{},exec:{},proxy:{},wait:{},doctor:{},status:{},sweep:{},setup:{},mcp:{},"shell-init":{},server:{},"warm-resident":{},"gh-api-json":{},hook:{}},default:"dashboard",keepArgvOnDefault:!0,errorOnUnknownCommand:!0};function Yp(e){let{command:t,args:r}=Ea(e,$k);return t==="--version"?{kind:"version",json:Gn(r,Lk).values.json===!0}:Nk(e)?{kind:"help"}:{kind:"command"}}var $k={commands:{"--version":{aliases:["-v"]},run:{}},default:"run",keepArgvOnDefault:!0};function Nk(e){return dr(e,Dk).values.help===!0}function Qp(e){let{values:t,rest:r}=Mk(e),n=r[0];if(n!==void 0&&n!=="--"&&n.startsWith("--"))throw co.unknownFlag(n);let s=Ea(r,Gk).command,o=[...r],i=t.query;return i!==void 0&&s!=="show"&&o.push("--query",i),{command:s,handle:r[1],storeUri:t["store-uri"],query:i,level:t.terse===!0?"terse":t.brief===!0?"brief":"lossless",positional:o}}var co=class e extends Error{static unknownFlag(t){return new e(`unknown flag: ${t}`)}render(){return V({command:"rsp",category:"usage",error:this.message,help:"rsp --help",validFlags:Fk})}},Fk=Object.keys(zp).map(e=>`--${e}`);function Mk(e){try{return dr(e,zp)}catch(t){throw new co(t instanceof Error?t.message:String(t))}}function Xp(e){return V({command:`rsp ${e.token}`,category:"usage",error:`unknown command: ${e.token}`,help:"rsp --help",validFlags:e.known})}function Zp(e){return e instanceof Dn}function Jr(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}var Bk={socket:{kind:"value",coerce:e=>e},"pid-file":{kind:"value",coerce:e=>e},"wake-lock":{kind:"value",coerce:e=>e},registry:{kind:"value",coerce:e=>e},"resident-version":{kind:"value",coerce:e=>e},"ttl-days":{kind:"value",coerce:qt},"ephemeral-ttl-hours":{kind:"value",coerce:qt},"byte-budget":{kind:"value",coerce:qt},"telemetry-ttl-days":{kind:"value",coerce:qt},"telemetry-byte-budget":{kind:"value",coerce:qt},"telemetry-drain-interval-ms":{kind:"value",coerce:qt},"telemetry-drain-timeout-ms":{kind:"value",coerce:qt},"idle-ms":{kind:"value",coerce:qt}};function Wa(e){return Gn(e,Bk).values}var em={since:{kind:"value",coerce:Uk},full:{kind:"boolean"}};function uo(e,t){return Gn(e,em).values.since??t}function tm(e){return Gn(e,em).values.full===!0}var jk={field:{kind:"value",type:"array",aliases:["f","F"],coerce:e=>e}};function rm(e){let{values:t,rest:r}=dr(e,jk),n=r[1];if(!n)return null;let s={};for(let o of t.field??[]){let i=o.indexOf("=");i<=0||(s[o.slice(0,i)]=o.slice(i+1))}return{path:n,params:s}}function qt(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function Uk(e){let t=/^(\d+)(d)?$/.exec(e);if(!t)return;let r=Number(t[1]);return Number.isFinite(r)&&r>0?r:void 0}Va();ut();import{existsSync as u$}from"node:fs";import{fileURLToPath as l$}from"node:url";Tt();qn();oe();dt();import{existsSync as EA}from"node:fs";import{fileURLToPath as RA}from"node:url";Tt();kc();oe();import{existsSync as yT}from"node:fs";import{fileURLToPath as bT}from"node:url";async function Qr(e,t){let r={stats:wT(e.telemetryByteBudget),telemetry:Cc(t)};if(!e.storeUri.startsWith("file://"))return r;let n=bT(e.storeUri);if(!yT(n))return r;let{residentElisionStore:s}=await Promise.resolve().then(()=>(wr(),es)),o=s(process.cwd(),e);try{return n.endsWith("red-skills.rdb")?{stats:await o.accountingStats(e.telemetryByteBudget),telemetry:await o.telemetryStats(t)}:{stats:await o.stats(),telemetry:Cc(t)}}catch{return r}finally{await o.close()}}function Oc(e,t=Cc(30),r=!1,n=ff()){return`${se(Ac(e,t,r,n))}
|
|
215
|
+
`}function mf(e,t){return`${se({...e,overhead:gf(t)})}
|
|
216
|
+
`}function ff(){return{schema_version:"red.rsp.overhead.v1",verdict:"green",summary:"every wrapper family is inside its overhead ceiling",ceiling:Ke,breaching_families:[],disabled_families:[],families:[]}}function gf(e){return{schema_version:e.schema_version,verdict:e.verdict,summary:e.summary,ceiling:e.ceiling,breaching_families:e.breaching_families,disabled_families:e.disabled_families,families:e.families}}function Ac(e,t,r,n=ff()){let s=t.savings.top_commands.slice(0,r?10:3),o=r?t.savings.daily_tokens_saved:t.savings.daily_tokens_saved.slice(-7),i=e.storage_classes??Co(),a=t.health.recent_failures.slice(0,r?20:5),c=t.decisions.top_pass_reasons.slice(0,r?10:3);return{records:e.records,bytes:e.bytes,oldest:e.oldest,budget:e.budget,storage_classes:i,savings:{window_days:t.window_days,empty:t.empty,...t.savings,tokens_saved_display:_T(t.savings),dollars_saved_estimate_usd_display:ET(t.savings),daily_tokens_saved:o,daily_tokens_saved_elided:r?0:Math.max(0,t.savings.daily_tokens_saved.length-o.length),top_commands:s,top_commands_elided:r?0:Math.max(0,t.savings.top_commands.length-s.length)},overhead:gf(n),health:{overhead_verdict:n.verdict,overhead_summary:n.summary,...t.health,degradation_rate_display:xc(t.health.degradation_rate),show_hit_rate_display:xc(t.health.show_hit_rate),by_reason:t.health.by_reason,by_family:t.health.by_family,recent_failures:a,recent_failures_elided:r?0:Math.max(0,t.health.recent_failures.length-a.length),most_recent_degradation_at:t.health.most_recent?.timestamp??null,most_recent_degradation_reason:t.health.most_recent?.reason??null},decisions:{...t.decisions,contribution_rate_display:xc(t.decisions.contribution_rate),top_pass_reasons:c,top_pass_reasons_elided:r?0:Math.max(0,t.decisions.top_pass_reasons.length-c.length),by_command_family:r?t.decisions.by_command_family:t.decisions.by_command_family.slice(0,5),by_command_family_elided:r?0:Math.max(0,t.decisions.by_command_family.length-5)},latency:{...t.latency,wrapper_ms_p50_display:vc(t.latency.wrapper_ms_p50),wrapper_ms_p95_display:vc(t.latency.wrapper_ms_p95),store_elapsed_ms_avg_display:vc(t.latency.store_elapsed_ms_avg)}}}function hf(e){return`${se(e)}
|
|
217
|
+
`}function Cc(e){return{window_days:e,empty:!0,savings:{invocations:0,elided:0,raw_bytes:0,emitted_bytes:0,bytes_saved:0,tokens_saved:0,tokens_saved_estimated:!1,token_estimate_range_pct:null,tokens_saved_low:null,tokens_saved_high:null,dollars_saved_estimate_usd:0,dollars_saved_low_usd:null,dollars_saved_high_usd:null,pricing_model_family:"gpt-5",pricing_input_usd_per_million_tokens:1.25,pricing_note:"estimate derived from byte-based token estimate when token counts are estimated",daily_tokens_saved:[],top_commands:[]},health:{degradations:0,degradation_rate:0,show_total:0,show_hits:0,show_misses:0,show_hit_rate:0,by_reason:[],by_family:[],recent_failures:[],most_recent:null},latency:{wrapper_ms_p50:null,wrapper_ms_p95:null,store_open_count_sum:0,store_elapsed_ms_sum:0,store_elapsed_ms_avg:null},decisions:{seen:0,contributed:0,passed:0,failed_open:0,quota_free_saved_units:0,contribution_rate:0,top_pass_reasons:[],by_command_family:[]}}}function wT(e){return{records:0,bytes:0,oldest:null,budget:e,storage_classes:Co()}}function Co(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}function Pc(e){let t=e.legacyStoreMigrated?"migrated":e.storeCreated?"created":"existing";return[`config: ${e.configChanged?"updated":"unchanged"}`,`store: ${t}`,""].join(`
|
|
218
|
+
`)}function _T(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 ET(e){return e.dollars_saved_low_usd==null||e.dollars_saved_high_usd==null?Zn(e.dollars_saved_estimate_usd):`${Zn(e.dollars_saved_low_usd)}-${Zn(e.dollars_saved_high_usd)} (estimate_midpoint: ${Zn(e.dollars_saved_estimate_usd)})`}function vc(e){return e==null?"none":String(e)}function xc(e){return e.toFixed(4).replace(/0+$/,"").replace(/\.$/,".0")}async function Fb(e){let{stats:t,telemetry:r}=await Qr(e,30),[n,s]=await Promise.all([kA(e),Promise.resolve().then(()=>(Ll(),Il)).then(o=>o.listWaits(process.cwd()),()=>[])]);return{stats:t,telemetry:r,recoveryHandles:n,waits:s,overhead:Wt(lt(process.cwd()).rootDir,e.overhead)}}function Mb(e){let t=Ac(e.stats,e.telemetry,!1,e.overhead),r=Ya({executable:{name:"rsp",command:"rsp"},recovery:{pending:e.recoveryHandles.length,handles:e.recoveryHandles},waits:{active:e.waits.length,entries:e.waits},store:{records:e.stats.records,bytes:e.stats.bytes,oldest:e.stats.oldest,budget:e.stats.budget,storage_classes:e.stats.storage_classes??Co()},savings:t.savings,overhead:t.overhead,health:t.health,decisions:t.decisions,latency:t.latency},SA(e));return`${se(r)}
|
|
219
|
+
`}async function kA(e){if(!e.storeUri.startsWith("file://"))return[];let t=RA(e.storeUri);if(!EA(t))return[];let{residentElisionStore:r}=await Promise.resolve().then(()=>(wr(),es)),n=r(process.cwd(),e);try{return await n.recoveryHandles(5)}catch{return[]}finally{await n.close()}}function SA(e){return[e.recoveryHandles.length>0?"rsp show <handle>":"rsp <wrapped-command> --terse",e.waits.length>0?"rsp wait ls":'rsp wait cmd -- "<command>"',"rsp stats --since <days>d"]}Tt();oe();ut();import{existsSync as VI}from"node:fs";import{fileURLToPath as JI}from"node:url";et();import{spawn as Hi}from"node:child_process";async function xw(e,t,r){let n=process.hrtime.bigint(),s=await Cw(e.positional),o=Number(process.hrtime.bigint()-n)/1e6;return cI(t,e,s,o,r),s.signal?(process.kill(process.pid,s.signal),128):s.status??0}async function Cw(e){let t=e[0];if(!t)return{stdoutBytes:0,stderrBytes:0,status:2,signal:null};let r;if(t==="exec"||t==="proxy"){let o=t==="proxy"?await Promise.resolve().then(()=>(Di(),Li)).then(i=>i.parseProxyCommandLine(e)):await Promise.resolve().then(()=>(qs(),Hs)).then(i=>i.parseExecCommandLine(e));r=Hi(o,{shell:!0,stdio:["inherit","pipe","pipe"]})}else r=Hi(t,e.slice(1),{stdio:["inherit","pipe","pipe"]});let n=0,s=0;return r.stdout?.on("data",o=>{n+=o.length,process.stdout.write(o)}),r.stderr?.on("data",o=>{s+=o.length,process.stderr.write(o)}),await new Promise(o=>{r.on("error",i=>{let a=`${i instanceof Error?i.message:String(i)}
|
|
220
|
+
`;s+=Buffer.byteLength(a),process.stderr.write(a),o({stdoutBytes:n,stderrBytes:s,status:127,signal:null})}),r.on("close",(i,a)=>o({stdoutBytes:n,stderrBytes:s,status:i,signal:a}))})}function Ow(e){return e>0&&Math.random()<e}async function Vs(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw r instanceof Error?r:new Error(e);process.stderr.write(`rsp: ${e}, passing through
|
|
221
|
+
`);let s=await Lw(t);if(n){let o=uI(e,t,r),{appendTelemetryEvent:i,RSP_ACCOUNTING_EVENTS_COLLECTION:a,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:c}=await Promise.resolve().then(()=>(et(),As));Wi(i(n,{collection:a,event_type:"invocation",ts:new Date().toISOString(),command:qi(t),command_class:t[0]??"unknown",loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:o.reason,wrapper_family:o.family,wrapper_exit_code:o.exitCode,stderr_head:o.stderrHead})),Wi(i(n,{collection:c,ts:new Date().toISOString(),command:qi(t),reason:o.reason,wrapper_family:o.family,wrapper_exit_code:o.exitCode,stderr_head:o.stderrHead,accounting_recorded:!0}))}return s}async function Aw(e,t,r){let n=await Cw(e),{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:i}=await Promise.resolve().then(()=>(et(),As)),a={ts:new Date().toISOString(),command:qi(e),reason:"overhead-ceiling-self-disabled",wrapper_family:r.family,wrapper_exit_code:n.status??0,stderr_head:r.disabled_reason??r.reasons.join(",")};return Wi(s(t,{collection:o,event_type:"invocation",command_class:e[0]??"unknown",loss:"lossless",raw_bytes:n.stdoutBytes+n.stderrBytes,emitted_bytes:n.stdoutBytes+n.stderrBytes,degradation_reason:a.reason,...a})),Wi(s(t,{collection:i,accounting_recorded:!0,...a})),n.signal?(process.kill(process.pid,n.signal),128):n.status??0}async function Pw(e){return process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp: ${Vi()}, passing through
|
|
222
|
+
`),await Lw(e)}function Vi(){return"rsp is not enabled in this directory; run /red-setup"}function Iw(e){return e==="git"||e==="gh"||e==="vitest"||e==="cargo"||e==="cat"||e==="exec"||e==="proxy"||e==="gh-api-json"}function gt(e){return qi(e.positional)}function qi(e){if(e[0]!=="exec")return e.join(" ");try{let t=e.indexOf("--"),r=t>=0?e.slice(t+1):e.slice(1);return r.length===1?r[0]:r.join(" ")}catch{return e.join(" ")}}function Ws(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function cI(e,t,r,n,s){let o=r.stdoutBytes+r.stderrBytes,i={event_type:"control_holdout",control_holdout:!0,holdout_share:s,ts:new Date().toISOString(),command:gt(t),command_class:t.command??"unknown",wrapper:t.command,loss:"lossless",elided:!1,raw_bytes:o,emitted_bytes:o,wrapper_ms:n};Kt(e,{collection:"rsp_accounting_events_v1",...i}),Kt(e,{collection:"rsp_telemetry_invocations_v1",...i,accounting_recorded:!0})}function uI(e,t,r){let n=t[0]??"unknown",s=lI(r)||e;return{reason:vw(r)==="ENOENT"||vw(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:pI(r)??1,stderrHead:dI(s,240)}}function lI(e){return e instanceof Error?Ws(e.message):Ws(String(e??""))}function dI(e,t){let r=Ws(e).replace(/\s+/g," ").trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}\u2026`}function vw(e){if(typeof e!="object"||e===null||!("code"in e))return"";let t=e.code;return typeof t=="string"?t:""}function pI(e){if(typeof e!="object"||e===null)return null;for(let t of["status","exitCode","exit_code"]){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r}return null}function Wi(e){e.catch(()=>{})}async function Lw(e){if(e[0]==="exec"||e[0]==="proxy")return await mI(e);let t=e[0];if(!t)return 2;let r=Hi(t,e.slice(1),{stdio:"inherit"});return await new Promise(n=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
|
|
223
|
+
`),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function mI(e){let t;try{if(e[0]==="proxy"){let{parseProxyCommandLine:n}=await Promise.resolve().then(()=>(Di(),Li));t=n(e)}else{let{parseExecCommandLine:n}=await Promise.resolve().then(()=>(qs(),Hs));t=n(e)}}catch(n){return process.stderr.write(`${n instanceof Error?n.message:String(n)}
|
|
224
|
+
`),2}let r=Hi(t,{shell:!0,stdio:"inherit"});return await new Promise(n=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
|
|
225
|
+
`),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function Yw(e,t,r){let n=[],s=!e.enabled;if(n.push(s?le("config_gate_resolution","rsp disabled in this directory; run /red-setup to opt in"):le("config_gate_resolution","rsp.enabled resolved true for this directory")),s)return n.push(le("hook_wiring","skipped because rsp is disabled"),le("proxy_mode","skipped because rsp is disabled"),le("resident_liveness","skipped because rsp is disabled"),le("store_provisioning","skipped because rsp is disabled"),le("recent_degradation_rate","skipped because rsp is disabled"),le("overhead_budget","skipped because rsp is disabled")),zw("disabled",n,r);n.push(await KI(e)),n.push(e.proxyEnabled?le("proxy_mode","proxy routing enabled for pre-exec rewrites"):Ir("proxy_mode","proxy routing is explicitly disabled; hook falls back to fixed wrapper capabilities","rsp setup"));let{residentRegistryStatus:o}=await Promise.resolve().then(()=>(dt(),br));if(n.push(zI(await o(t))),n.push(YI(e)),Xw(e)){let{telemetry:i}=await Qr(e,r);n.push(QI(i,r))}else n.push(le("recent_degradation_rate","no telemetry store available yet; no recent degradation spike detected"));return n.push(XI(Wt(process.cwd(),e.overhead))),zw(n.some(i=>!i.pass)?"fail":"pass",n,r)}function Qw(e){let{exitCode:t,...r}=e;return`${se({...r,exit_code:e.exitCode,probes:e.probes,errors:e.errors})}
|
|
226
|
+
`}async function KI(e){try{if(e.proxyEnabled)return le("hook_wiring","pre-exec hook would rewrite git status through rsp proxy");let{rewriteCommand:t}=await Promise.resolve().then(()=>(Ks(),Xi)),r=t("git status");return r.kind==="rewrite"?le("hook_wiring",`pre-exec hook would rewrite git status through ${r.capabilityId}`):Ir("hook_wiring",`pre-exec hook passed git status through: ${r.reason??"unsupported-command"}`,"rsp setup")}catch(t){return Ir("hook_wiring",`pre-exec hook probe failed: ${t instanceof Error?Ws(t.message):"unknown error"}`,"rsp setup")}}function zI(e){return e.state==="registered-alive-socket-healthy"?le("resident_liveness","resident registry points at a healthy socket"):Ir("resident_liveness",`resident registry state is ${e.state}`,"rsp warm-resident")}function YI(e){return e.storeUri.startsWith("file://")?Xw(e)?le("store_provisioning","rsp store exists for this directory"):Ir("store_provisioning","rsp store is not provisioned","rsp setup"):le("store_provisioning","non-file store URI configured; provisioning is delegated to that backend")}function QI(e,t){let r=e.health.by_reason[0];if(e.health.degradations===0)return le("recent_degradation_rate",`0 degradations in the recent ${t}d window`);let n=e.health.degradations,s=r?.reason??e.health.most_recent?.reason??"unknown",o=r?.count??n;return Ir("recent_degradation_rate",`${n} degradation(s) in the recent ${t}d window; dominant reason ${s} (${o})`,ZI(s,t))}function XI(e){return e.verdict==="green"?le("overhead_budget",e.summary):Ir("overhead_budget",e.summary,"rsp status")}function ZI(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 Xw(e){if(!e.storeUri.startsWith("file://"))return!0;try{return VI(JI(e.storeUri))}catch{return!1}}function le(e,t){return{name:e,pass:!0,finding:t}}function Ir(e,t,r){return{name:e,pass:!1,finding:t,fix_command:r,error:qa({command:`rsp doctor:${e}`,category:"real-error",error:t,help:r})}}function zw(e,t,r){return{schema_version:"red.rsp.doctor.v1",status:e,exitCode:e==="fail"?1:0,window_days:r,probes:t,errors:t.map(n=>n.error).filter(n=>!!n)}}Zl();function r_(e){let t=e[0]==="--help"||e[0]==="-h"?void 0:e[0];return`${rL(t).join(`
|
|
212
227
|
`)}
|
|
213
|
-
`}function QT(e){switch(e){case"stats":return F("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 F("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 F("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 F("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 F("rsp gh <pr|issue|run> <list|view> [options] | <issues|prs|edit-labels|link-sub-issues> ...",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail","--json <fields> select fields for batched issues/prs","--repo <slug> owner/repo override for batched operations"],["rsp gh issues 42 43 --json state,title,labels,body","rsp gh prs 12 13 --json state,mergeable,statusCheckRollup","rsp gh edit-labels --add ready-for-agent --remove blocked:crashed 42 43","rsp gh link-sub-issues 100 101 102"]);case"vitest":return F("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 F("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 F("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 F('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 F("rsp proxy -- <command line>",["--brief compact recognized stdout, default lossless","--terse summarize recognized large stdout"],["rsp proxy -- git status","rsp proxy -- pnpm test"]);case"wait":return["usage: rsp wait <subcommand> [options]","","Flags and defaults:"," --timeout <duration> default 30m for cmd, 60m for pr/run, 2h for release"," --reason <text> default empty"," --signal-pid <pid> optional completion signal target"," --signal <signal> default USR1"," --notify-cmd <cmd> optional completion command","","Examples:",' rsp wait pr 123 --reason "before merge"'," rsp wait run --branch feature/wait --latest",' rsp wait release --tag "v2.*"',' rsp wait cmd -- "pnpm -C apps/rsp build"'," rsp wait ls","","Exit codes: 0 = success verdict, 1 = failure verdict, 2 = timeout/indeterminate."];case"doctor":return F("rsp doctor [--since <days>d]",["--since <days>d recent degradation window, default 1d"],["rsp doctor","rsp doctor --since 7d"]);case"status":return F("rsp status",["No flags. Prints resident registry status as TOON."],["rsp status"]);case"sweep":return F("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 F("rsp setup",["No flags. Provisions repo rsp configuration and store state."],["rsp setup"]);case"mcp":return F("rsp mcp",["No flags. Starts the rsp MCP server over stdio."],["rsp mcp"]);case"shell-init":return F("rsp shell-init <fish|bash|zsh>",["<fish|bash|zsh> target shell, no default"],["rsp shell-init bash","rsp shell-init fish"]);case"server":return F("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 F("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 F("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 F("rsp dashboard",["No flags. The explicit spelling of the bare `rsp` invocation."],["rsp","rsp dashboard"]);case"hook":return F("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 F(`rsp ${e} [options]`,["Unknown rsp subcommand. Use root help to list supported subcommands."],["rsp --help"])}}function F(e,t,n){return[`usage: ${e}`,"","Flags and defaults:",...t.map(r=>` ${r}`),"","Examples:",...n.map(r=>` ${r}`)]}Re();V();Ge();import{spawn as ZT}from"node:child_process";import{createHash as eO}from"node:crypto";import{existsSync as tO,readFileSync as nO,statSync as rO}from"node:fs";import{tmpdir as sO}from"node:os";import{dirname as oO,join as $t}from"node:path";async function le(e,t,n,r,s=process.cwd(),o,i=o?.overhead??De){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let a=Number(process.hrtime.bigint()-n)/1e6;r&&o&&aO(s,o);let c=iO(e,t,a);return Rr(s,c,i),r?pn(dO(s,e,t,c,i,r.lastResponseMetrics())):pO(s,e,t,c,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}function iO(e,t,n){let r=Sr(),s=t.stdout.length+t.stderr.length,o=(t.rawOutput?.length??t.stdout.length)+t.stderr.length;return{family:e.command??"unknown",wrapperMs:n,childMs:r.childMs,selfStateBytesRead:r.selfStateBytesRead,bytesSaved:Math.max(0,o-s)}}function pn(e){e.catch(()=>{})}async function ki(e,t,n,r){let{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o}=await Promise.resolve().then(()=>(Ge(),os));await s(e,{collection:o,event_type:"show",ts:new Date().toISOString(),command:"rsp show",command_class:"show",handle:t,hit:n,loss:"lossless",raw_bytes:n?r:0,emitted_bytes:r})}function aO(e,t){try{let n=gt(e),r=rO(n),s=t.telemetryDrainIntervalMs*2;if(r.size<t.telemetryByteBudget&&!lO(n,Date.now()-s))return;let o=cO(e),i=uO(o),a=$t(i,"rsp.sock"),c=$t(i,"rsp.pid"),u=$t(q(o),"rsp-resident.pid.json"),l=$t(o,".red","tmp","rsp","wake.lock");ZT(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 cO(e){let t=e;for(;;){if(tO($t(t,".git")))return t;let n=oO(t);if(n===t)return e;t=n}}function uO(e){let t=eO("sha256").update(e).digest("hex").slice(0,20),n=process.env.XDG_RUNTIME_DIR;if(n){let s=$t(n,"red-skills",t);if($t(s,"rsp.sock").length<108)return s}let r=typeof process.getuid=="function"?process.getuid():"nouid";return $t(sO(),`red-skills-${r}`,t)}function lO(e,t){try{let n=nO(e,"utf8");kr(Buffer.byteLength(n));for(let r of n.split(/\r?\n/))if(r.trim())try{let s=JSON.parse(r),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 dO(e,t,n,r,s,o){let i=Buffer.concat([n.stdout,n.stderr]),a=Buffer.concat([n.rawOutput??n.stdout,n.stderr]),c=Us(r,s),{appendTelemetryEvent:u,RSP_ACCOUNTING_EVENTS_COLLECTION:l,RSP_TELEMETRY_INVOCATIONS_COLLECTION:p}=await Promise.resolve().then(()=>(Ge(),os));await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:Ze(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(n.mintedHandle||n.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs}),await u(e,{collection:p,ts:new Date().toISOString(),command:Ze(t),wrapper:t.command,loss:t.level,elided:!!(n.mintedHandle||n.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}),n.degradation&&(await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:Ze(t),command_class:t.command??"unknown",loss:t.level,raw_bytes:a.length,emitted_bytes:i.length,degradation_reason:n.degradation.reason,wrapper_family:n.degradation.family,wrapper_exit_code:0,stderr_head:n.degradation.stderrHead}),await u(e,{collection:"rsp_telemetry_degradations_v1",ts:new Date().toISOString(),command:Ze(t),reason:n.degradation.reason,wrapper_family:n.degradation.family,wrapper_exit_code:0,stderr_head:n.degradation.stderrHead,accounting_recorded:!0}))}function pO(e,t,n,r,s){try{let o=Buffer.concat([n.stdout,n.stderr]),i=Buffer.concat([n.rawOutput??n.stdout,n.stderr]),a=Us(r,s);Ct(e,{collection:"rsp_accounting_events_v1",event_type:"invocation",ts:new Date().toISOString(),command:Ze(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(n.mintedHandle||n.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a}),Ct(e,{collection:"rsp_telemetry_invocations_v1",ts:new Date().toISOString(),command:Ze(t),wrapper:t.command,loss:t.level,elided:!!(n.mintedHandle||n.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a,accounting_recorded:!0})}catch{}}var Ft=class{constructor(t){this.openStore=t}store;metrics;async mint(...t){try{let n=await this.open(),r=await n.mint(...t);return this.metrics=n.lastResponseMetrics?.(),r}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}},wl=class{async mint(t,n){return`recovery unavailable (cold store) \u2014 re-run: ${n.command}`}lastResponseMetrics(){}async close(){}};async function lb(e,t,n,r){if(process.env.RSP_DEBUG==="1")throw r instanceof Error?r:new Error("cold store");let s=new wl,o=process.hrtime.bigint();try{if(e.command==="git"){let{isFastGitStatus:i,runFastGitStatus:a}=await Promise.resolve().then(()=>(qu(),_y));if(i(e.positional))return await le(e,await a(),o,s,n,t);let{runGitWrapper:c}=await Promise.resolve().then(()=>(un(),Au)),u=await c(e.positional,{level:e.level,store:s,heavyGitByteThreshold:t.heavyGitByteThreshold});return await le(e,u,o,s,n,t)}if(e.command==="gh"){let{runGhWrapper:i}=await Promise.resolve().then(()=>(ll(),ul)),a=await i(e.positional,{level:e.level,store:s});return await le(e,a,o,s,n,t)}if(e.command==="vitest"||e.command==="cargo"){let{runTestWrapper:i}=await Promise.resolve().then(()=>(ml(),fl)),a=await i(e.positional,{level:e.level,store:s});return await le(e,a,o,s,n,t)}if(e.command==="cat"){let{runCatWrapper:i}=await Promise.resolve().then(()=>(bl(),yl)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await le(e,a,o,s,n,t)}if(e.command==="exec"){let{runExecWrapper:i}=await Promise.resolve().then(()=>(hs(),gs)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await le(e,a,o,s)}}catch(i){return Cn(i)?(process.stdout.write(i.render()),2):await bs("wrapper failed",e.positional,i,n)}finally{await s.close()}return await bs("wrapper failed",e.positional,r,n)}async function iw(e=process.argv.slice(2)){let t=Ms("rsp"),n=Id(e);if(n.kind==="version")return process.stdout.write(n.json?`${JSON.stringify(t)}
|
|
214
|
-
`:`${
|
|
215
|
-
`),0;if(
|
|
216
|
-
`),0);if(
|
|
217
|
-
`),0)}if(
|
|
218
|
-
`),
|
|
228
|
+
`}function rL(e){switch(e){case"stats":return z("rsp stats [--since <days>d] [--full]",["Defaults: --since 30d, --full false","--since <days>d telemetry window, default 30d","--full include wider daily/top-command/failure lists, default false","--store-uri <uri> read a non-default store"],["rsp stats","rsp stats --since 7d --full"]);case"gains":return z("rsp gains [--since <days>d]",["--since <days>d gains window, default 28d","--store-uri <uri> read a non-default shared RedDB store"],["rsp gains","rsp gains --since 14d"]);case"show":return z("rsp show <handle>",["<handle> elision handle such as el:<id>","--store-uri <uri> read a non-default store"],["rsp show el:<id>","rsp show <handle>"]);case"git":return z("rsp git <status|log|diff|show|blame|branch|commit|push> [options]",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail"],["rsp git status --brief","rsp git log --terse","rsp git diff --query <path>"]);case"gh":return z("rsp gh <pr|issue|run> <list|view> [options] | <issues|prs|edit-labels|link-sub-issues> ...",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail","--json <fields> select fields for batched issues/prs","--repo <slug> owner/repo override for batched operations"],["rsp gh issues 42 43 --json state,title,labels,body","rsp gh prs 12 13 --json state,mergeable,statusCheckRollup","rsp gh edit-labels --add ready-for-agent --remove blocked:crashed 42 43","rsp gh link-sub-issues 100 101 102"]);case"vitest":return z("rsp vitest [run] [vitest-options]",["--brief compact output, default lossless","--terse summarize long failures and mint recovery handles","--query <text> filter failure rows"],["rsp vitest run","rsp vitest run --query <suite-or-test>"]);case"cargo":return z("rsp cargo test [cargo-test-options]",["--brief compact output, default lossless","--terse summarize long failures and mint recovery handles","--query <text> filter failure rows"],["rsp cargo test","rsp cargo test --query <test-name>"]);case"cat":return z("rsp cat [--head <n>|--tail <n>|--full] <file>",["--head <n> show first n lines, default slice 10","--tail <n> show last n lines, default slice 10","--full emit full text even when it is large","--brief/--terse reduce large text context"],["rsp cat <file>","rsp cat --head 20 <file>","rsp cat --tail 20 <file>"]);case"exec":return z('rsp exec -- "<command line>"',["--brief compact recognized stdout, default lossless","--terse summarize large stdout and mint recovery handles","--query <text> filter supported structured summaries"],['rsp exec -- "pnpm -C apps/rsp build"','rsp exec -- "git status --short"']);case"proxy":return z("rsp proxy -- <command line>",["--brief compact recognized stdout, default lossless","--terse summarize recognized large stdout"],["rsp proxy -- git status","rsp proxy -- pnpm test"]);case"wait":return["usage: rsp wait <subcommand> [options]","","Flags and defaults:"," --timeout <duration> default 30m for cmd, 60m for pr/run, 2h for release"," --reason <text> default empty"," --signal-pid <pid> optional completion signal target"," --signal <signal> default USR1"," --notify-cmd <cmd> optional completion command","","Examples:",' rsp wait pr 123 --reason "before merge"'," rsp wait run --branch feature/wait --latest",' rsp wait release --tag "v2.*"',' rsp wait cmd -- "pnpm -C apps/rsp build"'," rsp wait ls","","Exit codes: 0 = success verdict, 1 = failure verdict, 2 = timeout/indeterminate."];case"doctor":return z("rsp doctor [--since <days>d]",["--since <days>d recent degradation window, default 1d"],["rsp doctor","rsp doctor --since 7d"]);case"status":return z("rsp status",["No flags. Prints resident registry status as TOON."],["rsp status"]);case"sweep":return z("rsp sweep",["No flags. Removes stale resident registry entries, reclaims orphan state temps,","re-bounds the gh ETag cache, and prints TOON status."],["rsp sweep"]);case"setup":return z("rsp setup",["No flags. Provisions repo rsp configuration and store state."],["rsp setup"]);case"mcp":return z("rsp mcp",["No flags. Starts the rsp MCP server over stdio."],["rsp mcp"]);case"shell-init":return z("rsp shell-init <fish|bash|zsh>",["<fish|bash|zsh> target shell, no default"],["rsp shell-init bash","rsp shell-init fish"]);case"server":return z("rsp server [options]",["--socket <path> default resident socket","--pid-file <path> default resident pid file","--store-uri <uri> default repo store","--ttl-days <days> default from config","--ephemeral-ttl-hours <hours> default from config","--byte-budget <bytes> default from config","--idle-ms <ms> default from config"],["rsp server","rsp server --socket <path> --store-uri <uri>"]);case"warm-resident":return z("rsp warm-resident [options]",["--socket <path> default resident socket","--wake-lock <path> default resident wake lock","--store-uri <uri> default repo store","--idle-ms <ms> default from config"],["rsp warm-resident","rsp warm-resident --store-uri <uri>"]);case"gh-api-json":return z("rsp gh-api-json <path> [-f name=value ...]",["-f name=value string GitHub API field","-F name=value typed GitHub API field"],["rsp gh-api-json repos/{owner}/{repo}","rsp gh-api-json repos/{owner}/{repo}/pulls -f state=open"]);case"dashboard":return z("rsp dashboard",["No flags. The explicit spelling of the bare `rsp` invocation."],["rsp","rsp dashboard"]);case"hook":return z("rsp hook <claude-pre-exec|codex-pre-exec|claude-post-exec|codex-post-exec>",["Reads hook payload from stdin. Defaults come from the calling host."],["rsp hook codex-pre-exec","rsp hook claude-pre-exec"]);case void 0:return["usage: rsp <subcommand> [options]","","Bare invocation:"," rsp"," renders a live TOON dashboard with recovery handles, active waits, savings, and health.","","Subcommands:"," dashboard, stats, gains, show, git, gh, vitest, cargo, cat, exec, proxy, wait"," doctor, status, sweep, setup, mcp, shell-init, server, warm-resident, gh-api-json, hook","","Global flags:"," --store-uri <uri> default repo store"," --brief compact summaries"," --terse aggressive summaries with recovery handles"," --query <text> filter supported rendered output"," --help, -h scoped help"," --version, -v build version; add --json for structured build info","","Examples:"," rsp"," rsp stats --since 7d"," rsp git log --terse"," rsp show el:<id>"];default:return z(`rsp ${e} [options]`,["Unknown rsp subcommand. Use root help to list supported subcommands."],["rsp --help"])}}function z(e,t,r){return[`usage: ${e}`,"","Flags and defaults:",...t.map(n=>` ${n}`),"","Examples:",...r.map(n=>` ${n}`)]}$e();oe();et();import{spawn as nL}from"node:child_process";import{createHash as sL}from"node:crypto";import{existsSync as oL,readFileSync as iL,statSync as aL}from"node:fs";import{tmpdir as cL}from"node:os";import{dirname as uL,join as nr}from"node:path";async function Te(e,t,r,n,s=process.cwd(),o,i=o?.overhead??Ke){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let a=Number(process.hrtime.bigint()-r)/1e6;n&&o&&dL(s,o);let c=lL(e,t,a);return Vn(s,c,i),n?Lr(gL(s,e,t,c,i,n.lastResponseMetrics())):hL(s,e,t,c,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}function lL(e,t,r){let n=Kn(),s=t.stdout.length+t.stderr.length,o=(t.rawOutput?.length??t.stdout.length)+t.stderr.length;return{family:e.command??"unknown",wrapperMs:r,childMs:n.childMs,selfStateBytesRead:n.selfStateBytesRead,bytesSaved:Math.max(0,o-s)}}function Lr(e){e.catch(()=>{})}async function ta(e,t,r,n){let{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o}=await Promise.resolve().then(()=>(et(),As));await s(e,{collection:o,event_type:"show",ts:new Date().toISOString(),command:"rsp show",command_class:"show",handle:t,hit:r,loss:"lossless",raw_bytes:r?n:0,emitted_bytes:n})}function dL(e,t){try{let r=Lt(e),n=aL(r),s=t.telemetryDrainIntervalMs*2;if(n.size<t.telemetryByteBudget&&!fL(r,Date.now()-s))return;let o=pL(e),i=mL(o),a=nr(i,"rsp.sock"),c=nr(i,"rsp.pid"),u=nr(ne(o),"rsp-resident.pid.json"),l=nr(o,".red","tmp","rsp","wake.lock");nL(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 pL(e){let t=e;for(;;){if(oL(nr(t,".git")))return t;let r=uL(t);if(r===t)return e;t=r}}function mL(e){let t=sL("sha256").update(e).digest("hex").slice(0,20),r=process.env.XDG_RUNTIME_DIR;if(r){let s=nr(r,"red-skills",t);if(nr(s,"rsp.sock").length<108)return s}let n=typeof process.getuid=="function"?process.getuid():"nouid";return nr(cL(),`red-skills-${n}`,t)}function fL(e,t){try{let r=iL(e,"utf8");Jn(Buffer.byteLength(r));for(let n of r.split(/\r?\n/))if(n.trim())try{let s=JSON.parse(n),o=typeof s.created_at=="string"?s.created_at:s.ts;if(typeof o=="string"){let i=Date.parse(o);if(Number.isFinite(i)&&i<=t)return!0}}catch{}}catch{}return!1}async function gL(e,t,r,n,s,o){let i=Buffer.concat([r.stdout,r.stderr]),a=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),c=yo(n,s),{appendTelemetryEvent:u,RSP_ACCOUNTING_EVENTS_COLLECTION:l,RSP_TELEMETRY_INVOCATIONS_COLLECTION:p}=await Promise.resolve().then(()=>(et(),As));await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:gt(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs}),await u(e,{collection:p,ts:new Date().toISOString(),command:gt(t),wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,raw_text:a.toString("utf8"),emitted_text:i.toString("utf8"),...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs,accounting_recorded:!0}),r.degradation&&(await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:gt(t),command_class:t.command??"unknown",loss:t.level,raw_bytes:a.length,emitted_bytes:i.length,degradation_reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead}),await u(e,{collection:"rsp_telemetry_degradations_v1",ts:new Date().toISOString(),command:gt(t),reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead,accounting_recorded:!0}))}function hL(e,t,r,n,s){try{let o=Buffer.concat([r.stdout,r.stderr]),i=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),a=yo(n,s);Kt(e,{collection:"rsp_accounting_events_v1",event_type:"invocation",ts:new Date().toISOString(),command:gt(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a}),Kt(e,{collection:"rsp_telemetry_invocations_v1",ts:new Date().toISOString(),command:gt(t),wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a,accounting_recorded:!0})}catch{}}var cr=class{constructor(t){this.openStore=t}store;metrics;async mint(...t){try{let r=await this.open(),n=await r.mint(...t);return this.metrics=r.lastResponseMetrics?.(),n}catch{return`recovery unavailable (resident cold) \u2014 re-run: ${t[1].command}`}}async close(){if(!this.store)return;let t;try{t=await this.store}catch{return}await t.close()}open(){return this.store??=this.openStore(),this.store}lastResponseMetrics(){return this.metrics}},xd=class{async mint(t,r){return`recovery unavailable (cold store) \u2014 re-run: ${r.command}`}lastResponseMetrics(){}async close(){}};async function W_(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw n instanceof Error?n:new Error("cold store");let s=new xd,o=process.hrtime.bigint();try{if(e.command==="git"){let{isFastGitStatus:i,runFastGitStatus:a}=await Promise.resolve().then(()=>(Zl(),t_));if(i(e.positional))return await Te(e,await a(),o,s,r,t);let{runGitWrapper:c}=await Promise.resolve().then(()=>(Ar(),Fl)),u=await c(e.positional,{level:e.level,store:s,heavyGitByteThreshold:t.heavyGitByteThreshold});return await Te(e,u,o,s,r,t)}if(e.command==="gh"){let{runGhWrapper:i}=await Promise.resolve().then(()=>(bd(),yd)),a=await i(e.positional,{level:e.level,store:s});return await Te(e,a,o,s,r,t)}if(e.command==="vitest"||e.command==="cargo"){let{runTestWrapper:i}=await Promise.resolve().then(()=>(Rd(),Ed)),a=await i(e.positional,{level:e.level,store:s});return await Te(e,a,o,s,r,t)}if(e.command==="cat"){let{runCatWrapper:i}=await Promise.resolve().then(()=>(vd(),Td)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Te(e,a,o,s,r,t)}if(e.command==="exec"){let{runExecWrapper:i}=await Promise.resolve().then(()=>(qs(),Hs)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Te(e,a,o,s)}}catch(i){return Jr(i)?(process.stdout.write(i.render()),2):await Vs("wrapper failed",e.positional,i,r)}finally{await s.close()}return await Vs("wrapper failed",e.positional,n,r)}async function jE(e=process.argv.slice(2)){let t=lo("rsp"),r=Yp(e);if(r.kind==="version")return process.stdout.write(r.json?`${JSON.stringify(t)}
|
|
229
|
+
`:`${nm(t)}
|
|
230
|
+
`),0;if(r.kind==="help")return process.stdout.write(r_(e)),0;let n;try{n=Qp(e)}catch(h){if(Zp(h))return process.stdout.write(Xp(h)),2;throw h}if(n.command==="hook"&&n.positional[1]==="claude-pre-exec"){let{runClaudePreExecHook:h}=await Promise.resolve().then(()=>(Ks(),Xi));return await h()}if(n.command==="hook"&&n.positional[1]==="codex-pre-exec"){let{runCodexPreExecHook:h}=await Promise.resolve().then(()=>(Ks(),Xi));return await h()}if(n.command==="hook"&&n.positional[1]==="claude-post-exec"){let{runClaudePostExecHook:h}=await Promise.resolve().then(()=>(Bs(),Ul));return await h()}if(n.command==="hook"&&n.positional[1]==="codex-post-exec"){let{runCodexPostExecHook:h}=await Promise.resolve().then(()=>(Bs(),Ul));return await h()}if(n.command==="setup"){let{provisionRspRepoStore:h}=await Promise.resolve().then(()=>(Z_(),X_)),_=await h(process.cwd());return process.stdout.write(Pc(_)),0}if(n.command==="mcp"){let{runRspMcpServer:h}=await Promise.resolve().then(()=>(iE(),oE));return await h(),0}if(n.command==="wait"){let{runWait:h}=await Promise.resolve().then(()=>(Ll(),Il));return await h(n.positional)}if(n.command==="shell-init"){let h=n.positional[1];if(h!=="fish"&&h!=="bash"&&h!=="zsh")return process.stdout.write(V({command:n.positional.join(" ")||"shell-init",category:"usage",error:"usage rsp shell-init fish|bash|zsh",help:"rsp shell-init bash"})),2;let{renderShellInit:_}=await Promise.resolve().then(()=>(uE(),cE));return process.stdout.write(_(h)),0}let{resolveRspConfig:s}=await Promise.resolve().then(()=>(Ze(),ag)),o=s(process.cwd(),process.env,n.storeUri);if(n.command==="doctor"){let{resolveResidentPaths:h}=await Promise.resolve().then(()=>(dt(),br)),_=h(process.cwd()),T=await Yw(o,_,uo(n.positional,1));return process.stdout.write(Qw(T)),T.exitCode}let i=Iw(n.command);if(!o.enabled)return i?await Pw(n.positional):(process.stdout.write(`${Vi()}
|
|
231
|
+
`),0);if(n.command==="git"&&Zi(n.positional)){let h=process.hrtime.bigint();return await Te(n,await ea(),h,void 0,await Xl(process.cwd()),o)}let{resolveResidentPaths:a,ensureResidentServer:c}=await Promise.resolve().then(()=>(dt(),br)),u=a(process.cwd());if(i&&n.command){let{overheadFamilyDisabled:h}=await Promise.resolve().then(()=>(oe(),wo)),_=h(u.rootDir,n.command);if(_)return await Aw(n.positional,u.rootDir,_)}if(i&&Ow(o.measurementHoldoutShare))return await xw(n,u.rootDir,o.measurementHoldoutShare);if(n.command==="server"){let{runResidentServer:h}=await Promise.resolve().then(()=>(BE(),ME)),_=a(process.cwd()),T=Wa(n.positional),v=s(process.cwd(),process.env,n.storeUri);return v.enabled?(await h({socketPath:T.socket??_.socketPath,pidPath:T["pid-file"]??_.pidPath,rootDir:_.rootDir,storeUri:v.storeUri,ttlDays:T["ttl-days"]??v.ttlDays,ephemeralTtlHours:T["ephemeral-ttl-hours"]??v.ephemeralTtlHours,byteBudget:T["byte-budget"]??v.byteBudget,telemetryTtlDays:T["telemetry-ttl-days"]??v.telemetryTtlDays,telemetryByteBudget:T["telemetry-byte-budget"]??v.telemetryByteBudget,telemetryDrainIntervalMs:T["telemetry-drain-interval-ms"]??v.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:T["telemetry-drain-timeout-ms"]??v.telemetryDrainTimeoutMs,idleMs:T["idle-ms"]??v.idleMs,residentVersion:T["resident-version"]??t.version,registryPath:T.registry??_.registryPath}),0):(process.stdout.write(`${Vi()}
|
|
232
|
+
`),0)}if(n.command==="warm-resident"){let h=a(process.cwd()),_=Wa(n.positional),T=s(process.cwd(),process.env,n.storeUri);if(!T.enabled)return 0;let{warmResidentServer:v}=await Promise.resolve().then(()=>(dt(),br));return await v({...h,socketPath:_.socket??h.socketPath,wakeLockPath:_["wake-lock"]??h.wakeLockPath},{storeUri:T.storeUri,ttlDays:_["ttl-days"]??T.ttlDays,ephemeralTtlHours:_["ephemeral-ttl-hours"]??T.ephemeralTtlHours,byteBudget:_["byte-budget"]??T.byteBudget,telemetryTtlDays:_["telemetry-ttl-days"]??T.telemetryTtlDays,telemetryByteBudget:_["telemetry-byte-budget"]??T.telemetryByteBudget,telemetryDrainIntervalMs:_["telemetry-drain-interval-ms"]??T.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:_["telemetry-drain-timeout-ms"]??T.telemetryDrainTimeoutMs,idleMs:_["idle-ms"]??T.idleMs,clientVersion:t.version}),0}if(n.command==="proxy"){let{runProxy:h}=await Promise.resolve().then(()=>(Di(),Li));return await h(n.positional,{telemetryRoot:u.rootDir,level:n.level})}if(n.command==="status"||n.command==="sweep"){let{residentRegistryStatus:h,sweepResidentRegistry:_}=await Promise.resolve().then(()=>(dt(),br)),T=n.command==="sweep"?await _(u):await h(u);if(n.command==="sweep"){let{sweepGhEtagCache:B}=await Promise.resolve().then(()=>(us(),tg));await B(u.rootDir,{maxBytes:o.ghEtagCacheMaxBytes})}let{overheadHealth:v}=await Promise.resolve().then(()=>(oe(),wo)),G=v(u.rootDir,o.overhead);return process.stdout.write(mf(T,G)),0}if(n.command==="gh-api-json"){let{readGhConditionalJson:h}=await Promise.resolve().then(()=>(hi(),Eh)),_=rm(n.positional);if(!_)return process.stdout.write(V({command:n.positional.join(" "),category:"usage",error:"usage rsp gh-api-json <path> [-f name=value ...]",help:"rsp gh-api-json repos/{owner}/{repo}",validFlags:["-f","-F"]})),2;let T=await h({path:_.path,params:_.params,cwd:process.cwd(),telemetryRoot:u.rootDir,command:`rsp ${n.positional.join(" ")}`,overheadCeiling:o.overhead});return process.stdout.write(T.stdout),T.stderr&&process.stderr.write(`${T.stderr}
|
|
233
|
+
`),T.status}if(n.command==="dashboard"){let h=await Fb(o);return process.stdout.write(Mb(h)),0}if(!n.storeUri&&o.storeUri.startsWith("file://")&&!u$(l$(o.storeUri)))return i?await W_(n,o,u.rootDir):(process.stdout.write(V({command:gt(n)||"rsp",category:"real-error",error:"rsp repo store is not provisioned",help:"/red-setup"})),1);let{residentConfigFor:l,residentElisionStore:p,reportResidentEntryDiagnostic:d}=await Promise.resolve().then(()=>(wr(),es)),g=(h=!0)=>Promise.resolve(p(process.cwd(),o,{ensureResident:h,paths:u})),f=()=>c(u,l(o,t.version)).catch(h=>void d(h)),k=()=>g(),E;try{if(n.command==="stats"){let{stats:h,telemetry:_}=await Qr(o,uo(n.positional,30)),{overheadHealth:T}=await Promise.resolve().then(()=>(oe(),wo));return process.stdout.write(Oc(h,_,tm(n.positional),T(u.rootDir,o.overhead))),0}if(n.command==="gains"){let h=await k();E=()=>h.close();let _;try{_=await h.telemetryGains(uo(n.positional,28))}catch(T){return process.stdout.write(V({command:`rsp ${n.positional.join(" ")}`.trim(),category:"real-error",error:T instanceof Error?T.message:"rsp gains unavailable",help:"rsp gains requires the shared RedDB store"})),1}return process.stdout.write(hf(_)),0}if(n.command==="git"){if(Lr(f()),Zi(n.positional)){let G=process.hrtime.bigint();return await Te(n,await ea(),G,void 0,u.rootDir,o)}let{runGitWrapper:h}=await Promise.resolve().then(()=>(Ar(),Fl)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),v=await h(n.positional,{level:n.level,store:_,heavyGitByteThreshold:o.heavyGitByteThreshold});return await Te(n,v,T,_,u.rootDir,o)}if(n.command==="gh"){Lr(f());let{runGhWrapper:h}=await Promise.resolve().then(()=>(bd(),yd)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),v=await h(n.positional,{level:n.level,store:_});return await Te(n,v,T,_,u.rootDir,o)}if(n.command==="vitest"||n.command==="cargo"){Lr(f());let{runTestWrapper:h}=await Promise.resolve().then(()=>(Rd(),Ed)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),v=await h(n.positional,{level:n.level,store:_});return await Te(n,v,T,_,u.rootDir,o)}if(n.command==="cat"){Lr(f());let{runCatWrapper:h}=await Promise.resolve().then(()=>(vd(),Td)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),v=await h(n.positional,{level:n.level,store:_,heavyByteThreshold:o.heavyGitByteThreshold});return await Te(n,v,T,_,u.rootDir,o)}if(n.command==="exec"){Lr(f());let{runExecWrapper:h}=await Promise.resolve().then(()=>(qs(),Hs)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),v=await h(n.positional,{level:n.level,store:_,heavyByteThreshold:o.heavyGitByteThreshold});return await Te(n,v,T,_,u.rootDir,o)}if(n.command==="show"&&n.handle){let h=await k();E=()=>h.close();let _=await h.get(n.handle);if(_&&"original"in _&&_.original)return process.stdout.write(_.original),await ta(u.rootDir,n.handle,!0,_.original.length),0;if(_?.status==="expired"){let v=V({command:`rsp show ${n.handle}`,category:"real-error",error:`expired ${_.expired_at}`,help:_.command});return process.stdout.write(v),await ta(u.rootDir,n.handle,!1,v.length),1}let T=V({command:`rsp show ${n.handle}`,category:"real-error",error:"expired unknown",help:n.handle});return process.stdout.write(T),await ta(u.rootDir,n.handle,!1,T.length),1}return process.stdout.write(V({command:n.positional.join(" ")||"rsp",category:"usage",error:"usage rsp show el:<id>",help:"rsp show el:<id>"})),2}catch(h){if(Jr(h))return process.stdout.write(h.render()),2;if(i)return await Vs("wrapper failed",n.positional,h,u.rootDir);throw h}finally{await E?.()}}ut();import.meta.url===`file://${process.argv[1]}`&&jE().then(e=>process.exit(e),e=>{Jr(e)&&(process.stdout.write(e.render()),process.exit(2)),process.stdout.write(V({command:"rsp",category:"real-error",error:e instanceof Error?e.message:String(e),help:"rsp --help"})),process.exit(1)});export{jE as main,Pc as renderSetupResult,Oc as renderStats};
|
|
234
|
+
/*! Bundled license information:
|
|
235
|
+
|
|
236
|
+
@octokit/request-error/dist-src/index.js:
|
|
237
|
+
(* v8 ignore else -- @preserve -- Bug with vitest coverage where it sees an else branch that doesn't exist *)
|
|
238
|
+
|
|
239
|
+
content-type/dist/index.js:
|
|
240
|
+
(*!
|
|
241
|
+
* content-type
|
|
242
|
+
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
243
|
+
* MIT Licensed
|
|
244
|
+
*)
|
|
245
|
+
|
|
246
|
+
@octokit/request/dist-bundle/index.js:
|
|
247
|
+
(* v8 ignore next -- @preserve *)
|
|
248
|
+
(* v8 ignore else -- @preserve *)
|
|
249
|
+
|
|
250
|
+
@octokit/graphql/dist-bundle/index.js:
|
|
251
|
+
(* v8 ignore if -- @preserve *)
|
|
252
|
+
*/
|