@reddb-io/red-skills 3.5.1 → 3.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brain.bundle.min.mjs +1 -1
- package/dist/castle-mcp.bundle.min.mjs +407 -407
- package/dist/code-nav.bundle.min.mjs +1 -1
- package/dist/dev.bundle.min.mjs +613 -613
- package/dist/memory.bundle.min.mjs +1 -1
- package/dist/redskilled.bundle.min.mjs +88 -87
- package/dist/rsp.bundle.min.mjs +161 -150
- package/package.json +1 -1
package/dist/rsp.bundle.min.mjs
CHANGED
|
@@ -1,91 +1,74 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
3
|
-
var
|
|
4
|
-
`),
|
|
5
|
-
`)),e.positional&&e.positional.length>0){t.push(
|
|
6
|
-
`));for(let n of e.positional)if(n.description){let s=n.variadic?`${n.name}...`:n.name;t.push(
|
|
7
|
-
`),
|
|
8
|
-
`))}t.push(
|
|
9
|
-
`))}if(e.options&&Object.keys(e.options).length>0){t.push(
|
|
10
|
-
`));let n=
|
|
11
|
-
`))}return r}function
|
|
12
|
-
`);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function
|
|
13
|
-
`;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw
|
|
3
|
+
var mR=Object.create;var ka=Object.defineProperty;var fR=Object.getOwnPropertyDescriptor;var gR=Object.getOwnPropertyNames;var hR=Object.getPrototypeOf,yR=Object.prototype.hasOwnProperty;var h=(e,t)=>()=>(e&&(t=e(e=0)),t);var cp=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),K=(e,t)=>{for(var r in t)ka(e,r,{get:t[r],enumerable:!0})},bR=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of gR(t))!yR.call(e,s)&&s!==r&&ka(e,s,{get:()=>t[s],enumerable:!(n=fR(t,s))||n.enumerable});return e};var Sa=(e,t,r)=>(r=e!=null?mR(hR(e)):{},bR(t||!e||!e.__esModule?ka(r,"default",{value:e,enumerable:!0}):r,e));function _R(e,t){return typeof t=="string"?{separator:e,to:t,typed:!1,prefix:!1}:{separator:e,to:t.to,typed:t.typed??!1,prefix:t.prefix??!1}}function ER(e=up){return Object.entries(e).map(([t,r])=>_R(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function RR(e){return/^-\d+(\.\d+)?$/.test(e)}function Mr(e){return!(!e||e.startsWith("-")&&!RR(e))}function to(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e}function lp(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(e.startsWith("[")&&e.endsWith("]")||e.startsWith("{")&&e.endsWith("}"))try{return JSON.parse(e)}catch{}let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e.includes(",")?e.split(",").map(r=>lp(r.trim())):e}function lr(e,t){switch(t){case"boolean":return kR(e);case"number":return SR(e);case"array":return e.split(",").map(r=>to(r.trim()));case"string":default:return e}}function kR(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function SR(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let t=Number(e);if(Number.isNaN(t))throw new TypeError(`Cannot convert "${e}" to number`);return t}function Ut(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function TR(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function W(e,t){return{type:e,value:t}}function vR(e){let t=[],r=CR(e);if(t.push(W("section-header","Usage:"),W("text"," "),W("usage-text",r),W("newline",`
|
|
4
|
+
`),W("newline",`
|
|
5
|
+
`)),e.positional&&e.positional.length>0){t.push(W("section-header","Arguments:"),W("newline",`
|
|
6
|
+
`));for(let n of e.positional)if(n.description){let s=n.variadic?`${n.name}...`:n.name;t.push(W("indent"," "),W("positional-name",`<${s}>`)),n.required||t.push(W("positional-optional"," (optional)")),t.push(W("newline",`
|
|
7
|
+
`),W("indent"," "),W("option-description",n.description),W("newline",`
|
|
8
|
+
`))}t.push(W("newline",`
|
|
9
|
+
`))}if(e.options&&Object.keys(e.options).length>0){t.push(W("section-header","Options:"),W("newline",`
|
|
10
|
+
`));let n=OR(e.options);t.push(...n)}return t}function xR(e,t){let r=vR(e);return TR(r,t)}function CR(e){let t=["[options]"];if(e.positional)for(let r of e.positional)r.variadic?t.push(r.required?`<${r.name}...>`:`[${r.name}...]`):t.push(r.required?`<${r.name}>`:`[${r.name}]`);return t.join(" ")}function OR(e,t=!1){let r=[],n=[],s=t?"global-option-flag":"option-flag",o=t?"global-option-type":"option-type",i=t?"global-option-default":"option-default",a=t?"global-option-description":"option-description";for(let[u,l]of Object.entries(e)){if(l.hidden)continue;let d=[],p=k=>{d.includes(k)||d.push(k)};l.short&&p(`-${l.short}`),p(`--${u}`);for(let k of l.aliases??[])k.length===1?p(`-${k}`):p(`--${k}`);let g=d.join(", "),f=l.type&&l.type!=="boolean"?`<${l.type}>`:void 0;n.push({flags:g,type:f,desc:l.description??"",default:l.default!==void 0?String(l.default):void 0})}let c=Math.max(...n.map(u=>u.flags.length+(u.type?u.type.length+1:0)),20);for(let u of n){let l=u.flags.length+(u.type?u.type.length+1:0),d=" ".repeat(c-l+2);r.push(W("indent"," ")),r.push(W(s,u.flags)),u.type&&(r.push(W("text"," ")),r.push(W(o,u.type))),r.push(W("text",d)),r.push(W(a,u.desc)),u.default!==void 0&&(r.push(W("text"," ")),r.push(W(i,`(default: ${u.default})`))),r.push(W("newline",`
|
|
11
|
+
`))}return r}function dp(e){let t=$R(e.options??{},e.autoShort??!1),r=ER(e.separators??up);return{schema:e,parse(n){return AR(n,e,t,r)},help(){return xR(e,e.formatter)}}}function AR(e,t,r,n){let s={positional:{},options:{},errors:[],rest:[]},o=new Set(n.map(l=>l.to));for(let l of o)s[l]={};let i=0,a=t.positional??[],c=0,u=!1;for(;c<e.length;){let l=e[c];if(t.stopEarly&&i>0){s.rest=e.slice(c);break}if(l==="--"&&!u){u=!0,c++;continue}if(u){if(i<a.length){let p=a[i];if(p.variadic){let g=[];for(;c<e.length;){let f=e[c];g.push(p.type?lr(f,p.type):f),c++}s.positional[p.name]=g,i++}else{let g=p.type?lr(l,p.type):l;s.positional[p.name]=g,i++,c++}}else t.allowUnknown!==!1&&(s.rest=s.rest??[],s.rest.push(l)),c++;continue}if(l.startsWith("--")){c=GR(l,c,e,s,r,t);continue}if(l.startsWith("-")&&l.length>1&&!jR(l)){c=DR(l,c,e,s,r,t);continue}let d=PR(l,n);if(d){let{key:p,value:g,config:f}=d,k=s,E=k[f.to]??(k[f.to]={});E[p]=f.typed?lp(g):Ut(g),c++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;c<e.length&&!e[c].startsWith("-");){let k=e[c];f.push(p.type?lr(k,p.type):k),c++}s.positional[p.name]=f,i++;continue}let g=p.type?lr(l,p.type):l;s.positional[p.name]=g,i++}else t.allowUnknown!==!1?s.rest.push(l):s.errors.push(`Unexpected positional argument: ${l}`);c++}return FR(s,t,r),MR(s,t,a),BR(s,t,r),s}function PR(e,t){if(wR.test(e))return null;for(let r of t){if(r.prefix&&e.startsWith(r.separator)){let s=e.slice(r.separator.length),o=s.indexOf(":");if(o>0){let i=s.slice(0,o),a=s.slice(o+1);if(IR(i))return{key:i,value:a,config:r}}continue}let n=e.indexOf(r.separator);if(n>0){let s=e.slice(0,n),o=e.slice(n+r.separator.length);if(LR(s,o,r))return{key:s,value:o,config:r}}}return null}function IR(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function LR(e,t,r){return e?r.separator===":"?e.includes("/")||e.includes(".")||/^\d+$/.test(t)?!1:/^[A-Z][a-zA-Z0-9-]*$/.test(e):!((r.separator==="="||r.separator===":=")&&e.includes("/")):!1}function GR(e,t,r,n,s,o){let i=e.slice(2);if(i.startsWith("no-")){let c=i.slice(3),u=s.get(c);if(u?.negatable!==!1&&u?.type==="boolean")return n.options[u.name]=!1,t+1}if(i.includes("=")){let c=i.indexOf("="),u=i.slice(0,c),l=i.slice(c+1);return ro(u,l,t+1,n,s,o)}let a=s.get(i);if(a){if(a.type!=="boolean"){let c=r[t+1];return Mr(c)?ro(a.name,c,t+2,n,s,o):(n.errors.push(`Option --${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}return o.strict?n.errors.push(`Unknown option: --${i}`):o.allowUnknown!==!1&&(n.options[i]=!0),t+1}function DR(e,t,r,n,s,o){let i=e.slice(1);if(i.includes("=")){let a=i.indexOf("="),c=i.slice(0,a),u=i.slice(a+1),l=Ta(c,s);return l?ro(l.name,u,t+1,n,s,o):(o.strict?n.errors.push(`Unknown option: -${c}`):o.allowUnknown!==!1&&(n.options[c]=to(Ut(u))),t+1)}if(i.length===1){let a=Ta(i,s);if(a){if(a.type!=="boolean"){let c=r[t+1];return Mr(c)?ro(a.name,c,t+2,n,s,o):(n.errors.push(`Option -${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}if(o.strict)n.errors.push(`Unknown option: -${i}`);else if(o.allowUnknown!==!1){let c=r[t+1];if(Mr(c))return n.options[i]=to(Ut(c)),t+2;n.options[i]=!0}return t+1}for(let a of i){let c=Ta(a,s);c?c.type==="boolean"?n.options[c.name]=!0:n.errors.push(`Option -${a} requires a value`):o.strict?n.errors.push(`Unknown option: -${a}`):o.allowUnknown!==!1&&(n.options[a]=!0)}return t+1}function ro(e,t,r,n,s,o){let i=s.get(e);if(i){if(i.choices){let c=i.type?lr(Ut(t),i.type):Ut(t);if(!i.choices.includes(c))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?lr(Ut(t),i.type):Ut(t);if(i.type==="array"){let c=n.options[e];Array.isArray(c)?c.push(...a):n.options[e]=a}else n.options[e]=a}else o.strict?n.errors.push(`Unknown option: --${e}`):o.allowUnknown!==!1&&(n.options[e]=to(Ut(t)));return r}function $R(e,t=!1){let r=new Map,n=Object.entries(e).sort(([o],[i])=>o.localeCompare(i)),s=new Set;for(let[,o]of n)o.short&&s.add(o.short);for(let[o,i]of n){let a=i.short??"";t&&!a&&(a=NR(o,s),a&&s.add(a));let c={name:o,short:a,aliases:i.aliases??[],type:i.type??"string",description:i.description??"",required:i.required??!1,hidden:i.hidden??!1,negatable:i.negatable??!0,default:i.default,choices:i.choices,env:i.env,validate:i.validate};r.set(o,c);for(let u of c.aliases)r.set(u,c)}return r}function NR(e,t){for(let r of e){if(!/[a-zA-Z]/.test(r))continue;let n=r.toLowerCase();if(!t.has(n))return n;let s=r.toUpperCase();if(!t.has(s))return s}return""}function Ta(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function FR(e,t,r){for(let n of r.values())if(e.options[n.name]===void 0)if(n.env&&process.env[n.env]!==void 0){let s=process.env[n.env];e.options[n.name]=n.type?lr(s,n.type):s}else n.default!==void 0&&(e.options[n.name]=n.default);for(let n of t.positional??[])e.positional[n.name]===void 0&&n.default!==void 0&&(e.positional[n.name]=n.default)}function MR(e,t,r){if(t.options)for(let[n,s]of Object.entries(t.options))s.required&&e.options[n]===void 0&&e.errors.push(`Missing required option: --${n}`);for(let n of r)n.required&&e.positional[n.name]===void 0&&e.errors.push(`Missing required argument: <${n.name}>`)}function BR(e,t,r){for(let n of r.values()){let s=e.options[n.name];if(n.validate&&s!==void 0){let o=n.validate(s);o!==!0&&e.errors.push(o)}}for(let n of t.positional??[]){let s=e.positional[n.name];if(n.validate&&s!==void 0){let o=n.validate(s);o!==!0&&e.errors.push(o)}}}function jR(e){return/^-\d+(\.\d+)?$/.test(e)}var up,wR,pp=h(()=>{up={"=":"data",":=":{to:"data",typed:!0},":":"meta"},wR=/^[a-z][a-z0-9+.-]*:\/\//i});function UR(e){let t={};for(let[r,n]of Object.entries(e))t[r]={type:n.kind==="boolean"?"boolean":"string",...r.length===1?{short:r}:{},...n.aliases===void 0?{}:{aliases:n.aliases}};return t}function HR(e,t){let r=new Map;for(let[s,o]of Object.entries(t))if(!(o.kind!=="value"||o.type!=="array")){r.set(s,s);for(let i of o.aliases??[])r.set(i,s)}let n=new Map;for(let s=0;s<e.length;s+=1){let o=e[s];if(o==="--")break;let i=o.match(/^--([^=]+)(?:=(.*))?$/)??o.match(/^-([^=])(?:=(.*))?$/);if(i===null)continue;let a=r.get(i[1]);if(a===void 0)continue;let c=i[2];if(c===void 0&&Mr(e[s+1])&&(c=e[s+1],s+=1),c===void 0)continue;let u=n.get(a)??[];u.push(c),n.set(a,u)}return n}function Dn(e,t,r={}){let s=dp({options:UR(t),separators:{},allowUnknown:!0}).parse([...e]),o={},i=HR(e,t),a=s.errors.find(c=>/^Option --?\S+ requires a value$/.test(c));if(a!==void 0)throw new Error(a.replace(/^Option /,""));if(s.errors.length>0)throw new Error(s.errors[0]);if(r.unknownFlags==="error"){let c=new Set(Object.keys(t));for(let u of Object.keys(s.options))if(!c.has(u))throw new va(u.length===1?`-${u}`:`--${u}`,Object.keys(t).map(l=>l.length===1?`-${l}`:`--${l}`))}for(let[c,u]of Object.entries(t)){let l=s.options[c];l!==void 0&&(u.kind==="boolean"?o[c]=l:u.type==="array"?o[c]=(i.get(c)??[]).map(d=>u.coerce(d)):o[c]=u.coerce(String(l)))}return{values:o,positionals:s.rest}}function JR(e){let t=new Map;for(let[r,n]of Object.entries(e)){t.set(r,r);for(let s of n.aliases??[])t.set(s,r)}return t}function dr(e,t,r={}){let n=JR(t),s=r.stopAtSeparator??!0,o={},i=[];for(let a=0;a<e.length;a+=1){let c=e[a];if(c==="--"&&s){i.push(...e.slice(a));break}let u=qR.exec(c)??WR.exec(c),l=u===null?void 0:n.get(u[1]),d=l===void 0?void 0:t[l];if(l===void 0||d===void 0){i.push(c);continue}if(d.kind==="boolean"){o[l]=!0;continue}let p=u[2];if(p===void 0&&Mr(e[a+1])&&(p=e[a+1],a+=1),p===void 0)throw new Error(`${c} requires a value`);if(d.type==="array"){let g=o[l]??[];g.push(d.coerce(p)),o[l]=g}else o[l]=d.coerce(p)}return{values:o,rest:i}}function xa(e,t){let[r,...n]=e;if(r!==void 0){for(let[o,i]of Object.entries(t.commands))if(r===o||(i.aliases??[]).includes(r))return{command:o,args:n};if(t.errorOnUnknownCommand&&!r.startsWith("-"))throw new Gn(r,Object.keys(t.commands))}let s=t.keepArgvOnDefault??!0;return{command:t.default,args:s?[...e]:n}}var va,qR,WR,Gn,Ca=h(()=>{pp();va=class extends Error{flag;known;constructor(t,r){super(`unknown flag '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownFlagError",this.flag=t,this.known=r}};qR=/^--([^=]+)(?:=([\s\S]*))?$/,WR=/^-([^-=])(?:=([\s\S]*))?$/;Gn=class extends Error{token;known;constructor(t,r){super(`unknown command '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownCommandError",this.token=t,this.known=r}}});function fp(e){return VR.test(e)}var VR,mp,gp=h(()=>{VR=/rate limit exceeded|secondary rate limit|abuse detection mechanism|API rate limit|API rate limited|RATE_LIMITED|too many requests|\b429\b/i,mp="wait for the GitHub rate limit window to reset, then retry: gh api rate_limit"});var hp=h(()=>{});function v(e,t){return new Br(e,t)}function j(e,t){return new pr(e,t)}function jr(e){return e instanceof pr?e:e instanceof Br?new pr(e.line,e.reason):new pr(0,String(e&&e.message?e.message:e))}var Br,pr,Rt=h(()=>{Br=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},pr=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}}});var yp,mr,bp,Ur=h(()=>{yp=["type","kind","event"],mr="|",bp=new Set(["order","discriminator","rows","common"])});function no(e){let t=e.split(`
|
|
12
|
+
`);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function st(e){return v(e,"invalid quoted string")}function Fe(e,t){if(e==="")return"";if(e.startsWith('"'))return Ep(e,t);if(e.includes('"'))throw st(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:KR(e)?Number(e):e}function Je(e,t){let r=e.trim();if(r.startsWith('"'))return[Ep(r,t),!0];if(r.includes('"')||/\s/.test(r))throw v(t,"expected non-empty field name");return[r,!1]}function Ep(e,t){if(e.charCodeAt(0)!==34)throw st(t);let r="",n=1;for(;n<e.length;){wp.lastIndex=n;let s=wp.exec(e);if(s===null)break;if(s[0]==='"'){if(e.slice(s.index+1).trim()==="")return r+e.slice(n,s.index);throw st(t)}if(s[0]!=="\\")throw st(t);r+=e.slice(n,s.index);let o=e[s.index+1];switch(n=s.index+2,o){case'"':r+='"';break;case"\\":r+="\\";break;case"n":r+=`
|
|
13
|
+
`;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw st(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw st(t);r+=String.fromCharCode(a),n+=4;break}default:throw st(t)}}throw st(t)}function Rp(e,t,r){for(;;){let n=e.indexOf('"',t),s=e.indexOf("\\",t);if(s!==-1&&(n===-1||s<n)){if(s===e.length-1)throw st(r);t=s+2;continue}if(n===-1)throw st(r);return n+1}}function Ve(e,t,r){if(e==="")return[];let n=[],s=0,o=0;for(;o<e.length;){let i=e.indexOf('"',o),a=e.indexOf(t,o);if(a!==-1&&(i===-1||a<i))n.push(e.slice(s,a).trim()),s=a+1,o=a+1;else if(i!==-1)o=Rp(e,i+1,r);else break}return n.push(e.slice(s).trim()),n}function _e(e,t,r){let n=0;for(;n<e.length;){let s=e.indexOf('"',n),o=e.indexOf(t,n);if(o!==-1&&(s===-1||o<s))return o;if(s===-1)return-1;n=Rp(e,s+1,r)}return-1}function KR(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function zR(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function YR(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw v(0,"number is not representable in TOON");return String(e)}function ot(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function Ee(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return YR(e);if(typeof e=="string")return XR(e,t);throw v(0,"not a primitive")}function QR(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ie(e){return QR(e)?e:so(e)}function XR(e,t){return Oa(e,t)?so(e):e}function Oa(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||zR(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}function so(e){let t='"',r=0;_p.lastIndex=0;let n;for(;(n=_p.exec(e))!==null;){let s=e.charCodeAt(n.index),o;s===34?o='\\"':s===92?o="\\\\":s===10?o="\\n":s===13?o="\\r":s===9?o="\\t":o=`\\u${s.toString(16).padStart(4,"0")}`,t+=e.slice(r,n.index)+o,r=n.index+1}return`${t}${e.slice(r)}"`}function Ke(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var Q,wp,_p,fr=h(()=>{Rt();Q=",";wp=/["\\\u0000-\u0008\u000a-\u001f]/g;_p=/["\\\u0000-\u001f]/g});function Z(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var $n=h(()=>{});function kp(e={}){let t=e.maxDepth??1e3,r=t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t));return{indent:Math.max(1,e.indent??2),strict:e.strict??!0,expandPaths:e.expandPaths==="safe"||e.expandPaths===!0,cyclicDiscriminatedArrays:e.cyclicDiscriminatedArrays!==!1,maxDepth:r}}function Sp(e,t){let r=[],n=!1;return no(e).forEach((s,o)=>{let i=o+1;if(s.trim()===""){n=!0;return}let a=s.length-s.replace(/^ +/,"").length;if(s[a]===" ")throw v(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw v(i,"invalid indentation");let c=Math.floor(a/t.indent);it(c,i,t),r.push({number:i,depth:c,content:s.slice(a),blankBefore:n}),n=!1}),r}function it(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw v(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function Mn(e,t,r){if(r.maxDepth===0)return;let n=0,s=!1,o=!1;for(let i of e){if(o){o=!1;continue}if(s&&i==="\\"){o=!0;continue}if(i==='"'){s=!s;continue}s||(i==="{"?(n+=1,it(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}var Aa=h(()=>{Rt();fr();Ur()});function xp(e){if(!Z(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let s=ZR(n,1);if(s===void 0)return e;Ke(t,r,s)}return t}function ZR(e,t){if(!Z(e)||!ek(e))return;let{order:r,discriminator:n,rows:s}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(s)||s<0)throw fe(t);let o=tk(r,s,t),i=e.common,a=i===void 0?Array.from({length:s},()=>({})):i;if(!Array.isArray(a)||a.length!==s||!a.every(Z))throw Cp(t);let c=new Map;for(let[d,p]of Object.entries(e))if(!bp.has(d)){if(!Array.isArray(p)||!p.every(Z))throw fe(t);c.set(d,p)}if(c.size===0)throw fe(t);let u=new Map,l=o.map((d,p)=>{let g=c.get(d);if(g===void 0)throw Pa(t);let f=u.get(d)??0,k=g[f];if(k===void 0)throw Pa(t);return u.set(d,f+1),rk(n,d,a[p],k,t)});for(let[d,p]of c)if((u.get(d)??0)!==p.length)throw Pa(t);return l}function ek(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function tk(e,t,r){if(!e.startsWith("cycle("))throw fe(r);let n=e.slice(6),s=n.indexOf(")*");if(s===-1)throw fe(r);let o=n.slice(0,s),i=n.slice(s+2);if(o===""||i.includes("+tail("))throw fe(r);let a=o.split(",").map(l=>ik(l,r));if(a.some(l=>l===""))throw fe(r);let c=ok(i,r),u=a.length*c;if(!Number.isSafeInteger(u))throw fe(r);if(u!==t)throw Cp(r);return Array.from({length:u},(l,d)=>a[d%a.length])}function rk(e,t,r,n,s){let o={};Ke(o,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw fe(s);Ke(o,i,a)}for(let[i,a]of Object.entries(nk(n,s))){if(i===e||Object.prototype.hasOwnProperty.call(o,i))throw fe(s);Ke(o,i,a)}return o}function nk(e,t){let r={};for(let[n,s]of Object.entries(e))sk(r,n.split("."),s,t);return oo(r,t)}function sk(e,t,r,n){if(t.some(o=>o===""))throw fe(n);let s=e;for(let o=0;o<t.length;o+=1){let i=t[o];if(o===t.length-1){s[i]=r;return}if(s[i]??={},s=s[i],!Z(s))throw fe(n)}}function oo(e,t){return Array.isArray(e)?e.map(r=>oo(r,t)):Z(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw fe(t);return oo(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,oo(n,t)])):e}function ok(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw fe(t);let r=Number(e);if(!Number.isSafeInteger(r))throw fe(t);return r}function ik(e,t){try{return decodeURIComponent(e)}catch{throw fe(t)}}function Tp(e){return encodeURIComponent(e)}function fe(e){return v(e,"invalid cyclic array wire")}function Cp(e){return v(e,"cyclic array length mismatch")}function Pa(e){return v(e,"cyclic array group length mismatch")}function Op(e){if(!Z(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[s,o]of t){let i=ak(o);if(i===void 0)return;r.push([s,i])}let n=[];for(let[s,o]of r)dk(n,s,o);return n.join("")}function ak(e){if(!Array.isArray(e)||e.length===0||!e.every(Z))return;let t=ck(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=uk(r);if(n===void 0)return;let s=lk(e,t),o=new Map;for(let a of e){let c=a[t];o.has(c)||o.set(c,[]);let u={};for(let[l,d]of Object.entries(a))if(l!==t&&!s.includes(l)&&!Ia(d,l,u))return;o.get(c).push(u)}let i=[];for(let a of n.cycle){let c=o.get(a),u=mk(c);if(u===void 0||u.length===0)return;i.push({fields:u,label:a,rows:c})}return{common:s,commonRows:e.map(a=>Object.fromEntries(s.map(c=>[c,a[c]]))),discriminator:t,groups:i,order:n,rows:e}}function ck(e){return yp.find(t=>e.every(r=>typeof r[t]=="string"))}function uk(e){if(!(e.length<12))for(let t=2;t<=Math.min(8,Math.floor(e.length/3));t+=1){if(e.length%t!==0)continue;let r=e.slice(0,t);if(new Set(r).size<2||!e.every((i,a)=>i===r[a%t]))continue;let n=e.length/t;if(n<3)continue;let s=e.map(Tp).join(","),o=`cycle(${r.map(Tp).join(",")})*${n}`;if(o.length<=s.length*.4)return{cycle:r,encoded:o,repeats:n}}}function lk(e,t){let r=[],n=Object.keys(e[0]),s=n.indexOf(t)+1;for(let o of n.slice(s).filter(i=>i!==t)){if(!pk(o)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,o))||!e.every(i=>ot(i[o])))break;r.push(o)}return r}function dk(e,t,r){e.push(ie(t),`:
|
|
14
14
|
`),e.push(" order: ",Ee(r.order.encoded,mr),`
|
|
15
15
|
`),e.push(" discriminator: ",Ee(r.discriminator,mr),`
|
|
16
16
|
`),e.push(" rows: ",String(r.rows.length),`
|
|
17
|
-
`),r.common.length>0&&
|
|
17
|
+
`),r.common.length>0&&vp(e,"common",r.common,r.commonRows);for(let n of r.groups)vp(e,n.label,n.fields,n.rows)}function vp(e,t,r,n){e.push(" ",ie(t),"[",String(n.length),mr,"]{",r.map(ie).join(mr),`}:
|
|
18
18
|
`);for(let s of n)e.push(" ",r.map(o=>Ee(s[o],mr)).join(mr),`
|
|
19
|
-
`)}function KR(e){return e!==""&&xa(e)}function va(e,t,r,n=new Set){if(!xa(t))return!1;if(at(e))return r[t]=e,!0;if(Array.isArray(e)){if(n.has(e))return!1;n.add(e),r[`${t}.length`]=e.length;let s=e.every((o,i)=>va(o,`${t}.${i}`,r,n));return n.delete(e),s}if(X(e)){if(n.has(e))return!1;n.add(e);let s=Object.entries(e).every(([o,i])=>!o.includes(".")&&va(i,`${t}.${o}`,r,n));return n.delete(e),s}return!1}function zR(e){let t=Object.keys(e[0]??{});if(e.every(r=>YR(Object.keys(r),t)))return t.every(xa)?t:void 0}function YR(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function xa(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}var Ca=h(()=>{kt();fr();Ur();$n()});function Hr(e,t){let r=e[t]??e[e.length-1];return x(r===void 0?1:r.number,"array length mismatch")}function so(e,t){if(t===-1)throw x(0,"array header missing colon");let r=e.slice(0,t),n=_e(r,"[",0);if(n===-1)throw x(0,"invalid array header");let s,o;try{[s,o]=qe(r.slice(0,n),0)}catch{throw x(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw x(0,"invalid array header");let c=i.slice(0,a),u=/^[0-9]*/.exec(c)[0];if(u===""||u.length>1&&u.startsWith("0"))throw x(0,"invalid array header");let l=Number.parseInt(u,10),p;switch(c.slice(u.length)){case"":p=",";break;case" ":p=" ";break;case"|":p="|";break;default:throw x(0,"invalid array header")}let d=i.slice(a+1),g,f;if(d==="")g=void 0,f=void 0;else if(d.startsWith("{")&&d.endsWith("}")&&d.length>=2)try{f=XR(d.slice(1,-1),p),g=Aa(f)}catch(k){throw x(0,k.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw x(0,"invalid array header");return{key:s,keyQuoted:o,len:l,delimiter:p,fields:g,fieldTree:f}}function wp(e){let t=_e(e,"{",0);if(t===-1||!e.endsWith("}"))throw x(0,"invalid keyed map header");let r,n;try{[r,n]=qe(e.slice(0,t),0)}catch{throw x(0,"invalid keyed map header")}if(r===""&&!n)throw x(0,"expected non-empty field name");let s=e.slice(t+1,-1),o=Q;(s.startsWith("|")||s.startsWith(" "))&&(o=s[0],s=s.slice(1));let i;try{i=QR(s,o,o)}catch(a){throw x(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:o,fields:i}}function QR(e,t,r){let n=[],s=0;function o(c,u){let l=0;for(;s<e.length&&!(u&&e[s]==="}");){if(e[s]===t||e[s]==="}")throw x(0,"invalid array header");let p=s;for(;s<e.length;){let f=e[s];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;s+=1}let[d,g]=qe(e.slice(p,s),0);if(d===""&&!g)throw x(0,"invalid array header");if(l+=1,e[s]==="["){s+=1;let f=s;for(;s<e.length&&e[s]!=="]";)s+=1;if(s>=e.length)throw x(0,"invalid array header");let k=e.slice(f,s);if(!_p(k,r))throw x(0,"invalid array header");s+=1,n.push({path:[...c,d],listDelimiter:k})}else if(e[s]==="{"){s+=1;let f=n.length;if(o([...c,d],!0),e[s]!=="}"||n.length===f)throw x(0,"invalid array header");s+=1}else n.push({path:[...c,d],listDelimiter:void 0});if(e[s]===t){if(s+=1,s>=e.length||e[s]==="}")throw x(0,"invalid array header");continue}if(u?e[s]==="}":s===e.length)break;throw x(0,"invalid array header")}if(l===0)throw x(0,"invalid array header")}function i(){for(s+=1;s<e.length;){let c=e[s];if(s+=1,c==="\\")s+=1;else if(c==='"')return}}if(o([],!1),s!==e.length)throw x(0,"invalid array header");let a=new Set;for(let c=0;c<n.length;c+=1)for(let u=c+1;u<n.length;u+=1)if(Ep(n[c].path,n[u].path)||Bn(n[c].path,n[u].path)||Bn(n[u].path,n[c].path))throw x(0,"duplicate key");for(let c of n){let l=c.path.join("\0");if(a.has(l))throw x(0,"duplicate key");a.add(l)}return n}function XR(e,t){if(t!==Q&&e.includes(Q)&&(e.includes("[")||e.includes("{")))return Oa(e,Q,t);try{return Oa(e,t,t)}catch(r){if(t!==Q&&r.reason!=="duplicate key")return Oa(e,Q,t);throw r}}function Oa(e,t,r){let n=0;function s(c){let u=[];for(;n<e.length&&!(c&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw x(0,"invalid array header");let l=n;for(;n<e.length;){let f=e[n];if(f==='"'){o();continue}if(f===t||f==="{"||f==="}"||f==="[")break;n+=1}let[p,d]=qe(e.slice(l,n),0);if(p===""&&!d)throw x(0,"invalid array header");let g={key:p};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw x(0,"invalid array header");let k=e.slice(f,n);n+=1;let E=ZR(k);if(E!==void 0){if(E.delimiter!==r)throw x(0,"invalid array header");g.fixedLength=E.len,g.fixedDelimiter=E.delimiter}else if(_p(k,r))g.listDelimiter=k;else throw x(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=s(!0),e[n]!=="}"||g.children.length===0)throw x(0,"invalid array header");n+=1}if(u.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw x(0,"invalid array header");continue}if(c?e[n]==="}":n===e.length)break;throw x(0,"invalid array header")}if(u.length===0)throw x(0,"invalid array header");return u}function o(){for(n+=1;n<e.length;){let c=e[n];if(n+=1,c==="\\")n+=1;else if(c==='"')return}}let i=s(!1);if(n!==e.length)throw x(0,"invalid array header");let a=Aa(i);for(let c=0;c<a.length;c+=1)for(let u=c+1;u<a.length;u+=1)if(Ep(a[c].path,a[u].path)||Bn(a[c].path,a[u].path)||Bn(a[u].path,a[c].path))throw x(0,"duplicate key");return i}function ZR(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=Q;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function Aa(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?Aa(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function oo(e,t,r){return e.listDelimiter===void 0?Ge(t,r):We(t,e.listDelimiter,r).map(n=>Ge(n,r))}function _p(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Ep(e,t){return e.length===t.length&&Bn(e,t)}function Bn(e,t){return t.every((r,n)=>e[n]===r)}function io(e,t){return x(t,e.reason??String(e.message))}var Rp=h(()=>{kt();fr()});function H(e,t){let r=pp(t),n=mp(e,r),s=n[0];if(s===void 0)return{};if(s.depth!==0)throw x(s.number,"invalid indentation");let o=n.length===1;if(o&&s.content.trim()==="[]")return[];if(s.content.startsWith("[")){Mn(s.content,s.number,r);let u;try{u=so(s.content,_e(s.content,":",s.number))}catch(l){if(r.strict)throw io(l,s.number);u=void 0}if(u!==void 0)return rk(u,n,r)}if(o&&_e(s.content,":",s.number)===-1)return Ge(s.content.trim(),s.number);let i={index:0},a=Ia(n,i,0,r),c=n[i.index];if(c!==void 0)throw x(c.number,"expected end of document");return r.cyclicDiscriminatedArrays?hp(a):a}function Ia(e,t,r,n){let s={};for(;t.index<e.length;){let o=e[t.index];if(o.depth<r)break;if(o.depth>r)throw x(o.number,"invalid indentation");let{key:i,quoted:a,value:c}=ek(e,t,r,n);Op(s,i,a,c,n,o.number)}return s}function ek(e,t,r,n){let s=e[t.index],o=s.content,i=_e(o,":",s.number);if(i===-1)throw x(s.number,"expected `key: value`");let a=o.slice(0,i),c=o.slice(i+1),u=_e(a,"[",s.number),l=_e(a,"{",s.number);if(l!==-1&&(u===-1||l<u)){Mn(a,s.number,n);let f;try{f=wp(a)}catch(E){if(n.strict)throw io(E,s.number);t.index+=1;let y=Pa(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:y}}if(c.trim()!=="")throw x(s.number,"expected keyed map rows");let k=tk(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:k}}if(u!==-1){Mn(a,s.number,n);let f;try{f=so(a,i)}catch(E){if(n.strict)throw io(E,s.number);t.index+=1;let y=Pa(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:y}}if(f.key===""&&!f.keyQuoted)throw x(s.number,"expected non-empty field name");let k=La(f,c,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:k}}let[p,d]=qe(a,s.number);if(p===""&&!d)throw x(s.number,"expected non-empty field name");t.index+=1;let g=Pa(e,t,r,c,s.number,n);return{key:p,quoted:d,value:g}}function Pa(e,t,r,n,s,o){let i=n.trim();if(i==="[]")return[];if(i!=="")return Ge(i,s);let a=e[t.index];return a!==void 0&&a.depth>r?Ia(e,t,r+1,o):{}}function tk(e,t,r,n,s){let o={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw x(i.number,"invalid indentation");if(i.blankBefore&&s.strict)throw x(i.number,"blank line inside keyed map");let a=_e(i.content,":",i.number);if(a===-1)throw x(i.number,"expected `key: value`");let[c,u]=qe(i.content.slice(0,a),i.number);if(c===""&&!u)throw x(i.number,"expected non-empty field name");let l=We(i.content.slice(a+1).trim(),e.delimiter,i.number);if(l.length!==e.fields.length)throw x(i.number,"keyed map row length mismatch");let p={};e.fields.forEach((d,g)=>{Wr(p,d.path,oo(d,l[g],i.number),s,i.number)}),Op(o,c,u,p,s,i.number),r.index+=1}return o}function rk(e,t,r){let n=t[0],s=_e(n.content,":",n.number);if(s===-1)throw x(n.number,"expected `key: value`");let o=n.content.slice(s+1),i={index:0},a=La(e,o,t,i,0,r),c=t[i.index];if(c!==void 0)throw x(c.number,"expected end of document");return a}function La(e,t,r,n,s,o){let i=r[n.index].number,a=t.trim();if(n.index+=1,e.fields!==void 0){if(a!=="")throw x(i,"expected tabular rows");return nk(e,e.fields,r,n,s+1,o)}if(a!==""){let c=We(a,e.delimiter,i).map(u=>Ge(u,i));if(c.length!==e.len)throw x(i,"array length mismatch");return c}return lk(e,r,n,s+1,o)}function nk(e,t,r,n,s,o){if(e.fieldTree!==void 0&&ck(e.fieldTree))return sk(e,r,n,s,o);let i=[];for(;i.length<e.len;){let c=r[n.index];if(c===void 0)throw Hr(r,n.index);if(c.depth<s)break;if(c.depth>s)throw x(c.number,"invalid indentation");if(c.blankBefore&&o.strict)throw x(c.number,"blank line inside array");if(!qr(c.content,e.delimiter,c.number))break;let u=We(c.content,e.delimiter,c.number);if(u.length!==t.length)throw x(c.number,"array row length mismatch");let l={};t.forEach((p,d)=>{Wr(l,p.path,oo(p,u[d],c.number),o,c.number)}),i.push(l),n.index+=1}if(i.length!==e.len)throw Hr(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=s&&qr(a.content,e.delimiter,a.number))throw x(a.number,"array length mismatch");return i}function sk(e,t,r,n,s){return kp(e.len,e.fieldTree,e.delimiter,t,r,n,s,!0)}function kp(e,t,r,n,s,o,i,a){let c=[],u=Tp(e,t,r,n,s.index,o,i);for(;c.length<e;){let p=n[s.index];if(p===void 0)throw Hr(n,s.index);if(p.depth<o)break;if(p.depth>o)throw x(p.number,"invalid indentation");if(p.blankBefore&&i.strict)throw x(p.number,"blank line inside array");if(!qr(p.content,r,p.number))break;let d=We(p.content,r,p.number),g={cellIndex:0,nextIndex:s.index+1,flatWidth:ao(t),childTableFields:u},f=Sp(t,d,p.number,n,g,o+1,r,i);if(g.cellIndex!==d.length)throw x(p.number,"array row length mismatch");c.push(ak(t,f,a)),s.index=g.nextIndex}if(c.length!==e)throw Hr(n,s.index);let l=n[s.index];if(l!==void 0&&l.depth>=o&&qr(l.content,r,l.number))throw x(l.number,"array length mismatch");return c}function Sp(e,t,r,n,s,o,i,a){let c={};return e.forEach((u,l)=>{let p=e.slice(l+1),d=ok(u,p,t,r,n,s,o,i,a);Wr(c,[u.key],d,a,r)}),c}function ok(e,t,r,n,s,o,i,a,c){if(e.fixedLength!==void 0){if(o.cellIndex+e.fixedLength>r.length)throw x(n,"array row length mismatch");let l=r.slice(o.cellIndex,o.cellIndex+e.fixedLength).map(p=>Ge(p,n));return o.cellIndex+=e.fixedLength,l}if(e.children!==void 0){let l=ao(e.children),p=r[o.cellIndex],d=xp(p),g=r.length-o.cellIndex-1,f=s[o.nextIndex],k=f!==void 0&&f.depth===i,E=o.childTableFields===void 0?void 0:o.childTableFields.has(e);if(E===void 0?d!==void 0&&(k||r.length!==o.flatWidth&&g<l+uk(t)):E){if(d===void 0)throw x(n,"array row length mismatch");return o.cellIndex+=1,kp(d,e.children,a,s,{get index(){return o.nextIndex},set index(_){o.nextIndex=_}},i,c,!1)}return Sp(e.children,r,n,s,o,i,a,c)}let u=r[o.cellIndex];if(u===void 0)throw x(n,"array row length mismatch");return o.cellIndex+=1,oo(e,u,n)}function Tp(e,t,r,n,s,o,i){let a=t.filter(l=>l.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let c,u=1<<a.length;for(let l=0;l<u;l+=1){let p=new Set;a.forEach((g,f)=>{l&1<<f&&p.add(g)});let d=vp(e,t,p,r,n,s,o,i);d!==void 0&&(c===void 0||d.consumedChildRows>c.consumedChildRows||d.consumedChildRows===c.consumedChildRows&&p.size<c.childTableFields.size)&&(c={childTableFields:p,consumedChildRows:d.consumedChildRows})}return c?.childTableFields}function vp(e,t,r,n,s,o,i,a){let c=o,u=0;try{for(let p=0;p<e;p+=1){let d=s[c];if(d===void 0||d.depth!==i||d.blankBefore&&a.strict||!qr(d.content,n,d.number))return;let g=We(d.content,n,d.number),f=ik(t,r,g,n,s,c+1,i+1,a);if(f===void 0||s[f.nextIndex]?.depth>i)return;u+=f.consumedChildRows,c=f.nextIndex}let l=s[c];if(l!==void 0&&l.depth>=i&&qr(l.content,n,l.number))return}catch{return}return{nextIndex:c,consumedChildRows:u}}function ik(e,t,r,n,s,o,i,a){let c=0,u=o,l=0;for(let p of e){if(p.fixedLength!==void 0)c+=p.fixedLength;else if(p.children!==void 0)if(t.has(p)){let d=xp(r[c]);if(d===void 0)return;c+=1;let g=Tp(d,p.children,n,s,u,i,a);if(g===void 0)return;let f=vp(d,p.children,g,n,s,u,i,a);if(f===void 0)return;u=f.nextIndex,l+=d+f.consumedChildRows}else c+=ao(p.children);else c+=1;if(c>r.length)return}if(c===r.length)return{nextIndex:u,consumedChildRows:l}}function ak(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function xp(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function ck(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function ao(e){return e.reduce((t,r)=>t+Cp(r),0)}function Cp(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?ao(e.children):1}function uk(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Cp(r),0)}function qr(e,t,r){let n=_e(e,":",r);if(n===-1)return!0;let s=_e(e,t,r);return s===-1?!1:s<n}function lk(e,t,r,n,s){let o=[];for(;o.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw Hr(t,r.index);if(a.depth>n)throw x(a.number,"invalid indentation");if(a.blankBefore&&s.strict)throw x(a.number,"blank line inside array");o.push(dk(t,r,n,s))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw x(i.number,"array length mismatch");return o}function dk(e,t,r,n){let s=e[t.index];if(!s.content.startsWith("-"))throw x(s.number,"expected array item");let o=s.content.slice(1).replace(/^\s+/,"");if(o==="")return t.index+=1,{};if(o.startsWith("[")){let i=_e(o,":",s.number);Mn(o,s.number,n);let a;try{a=so(o,i)}catch{a=void 0}if(a!==void 0){let c=o.slice(i+1);return La(a,c,e,t,r,n)}}if(_e(o,":",s.number)!==-1){let i=[{number:s.number,depth:r+1,content:o,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return Ia(i,{index:0},r+1,n)}return t.index+=1,Ge(o,s.number)}function Op(e,t,r,n,s,o){if(s.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(pk)){Wr(e,i,n,s,o);return}}Wr(e,[t],n,s,o)}function Wr(e,t,r,n,s){ct(t.length-1,s,n);let o=t[0],i=Object.prototype.hasOwnProperty.call(e,o);if(t.length===1){if(i&&n.strict)throw x(s,"duplicate key");Je(e,o,r);return}if(i&&!X(e[o])){if(n.strict)throw x(s,"path expansion conflict");Je(e,o,{})}else i||Je(e,o,{});Wr(e[o],t.slice(1),r,n,s)}function pk(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var Ap=h(()=>{kt();fr();Ur();$n();Sa();Ca();Rp()});function $(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??Q;if(![Q,"|"," "].includes(n))throw x(0,"invalid array header");let s={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(s.cyclicDiscriminatedArrays){let i=bp(e);if(i!==void 0)return i}let o=[];return Array.isArray(e)?Na(o,void 0,e,0,!1,s):X(e)?Pp(o,e,0,s):o.push(Ee(e,n)),o.join("")}function Jr(e,t){e.push(" ".repeat(t*2))}function Pp(e,t,r,n){ct(r,0,n);for(let[s,o]of Object.entries(t))Jr(e,r),Ga(e,s,o,r,n)}function Ga(e,t,r,n,s){if(ct(n,0,s),Array.isArray(r)){Na(e,t,r,n,!1,s);return}if(X(r)){let o=s.keyedMapCollapse?fk(r,s,n+1):void 0;if(o!==void 0){e.push(ae(t),"{",Fa(s.delimiter),o.fields.map(i=>ja(i,s.delimiter)).join(s.delimiter),`}:
|
|
20
|
-
`);for(let[i,a]of Object.entries(r)){Jr(e,n+1);let c=[];e.push(
|
|
21
|
-
`),e.push(...c)}return}e.push(
|
|
22
|
-
`),
|
|
23
|
-
`)}function
|
|
19
|
+
`)}function pk(e){return e!==""&&La(e)}function Ia(e,t,r,n=new Set){if(!La(t))return!1;if(ot(e))return r[t]=e,!0;if(Array.isArray(e)){if(n.has(e))return!1;n.add(e),r[`${t}.length`]=e.length;let s=e.every((o,i)=>Ia(o,`${t}.${i}`,r,n));return n.delete(e),s}if(Z(e)){if(n.has(e))return!1;n.add(e);let s=Object.entries(e).every(([o,i])=>!o.includes(".")&&Ia(i,`${t}.${o}`,r,n));return n.delete(e),s}return!1}function mk(e){let t=Object.keys(e[0]??{});if(e.every(r=>fk(Object.keys(r),t)))return t.every(La)?t:void 0}function fk(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function La(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}var Ga=h(()=>{Rt();fr();Ur();$n()});function Hr(e,t){let r=e[t]??e[e.length-1];return v(r===void 0?1:r.number,"array length mismatch")}function io(e,t){if(t===-1)throw v(0,"array header missing colon");let r=e.slice(0,t),n=_e(r,"[",0);if(n===-1)throw v(0,"invalid array header");let s,o;try{[s,o]=Je(r.slice(0,n),0)}catch{throw v(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw v(0,"invalid array header");let c=i.slice(0,a),u=/^[0-9]*/.exec(c)[0];if(u===""||u.length>1&&u.startsWith("0"))throw v(0,"invalid array header");let l=Number.parseInt(u,10),d;switch(c.slice(u.length)){case"":d=",";break;case" ":d=" ";break;case"|":d="|";break;default:throw v(0,"invalid array header")}let p=i.slice(a+1),g,f;if(p==="")g=void 0,f=void 0;else if(p.startsWith("{")&&p.endsWith("}")&&p.length>=2)try{f=hk(p.slice(1,-1),d),g=$a(f)}catch(k){throw v(0,k.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw v(0,"invalid array header");return{key:s,keyQuoted:o,len:l,delimiter:d,fields:g,fieldTree:f}}function Ap(e){let t=_e(e,"{",0);if(t===-1||!e.endsWith("}"))throw v(0,"invalid keyed map header");let r,n;try{[r,n]=Je(e.slice(0,t),0)}catch{throw v(0,"invalid keyed map header")}if(r===""&&!n)throw v(0,"expected non-empty field name");let s=e.slice(t+1,-1),o=Q;(s.startsWith("|")||s.startsWith(" "))&&(o=s[0],s=s.slice(1));let i;try{i=gk(s,o,o)}catch(a){throw v(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:o,fields:i}}function gk(e,t,r){let n=[],s=0;function o(c,u){let l=0;for(;s<e.length&&!(u&&e[s]==="}");){if(e[s]===t||e[s]==="}")throw v(0,"invalid array header");let d=s;for(;s<e.length;){let f=e[s];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;s+=1}let[p,g]=Je(e.slice(d,s),0);if(p===""&&!g)throw v(0,"invalid array header");if(l+=1,e[s]==="["){s+=1;let f=s;for(;s<e.length&&e[s]!=="]";)s+=1;if(s>=e.length)throw v(0,"invalid array header");let k=e.slice(f,s);if(!Pp(k,r))throw v(0,"invalid array header");s+=1,n.push({path:[...c,p],listDelimiter:k})}else if(e[s]==="{"){s+=1;let f=n.length;if(o([...c,p],!0),e[s]!=="}"||n.length===f)throw v(0,"invalid array header");s+=1}else n.push({path:[...c,p],listDelimiter:void 0});if(e[s]===t){if(s+=1,s>=e.length||e[s]==="}")throw v(0,"invalid array header");continue}if(u?e[s]==="}":s===e.length)break;throw v(0,"invalid array header")}if(l===0)throw v(0,"invalid array header")}function i(){for(s+=1;s<e.length;){let c=e[s];if(s+=1,c==="\\")s+=1;else if(c==='"')return}}if(o([],!1),s!==e.length)throw v(0,"invalid array header");let a=new Set;for(let c=0;c<n.length;c+=1)for(let u=c+1;u<n.length;u+=1)if(Ip(n[c].path,n[u].path)||Bn(n[c].path,n[u].path)||Bn(n[u].path,n[c].path))throw v(0,"duplicate key");for(let c of n){let l=c.path.join("\0");if(a.has(l))throw v(0,"duplicate key");a.add(l)}return n}function hk(e,t){if(t!==Q&&e.includes(Q)&&(e.includes("[")||e.includes("{")))return Da(e,Q,t);try{return Da(e,t,t)}catch(r){if(t!==Q&&r.reason!=="duplicate key")return Da(e,Q,t);throw r}}function Da(e,t,r){let n=0;function s(c){let u=[];for(;n<e.length&&!(c&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw v(0,"invalid array header");let l=n;for(;n<e.length;){let f=e[n];if(f==='"'){o();continue}if(f===t||f==="{"||f==="}"||f==="[")break;n+=1}let[d,p]=Je(e.slice(l,n),0);if(d===""&&!p)throw v(0,"invalid array header");let g={key:d};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw v(0,"invalid array header");let k=e.slice(f,n);n+=1;let E=yk(k);if(E!==void 0){if(E.delimiter!==r)throw v(0,"invalid array header");g.fixedLength=E.len,g.fixedDelimiter=E.delimiter}else if(Pp(k,r))g.listDelimiter=k;else throw v(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=s(!0),e[n]!=="}"||g.children.length===0)throw v(0,"invalid array header");n+=1}if(u.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw v(0,"invalid array header");continue}if(c?e[n]==="}":n===e.length)break;throw v(0,"invalid array header")}if(u.length===0)throw v(0,"invalid array header");return u}function o(){for(n+=1;n<e.length;){let c=e[n];if(n+=1,c==="\\")n+=1;else if(c==='"')return}}let i=s(!1);if(n!==e.length)throw v(0,"invalid array header");let a=$a(i);for(let c=0;c<a.length;c+=1)for(let u=c+1;u<a.length;u+=1)if(Ip(a[c].path,a[u].path)||Bn(a[c].path,a[u].path)||Bn(a[u].path,a[c].path))throw v(0,"duplicate key");return i}function yk(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=Q;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function $a(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?$a(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function ao(e,t,r){return e.listDelimiter===void 0?Fe(t,r):Ve(t,e.listDelimiter,r).map(n=>Fe(n,r))}function Pp(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Ip(e,t){return e.length===t.length&&Bn(e,t)}function Bn(e,t){return t.every((r,n)=>e[n]===r)}function co(e,t){return v(t,e.reason??String(e.message))}var Lp=h(()=>{Rt();fr()});function H(e,t){let r=kp(t),n=Sp(e,r),s=n[0];if(s===void 0)return{};if(s.depth!==0)throw v(s.number,"invalid indentation");let o=n.length===1;if(o&&s.content.trim()==="[]")return[];if(s.content.startsWith("[")){Mn(s.content,s.number,r);let u;try{u=io(s.content,_e(s.content,":",s.number))}catch(l){if(r.strict)throw co(l,s.number);u=void 0}if(u!==void 0)return _k(u,n,r)}if(o&&_e(s.content,":",s.number)===-1)return Fe(s.content.trim(),s.number);let i={index:0},a=Fa(n,i,0,r),c=n[i.index];if(c!==void 0)throw v(c.number,"expected end of document");return r.cyclicDiscriminatedArrays?xp(a):a}function Fa(e,t,r,n){let s={};for(;t.index<e.length;){let o=e[t.index];if(o.depth<r)break;if(o.depth>r)throw v(o.number,"invalid indentation");let{key:i,quoted:a,value:c}=bk(e,t,r,n);Bp(s,i,a,c,n,o.number)}return s}function bk(e,t,r,n){let s=e[t.index],o=s.content,i=_e(o,":",s.number);if(i===-1)throw v(s.number,"expected `key: value`");let a=o.slice(0,i),c=o.slice(i+1),u=_e(a,"[",s.number),l=_e(a,"{",s.number);if(l!==-1&&(u===-1||l<u)){Mn(a,s.number,n);let f;try{f=Ap(a)}catch(E){if(n.strict)throw co(E,s.number);t.index+=1;let y=Na(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:y}}if(c.trim()!=="")throw v(s.number,"expected keyed map rows");let k=wk(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:k}}if(u!==-1){Mn(a,s.number,n);let f;try{f=io(a,i)}catch(E){if(n.strict)throw co(E,s.number);t.index+=1;let y=Na(e,t,r,c,s.number,n);return{key:a.trim(),quoted:!1,value:y}}if(f.key===""&&!f.keyQuoted)throw v(s.number,"expected non-empty field name");let k=Ma(f,c,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:k}}let[d,p]=Je(a,s.number);if(d===""&&!p)throw v(s.number,"expected non-empty field name");t.index+=1;let g=Na(e,t,r,c,s.number,n);return{key:d,quoted:p,value:g}}function Na(e,t,r,n,s,o){let i=n.trim();if(i==="[]")return[];if(i!=="")return Fe(i,s);let a=e[t.index];return a!==void 0&&a.depth>r?Fa(e,t,r+1,o):{}}function wk(e,t,r,n,s){let o={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw v(i.number,"invalid indentation");if(i.blankBefore&&s.strict)throw v(i.number,"blank line inside keyed map");let a=_e(i.content,":",i.number);if(a===-1)throw v(i.number,"expected `key: value`");let[c,u]=Je(i.content.slice(0,a),i.number);if(c===""&&!u)throw v(i.number,"expected non-empty field name");let l=Ve(i.content.slice(a+1).trim(),e.delimiter,i.number);if(l.length!==e.fields.length)throw v(i.number,"keyed map row length mismatch");let d={};e.fields.forEach((p,g)=>{Wr(d,p.path,ao(p,l[g],i.number),s,i.number)}),Bp(o,c,u,d,s,i.number),r.index+=1}return o}function _k(e,t,r){let n=t[0],s=_e(n.content,":",n.number);if(s===-1)throw v(n.number,"expected `key: value`");let o=n.content.slice(s+1),i={index:0},a=Ma(e,o,t,i,0,r),c=t[i.index];if(c!==void 0)throw v(c.number,"expected end of document");return a}function Ma(e,t,r,n,s,o){let i=r[n.index].number,a=t.trim();if(n.index+=1,e.fields!==void 0){if(a!=="")throw v(i,"expected tabular rows");return Ek(e,e.fields,r,n,s+1,o)}if(a!==""){let c=Ve(a,e.delimiter,i).map(u=>Fe(u,i));if(c.length!==e.len)throw v(i,"array length mismatch");return c}return Ck(e,r,n,s+1,o)}function Ek(e,t,r,n,s,o){if(e.fieldTree!==void 0&&vk(e.fieldTree))return Rk(e,r,n,s,o);let i=[];for(;i.length<e.len;){let c=r[n.index];if(c===void 0)throw Hr(r,n.index);if(c.depth<s)break;if(c.depth>s)throw v(c.number,"invalid indentation");if(c.blankBefore&&o.strict)throw v(c.number,"blank line inside array");if(!qr(c.content,e.delimiter,c.number))break;let u=Ve(c.content,e.delimiter,c.number);if(u.length!==t.length)throw v(c.number,"array row length mismatch");let l={};t.forEach((d,p)=>{Wr(l,d.path,ao(d,u[p],c.number),o,c.number)}),i.push(l),n.index+=1}if(i.length!==e.len)throw Hr(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=s&&qr(a.content,e.delimiter,a.number))throw v(a.number,"array length mismatch");return i}function Rk(e,t,r,n,s){return Gp(e.len,e.fieldTree,e.delimiter,t,r,n,s,!0)}function Gp(e,t,r,n,s,o,i,a){let c=[],u=$p(e,t,r,n,s.index,o,i);for(;c.length<e;){let d=n[s.index];if(d===void 0)throw Hr(n,s.index);if(d.depth<o)break;if(d.depth>o)throw v(d.number,"invalid indentation");if(d.blankBefore&&i.strict)throw v(d.number,"blank line inside array");if(!qr(d.content,r,d.number))break;let p=Ve(d.content,r,d.number),g={cellIndex:0,nextIndex:s.index+1,flatWidth:uo(t),childTableFields:u},f=Dp(t,p,d.number,n,g,o+1,r,i);if(g.cellIndex!==p.length)throw v(d.number,"array row length mismatch");c.push(Tk(t,f,a)),s.index=g.nextIndex}if(c.length!==e)throw Hr(n,s.index);let l=n[s.index];if(l!==void 0&&l.depth>=o&&qr(l.content,r,l.number))throw v(l.number,"array length mismatch");return c}function Dp(e,t,r,n,s,o,i,a){let c={};return e.forEach((u,l)=>{let d=e.slice(l+1),p=kk(u,d,t,r,n,s,o,i,a);Wr(c,[u.key],p,a,r)}),c}function kk(e,t,r,n,s,o,i,a,c){if(e.fixedLength!==void 0){if(o.cellIndex+e.fixedLength>r.length)throw v(n,"array row length mismatch");let l=r.slice(o.cellIndex,o.cellIndex+e.fixedLength).map(d=>Fe(d,n));return o.cellIndex+=e.fixedLength,l}if(e.children!==void 0){let l=uo(e.children),d=r[o.cellIndex],p=Fp(d),g=r.length-o.cellIndex-1,f=s[o.nextIndex],k=f!==void 0&&f.depth===i,E=o.childTableFields===void 0?void 0:o.childTableFields.has(e);if(E===void 0?p!==void 0&&(k||r.length!==o.flatWidth&&g<l+xk(t)):E){if(p===void 0)throw v(n,"array row length mismatch");return o.cellIndex+=1,Gp(p,e.children,a,s,{get index(){return o.nextIndex},set index(_){o.nextIndex=_}},i,c,!1)}return Dp(e.children,r,n,s,o,i,a,c)}let u=r[o.cellIndex];if(u===void 0)throw v(n,"array row length mismatch");return o.cellIndex+=1,ao(e,u,n)}function $p(e,t,r,n,s,o,i){let a=t.filter(l=>l.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let c,u=1<<a.length;for(let l=0;l<u;l+=1){let d=new Set;a.forEach((g,f)=>{l&1<<f&&d.add(g)});let p=Np(e,t,d,r,n,s,o,i);p!==void 0&&(c===void 0||p.consumedChildRows>c.consumedChildRows||p.consumedChildRows===c.consumedChildRows&&d.size<c.childTableFields.size)&&(c={childTableFields:d,consumedChildRows:p.consumedChildRows})}return c?.childTableFields}function Np(e,t,r,n,s,o,i,a){let c=o,u=0;try{for(let d=0;d<e;d+=1){let p=s[c];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!qr(p.content,n,p.number))return;let g=Ve(p.content,n,p.number),f=Sk(t,r,g,n,s,c+1,i+1,a);if(f===void 0||s[f.nextIndex]?.depth>i)return;u+=f.consumedChildRows,c=f.nextIndex}let l=s[c];if(l!==void 0&&l.depth>=i&&qr(l.content,n,l.number))return}catch{return}return{nextIndex:c,consumedChildRows:u}}function Sk(e,t,r,n,s,o,i,a){let c=0,u=o,l=0;for(let d of e){if(d.fixedLength!==void 0)c+=d.fixedLength;else if(d.children!==void 0)if(t.has(d)){let p=Fp(r[c]);if(p===void 0)return;c+=1;let g=$p(p,d.children,n,s,u,i,a);if(g===void 0)return;let f=Np(p,d.children,g,n,s,u,i,a);if(f===void 0)return;u=f.nextIndex,l+=p+f.consumedChildRows}else c+=uo(d.children);else c+=1;if(c>r.length)return}if(c===r.length)return{nextIndex:u,consumedChildRows:l}}function Tk(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function Fp(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function vk(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function uo(e){return e.reduce((t,r)=>t+Mp(r),0)}function Mp(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?uo(e.children):1}function xk(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Mp(r),0)}function qr(e,t,r){let n=_e(e,":",r);if(n===-1)return!0;let s=_e(e,t,r);return s===-1?!1:s<n}function Ck(e,t,r,n,s){let o=[];for(;o.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw Hr(t,r.index);if(a.depth>n)throw v(a.number,"invalid indentation");if(a.blankBefore&&s.strict)throw v(a.number,"blank line inside array");o.push(Ok(t,r,n,s))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw v(i.number,"array length mismatch");return o}function Ok(e,t,r,n){let s=e[t.index];if(!s.content.startsWith("-"))throw v(s.number,"expected array item");let o=s.content.slice(1).replace(/^\s+/,"");if(o==="")return t.index+=1,{};if(o.startsWith("[")){let i=_e(o,":",s.number);Mn(o,s.number,n);let a;try{a=io(o,i)}catch{a=void 0}if(a!==void 0){let c=o.slice(i+1);return Ma(a,c,e,t,r,n)}}if(_e(o,":",s.number)!==-1){let i=[{number:s.number,depth:r+1,content:o,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return Fa(i,{index:0},r+1,n)}return t.index+=1,Fe(o,s.number)}function Bp(e,t,r,n,s,o){if(s.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(Ak)){Wr(e,i,n,s,o);return}}Wr(e,[t],n,s,o)}function Wr(e,t,r,n,s){it(t.length-1,s,n);let o=t[0],i=Object.prototype.hasOwnProperty.call(e,o);if(t.length===1){if(i&&n.strict)throw v(s,"duplicate key");Ke(e,o,r);return}if(i&&!Z(e[o])){if(n.strict)throw v(s,"path expansion conflict");Ke(e,o,{})}else i||Ke(e,o,{});Wr(e[o],t.slice(1),r,n,s)}function Ak(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var jp=h(()=>{Rt();fr();Ur();$n();Aa();Ga();Lp()});function $(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??Q;if(![Q,"|"," "].includes(n))throw v(0,"invalid array header");let s={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(s.cyclicDiscriminatedArrays){let i=Op(e);if(i!==void 0)return i}let o=[];return Array.isArray(e)?Ha(o,void 0,e,0,!1,s):Z(e)?Up(o,e,0,s):o.push(Ee(e,n)),o.join("")}function Jr(e,t){e.push(" ".repeat(t*2))}function Up(e,t,r,n){it(r,0,n);for(let[s,o]of Object.entries(t))Jr(e,r),ja(e,s,o,r,n)}function ja(e,t,r,n,s){if(it(n,0,s),Array.isArray(r)){Ha(e,t,r,n,!1,s);return}if(Z(r)){let o=s.keyedMapCollapse?Ik(r,s,n+1):void 0;if(o!==void 0){e.push(ie(t),"{",qa(s.delimiter),o.fields.map(i=>Va(i,s.delimiter)).join(s.delimiter),`}:
|
|
20
|
+
`);for(let[i,a]of Object.entries(r)){Jr(e,n+1);let c=[];e.push(ie(i),": ",o.paths.map(u=>Ka(Ja(a,u.path),u,s.delimiter,s,c,n+2)).join(s.delimiter),`
|
|
21
|
+
`),e.push(...c)}return}e.push(ie(t),`:
|
|
22
|
+
`),Up(e,r,n+1,s);return}e.push(ie(t),": ",Ee(r,s.delimiter),`
|
|
23
|
+
`)}function Ha(e,t,r,n,s,o){if(it(n,0,o),r.length===0){t!==void 0?e.push(ie(t),`: []
|
|
24
24
|
`):s?e.push(`[0]:
|
|
25
25
|
`):e.push(`[]
|
|
26
|
-
`);return}if(r.every(
|
|
27
|
-
`);return}let i=s?void 0:
|
|
28
|
-
`);for(let a of r){Jr(e,n+1);let c=[];e.push(i.paths.map(u=>
|
|
29
|
-
`),e.push(...c)}return}
|
|
30
|
-
`);for(let a of r)Jr(e,n+1),
|
|
31
|
-
`);return}e.push("- "),
|
|
32
|
-
`)}function
|
|
33
|
-
`),e.push(...i)}}function
|
|
34
|
-
`}function
|
|
35
|
-
`}function
|
|
36
|
-
`,f=()=>
|
|
37
|
-
`;return _+=
|
|
38
|
-
`},end(){return
|
|
39
|
-
`)}function
|
|
40
|
-
`).trim()}var
|
|
41
|
-
`,{encoding:"utf8",mode:384}),
|
|
42
|
-
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=
|
|
26
|
+
`);return}if(r.every(ot)){Ba(e,t,r.length,void 0,o.delimiter),e.push(" "),e.push(r.map(a=>Ee(a,o.delimiter)).join(o.delimiter)),e.push(`
|
|
27
|
+
`);return}let i=s?void 0:Hp(r,o,n+1);if(i!==void 0){Ba(e,t,r.length,i.fields,o.delimiter),e.push(`
|
|
28
|
+
`);for(let a of r){Jr(e,n+1);let c=[];e.push(i.paths.map(u=>Ka(Ja(a,u.path),u,o.delimiter,o,c,n+2)).join(o.delimiter)),e.push(`
|
|
29
|
+
`),e.push(...c)}return}Ba(e,t,r.length,void 0,o.delimiter),e.push(`
|
|
30
|
+
`);for(let a of r)Jr(e,n+1),Pk(e,a,n+1,o)}function Pk(e,t,r,n){if(it(r,0,n),Array.isArray(t)){e.push("- "),Ha(e,void 0,t,r,!0,n);return}if(Z(t)){let s=Object.entries(t);if(s.length===0){e.push(`-
|
|
31
|
+
`);return}e.push("- "),ja(e,s[0][0],s[0][1],r+1,n);for(let[o,i]of s.slice(1))Jr(e,r+1),ja(e,o,i,r+1,n);return}e.push("- ",Ee(t,n.delimiter),`
|
|
32
|
+
`)}function Ba(e,t,r,n,s){t!==void 0&&e.push(ie(t)),e.push("[",String(r),qa(s),"]"),n!==void 0&&e.push("{",n.map(o=>Va(o,s)).join(s),"}"),e.push(":")}function qa(e){return e===Q?"":e}function Hp(e,t,r){let n=Lk(e,t);if(n!==void 0)return n;let s=Ua(e.map(o=>({value:o})),t,r);return s===void 0?void 0:{fields:s,paths:Wa(s)}}function Ik(e,t,r){let n=Object.values(e);if(!(n.length<2))return Hp(n,t,r)}function Ua(e,t,r){it(r,0,t);let n=e[0]?.value;if(!Z(n))return;let s=Object.keys(n).map(o=>({key:o}));if(s.length!==0){for(let{value:o}of e)if(!Z(o)||Object.keys(o).length!==s.length||s.some(a=>!Object.prototype.hasOwnProperty.call(o,a.key)))return;for(let o of s){let i=e.map(({value:c})=>({value:c[o.key]}));if(i.every(({value:c})=>ot(c)))continue;if(t.primitiveArrayColumns&&i.every(({value:c})=>Array.isArray(c)&&c.every(ot))){o.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:c})=>Array.isArray(c))){let c=qp(i.map(({value:l})=>l));if(c!==void 0){o.fixedLength=c.fixedLength,o.fixedDelimiter=t.delimiter;continue}let u=Ua(i.flatMap(({value:l})=>l.map(d=>({value:d}))),t,r+1);if(u!==void 0){o.children=u,o.childTable=!0;continue}}if(!t.nestedTabularHeaders)return;let a=Ua(i,t,r+1);if(a===void 0)return;o.children=a}return s}}function Lk(e,t){if(!t.objectArrayColumns)return;let r=qp(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function qp(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(ot)))return{fixedLength:t}}function Wa(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.childTable===!0?[{path:n,childFields:r.children}]:r.fixedLength!==void 0?[{path:n,fixedLength:r.fixedLength}]:r.children===void 0?[{path:n,listDelimiter:r.listDelimiter}]:Wa(r.children,n)})}function Ja(e,t){let r=e;for(let n of t)r=r[n];return r}function Va(e,t){return e.listDelimiter!==void 0?`${ie(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ie(e.key)}[${e.fixedLength}${qa(t)}]`:e.children===void 0?ie(e.key):`${ie(e.key)}{${e.children.map(r=>Va(r,t)).join(t)}}`}function Ka(e,t,r,n,s,o){return t.childFields!==void 0?(Gk(s,e,t.childFields,n,o),String(e.length)):t.fixedLength!==void 0?e.map(i=>Ee(i,r)).join(r):t.listDelimiter===void 0?Ee(e,r):e.map(i=>Dk(i,r,t.listDelimiter)).join(t.listDelimiter)}function Gk(e,t,r,n,s){for(let o of t){Jr(e,s);let i=[];e.push(Wa(r).map(a=>Ka(Ja(o,a.path),a,n.delimiter,n,i,s+1)).join(n.delimiter)),e.push(`
|
|
33
|
+
`),e.push(...i)}}function Dk(e,t,r){return typeof e!="string"?Ee(e,t):Oa(e,t)||e.includes(r)?so(e):e}var Wp=h(()=>{Rt();fr();Ur();$n();Aa();Ga()});var jn=h(()=>{Ur();jp();$n();Wp()});var Jp=h(()=>{jn()});function Mk(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw j(t,"invalid trailer count");return Number.parseInt(r,10)}function nm(e,t){if(!rm.test(e))throw j(t,"invalid tag")}function Bk(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!rm.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw j(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function jk(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw j(t,"invalid header");let s=r.slice(0,n),o=s.startsWith("~"),i=o?s.slice(1):s;if(!o&&i.startsWith("="))return null;if(!em.includes(i)&&i!=="")throw j(t,"invalid header delimiter");let a=i===""?Q:i,c=r.slice(n+1),u=null;if(!o&&c.startsWith("<")){let p=c.indexOf(">");if(p===-1)throw j(t,"invalid tag");if(u=c.slice(1,p),nm(u,t),i!=="")throw j(t,"invalid header delimiter");c=c.slice(p+1)}if(!c.startsWith("{")||!c.endsWith("}:"))throw j(t,"invalid header");let l=c.slice(1,-2),d;try{d=Ve(l,a,t).map(p=>Je(p,t)[0])}catch(p){throw jr(p)}if(d.length===0||d.some(p=>p===""))throw j(t,"invalid header fields");return{delimiter:a,fields:d,fieldText:l,continuation:o,tag:u}}function Uk(e,t,r){if(e===null||e.delimiter===void 0)throw j(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw j(r,"continuation header mismatch")}function Vp(e,t,r,n){let s;try{s=Ve(e,t,n)}catch(o){throw jr(o)}if(s.length!==r)throw j(n,"row arity mismatch");for(let o of s)try{Fe(o,n)}catch(i){throw jr(i)}return s}function Hk(e,t,r){let n={};return e.forEach((s,o)=>{try{Ke(n,s,Fe(t[o],r))}catch(i){throw jr(i)}}),n}function qk(e,t,r){if(e.startsWith("- "))throw j(t,"reserved line prefix");let n=Mk(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw j(t,"trailer without header");if(r.rowCount!==n)throw j(t,"trailer count mismatch");return{kind:"trailer"}}let s=jk(e,t);if(s!==null)return s.continuation?(Uk(r,s,t),{kind:"continuation"}):s.tag!==null?{kind:"tag-header",header:s}:{kind:"header",header:s};let o=Bk(e,t);if(o!==null){let i=r?.taggedLanes?.get(o.tag);if(i===void 0)throw j(t,"unknown tag");return{kind:"tagged-row",tag:o.tag,cells:Vp(o.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw j(t,"row before header");return{kind:"row",cells:Vp(e,r.delimiter,r.fields.length,t)}}function Wk(e,t={}){let r=[],n=new Map,s=[],o=[],i=null,a=!1,c=!1;function u(g,f){let k=o.at(-1);if(k!==void 0&&k.lane===g.lane&&k.delimiter===g.delimiter&&k.fieldText===g.fieldText){k.rows.push(f);return}o.push({lane:g.lane,delimiter:g.delimiter,fields:g.fields,fieldText:g.fieldText,rows:[f]})}function l(){i!==null&&s.push({delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,lane:i.lane,rows:i.rows})}function d(g,f,k){let E=n.get(g);if(E===void 0){if(n.size>=tm)throw j(k,"too many tagged lanes");E={segments:[],current:null},n.set(g,E),r.push(g)}else E.current!==null&&E.segments.push(E.current);E.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},E.delimiter=f.delimiter,E.fields=f.fields,E.fieldText=f.fieldText}if(no(e).forEach((g,f)=>{let k=f+1;if(g==="")return;let E=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},y=qk(g,k,E);if(y.kind==="trailer"){l(),i=null;return}if(y.kind!=="continuation"){if(y.kind==="tag-header"){c=!0,d(y.header.tag,y.header,k);return}if(y.kind==="header"){l(),a||(r.push(null),a=!0),i={lane:null,delimiter:y.header.delimiter,fields:y.header.fields,fieldText:y.header.fieldText,rows:[]};return}if(y.kind==="tagged-row"){c=!0;let _=n.get(y.tag).current;_.rows.push(y.cells),u(_,y.cells);return}if(i===null)throw j(k,"row before header");i.rows.push(y.cells),u(i,y.cells)}}),!c)return l(),t.preserveInterleaving===!0,s;let p=[];l();for(let g of r){if(g===null){p.push(...s);continue}let f=n.get(g);p.push(...f.segments),f.current!==null&&p.push(f.current)}return t.preserveInterleaving===!0?o:p}function kt(e){return Wk(e).flatMap(t=>t.rows.map(r=>Hk(t.fields,r,0)))}function Jk(e){if(!em.includes(e))throw j(0,"invalid header delimiter")}function Kp(e,t,r=!1){return`[${`${r?"~":""}${e===Q?"":e}`}]{${t}}:
|
|
34
|
+
`}function zp(e,t){return`[]<${e}>{${t}}:
|
|
35
|
+
`}function za(e,t){return t.map(ie).join(e)}function Vk(e){if(!Array.isArray(e)||e.length===0)throw j(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=Je(String(t),0)}catch(n){throw jr(n)}if(r==="")throw j(0,"TOONL header requires fields");return r})}function Yp(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Qp(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw j(0,"TOONL continuation cadence must be positive")}function Kk(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function Xp(e){if(e===null||typeof e!="object"||Array.isArray(e))throw j(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw j(0,"TOONL output requires object rows");if(t.some(r=>!ot(e[r])))throw j(0,"TOONL rows must be flat objects");return t}function zk(e){return JSON.stringify([...e].sort())}function Zp(e,t){let r=zk(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function St({delimiter:e=Q,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){Jk(e),Qp(r),Qp(n);let s=null,o="",i=new Map,a=0,c=0,u=0,l=new Map,d=!1,p={continuationEveryRows:r,continuationEveryBytes:n},g=()=>s===null||!t?"":`[=${a}]
|
|
36
|
+
`,f=()=>Kk(p,c,u)?(c=0,u=0,Kp(e,o,!0)):"",k=E=>{nm(E,0);let y=l.get(E);if(y===void 0){if(l.size>=tm)throw j(0,"too many tagged lanes");y={fields:null,fieldsByShape:new Map},l.set(E,y)}return y};return{push(E){if(d)throw j(0,"TOONL encoder is closed");let y=Zp(Xp(E),i),_="";(s===null||s.length!==y.length||s.some((L,F)=>L!==y[F]))&&(_+=g(),s=y,o=za(e,s),a=0,c=0,u=0,_+=Kp(e,o));let T=s.map(L=>Ee(E[L],e));_+=f();let C=`${T.join(e)}
|
|
37
|
+
`;return _+=C,a+=1,c+=1,u+=C.length,_},declareLane(E,y){if(d)throw j(0,"TOONL encoder is closed");let _=Vk(y),T=za(Q,_),C=k(E);return Yp(C.fields,_)?"":(C.fields=_,zp(E,T))},pushTagged(E,y){if(d)throw j(0,"TOONL encoder is closed");let _=k(E),T=Zp(Xp(y),_.fieldsByShape),C=za(Q,T),L=T.map(q=>Ee(y[q],Q)),F="";return Yp(_.fields,T)||(_.fields=T,F+=zp(E,C)),`${F}${E}:${L.join(Q)}
|
|
38
|
+
`},end(){return d?"":(d=!0,g())}}}var em,tm,rm,eF,tF,sm=h(()=>{Rt();jn();fr();em=[Q,"|"," "],tm=8,rm=/^[A-Za-z0-9_-]+$/,eF=new TextEncoder,tF=new TextDecoder});var J=h(()=>{hp();Rt();jn();jn();Jp();sm()});function Qk(e){return e==="no-op"?0:e==="usage"?2:1}function V(e){return Buffer.from(`${$(Ya(e))}
|
|
39
|
+
`)}function Ya(e){let t={command:e.command,category:e.category,exit_code:e.exitCode??Qk(e.category),error:e.error,help:[e.help]};return e.validFlags&&e.validFlags.length>0&&(t.valid_flags=[...e.validFlags]),e.diagnostics&&(t.diagnostics=Xk(e.diagnostics,3)),t}function ze(e,t,r){let s=([r,t].find(i=>i.trim())??"").trim(),o=s.toLowerCase();return/\bgh\b/.test(e)&&fp(s)?{command:e,category:"transient",error:Un(s)||"GitHub API rate limit exceeded",help:mp,diagnostics:s}:/\bgh\b/.test(e)&&(o.includes("gh_token")||o.includes("not logged in")||o.includes("authentication"))?{command:e,category:"real-error",error:Un(s)||"GitHub authentication failed",help:"gh auth login",diagnostics:s}:o.includes("not a git repository")?{command:e,category:"real-error",error:Un(s)||"not a git repository",help:"git status",diagnostics:s}:o.includes("repository not found")||o.includes("could not resolve host")?{command:e,category:"real-error",error:Un(s)||"repository is unavailable",help:e.startsWith("gh ")?"gh repo view":"git remote -v",diagnostics:s}:{command:e,category:"real-error",error:Un(s)||"command failed",help:`${e} --help`,diagnostics:s}}function om(e,t,r,n){return V({command:e,category:"usage",error:`unknown flag: ${t}`,help:n,validFlags:r})}function Un(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function Xk(e,t){return e.split(/\r?\n/).slice(0,t).join(`
|
|
40
|
+
`).trim()}var at=h(()=>{"use strict";gp();J()});function mo(e){let t={app:e,version:uS(Kr("__RED_BUILD_VERSION__",()=>"3.6.1")??"0.0.0-dev"),gitSha:Kr("__RED_BUILD_GIT_SHA__",()=>"5f73bf02fefcc45a6db23cb383cdf200334eb379")??"unknown",buildTime:Kr("__RED_BUILD_TIME__",()=>"2026-08-05T05:56:23Z")??"unknown",bundleAsset:Kr("__RED_BUNDLE_ASSET__",()=>"rsp.bundle.min.mjs")??"unknown"},r=Kr("__REDDB_SDK_VERSION__",()=>"1.23.1"),n=Kr("__REDDB_BINARY_TAG__",()=>"v1.23.1");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function uS(e){return e.startsWith("v")?e.slice(1):e}function fm(e){return`${e.app} ${e.version} ${e.gitSha}`}function Kr(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Xa=h(()=>{});import{isAbsolute as lS,join as Tt,resolve as Za}from"node:path";function mS(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}function hm(e){return Tt(mS(e),gm)}function ym(e){return Tt(hm(e),"state")}function bm(e){return Tt(hm(e),"tmp")}function X(e){return Tt(ym(e),"rsp")}function fS(e){return Tt(ym(e),"red-skills.rdb")}function gS(e){return Tt(bm(e),"red-skills.rdb")}function Em(e,t){let r=fS(e);if(t(r))return r;let n=gS(e);if(t(n))throw hS();return r}function hS(){return new Error("Legacy shared store found at .red/tmp/red-skills.rdb. Run `rsp setup` to migrate it to .red/state/red-skills.rdb before using rsp, memory, or brain.")}function Rm(e){return Tt(bm(e),"waits")}function km(e){let t=e.overrideEnvVars??ec;for(let n of t){let s=e.env[n];if(s)return lS(s)?s:Za(e.startDir,s)}let r=Za(e.startDir);for(;;){if(e.exists(Tt(r,gm)))return r;let n=Tt(r,".."),s=Za(n);if(s===r)break;r=s}return e.startDir}var gm,dS,pS,ec,wm,_m,Le=h(()=>{gm=".red",dS="MEMORY_ROOT",pS="RED_BRAIN_ROOT",ec=[dS,pS];wm=".red/state/red-skills.rdb";_m=".red/tmp/red-skills.rdb"});function ne(e){return $(e,{keyedMapCollapse:!0})}var yS,bS,NF,vt=h(()=>{J();Le();yS=[{id:"memory.config",plugin:"memory",legacyPath:".red/memory/config.json",toonPath:".red/memory/config.toon",kind:"toon"}],bS=[{id:"dev.afk-history",plugin:"dev",legacyPath:".red/state/afk-history.jsonl",toonPath:".red/state/castle/history.toonl",kind:"toonl"},{id:"dev.agent-log",plugin:"dev",legacyPath:".red/tmp/agent.log.toonl",toonPath:".red/tmp/agent.log.toonl",kind:"toonl"},{id:"dev.supervisor-firehose",plugin:"dev",legacyPath:".red/tmp/afk-supervisor.log.toonl",toonPath:".red/tmp/supervisors/default/supervisor.log.toonl",kind:"toonl",migration:"sniff-read"},{id:"dev.code-understanding-bench-runs",plugin:"dev",legacyPath:".red/tmp/bench/code-understanding/runs.jsonl",toonPath:".red/tmp/bench/code-understanding/runs.toonl",kind:"toonl"},{id:"dev.attempt-state",plugin:"dev",legacyPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",toonPath:".red/tmp/{workers,go-workers,scout-workers}/*/*/afk.state.toon",kind:"toon"},{id:"dev.statusline-count-cache",plugin:"dev",legacyPath:".red/tmp/statusline-cache.json",toonPath:".red/state/statusline/statusline-cache.toon",kind:"toon"},{id:"dev.statusline-repo-cache",plugin:"dev",legacyPath:".red/tmp/statusline-repo-cache.json",toonPath:".red/state/statusline/statusline-repo-cache.toon",kind:"toon"},{id:"dev.rsp-resident-registry",plugin:"dev",legacyPath:".red/state/rsp/rsp-resident.pid.json",toonPath:".red/state/rsp/rsp-resident.pid.json",kind:"toon"},{id:"dev.rsp-status-summary",plugin:"dev",legacyPath:".red/state/rsp/rsp-status-summary.json",toonPath:".red/state/rsp/rsp-status-summary.json",kind:"toon"},{id:"dev.rsp-wait-registry",plugin:"dev",legacyPath:".red/tmp/waits/*.json",toonPath:".red/tmp/waits/*.json",kind:"toon"}],NF=[...yS,...bS]});function Hn(e){let{values:t,rest:r}=dr(e,{query:Sm.query},Tm);return{argv:r,query:t.query?.trim()||void 0}}function vm(e){let{values:t,rest:r}=dr(e,Sm,Tm);return{argv:r,query:t.query?.trim()||void 0,full:t.full===!0}}function wS(e,t){if(!t)return!0;let r=tc(e).toLowerCase();return t.toLowerCase().split(/\s+/).filter(Boolean).every(n=>r.includes(n))}function Re(e,t){return t?e.filter(r=>wS(r,t)):[...e]}function xt(e,t){return rc(e,t,{includeLegacyHelp:!0})}function rc(e,t,r={}){let n=t.filter(Boolean);return n.length===0?e:{...e,...r.includeLegacyHelp?{help:n}:{},next_steps:n}}function tc(e){return Array.isArray(e)?e.map(tc).join(" "):typeof e=="object"&&e!==null?Object.values(e).map(tc).join(" "):String(e??"")}var Sm,Tm,qn=h(()=>{"use strict";Ca();Sm={query:{kind:"value",coerce:e=>e},full:{kind:"boolean"}},Tm={stopAtSeparator:!1}});var Eo={};K(Eo,{DEFAULT_RSP_MAX_OVERHEAD_MS:()=>fo,DEFAULT_RSP_MAX_SELF_STATE_BYTES:()=>go,DEFAULT_RSP_OVERHEAD_CEILING:()=>Ct,DEFAULT_RSP_OVERHEAD_CONSECUTIVE_BREACHES:()=>yo,DEFAULT_RSP_OVERHEAD_COOLDOWN_MS:()=>bo,DEFAULT_RSP_OVERHEAD_NET_LOSS_FLOOR_BYTES:()=>ho,RSP_OVERHEAD_FAMILIES:()=>vS,RSP_OVERHEAD_LEDGER_FILE:()=>Om,RSP_OVERHEAD_SCHEMA_VERSION:()=>Am,classifyOverheadSample:()=>oc,noteChildProcessMs:()=>Im,noteSelfStateBytesRead:()=>Jn,overheadCounters:()=>lc,overheadFamilyDisabled:()=>xS,overheadHealth:()=>qt,overheadLedgerPath:()=>ic,overheadMsOf:()=>Pm,overheadTelemetryFields:()=>wo,readOverheadLedger:()=>Wn,readSelfStateFile:()=>_o,readSelfStateFileSync:()=>AS,recordOverheadSample:()=>ac,resetOverheadCounters:()=>OS,resetOverheadLedger:()=>CS,startChildProcessTimer:()=>Ge});import{existsSync as _S,mkdirSync as ES,readFileSync as xm,renameSync as RS,writeFileSync as kS}from"node:fs";import{readFile as SS}from"node:fs/promises";import{dirname as TS,join as Cm}from"node:path";function Pm(e){let t=e.wrapperMs-e.childMs;return Number.isFinite(t)?Math.max(0,sc(t)):0}function oc(e,t=Ct){let r=Pm(e),n=[];return r>t.maxOverheadMs&&n.push("wall-clock-ceiling"),e.selfStateBytesRead>t.maxSelfStateBytes&&n.push("self-state-byte-ceiling"),e.selfStateBytesRead>t.netLossFloorBytes&&e.selfStateBytesRead>e.bytesSaved&&n.push("overhead-exceeds-savings"),{overhead_ms:r,breached:n.length>0,reasons:n}}function wo(e,t=Ct){let r=oc(e,t);return{wrapper_ms:sc(e.wrapperMs),overhead_ms:r.overhead_ms,child_ms:sc(Math.max(0,e.childMs)),self_state_bytes_read:Math.max(0,Math.trunc(e.selfStateBytesRead)),bytes_saved:Math.max(0,Math.trunc(e.bytesSaved)),overhead_breached:r.breached,overhead_breach_reasons:r.reasons.join(",")}}function ic(e){return Cm(X(e),Om)}function Wn(e){try{let t=xm(ic(e),"utf8"),r=GS(t);if(DS(r))return r}catch{}return{version:1,families:{}}}function ac(e,t,r=Ct,n=Date.now()){let s=Wn(e),o=oc(t,r),i=s.families[t.family]??LS(t.family,n),a=dc(i,n)?Lm(i):i,c=o.breached?a.consecutive_breaches+1:0,u={...a,family:t.family,invocations:a.invocations+1,breaches:a.breaches+(o.breached?1:0),consecutive_breaches:c,breached:o.breached,reasons:o.reasons,last_overhead_ms:o.overhead_ms,last_self_state_bytes_read:Math.max(0,Math.trunc(t.selfStateBytesRead)),last_bytes_saved:Math.max(0,Math.trunc(t.bytesSaved)),updated_at:new Date(n).toISOString()};return o.breached?c>=r.consecutiveBreaches&&(u.disabled=!0,u.disabled_at=new Date(n).toISOString(),u.disabled_until=new Date(n+r.cooldownMs).toISOString(),u.disabled_reason=PS(t.family,c,o,r)):(u.disabled=!1,u.disabled_at=null,u.disabled_until=null,u.disabled_reason=null),s.families[t.family]=u,Gm(e,s),u}function xS(e,t,r=Date.now()){let n=Wn(e).families[t];return!n?.disabled||dc(n,r)?null:n}function CS(e,t){let r=Wn(e);return t?delete r.families[t]:r.families={},Gm(e,r),r}function qt(e,t=Ct,r=Date.now()){let n=Object.values(Wn(e).families).map(a=>dc(a,r)?Lm(a):a).sort((a,c)=>a.family.localeCompare(c.family)),s=n.filter(a=>a.disabled),o=n.filter(a=>a.consecutive_breaches>0),i=s.length>0||o.length>0?"red":"green";return{schema_version:Am,verdict:i,summary:IS(i,s,o),ceiling:t,breaching_families:o,disabled_families:s,families:n}}function Jn(e){Number.isFinite(e)&&e>0&&(cc+=e)}function Im(e){Number.isFinite(e)&&e>0&&(uc+=e)}function lc(){return{selfStateBytesRead:cc,childMs:uc}}function OS(){cc=0,uc=0}function Ge(){let e=process.hrtime.bigint(),t=!1;return()=>{t||(t=!0,Im(Number(process.hrtime.bigint()-e)/1e6))}}async function _o(e){let t=await SS(e,"utf8");return Jn(Buffer.byteLength(t)),t}function AS(e){let t=xm(e,"utf8");return Jn(Buffer.byteLength(t)),t}function PS(e,t,r,n){let s=r.reasons.map(o=>o==="wall-clock-ceiling"?`added ${r.overhead_ms}ms > ${n.maxOverheadMs}ms`:o==="self-state-byte-ceiling"?`self-state read > ${n.maxSelfStateBytes}B`:"self-state read exceeded bytes saved").join("; ");return`rsp ${e} exceeded its overhead ceiling on ${t} consecutive invocations (${s}); wrapper self-disabled, commands pass through raw`}function IS(e,t,r){if(e==="green")return"every wrapper family is inside its overhead ceiling";let n=[];return t.length>0&&n.push(`self-disabled: ${t.map(s=>`${s.family} (${s.reasons.join(",")||"ceiling"})`).join(", ")}`),r.length>0&&n.push(`breaching: ${r.map(s=>`${s.family} x${s.consecutive_breaches}`).join(", ")}`),n.join("; ")}function dc(e,t){if(!e.disabled||!e.disabled_until)return!1;let r=Date.parse(e.disabled_until);return Number.isFinite(r)&&r<=t}function Lm(e){return{...e,disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,consecutive_breaches:0,breached:!1,reasons:[]}}function LS(e,t){return{family:e,invocations:0,breaches:0,consecutive_breaches:0,breached:!1,reasons:[],disabled:!1,disabled_at:null,disabled_until:null,disabled_reason:null,last_overhead_ms:0,last_self_state_bytes_read:0,last_bytes_saved:0,updated_at:new Date(t).toISOString()}}function Gm(e,t){try{let r=ic(e);if(!_S(Cm(e,".red")))return;ES(TS(r),{recursive:!0});let n=`${r}.${process.pid}.tmp`;kS(n,`${$(t)}
|
|
41
|
+
`,{encoding:"utf8",mode:384}),RS(n,r)}catch{}}function GS(e){try{return JSON.parse(e)}catch{return H(e)}}function DS(e){return!nc(e)||e.version!==1||!nc(e.families)?!1:Object.values(e.families).every($S)}function $S(e){return nc(e)&&typeof e.family=="string"&&typeof e.consecutive_breaches=="number"&&typeof e.disabled=="boolean"}function nc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function sc(e){return Number.isFinite(e)?Math.round(e*1e3)/1e3:0}var Om,Am,fo,go,ho,yo,bo,vS,Ct,cc,uc,ae=h(()=>{"use strict";Le();J();Om="overhead-budget.toon",Am="red.rsp.overhead.v1",fo=250,go=1024*1024,ho=64*1024,yo=3,bo=6*60*60*1e3,vS=["git","gh","gh-api-json","vitest","cargo","cat","exec","proxy"],Ct={maxOverheadMs:fo,maxSelfStateBytes:go,netLossFloorBytes:ho,consecutiveBreaches:yo,cooldownMs:bo};cc=0,uc=0});function Nm(e){return e.trimStart().startsWith("{")?"json":"toon"}function mc(e){let t=0;for(;e[t]===`
|
|
42
|
+
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=Nm(r);if(n==="json"){let o=r.indexOf(`
|
|
43
43
|
`);return o<0?null:{frame:r.slice(0,o),dialect:n,rest:r.slice(o+1)}}let s=r.indexOf(`
|
|
44
44
|
|
|
45
|
-
`);return s<0?null:{frame:r.slice(0,s+1),dialect:n,rest:r.slice(s+2)}}function
|
|
45
|
+
`);return s<0?null:{frame:r.slice(0,s+1),dialect:n,rest:r.slice(s+2)}}function fc(e){let t=Nm(e)==="json"?pc:Dm,r=t===pc?Dm:pc;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function pc(e){return JSON.parse(e)}function Dm(e){return H(e)}function gc(e,t){if(t==="toon"){let r=FS(e);if(r!==null)return r.endsWith(`
|
|
46
46
|
`)?`${r}
|
|
47
47
|
`:`${r}
|
|
48
48
|
|
|
49
49
|
`}return`${JSON.stringify(e)}
|
|
50
|
-
`}function
|
|
51
|
-
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:c,reaped:i};let u=await
|
|
52
|
-
`,1)[0]?.trim()??"";if(!t.startsWith(
|
|
50
|
+
`}function FS(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=$(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function Fm(e,t){return!$m(e)||!$m(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function $m(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Bm(e){return Mm.has(e)?"json":NS}function jm(e){Mm.add(e)}var NS,Mm,Um=h(()=>{J();NS="toon";Mm=new Set});import{createHash as MS}from"node:crypto";import{constants as hc}from"node:fs";import{mkdir as qm,open as BS,readFile as jS,rm as Wm,stat as US}from"node:fs/promises";import{createConnection as HS}from"node:net";import{tmpdir as qS}from"node:os";import{dirname as Jm,join as Vn}from"node:path";async function Vm(e,t,r="resident server"){let n=e.wire,s=n??Bm(e.socketPath),o=await Hm(e,t,r,s);return n||s==="json"||!Fm(t,o)?o:(jm(e.socketPath),await Hm(e,t,r,"json"))}async function Hm(e,t,r,n){let s=e.timeoutMs??1e3;return await new Promise((o,i)=>{let a=HS(e.socketPath),c=!1,u="",l=setTimeout(()=>{d(()=>i(new Error(`${r} timed out`))),a.destroy()},s);function d(p){c||(c=!0,clearTimeout(l),p())}a.on("connect",()=>{a.write(gc(t,n))}),a.on("data",p=>{u+=p.toString("utf8");let g=mc(u);g&&(u=g.rest,d(()=>{try{o(fc(g.frame))}catch(f){i(f)}}),a.end())}),a.on("error",p=>d(()=>i(p))),a.on("close",()=>{c||d(()=>i(new Error(`${r} closed without response`)))})})}function Km(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",s=>{n+=s;let o=mc(n);if(!o)return;n=o.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(gc(a,o.dialect))}catch{}};(async()=>{let a;try{a=fc(o.frame),await t(a,i)}catch(c){r(c,a,i)}finally{e.end()}})()})}async function yc(e){await qm(Jm(e),{recursive:!0,mode:448});try{return await BS(e,hc.O_CREAT|hc.O_EXCL|hc.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}async function Ym(e,t={}){let r=t.maxAgeMs??JS,n=t.now??Date.now,s=t.pid??process.pid,o=t.isPidAlive??Wt;await qm(Jm(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let c=await yc(e);if(c)return await c.writeFile(`${zm} pid=${s} taken=${new Date(n()).toISOString()}
|
|
51
|
+
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:c,reaped:i};let u=await zS(e),l=await QS(e,u,n());if(a>=VS||l==null)return{acquired:!1,lockPath:e,holder:u,ageMs:l};let d=KS(u,l,r,o);if(d==null)return{acquired:!1,lockPath:e,holder:u,ageMs:l};let p={lockPath:e,reason:d,holder:u,ageMs:l};await Wm(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function Qm(e){await e.handle.close().catch(()=>{}),await Wm(e.lockPath,{force:!0})}function KS(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function Xm(e){let t=e.ageMs==null?"of unknown age":`taken ${Math.round(e.ageMs/1e3)}s ago`,r=e.holder==null?"an owner it does not name":`pid ${e.holder.pid} (at ${e.holder.takenAt})`;return`no spawn was attempted: the spawn lock ${JSON.stringify(e.lockPath)} is held by ${r}, ${t}. If that process is gone, remove the file to clear it`}async function zS(e){try{return YS(await jS(e,"utf8"))}catch{return null}}function YS(e){let t=e.split(`
|
|
52
|
+
`,1)[0]?.trim()??"";if(!t.startsWith(zm))return null;let r=Number(/\bpid=(\d+)\b/.exec(t)?.[1]??""),n=/\btaken=(\S+)/.exec(t)?.[1]??"";return!Number.isInteger(r)||r<=0||!Number.isFinite(Date.parse(n))?null:{pid:r,takenAt:n}}async function QS(e,t,r){let n=t==null?Number.NaN:Date.parse(t.takenAt);if(Number.isFinite(n))return Math.max(0,r-n);try{return Math.max(0,r-(await US(e)).mtimeMs)}catch{return null}}function Wt(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function bc(e,t=1e3){if(!Wt(e))return;try{process.kill(e,"SIGTERM")}catch{return}let r=Date.now()+t;for(;Date.now()<r;){if(!Wt(e))return;await new Promise(n=>setTimeout(n,50))}try{process.kill(e,"SIGKILL")}catch{}}function Zm(e){let t=e.env??process.env,r=MS("sha256").update(e.key).digest("hex").slice(0,20),n=c=>Vn(c,e.socketFileName).length<WS,s=t.XDG_RUNTIME_DIR;if(s){let c=Vn(s,"red-skills",r);if(n(c))return c}let o=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Vn(`red-skills-${o}`,r),a=Vn(qS(),i);return n(a)||process.platform==="win32"?a:Vn(XS,i)}var WS,JS,zm,VS,XS,Ro=h(()=>{Um();WS=108;JS=6e4,zm="resident-spawn-lock v1",VS=3;XS="/tmp"});async function zr(e,t){return await Vm(e,t,"resident rsp server")}var wc=h(()=>{Ro()});var ef=h(()=>{"use strict";wc()});import{existsSync as ZS,readdirSync as eT}from"node:fs";import{homedir as tT}from"node:os";import{basename as Ec,dirname as _c,join as Me,resolve as ko}from"node:path";function rT(e){return"command"in e}function So(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??ZS,s=t.execPath??process.execPath,o=t.execArgv??process.execArgv,i=t.callerEntry===void 0?process.argv[1]:t.callerEntry,a=(u,l)=>({command:s,args:[...o,u],source:l});if(r.RSP_BIN)return{command:r.RSP_BIN,args:[],source:"env-rsp-bin"};if(i&&oT(i))return a(ko(i),"caller-entry");let c=[];for(let[u,l]of aT(i,t.rootDir,r,t.listDir??dT))if(c.push(u),n(u))return a(u,l);return{diagnostic:Ot,searched:c,...i?{callerEntry:ko(i)}:{}}}function rf(e={},t={}){let r=So(e,t);if(rT(r))return r;throw new Yr(r)}function oT(e){let t=Ec(e);return t===gr||Rc.test(t)||t==="rsp"||t==="rsp.mjs"||t==="rsp.js"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:iT(ko(e))}function iT(e){let t=_c(e);for(let r=0;r<4;r++){if(Ec(t)==="rsp")return!0;let n=_c(t);if(n===t)return!1;t=n}return!1}function*aT(e,t,r,n){if(e){let o=_c(ko(e));yield[Me(o,gr),"caller-sibling-bundle"];let i=nT.exec(Ec(e));i&&(yield[Me(o,`rsp-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Me(o,"..","dist",gr),"caller-sibling-bundle"]}for(let o of sT){let i=r[o];i&&(yield[Me(i,"dist",gr),"plugin-root-bundle"],yield[Me(i,"..","..","dist",gr),"plugin-root-bundle"])}t&&(yield[Me(t,"dist",gr),"repo-bundle"],yield[Me(t,"apps","rsp","dist","cli.js"),"workspace-entry"],yield[Me(t,"node_modules","@reddb-io","rsp","dist","cli.js"),"node-modules-entry"]);let s=cT(r);yield[Me(s,gr),"bundle-cache"];for(let o of uT(s,n))yield[Me(s,o),"bundle-cache"]}function cT(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Me(e.HOME||tT(),".cache");return Me(t,"red-skills","bundles")}function uT(e,t){return t(e).filter(r=>Rc.test(r)).sort((r,n)=>lT(tf(n),tf(r)))}function tf(e){return Rc.exec(e)?.[1]??""}function lT(e,t){let r=o=>o.split(".").map(i=>Number.parseInt(i,10)),[n,s]=[r(e),r(t)];for(let o=0;o<Math.max(n.length,s.length);o++){let[i,a]=[n[o],s[o]];if(Number.isNaN(i)||i===void 0)return Number.isNaN(a)||a===void 0?e.localeCompare(t):-1;if(Number.isNaN(a)||a===void 0)return 1;if(i!==a)return i-a}return 0}function dT(e){try{return eT(e)}catch{return[]}}var Ot,Yr,gr,nT,Rc,sT,kc=h(()=>{Ot="rsp-resident-entry-unresolved";Yr=class extends Error{code=Ot;searched;callerEntry;constructor(t){super(`${Ot}: no rsp entrypoint found for the resident auto-spawn${t.callerEntry?` (caller entry: ${t.callerEntry})`:""}
|
|
53
53
|
searched:
|
|
54
54
|
${t.searched.map(r=>` ${r}`).join(`
|
|
55
|
-
`)}`),this.name="RspResidentEntryError",this.searched=t.searched,this.callerEntry=t.callerEntry}},gr="rsp.bundle.min.mjs",
|
|
56
|
-
`)});if(r.acquired)try{if(await
|
|
57
|
-
`,{encoding:"utf8",mode:384}),await
|
|
55
|
+
`)}`),this.name="RspResidentEntryError",this.searched=t.searched,this.callerEntry=t.callerEntry}},gr="rsp.bundle.min.mjs",nT=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Rc=/^rsp-(.+)\.bundle\.min\.mjs$/,sT=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});import{randomUUID as cf}from"node:crypto";import{spawn as uf}from"node:child_process";import{readFileSync as pT}from"node:fs";import{mkdir as vc,readFile as lf,rename as mT,rm as Pt,stat as fT,writeFile as gT}from"node:fs/promises";import{dirname as hr,join as At,resolve as xc}from"node:path";import{fileURLToPath as hT}from"node:url";function ct(e){let t=CT(e)??xc(e),r=xT(t),n=X(t);return{rootDir:t,socketPath:At(r,"rsp.sock"),pidPath:At(r,"rsp.pid"),lockPath:At(r,"rsp.lock"),wakeLockPath:At(t,".red","tmp","rsp","wake.lock"),summaryPath:At(n,"rsp-status-summary.json"),registryPath:At(n,"rsp-resident.pid.json")}}async function To(e,t){if(await vc(hr(e.socketPath),{recursive:!0,mode:448}),await of(e.socketPath,t))return;await sf(e,t);let r=await Ym(e.lockPath,{onReap:n=>process.stderr.write(`rsp: reaped the resident spawn lock ${JSON.stringify(n.lockPath)} (${n.reason}, ${Math.round(n.ageMs/1e3)}s old)
|
|
56
|
+
`)});if(r.acquired)try{if(await of(e.socketPath,t))return;await sf(e,t),await wT(e.socketPath);let n=ET(e,t);await nf(e.socketPath,n);return}finally{await Qm(r)}try{await nf(e.socketPath)}catch(n){throw new Error(`${n instanceof Error?n.message:String(n)}; ${Xm(r)}`)}}async function yr(e,t=200){try{return await pf(e,t)!=null}catch{return!1}}async function pf(e,t=200){let r=await zr({socketPath:e,timeoutMs:t},{id:cf(),op:"ping"});return r.ok?yf(r.value)?{version:IT(r.value.version)}:{}:null}async function vo(e,t){if(await vc(hr(e.socketPath),{recursive:!0,mode:448}),await yr(e.socketPath,50))return!1;let r=await _T(e.wakeLockPath);if(!r)return!1;await r.close();let[n,s]=gf(e,t);return uf(n,[...s,"warm-resident","--socket",e.socketPath,"--pid-file",e.pidPath,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours??6),"--byte-budget",String(t.byteBudget),"--telemetry-ttl-days",String(t.telemetryTtlDays??90),"--telemetry-byte-budget",String(t.telemetryByteBudget??t.byteBudget),"--telemetry-drain-interval-ms",String(t.telemetryDrainIntervalMs??3e4),"--telemetry-drain-timeout-ms",String(t.telemetryDrainTimeoutMs??2e3),"--idle-ms",String(t.idleMs??3e5),"--resident-version",t.clientVersion??"0.0.0-dev","--registry",e.registryPath,"--wake-lock",e.wakeLockPath],{cwd:e.rootDir,detached:!0,stdio:"ignore",env:{...process.env,RSP_RESIDENT_WARMER:"1"}}).unref(),!0}async function mf(e,t){try{await To(e,t)}finally{await Pt(e.wakeLockPath,{force:!0})}}async function zn(e){try{let t=ST(await lf(e,"utf8"));return LT(t)?t:null}catch{return null}}async function xo(e,t){let r={version:df,pid:t.pid??process.pid,socket_path:t.socket_path,store_uri:t.store_uri,resident_version:t.resident_version,started_at:t.started_at??new Date().toISOString()};await vc(hr(e),{recursive:!0});let n=`${e}.${process.pid}.${Date.now()}.tmp`;await gT(n,`${$(r)}
|
|
57
|
+
`,{encoding:"utf8",mode:384}),await mT(n,e)}async function Co(e,t=process.pid){try{let r=await zn(e);if(r&&r.pid!==t)return;await Pt(e,{force:!0})}catch{}}async function Kn(e){let t=await zn(e.registryPath);if(!t)try{return await lf(e.registryPath,"utf8"),{registry_path:e.registryPath,state:"invalid"}}catch{return{registry_path:e.registryPath,state:"missing"}}if(!Wt(t.pid))return{registry_path:e.registryPath,state:"registered-dead",entry:t};let r=await yr(t.socket_path,100);return r&&await vT(t.store_uri)?{registry_path:e.registryPath,state:"registered-alive-store-missing",entry:t}:{registry_path:e.registryPath,state:r?"registered-alive-socket-healthy":"registered-alive-socket-dead",entry:t}}async function ff(e){let t=await Kn(e);return t.state==="registered-dead"||t.state==="invalid"?(await Pt(e.registryPath,{force:!0}),await Kn(e)):(t.state==="registered-alive-socket-dead"||t.state==="registered-alive-store-missing")&&t.entry?(await bc(t.entry.pid),await Pt(e.registryPath,{force:!0}),await Pt(t.entry.socket_path,{force:!0}),await Kn(e)):t}async function nf(e,t){let r=Date.now()+bT(),n;for(;Date.now()<r;){if(await yr(e))return;if(t){let s=t.spawnError();if(s)throw new Error(Sc("resident rsp server spawn failed",t,s));if(t.child.exitCode!=null||t.child.signalCode!=null)throw new Error(Sc("resident rsp server exited before ready",t))}await new Promise(s=>setTimeout(s,50))}throw n instanceof Error?n:new Error(t?Sc("resident rsp server did not start",t):"resident rsp server did not start")}function bT(){let e=Number(process.env.RSP_RESIDENT_READY_TIMEOUT_MS??"");return Number.isFinite(e)&&e>0?e:yT}async function wT(e){await Pt(e,{force:!0})}function ET(e,t){let[r,n]=gf(e,t),s=process.env.RSP_DEBUG==="1",o,i="",a=uf(r,[...n,"server","--socket",e.socketPath,"--pid-file",e.pidPath,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours??6),"--byte-budget",String(t.byteBudget),"--telemetry-ttl-days",String(t.telemetryTtlDays??90),"--telemetry-byte-budget",String(t.telemetryByteBudget??t.byteBudget),"--telemetry-drain-interval-ms",String(t.telemetryDrainIntervalMs??3e4),"--telemetry-drain-timeout-ms",String(t.telemetryDrainTimeoutMs??2e3),"--idle-ms",String(t.idleMs??3e5),"--resident-version",t.clientVersion??"0.0.0-dev","--registry",e.registryPath],{cwd:e.rootDir,detached:!0,stdio:s?["ignore","ignore","pipe"]:"ignore",env:{...process.env,RSP_RESIDENT_SERVER:"1"}});return a.on("error",c=>{o=c}),s&&(a.stderr?.setEncoding("utf8"),a.stderr?.on("data",c=>{i=kT(`${i}${c}`,RT)})),a.unref(),{child:a,stderrTail:()=>i,spawnError:()=>o}}function Sc(e,t,r){let n=[e];r&&n.push(`error: ${r.message}`),t.child.exitCode!=null&&n.push(`exit code: ${t.child.exitCode}`),t.child.signalCode!=null&&n.push(`signal: ${t.child.signalCode}`);let s=t.stderrTail().trimEnd();return s&&n.push(`stderr tail:
|
|
58
58
|
${s}`),n.join(`
|
|
59
|
-
`)}function
|
|
59
|
+
`)}function kT(e,t){let r=Buffer.byteLength(e,"utf8");return r<=t?e:Buffer.from(e,"utf8").subarray(r-t).toString("utf8").replace(/^\uFFFD+/,"")}function ST(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return H(t)}}async function sf(e,t){try{let r=await zn(e.registryPath);if(!r||r.socket_path!==e.socketPath||r.store_uri!==t.storeUri)return;if(!Wt(r.pid)){await Pt(e.registryPath,{force:!0});return}if(await yr(r.socket_path,100))return;if(hf(t.clientVersion,r.resident_version)&&(await TT(r.pid,1500),!Wt(r.pid))){await Pt(e.registryPath,{force:!0});return}await bc(r.pid),await Pt(e.registryPath,{force:!0})}catch{}}async function TT(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(!Wt(e))return;await new Promise(n=>setTimeout(n,50))}}async function vT(e){if(!e.startsWith("file://"))return!1;try{return await fT(hT(e)),!1}catch(t){return t.code==="ENOENT"}}function gf(e,t){let r=rf(t,{rootDir:e.rootDir});return[r.command,r.args]}function xT(e){return Zm({key:e,socketFileName:"rsp.sock"})}function CT(e){let t=xc(e);for(let r=0;r<32;r++){try{let s=Tc(At(t,".git"));if(s!=null)return OT(t,s)??t;if(Tc(At(t,".git","HEAD"))!=null||Tc(At(t,".red","config.yaml"))!=null)return t}catch{}let n=hr(t);if(n===t)return null;t=n}return null}function OT(e,t){let r=/^gitdir:\s*(.+?)\s*$/m.exec(t);if(!r)return null;let n=xc(e,r[1]);return/[/\\]worktrees[/\\][^/\\]+$/.test(n)?hr(hr(hr(n))):null}function Tc(e){try{return pT(e,"utf8")}catch{return null}}async function of(e,t){let r=await pf(e).catch(()=>null);return r?hf(t.clientVersion,r.version)?(await AT(e,t.clientVersion),await GT(e),!1):!0:!1}async function AT(e,t){try{await zr({socketPath:e,timeoutMs:200},{id:cf(),op:"handover",clientVersion:t})}catch{}}function hf(e,t){return!e||!t?!1:PT(e,t)>0}function PT(e,t){let r=af(e),n=af(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}function af(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3])}:null}function yf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function IT(e){return typeof e=="string"&&e.length>0?e:void 0}function LT(e){return yf(e)&&e.version===df&&Number.isInteger(e.pid)&&typeof e.socket_path=="string"&&typeof e.store_uri=="string"&&typeof e.resident_version=="string"&&typeof e.started_at=="string"}async function GT(e){let t=Date.now()+1e3;for(;Date.now()<t;){if(!await yr(e,50))return;await new Promise(r=>setTimeout(r,50))}}var df,yT,_T,RT,Oo=h(()=>{J();Le();Ro();wc();kc();kc();df=1,yT=5e3;_T=yc;RT=8*1024});var br={};K(br,{RSP_ENTRY_UNRESOLVED:()=>Ot,ResidentRspElisionStore:()=>Yn,RspResidentEntryError:()=>Yr,ensureResidentServer:()=>To,kickResidentServer:()=>vo,pingResident:()=>yr,readResidentRegistry:()=>zn,removeResidentRegistry:()=>Co,residentRegistryStatus:()=>Kn,resolveResidentPaths:()=>ct,resolveRspEntry:()=>So,sweepResidentRegistry:()=>ff,warmResidentServer:()=>mf,writeResidentRegistry:()=>xo});import{randomUUID as DT}from"node:crypto";function bf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Yn,ut=h(()=>{"use strict";ef();Oo();Yn=class{constructor(t,r,n={}){this.paths=t;this.config=r;this.opts=n}metrics;lastResponseMetrics(){return this.metrics}async mint(t,r){let s=(await this.request({op:"mint",original:Buffer.from(t).toString("base64"),meta:r})).handle;if(!s?.startsWith("el:"))throw new Error("resident rsp returned invalid handle");return s}async get(t){let r=await this.request({op:"get",handle:t});return r?bf(r)&&r.status==="expired"?r:!bf(r)||typeof r.original!="string"?null:{...r,original:Buffer.from(r.original,"base64")}:null}async stats(){return await this.request({op:"stats"})}async recoveryHandles(t=5){return await this.request({op:"recovery-handles",limit:t})}async accountingStats(t){return await this.request({op:"accounting-stats",byteBudget:t})}async telemetryStats(t){return await this.request({op:"telemetry-stats",sinceDays:t})}async telemetryGains(t){return await this.request({op:"telemetry-gains",sinceDays:t})}async memory(t,r){return await this.request({op:"memory",action:t,payload:r})}async githubRead(t){return await this.request({op:"github-read",args:[...t.args],path:t.path,actor:t.actor,...t.params?{params:{...t.params}}:{}})}async close(){}async request(t){this.opts.ensureResident!==!1&&await To(this.paths,this.config);let r=await zr(this.paths,{...t,id:DT()});if(!r.ok)throw new Error(r.error);return this.metrics={storeOpenCount:r.storeOpenCount,storeElapsedMs:r.storeElapsedMs},r.value}}});function Oc(e,t,r=wf){let n=Math.max(0,Math.floor(e)),s=r in _f?r:wf,o=_f[s],i=t?Math.floor(n*(1-.25)):null,a=t?Math.ceil(n*(1+.25)):null;return{tokens_saved:n,tokens_saved_estimated:t,token_estimate_range_pct:t?.25:null,tokens_saved_low:i,tokens_saved_high:a,dollars_saved_estimate_usd:Cc(n,o),dollars_saved_low_usd:i==null?null:Cc(i,o),dollars_saved_high_usd:a==null?null:Cc(a,o),pricing_model_family:s,pricing_input_usd_per_million_tokens:o,pricing_note:$T}}function Cc(e,t){return NT(Math.max(0,e)/1e6*t)}function Qn(e){return`$${e.toFixed(6)}`}function NT(e){return Math.round(e*1e6)/1e6}var wf,_f,$T,Ac=h(()=>{"use strict";wf="gpt-5",_f={"gpt-5":1.25,"gpt-5-mini":.25,"gpt-5-nano":.05,"gpt-4.1":2,"gpt-4.1-mini":.4,"gpt-4o":2.5,"gpt-4o-mini":.15,"claude-opus-4.1":15,"claude-opus-4":15,"claude-sonnet-4.5":3,"claude-sonnet-4":3,"claude-haiku-4.5":1,"claude-haiku-3.5":.8},$T="estimate derived from byte-based token estimate when token counts are estimated"});var Zn={};K(Zn,{isResidentEntryUnresolved:()=>kf,reportResidentEntryDiagnostic:()=>Pc,residentConfigFor:()=>Rf,residentElisionStore:()=>Xn});function Rf(e,t){return{storeUri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,telemetryTtlDays:e.telemetryTtlDays,telemetryByteBudget:e.telemetryByteBudget,telemetryDrainIntervalMs:e.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:e.telemetryDrainTimeoutMs,idleMs:e.idleMs,...t?{clientVersion:t}:{}}}function Xn(e,t,r={}){let n=r.paths??ct(e);return new Yn(n,Rf(t,mo("rsp").version),{ensureResident:r.ensureResident})}function Pc(e){return kf(e)?(Ef||(Ef=!0,process.stderr.write(`rsp: ${Ot} \u2014 elision is off until an rsp entry is installed
|
|
60
60
|
`),process.env.RSP_DEBUG==="1"&&e instanceof Error&&process.stderr.write(`${e.message}
|
|
61
|
-
`)),!0):!1}function
|
|
62
|
-
`)}async function
|
|
63
|
-
`:`${
|
|
64
|
-
`}var
|
|
65
|
-
`)){let s=n.replace(/\r$/,""),o=s.trim();if(!o||o.startsWith("#"))continue;let i=s.indexOf(":");if(i<0)continue;let a=s.length-s.trimStart().length,c=s.slice(0,i).trim();if(!c)continue;let u=s.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:c}),u&&r.map(
|
|
66
|
-
`,{encoding:"utf8",mode:384}),await kv(r,e)}catch(n){throw await Jf(r,{force:!0}),n}}function Av(e){if(!/^[A-Za-z0-9_-]{1,128}$/.test(e))throw new Error(`unsafe gh etag cache key: ${e}`);return e}function eg(e){try{return JSON.parse(e)}catch{return H(e)}}function Pv(e){return qc(e)&&e.version===1&&qc(e.entries)&&Object.values(e.entries).every(Uo)}function Uo(e){return qc(e)&&typeof e.key=="string"&&typeof e.request=="string"&&typeof e.etag=="string"&&typeof e.body=="string"&&typeof e.updated_at=="string"}function qc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var zf,Yf,Qf,cn,Hc,us=h(()=>{"use strict";$e();W();oe();zf="gh-etag",Yf="gh-etag-cache.toon",Qf="gh-etag-cache.json",cn=4*1024*1024;Hc=new Set});var ag={};K(ag,{DEFAULT_RSP_BYTE_BUDGET:()=>Qe,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Ye,DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>It,DEFAULT_RSP_IDLE_MS:()=>Wo,DEFAULT_RSP_MEASUREMENT_HOLDOUT_SHARE:()=>ig,DEFAULT_RSP_STORE_PATH:()=>Qc,DEFAULT_RSP_TELEMETRY_BYTE_BUDGET:()=>qo,DEFAULT_RSP_TELEMETRY_DRAIN_INTERVAL_MS:()=>ng,DEFAULT_RSP_TELEMETRY_DRAIN_TIMEOUT_MS:()=>sg,DEFAULT_RSP_TELEMETRY_TTL_DAYS:()=>Ho,DEFAULT_RSP_TTL_DAYS:()=>ze,MIN_RSP_IDLE_MS:()=>og,resolveRspConfig:()=>Xe});import{existsSync as Iv,readFileSync as Lv}from"node:fs";import{join as Dv,resolve as rg}from"node:path";function Xe(e,t,r){let n=qf(rg(e),Dv(".red","config.yaml")),s=n?Lv(n,"utf8"):"",o=Fo(s,"rsp.enabled")==="true",i=Fo(s,"rsp.proxy.enabled"),a=i===void 0?o:i==="true",c=Se(ce(s,"rsp.ttlDays"),ze),u=Se(mt(t.RSP_EPHEMERAL_TTL_HOURS)??ce(s,"rsp.ephemeralTtlHours"),Ye),l=Se(ce(s,"rsp.byteBudget"),Qe),p=Se(ce(s,"rsp.telemetryTtlDays"),Ho),d=Se(ce(s,"rsp.telemetryByteBudget")??ce(s,"rsp.byteBudget"),qo),g=Se(mt(t.RSP_TELEMETRY_DRAIN_INTERVAL_MS)??ce(s,"rsp.telemetryDrainIntervalMs"),ng),f=Se(mt(t.RSP_TELEMETRY_DRAIN_TIMEOUT_MS)??ce(s,"rsp.telemetryDrainTimeoutMs"),sg),k=Gv(mt(t.RSP_IDLE_MS)??ce(s,"rsp.idleMs"),Wo,og),E=Se(mt(t.RSP_HEAVY_GIT_BYTE_THRESHOLD)??ce(s,"rsp.heavyGitByteThreshold"),It),y=$v(mt(t.RSP_MEASUREMENT_HOLDOUT_SHARE)??ce(s,"rsp.measurement.holdoutShare"),ig),_=Se(mt(t.RSP_GH_ETAG_CACHE_MAX_BYTES)??ce(s,"rsp.ghEtagCacheMaxBytes"),cn),T={maxOverheadMs:Se(mt(t.RSP_MAX_OVERHEAD_MS)??ce(s,"rsp.overhead.maxOverheadMs"),po),maxSelfStateBytes:Se(mt(t.RSP_MAX_SELF_STATE_BYTES)??ce(s,"rsp.overhead.maxSelfStateBytes"),mo),netLossFloorBytes:Se(ce(s,"rsp.overhead.netLossFloorBytes"),fo),consecutiveBreaches:Se(mt(t.RSP_OVERHEAD_CONSECUTIVE_BREACHES)??ce(s,"rsp.overhead.consecutiveBreaches"),go),cooldownMs:Se(ce(s,"rsp.overhead.cooldownMs"),ho)},v=lt(e).rootDir,G=r??t.RSP_STORE_URI??`file://${lm(rg(v),Iv)}`;return{enabled:o,proxyEnabled:a,storeUri:G,ttlDays:c,ephemeralTtlHours:u,byteBudget:l,telemetryTtlDays:p,telemetryByteBudget:d,telemetryDrainIntervalMs:g,telemetryDrainTimeoutMs:f,idleMs:k,heavyGitByteThreshold:E,measurementHoldoutShare:y,ghEtagCacheMaxBytes:_,overhead:T}}function ce(e,t){let r=Fo(e,t);if(r==null)return;let n=Number(r);return Number.isFinite(n)?n:void 0}function Se(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function Gv(e,t,r){let n=Se(e,t);return Math.max(n,r)}function $v(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e<=0?0:e>=1?1:e}function mt(e){if(e==null||e.trim()==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}var It,Qc,ze,Ye,Qe,Ho,qo,ng,sg,Wo,og,ig,Ze=h(()=>{"use strict";Wf();$e();xo();oe();us();It=8*1024,Qc=cm,ze=7,Ye=6,Qe=64*1024*1024,Ho=90,qo=4*1024*1024,ng=3e4,sg=2e3,Wo=5*6e4,og=5e3,ig=0});function cg(e,t=process.env){return{async mint(r,n){let{residentElisionStore:s}=await Promise.resolve().then(()=>(wr(),es)),o=s(e,Xe(e,t));try{return await o.mint(r,n)}finally{await o.close()}}}}var ug=h(()=>{"use strict";Ze()});import{spawn as Nv}from"node:child_process";async function dg(e){let{commandLine:t,options:r,cwd:n,registryPath:s,entry:o,signal:i}=e;if(!t.trim())return{verdict:fe("missing command line")};let a=e.store??cg(n),c=Uf(e.spoolDir,o.id,r.captureBytes);return await new Promise(u=>{let l=!1,p=!1,d=async y=>{l||(l=!0,i.removeEventListener("abort",k),await Lo(s,o,y.verdict.status).catch(()=>{}),u(y))},g=Nv(t,{cwd:n,shell:!0,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"});g.stdout?.on("data",y=>c.stdout.write(Buffer.from(y))),g.stderr?.on("data",y=>c.stderr.write(Buffer.from(y)));let f=async(y,_)=>{if(l||p)return;p=!0,clearTimeout(E);let T=await Zr(g,r.terminateGraceMs),v=await lg(null,null,c,a,t);await d({verdict:{status:y,exitCode:2,summary:_,details:v},cleanupProven:T.cleaned,survivors:T.survivors})},k=()=>void f("indeterminate","command interrupted");i.addEventListener("abort",k,{once:!0});let E=setTimeout(()=>{f("timeout",`command timed out after ${pg(r.timeoutMs)}`)},r.timeoutMs);g.once("error",y=>{clearTimeout(E),c.stdout.discard(),c.stderr.discard(),d({verdict:{status:"failure",exitCode:1,summary:y.message}})}),g.once("close",(y,_)=>{if(clearTimeout(E),l||p)return;let T=y===0;lg(y,_,c,a,t).then(v=>d({verdict:{status:T?"success":"failure",exitCode:T?0:1,summary:T?"command exited successfully":`command exited with ${_??y??"unknown"}`,details:v}}))}),i.aborted&&k()})}async function Jo(e){let{probe:t,timeoutMs:r,baseSleepMs:n,registryPath:s,entry:o,signal:i}=e,a=Date.now()+r,c=0,u;for(;Date.now()<a;){if(i.aborted)return{verdict:Fv(u,c,o.last_poll_at)};let l;try{l=await t()}catch(k){l=fe(k instanceof Error?k.message:String(k))}if(u=l,o.attempts=++c,o.last_poll_at=new Date().toISOString(),o.last_observation=Xc(l),await rn(s,o).catch(()=>{}),l.status!=="running"&&l.status!=="indeterminate")return await Lo(s,o,l.status).catch(()=>{}),{verdict:l};let p=Math.min(n*4,Math.round(n*Math.pow(1.25,c-1))),d=Math.floor(Math.random()*1e3),g=Math.min(p+d,Math.max(0,a-Date.now())),f=e.makeWakeSignal?.();await Mv(g,i,f)}return await Lo(s,o,"timeout").catch(()=>{}),{verdict:{status:"timeout",exitCode:2,summary:`timed out after ${pg(r)}`,details:u?{attempts:c,last_poll_at:o.last_poll_at??null,last_observation:Xc(u)}:{attempts:c}}}}async function lg(e,t,r,n,s){let[o,i]=await Promise.all([r.stdout.finish(n,`${s} # stdout`),r.stderr.finish(n,`${s} # stderr`)]);return{status:e??null,signal:t??null,stdout:o,stderr:i}}function Xc(e){return{status:e.status,exit_code:e.exitCode,summary:e.summary,...e.details?{details:e.details}:{}}}function Fv(e,t,r){return fe("wait interrupted",{attempts:t,last_poll_at:r??null,...e?{last_observation:Xc(e)}:{}})}async function Mv(e,t,r){t.aborted||e<=0||r?.aborted||await new Promise(n=>{let s=setTimeout(o,e);function o(){clearTimeout(s),t.removeEventListener("abort",i),r?.removeEventListener("abort",a),n()}let i=()=>o(),a=()=>o();t.addEventListener("abort",i,{once:!0}),r?.addEventListener("abort",a,{once:!0})})}function pg(e){return e%36e5===0?`${e/36e5}h`:e%6e4===0?`${e/6e4}m`:e%1e3===0?`${e/1e3}s`:`${e}ms`}var mg=h(()=>{"use strict";Hf();ug();_r();Pt();is()});var Zc,eu,tu,Ce,he,Fe,ft,ls,Vo=h(()=>{"use strict";Zc="rsp-telemetry.spool.toonl",eu="rsp-telemetry.spool.jsonl",tu="rsp-telemetry.spool.corrections.toonl",Ce="rsp_accounting_events_v1",he="rsp_decisions_v1",Fe="rsp_telemetry_invocations_v1",ft="rsp_telemetry_degradations_v1",ls="rsp_telemetry_index_v1"});function un(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Me(e){return Vt(e)??0}function Vt(e){return typeof e=="number"&&Number.isFinite(e)?e:null}var ru=h(()=>{"use strict"});import{randomUUID as su,createHash as Bv}from"node:crypto";import{appendFileSync as bg,existsSync as jv,mkdirSync as wg}from"node:fs";import{mkdir as _g,readdir as Uv,readFile as Eg,rename as Hv,rm as Rg,writeFile as ou}from"node:fs/promises";import{basename as nu,dirname as ds,join as ln,resolve as fg}from"node:path";function zo(e){if(!e)return null;let t=fg(e);for(;;){if(jv(ln(t,".red")))return t;let r=fg(ln(t,".."));if(r===t)break;t=r}return null}function Lt(e){return ln(ne(e),Zc)}function Yo(e){return ln(ne(e),eu)}function au(e){return ln(ne(e),tu)}async function Dt(e,t){Kt(e,t)}function Kt(e,t){try{let r=zo(e);if(!r)return;let n=Lt(r);wg(ds(n),{recursive:!0}),bg(n,zv({spool_id:su(),event:Wv(t)}),{encoding:"utf8",mode:384})}catch{}}function Wv(e){return gg(gg(e,"raw_text","raw_bytes"),"emitted_text","emitted_bytes")}function gg(e,t,r){let n=e[t];if(typeof n!="string")return e;let s=Buffer.byteLength(n,"utf8");if(s<=qv)return e;let o={...e};return delete o[t],Me(o[r])===0&&(o[r]=s),o.estimated=!0,o}async function Jv(e){let t=zo(e);if(!t)return[];let r=Lt(t);await _g(ds(r),{recursive:!0}).catch(()=>{});let n=await Tg(t),s=[...await vg(t),...await Qv(n)];return await Promise.all(n.map(o=>Rg(o,{force:!0}))),s.map(o=>JSON.stringify(o.event))}async function cu(e,t){let r=zo(e);if(!r)return;let n=Lt(r);await _g(ds(n),{recursive:!0}).catch(()=>{}),await Yv(r);for(let s of await Vv(r))await hg(r,s,t);for(let s of await vg(r))await kg(r,s,t,!0);for(let s of await Tg(r))await hg(r,s,t)}async function Vv(e){let t=[Lt(e),Yo(e)],r=ds(t[0]);return(await Uv(r).catch(()=>[])).filter(s=>t.some(o=>s.startsWith(`${nu(o)}.`)&&s.endsWith(".drain"))).filter(s=>{let o=t.find(c=>s.startsWith(`${nu(c)}.`));if(!o)return!1;let i=`${nu(o)}.`,a=Number(s.slice(i.length).split(".")[0]);return!(Number.isInteger(a)&&a!==process.pid&&Kv(a))}).sort().map(s=>ln(r,s))}function Kv(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function hg(e,t,r){try{let n=await Sg(t);for(let s of xg(n))await kg(e,s,r,!1)}finally{await Rg(t,{force:!0})}}async function kg(e,t,r,n){let s=t.event?JSON.stringify(t.event):t.raw_line??"";try{if(await r(s)){n&&yg(e,{correction_id:su(),target_spool_id:t.spool_id,action:"resolved",created_at:new Date().toISOString()});return}}catch{}yg(e,{correction_id:su(),target_spool_id:t.spool_id,action:"retry",created_at:new Date().toISOString(),event_json:t.event?JSON.stringify(t.event):void 0})}async function Sg(e){let t="";for(let r=0;r<5;r++){let n=await Eg(e,"utf8").catch(()=>"");if(n===t)return n;t=n,await new Promise(s=>setTimeout(s,2))}return t}function dn(e){try{let t=JSON.parse(e);return!un(t)||t.collection!==Ce&&t.collection!==he&&t.collection!==Fe&&t.collection!==ft?null:t}catch{return null}}function zv(e){return Ht().push(ex(e))}function yg(e,t){try{let r=zo(e);if(!r)return;let n=au(r);wg(ds(n),{recursive:!0});let s=Ht();bg(n,s.push({correction_id:t.correction_id,target_spool_id:t.target_spool_id,action:t.action,created_at:t.created_at,event_json:t.event_json??null}),{encoding:"utf8",mode:384})}catch{}}async function Tg(e){let t=[Lt(e),Yo(e)],r=[];for(let n of t){let s=`${n}.${process.pid}.${Date.now()}.drain`;try{await Hv(n,s),await ou(n,"",{flag:"wx"}).catch(()=>{}),r.push(s)}catch(o){if(o.code!=="ENOENT")continue}}return r}async function Yv(e){await Promise.all([ou(Lt(e),"",{flag:"a"}),ou(Yo(e),"",{flag:"a"})]).catch(()=>{})}async function Qv(e){let t=[];for(let r of e)t.push(...xg(await Sg(r)));return t}async function vg(e){let t=await Eg(au(e),"utf8").catch(()=>""),r=new Map;for(let n of Xv(t))r.set(n.target_spool_id,n);return[...r.values()].filter(n=>n.action==="retry"&&n.event_json).map(n=>({spool_id:n.target_spool_id,event:dn(n.event_json)??void 0})).filter(n=>n.event!==void 0)}function xg(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s){try{let o=JSON.parse(s);if(un(o)){let i=dn(JSON.stringify(o));t.push(i?{spool_id:Ko(JSON.stringify(o)),event:i}:{spool_id:Ko(s),raw_line:s})}continue}catch{}if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r){t.push({spool_id:Ko(s),raw_line:s});continue}try{for(let o of Ut(`${r}
|
|
67
|
-
${s}
|
|
68
|
-
`))iu(o)&&tx(o)&&t.push({spool_id:o.spool_id,event:Cg(o)})}catch{s.startsWith("{")&&t.push({spool_id:Ko(s),raw_line:s})}}}return t}function Xv(e){return Zv(e).map(rx).filter(t=>t!==null)}function Zv(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s)try{let o=JSON.parse(s);iu(o)&&t.push(o)}catch{if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r)continue;try{for(let o of Ut(`${r}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
`,"utf8"),t]):null}function $g(e,t,r){let n=t[0];if(!n)return null;let s=ys(n,t.slice(1),{cwd:e,encoding:"buffer",maxBuffer:Math.max(r+1024,1024*1024)});return s.status!==0||s.signal?null:s.stdout}function bx(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}function _s(e){return/^el:[a-f0-9]{12}$/.test(e)}function ei(e){return/^blob:[a-f0-9]{64}$/.test(e)}function Ng(e){if(!hs(e))throw new Error("memory recall payload must be an object");let t=e.query;if(typeof t!="string"||t.trim()==="")throw new Error("memory recall query is required");let r=typeof e.limit=="number"&&Number.isFinite(e.limit)?e.limit:10;return{query:t,limit:r,options:{includeSuperseded:e.includeSuperseded===!0,scope:hs(e.scope)?e.scope:void 0,ranking:hs(e.ranking)?e.ranking:void 0}}}function Fg(e){if(!hs(e))throw new Error("memory ingest payload must be an object");let t=e.cwd;if(typeof t!="string"||t.trim()==="")throw new Error("memory ingest cwd is required");let r=typeof e.maxFiles=="number"&&Number.isFinite(e.maxFiles)?e.maxFiles:void 0,n=Array.isArray(e.ignore)?e.ignore.filter(s=>typeof s=="string"):void 0;return{cwd:t,maxFiles:r,ignore:n}}function hs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Mg(e,t,r){let n=[],s=new Set([".git","node_modules",".red",...r]);async function o(i){if(n.length>=t)return;let a=await Ag(i,{withFileTypes:!0}).catch(()=>[]);for(let c of a){if(n.length>=t)return;if(s.has(c.name))continue;let u=gs(i,c.name);c.isDirectory()?await o(u):c.isFile()&&/\.(md|mdx|txt|ts|tsx|js|jsx|json|yaml|yml|toml|rs|go|py|sql)$/i.test(c.name)&&n.push(u)}}return await o(e),n}function Bg(e,t){let r=Number(e.red_entity_id??e.rid);if(!Number.isFinite(r))return null;let n=e.properties??e.PROPERTIES,s=hs(n)?n:{},o=String(e.label??e.LABEL??s.title??`memory-${r}`),i=String(e.node_type??e.NODE_TYPE??"concept"),a=String(s.content??s.summary??s.title??o),c=`${o} ${a}`.toLowerCase(),u=t.filter(l=>c.includes(l));return u.length===0&&t.length>0?null:{id:String(r),rid:r,label:o,node_type:i,score:u.length||1,excerpt:a.slice(0,500)}}function ni(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function Es(e){if(!je(e))return!1;let t=typeof e.original=="string"&&e.original_encoding==="base64",r=_x(e.derivation_recipe),n=Ex(e.reexecution_recipe),s=e.blob_key,o=typeof s=="string"&&ei(s);return e.collection===ue&&typeof e.handle=="string"&&_s(e.handle)&&(t||r||n||o)&&typeof e.original_bytes=="number"&&(e.content_hash===void 0||Eu(e.content_hash))&&(e.stored_bytes===void 0||typeof e.stored_bytes=="number")&&(s===void 0||typeof s=="string"&&ei(s))&&typeof e.command=="string"&&typeof e.created_at=="string"&&typeof e.expires_at=="string"&&wx(e.loss)&&(e.storage_class===void 0||ii(e.storage_class))}function _u(e){return!je(e)||e.version!==1||!Array.isArray(e.records)?!1:e.records.every(t=>{if(!je(t))return!1;let r=t.blob_key;return typeof t.handle=="string"&&_s(t.handle)&&typeof t.key=="string"&&typeof t.bytes=="number"&&(t.raw_bytes===void 0||typeof t.raw_bytes=="number")&&typeof t.command=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&(t.storage_class===void 0||ii(t.storage_class))&&(r===void 0||typeof r=="string"&&ei(r))})}function si(e){return je(e)&&typeof e.key=="string"&&ei(e.key)&&Eu(e.content_hash)&&e.encoding==="gzip+base64"&&typeof e.bytes=="string"&&typeof e.original_bytes=="number"&&typeof e.stored_bytes=="number"&&typeof e.created_at=="string"}function oi(e){return je(e)&&e.status==="expired"&&typeof e.expired_at=="string"&&typeof e.command=="string"}function wx(e){return je(e)&&typeof e.level=="string"&&typeof e.bytes_elided=="number"}function ii(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"}function _x(e){return je(e)&&e.kind==="git-blob"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.object_ids)&&e.object_ids.every(t=>typeof t=="string"&&/^[0-9a-f]{40,64}$/.test(t))&&typeof e.working_tree_fingerprint=="string"&&typeof e.original_bytes=="number"}function Ex(e){return je(e)&&e.kind==="command"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.argv)&&e.argv.every(t=>typeof t=="string")&&ri(e.argv)&&typeof e.original_bytes=="number"&&Eu(e.content_hash)}function Eu(e){return typeof e=="string"&&/^[0-9a-f]{64}$/.test(e)}function je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function jg(e){try{let n=(await ix(e,"utf8")).trim();if(n==="")return Zo();let s;try{s=JSON.parse(n)}catch{s=H(n)}if(Rx(s))return{...s,blobs:s.blobs??{}}}catch(r){if(r.code==="ENOENT"){let s=Zo();return await mn(e,s),s}let n=Zo();return await mn(e,n),n}let t=Zo();return await mn(e,t),t}async function Ug(e){try{return e}catch(t){if(t.code==="ENOENT")return e;throw t}}function Hg(e){return lx(e)==="red-skills.rdb"}async function ai(){if(process.env.REDDB_BIN)return;let e=process.env.RED_SKILLS_CACHE_DIR??(process.env.XDG_CACHE_HOME?gs(process.env.XDG_CACHE_HOME,"red-skills","bundles"):gs(ux(),".cache","red-skills","bundles")),t=gs(e,"reddb"),r;try{r=await Ag(t)}catch{return}r.sort().reverse();for(let n of r){let s=gs(t,n,process.platform==="win32"?"red.exe":"red");if(sx(s)){process.env.REDDB_BIN=s;return}}}async function mn(e,t){await ox(dx(e),{recursive:!0});let r=`${e}.${process.pid}.tmp`;await cx(r,`${$(lu(t))}
|
|
72
|
-
`,"utf8"),await ax(r,e)}function lu(e){if(e==null)return null;if(typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)?e:null;if(Array.isArray(e))return e.map(t=>lu(t));if(typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))n!==void 0&&(t[r]=lu(n));return t}return String(e)}function Zo(){return{version:1,records:{},blobs:{},tombstones:{},index:{version:1,records:[]}}}function Rx(e){return je(e)&&e.version===1&&je(e.records)&&Object.values(e.records).every(Es)&&(e.blobs===void 0||je(e.blobs)&&Object.values(e.blobs).every(si))&&je(e.tombstones)&&Object.values(e.tombstones).every(oi)&&_u(e.index)}function qg(e){if(!e.startsWith("file://"))throw new Error("rsp elision store requires a file:// URI");return px(e)}var ci=h(()=>{"use strict";W();fs();Xo()});async function Wg(e,t){return kx?vx(e,t):Sx?Cx(e,t):Tx(e,t)}async function Tx(e,t){let{spawn:r}=await import("node:child_process"),n=r(e,t,{stdio:["pipe","pipe","inherit"]});return{runtime:"node",stdin:{write(s){return new Promise((o,i)=>{n.stdin.write(s,a=>a?i(a):o())})},end(){n.stdin.end()}},stdout:n.stdout,kill(){n.kill("SIGTERM")},wait(){return new Promise(s=>{n.on("exit",o=>s(o??0))})}}}function vx(e,t){let r=globalThis.Bun.spawn({cmd:[e,...t],stdin:"pipe",stdout:"pipe",stderr:"inherit"}),n=r.stdin.getWriter?r.stdin.getWriter():null;return{runtime:"bun",stdin:{async write(s){n?await n.write(s):(r.stdin.write(s),await r.stdin.flush())},end(){n?n.close():r.stdin.end()}},stdout:xx(r.stdout),kill(){r.kill()},wait(){return r.exited}}}async function*xx(e){let t=e.getReader();try{for(;;){let{value:r,done:n}=await t.read();if(n)return;yield r}}finally{t.releaseLock()}}async function Cx(e,t){let n=new globalThis.Deno.Command(e,{args:t,stdin:"piped",stdout:"piped",stderr:"inherit"}).spawn(),s=n.stdin.getWriter();return{runtime:"deno",stdin:{async write(o){await s.write(o)},end(){try{s.close()}catch{}}},stdout:Ox(n.stdout),kill(){try{n.kill("SIGTERM")}catch{}},async wait(){return(await n.status).code??0}}}async function*Ox(e){let t=e.getReader();try{for(;;){let{value:r,done:n}=await t.read();if(n)return;yield r}}finally{t.releaseLock()}}var kx,Sx,Jg=h(()=>{kx=typeof globalThis.Bun<"u"&&typeof globalThis.Bun.spawn=="function",Sx=typeof globalThis.Deno<"u"&&typeof globalThis.Deno.Command=="function"});import{existsSync as Ax}from"node:fs";import{join as Px}from"node:path";function Vg(e){if(!e||typeof e!="object")throw new TypeError("resolveBin: options object required");let{name:t,packageRoot:r,envVar:n}=e;if(typeof t!="string"||t==="")throw new TypeError("resolveBin: `name` must be a non-empty string");if(typeof r!="string"||r==="")throw new TypeError("resolveBin: `packageRoot` must be a non-empty string");if(typeof n!="string"||n==="")throw new TypeError("resolveBin: `envVar` must be a non-empty string");let s=process.env?.[n];if(typeof s=="string"&&s!=="")return s;let o=Px(r,"bin",t);if(Ax(o))return o;throw new Error(`reddb: binary "${t}" not found.
|
|
73
|
-
expected at: ${o}
|
|
74
|
-
override: set ${n}=/path/to/${t}
|
|
75
|
-
fix: re-run \`pnpm install\` (the postinstall script downloads it),
|
|
76
|
-
or check the postinstall log for a download error.`)}var Kg=h(()=>{});import{fileURLToPath as Ix}from"node:url";import{dirname as Lx,resolve as Dx,join as HB}from"node:path";function Nx(){return typeof process<"u"&&process.platform==="win32"?"red.exe":"red"}function zg(){let e=process.env?.REDDB_BINARY_PATH;return typeof e=="string"&&e!==""&&!process.env?.REDDB_BIN?e:Vg({name:Nx(),packageRoot:$x,envVar:"REDDB_BIN"})}var Gx,$x,Yg=h(()=>{Kg();Gx=Lx(Ix(import.meta.url)),$x=Dx(Gx,"..")});var Fx,Mx,D,ui,Yt=h(()=>{Fx=new TextEncoder,Mx=new TextDecoder("utf-8"),D=class extends Error{constructor(t,r,n){super(r),this.name="RedDBError",this.code=t,this.data=n??null}},ui=class{constructor(t){this.child=t,this.nextId=1,this.pending=new Map,this.closed=!1,this.closeReason=null,this.readerPromise=this.#t()}call(t,r={}){if(this.closed)return Promise.reject(new D("CLIENT_CLOSED",`client is closed: ${this.closeReason??"unknown"}`));let n=this.nextId++,s=JSON.stringify({jsonrpc:"2.0",id:n,method:t,params:r});return new Promise((o,i)=>{this.pending.set(n,{resolve:o,reject:i}),this.child.stdin.write(Fx.encode(s+`
|
|
77
|
-
`)).catch(a=>{this.pending.delete(n),i(a)})})}async close(){if(!this.closed){try{await this.call("close",{})}catch{}this.#e("close requested");try{this.child.stdin.end()}catch{}await this.child.wait()}}async#t(){let t=new Uint8Array(0);try{for await(let r of this.child.stdout){let n=new Uint8Array(t.length+r.length);n.set(t,0),n.set(r,t.length),t=n;let s=0;for(let o=0;o<t.length;o++)if(t[o]===10){let i=t.subarray(s,o);this.#r(Mx.decode(i)),s=o+1}s>0&&(t=t.subarray(s))}}catch(r){this.#e(`stdout reader error: ${r.message}`);return}this.#e("server stdout closed")}#r(t){if(!t.trim())return;let r;try{r=JSON.parse(t)}catch(o){this.#e(`malformed server response: ${o.message}`);return}let n=r.id;if(n==null)return;let s=this.pending.get(n);s&&(this.pending.delete(n),r.error?s.reject(new D(r.error.code??"UNKNOWN",r.error.message??"unknown error",r.error.data)):s.resolve(r.result))}#e(t){if(this.closed)return;this.closed=!0,this.closeReason=t;let r=new D("CLIENT_CLOSED",t);for(let{reject:n}of this.pending.values())n(r);this.pending.clear()}}});function ku(e){if(typeof e!="string"||e.length===0)throw new TypeError("connect() requires a URI string (e.g. 'red://localhost:5050' or 'red:///data.rdb')");return e.startsWith("red://")||e==="red:"||e==="red:/"?Bx(e):jx(e)}function Bx(e){let t=e;e==="red:"||e==="red:/"||e==="red://"?t="red://embedded.local":e.startsWith("red:///")?t=`red://embedded.local${e.slice(6)}`:(e==="red://memory"||e==="red://memory/"||e==="red://:memory"||e==="red://:memory:")&&(t="red://embedded.local");let r;try{r=new URL(t)}catch(l){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${l.message}`)}let n=r.searchParams,s=(n.get("proto")||"").toLowerCase(),o=r.pathname&&r.pathname!=="/"?r.pathname:"";if(r.hostname==="embedded.local")return o?{kind:"embedded",path:o,params:n,originalUri:e}:{kind:"embedded",params:n,originalUri:e};let i=Ux(s),a=r.port?Number(r.port):Ru(i),c=r.username?decodeURIComponent(r.username):void 0,u=r.password?decodeURIComponent(r.password):void 0;return{kind:i,host:r.hostname,port:a,path:o||void 0,username:c,password:u,token:n.get("token")??void 0,apiKey:n.get("apiKey")??n.get("api_key")??void 0,loginUrl:n.get("loginUrl")??n.get("login_url")??void 0,params:n,originalUri:e}}function jx(e){if(e==="memory://"||e==="memory:")return{kind:"embedded",originalUri:e};if(e.startsWith("file://")){let t=e.slice(7);if(!t)throw new TypeError(`invalid file:// URI: missing path in '${e}'`);return{kind:"embedded",path:t,originalUri:e}}if(e.startsWith("grpc://")||e.startsWith("grpcs://")||e.startsWith("reds://")){let t=e.split("://",1)[0],r;try{r=new URL("https://"+e.slice(`${t}://`.length))}catch(o){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${o.message}`)}if(!r.hostname)throw new TypeError(`invalid ${t}:// URI: missing host in '${e}'`);let n=t==="reds"?"reds":t==="grpcs"?"grpcs":"grpc",s=r.searchParams;return{kind:n,host:r.hostname,port:r.port?Number(r.port):Ru(n),username:r.username?decodeURIComponent(r.username):void 0,password:r.password?decodeURIComponent(r.password):void 0,token:s.get("token")??void 0,apiKey:s.get("apiKey")??s.get("api_key")??void 0,loginUrl:s.get("loginUrl")??s.get("login_url")??void 0,params:s,originalUri:e}}if(e.startsWith("http://")||e.startsWith("https://")){let t;try{t=new URL(e)}catch(r){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${r.message}`)}return{kind:t.protocol==="https:"?"https":"http",host:t.hostname,port:t.port?Number(t.port):Ru(t.protocol==="https:"?"https":"http"),path:t.pathname!=="/"?t.pathname:void 0,username:t.username?decodeURIComponent(t.username):void 0,password:t.password?decodeURIComponent(t.password):void 0,token:t.searchParams.get("token")??void 0,apiKey:t.searchParams.get("apiKey")??void 0,params:t.searchParams,originalUri:e}}throw new D("UNSUPPORTED_SCHEME",`unsupported URI: '${e}'. Use 'red://...' or one of memory://, file://, grpc://, http(s)://`)}function Ux(e){switch(e){case"":case"red":return"red";case"reds":return"reds";case"grpc":return"grpc";case"grpcs":return"grpcs";case"http":return"http";case"https":return"https";case"pg":case"postgres":case"postgresql":return"pg";default:throw new D("UNSUPPORTED_PROTO",`unknown proto='${e}'. Supported: red | reds | grpc | grpcs | http | https | pg`)}}function Ru(e){switch(e){case"http":return 5e3;case"https":return 55555;case"red":case"reds":case"redwire":return 5050;case"grpc":return 55055;case"grpcs":return 55555;case"pg":case"postgres":case"postgresql":return 5432;default:return}}var Su=h(()=>{Yt()});function qx(e){if(typeof e=="string"){let t=new TextEncoder().encode(e);return Qg(t)}if(e instanceof Uint8Array||typeof Buffer<"u"&&Buffer.isBuffer(e))return Qg(e);throw new TypeError("cache value must be a string, Uint8Array, or Buffer")}function Qg(e){if(typeof Buffer<"u")return Buffer.from(e).toString("base64");let t="";for(let r of e)t+=String.fromCharCode(r);return btoa(t)}function Wx(e){if(typeof Buffer<"u")return new Uint8Array(Buffer.from(e,"base64"));let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}var Hx,Rs,Tu=h(()=>{Yt();Hx=new Set(["embedded"]),Rs=class{constructor(t,r){this._client=t,this._transport=r??null}_guard(t){if(this._transport&&Hx.has(this._transport))throw new D("UNSUPPORTED_TRANSPORT",`cache.${t} is not available on '${this._transport}' transport; use @reddb-io/client for remote cache endpoints.`)}async get(t,r){this._guard("get");let n=await this._client.call("cache.get",{namespace:t,key:r});return n==null||n.value==null?null:Wx(n.value)}async put(t,r,n,s={}){this._guard("put");let o=qx(n);await this._client.call("cache.put",{namespace:t,key:r,value:o,...s})}async exists(t,r){return this._guard("exists"),(await this._client.call("cache.exists",{namespace:t,key:r}))?.status??"maybe"}async invalidate(t,r){this._guard("invalidate"),await this._client.call("cache.invalidate",{namespace:t,key:r})}async invalidatePrefix(t,r){return this._guard("invalidatePrefix"),(await this._client.call("cache.invalidate_prefix",{namespace:t,prefix:r}))?.removed??0}async invalidateTags(t,r){return this._guard("invalidateTags"),(await this._client.call("cache.invalidate_tags",{namespace:t,tags:r}))?.removed??0}async flushNamespace(t){this._guard("flushNamespace"),await this._client.call("cache.flush_namespace",{namespace:t})}}});function vu(e,t){return`${xu(e)}.${Jx(t)}`}function xu(e){let t=String(e),r=t.match(/[^A-Za-z0-9_]/);if(r)throw new D("INVALID_KV_KEY",`invalid KV key "${t}": character "${r[0]}" is not supported`);return t}function Jx(e){let t=String(e);return/^[A-Za-z0-9_]+$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function Vx(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="object"?`'${JSON.stringify(e).replace(/'/g,"''")}'`:`'${String(e).replace(/'/g,"''")}'`}function Xg(e){return`'${String(e).replace(/'/g,"''")}'`}var fn,Cu=h(()=>{Yt();fn=class{constructor(t,r="kv_default"){this.client=t,this.collection=r}put(t,r,n={}){let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Xg).join(", ")}]`:"",i=n.expireMs!=null?` EXPIRE ${Number(n.expireMs)} ms`:"";return this.client.call("query",{sql:`KV PUT ${vu(s,t)} = ${Vx(r)}${i}${o}`})}set(t,r,n={}){return this.put(t,r,n)}async get(t,r={}){let n=r.collection??this.collection;return(await this.client.call("query",{sql:`KV GET ${vu(n,t)}`}))?.rows?.[0]?.value??null}async getMany(t,r={}){let n=[];for(let s of t)n.push(await this.get(s,r));return n}async exists(t,r={}){return{exists:await this.get(t,r)!==null}}async delete(t,r={}){let n=r.collection??this.collection,s=await this.client.call("query",{sql:`KV DELETE ${vu(n,t)}`}),o=s.affected??s.affected_rows??0;return{affected:o,deleted:o>0}}async list(t={}){let r=t.collection??this.collection,n=t.limit==null?100:Number(t.limit);if(!Number.isInteger(n)||n<=0)throw new D("INVALID_ARGUMENT","kv.list limit must be a positive integer");let s=t.prefix==null?"":String(t.prefix),i=(await this.client.call("query",{sql:`SELECT key, value FROM ${xu(r)} ORDER BY key ASC LIMIT ${n}`})).rows??[];return{items:s.length>0?i.filter(c=>String(c.key).startsWith(s)):i}}async invalidateTags(t,r={}){let n=r.collection??this.collection,s=await this.client.call("query",{sql:`INVALIDATE TAGS [${t.map(Xg).join(", ")}] FROM ${xu(n)}`});return s.affected??s.affected_rows??s.rows?.[0]?.invalidated??0}async*watch(t,r={}){if(!this.client.baseUrl)throw new D("UNSUPPORTED_TRANSPORT","kv.watch requires the HTTP transport");let n=r.collection??this.collection,s=new URLSearchParams;r.sinceLsn!=null&&s.set("since_lsn",String(r.sinceLsn)),r.limit!=null&&s.set("limit",String(r.limit));let o=s.toString()?`?${s}`:"",i=`${this.client.baseUrl}/collections/${encodeURIComponent(n)}/kv/${encodeURIComponent(String(t))}/watch${o}`,a=await fetch(i,this.client.attachAuth({method:"GET"}));if(!a.ok)throw new D("HTTP_ERROR",`kv.watch failed with HTTP ${a.status}`);let c=await a.text();for(let u of c.split(`
|
|
78
|
-
|
|
79
|
-
`)){let l=u.split(`
|
|
80
|
-
`).find(p=>p.startsWith("data: "));l&&(yield JSON.parse(l.slice(6)))}}watchPrefix(t,r={}){return this.watch(`${t}.*`,r)}}});function Kx(e,t,r){let{waitMs:n,group:s=null,count:o=null}=r??{};if(!Number.isInteger(n)||n<0)throw new D("INVALID_QUEUE_WAIT","queue readWait requires an explicit non-negative integer waitMs (no infinite wait)");let i=$t(e),a=$t(t),c=s!=null?` GROUP ${$t(s)}`:"",u=o!=null?Au(o):"";return`QUEUE READ ${i}${c} CONSUMER ${a}${u} WAIT ${n}ms`}function $t(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_QUEUE_NAME",`invalid queue name "${t}": expected an SQL identifier`);return t}function Au(e){if(e==null)return"";if(!Number.isInteger(e)||e<0)throw new D("INVALID_QUEUE_COUNT","queue count must be a non-negative integer");return` COUNT ${e}`}function zx(e){if(!Number.isInteger(e))throw new D("INVALID_QUEUE_PRIORITY","queue priority must be an integer");return String(e)}function Yx(e){if(e.key!=null&&(e.delay!=null||e.at!=null))throw new D("INVALID_ARGUMENT","QUEUE PUSH KEY cannot be combined with DELAY / AVAILABLE AT");let t="";return e.priority!=null&&(t+=` PRIORITY ${zx(e.priority)}`),e.key!=null&&(t+=` KEY ${Pu(e.key)}`),e.dedup!=null&&(t+=` DEDUP ${Pu(e.dedup)}`),e.delay!=null&&(t+=` DELAY ${e.delay}`),e.at!=null&&(t+=` AVAILABLE AT ${e.at}`),t}function Qx(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="string"?Pu(e):JSON.stringify(e)}function Pu(e){return`'${String(e).replace(/'/g,"''")}'`}function Ou(e){return Array.isArray(e?.rows)?e.rows.map(t=>t.payload):[]}var ks,Iu=h(()=>{Yt();ks=class{constructor(t){this.client=t}create(t){return this.client.call("query",{sql:`CREATE QUEUE IF NOT EXISTS ${$t(t)}`})}push(t,r,n={}){let s=Yx(n);return this.client.call("query",{sql:`QUEUE PUSH ${$t(t)} ${Qx(r)}${s}`})}async pop(t,r){let n=await this.client.call("query",{sql:`QUEUE POP ${$t(t)}${Au(r)}`});return Ou(n)}async peek(t,r){let n=await this.client.call("query",{sql:`QUEUE PEEK ${$t(t)}${Au(r)}`});return Ou(n)}async len(t){let r=await this.client.call("query",{sql:`QUEUE LEN ${$t(t)}`});return Number(r?.rows?.[0]?.len??0)}purge(t){return this.client.call("query",{sql:`QUEUE PURGE ${$t(t)}`})}async readWait(t,r,n={}){let s=Kx(t,r,n),o=await this.client.call("query",{sql:s});return Ou(o)}}});function Zg(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new D("INVALID_ARGUMENT",`${t} must be an object`)}function Xx(e){if(e==null)return 100;if(!Number.isInteger(e)||e<=0)throw new D("INVALID_ARGUMENT","limit must be a positive integer");return e}function li(e){return String(e).split(".").map(eh).join(".")}function eh(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_ARGUMENT",`invalid SQL identifier "${t}"`);return t}function Zx(e){return th(JSON.stringify(e))}function eC(e){return JSON.stringify(e)}function tC(e){return e==null?"NULL":typeof e=="number"||typeof e=="boolean"?String(e):typeof e=="object"?Zx(e):th(e)}function th(e){return`'${String(e).replace(/'/g,"''")}'`}var Ss,Lu=h(()=>{Yt();Ss=class{constructor(t){this.db=t}async insert(t,r){Zg(r,"documents.insert document"),await this.ensureCollection(t);let n=await this.db.query(`INSERT INTO ${li(t)} DOCUMENT VALUES (${eC(r)}) RETURNING *`),s=n.rows?.[0];if(!s||s.rid==null)throw new D("INVALID_RESPONSE","documents.insert expected one returned item with rid");return{affected:n.affected??1,rid:s.rid,item:s}}async get(t,r){let n=await this.db.get(t,r);if(!n.entity)throw new D("NOT_FOUND",`document ${String(r)} was not found`);return n.entity}async list(t,r={}){let n=Xx(r.limit),s=r.orderBy??r.order_by??"rid ASC",o=r.filter?` WHERE ${String(r.filter)}`:"";return{items:(await this.db.query(`SELECT * FROM ${li(t)}${o} ORDER BY ${s} LIMIT ${n}`)).rows??[]}}async patch(t,r,n){Zg(n,"documents.patch patch");let s=Object.entries(n);if(s.length===0)throw new D("INVALID_ARGUMENT","documents.patch patch must be a non-empty object");for(let[c]of s)if(c.includes("/"))throw new D("INVALID_ARGUMENT","documents.patch currently accepts top-level document fields");let o=s.map(([c,u])=>`${eh(c)} = ${tC(u)}`).join(", "),a=(await this.db.query(`UPDATE ${li(t)} SET ${o} WHERE rid = $1 RETURNING *`,r)).rows?.[0];if(!a)throw new D("NOT_FOUND",`document ${String(r)} was not found`);return a}async delete(t,r){let s=(await this.db.delete(t,r)).affected??0;return{affected:s,deleted:s>0}}async ensureCollection(t){try{await this.db.query(`CREATE DOCUMENT ${li(t)}`)}catch(r){if(!String(r?.message??"").includes("already exists"))throw r}}}});function rC(e,t){if(t.secretRef){let{collection:r,key:n}=t.secretRef;return`SECRET_REF(vault, ${Qt(r)}.${Qt(n)})`}return sC(e)}function nC(e,t){for(let r of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[r]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function Qt(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function sC(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):rh(e)}function rh(e){return`'${String(e).replace(/'/g,"''")}'`}var Ts,Du=h(()=>{Ts=class{constructor(t,r="red.config"){this.client=t,this.collection=r}put(t,r,n={}){nC(n,"config");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(rh).join(", ")}]`:"";return this.client.call("query",{sql:`PUT CONFIG ${Qt(s)} ${Qt(t)} = ${rC(r,n)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`GET CONFIG ${Qt(n)} ${Qt(t)}`})}resolve(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`RESOLVE CONFIG ${Qt(n)} ${Qt(t)}`})}}});function oC(e,t){for(let r of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[r]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function gn(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function iC(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):nh(e)}function nh(e){return`'${String(e).replace(/'/g,"''")}'`}var vs,Gu=h(()=>{vs=class{constructor(t,r="red.vault"){this.client=t,this.collection=r}put(t,r,n={}){oC(n,"vault");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(nh).join(", ")}]`:"";return this.client.call("query",{sql:`VAULT PUT ${gn(s)}.${gn(t)} = ${iC(r)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`VAULT GET ${gn(n)}.${gn(t)}`})}unseal(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`UNSEAL VAULT ${gn(n)}.${gn(t)}`})}}});async function oh(e){return((await e.query("SHOW COLLECTIONS")).rows??[]).map(aC)}async function ih(e,t){return((await e.query(`SHOW COLLECTIONS WHERE name = ${uC(t)}`)).rows??[]).some(n=>n.name===String(t))}function aC(e){return{...e,name:String(e.name),model:String(e.model),capabilities:Array.isArray(e.capabilities)?e.capabilities:[]}}function sh(e){return String(e).split(".").map(cC).join(".")}function cC(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_IDENTIFIER",`invalid SQL identifier "${t}"`);return t}function uC(e){return`'${String(e).replace(/'/g,"''")}'`}var xs,$u=h(()=>{Yt();xs=class e{constructor(t,r,n=null,s=[],o=[]){this.db=t,this.collection=r,this.columns=n,this.whereClauses=s,this.params=o}select(...t){let r=t.length===1&&Array.isArray(t[0])?t[0]:t,n=r.length===1&&r[0]==="*"?null:r;return new e(this.db,this.collection,n!=null&&n.length>0?n:null,this.whereClauses,this.params)}where(t,...r){if(typeof t!="string"||t.trim().length===0)throw new D("INVALID_QUERY_BUILDER","where() requires a non-empty SQL condition");let n=r.length===1&&Array.isArray(r[0])?r[0]:r;return new e(this.db,this.collection,this.columns,[...this.whereClauses,t.trim()],[...this.params,...n])}async run(){let t=this.columns==null?"*":this.columns.map(sh).join(", "),r=this.whereClauses.length>0?` WHERE ${this.whereClauses.map(i=>`(${i})`).join(" AND ")}`:"",n=`SELECT ${t} FROM ${sh(this.collection)}${r}`,o=(this.params.length>0?await this.db.query(n,this.params):await this.db.query(n)).rows??[];return this.columns==null?o:o.map(i=>{let a={};for(let c of this.columns)a[c]=i[c];return a})}}});async function mi(e,t={}){let r=ku(e);if(wC(r),r.kind==="embedded"){let n=bC(r,t.auth);if(n.token||n.username)throw new D("AUTH_NOT_APPLICABLE","auth is only meaningful for remote connections; embedded modes inherit caller privileges.");let s=yC(r),o=t.binary??zg(),i=await Wg(o,s),a=new ui(i);return await a.call("version",{}),new Fu(a,{transport:"embedded"})}}function ch(e){return pC(e),e instanceof Float32Array||e instanceof Float64Array?Array.from(e):e instanceof Date?{$ts:String(BigInt(e.getTime())*1000000n)}:e instanceof Uint8Array||typeof Buffer<"u"&&e instanceof Buffer?{$bytes:fC(e)}:typeof e=="number"&&!Number.isFinite(e)?Number.isNaN(e)?{$float:"NaN"}:{$float:e>0?"Infinity":"-Infinity"}:typeof e=="string"&&hC(e)?{$uuid:e}:e}function pC(e){if(e!=null&&!(typeof e=="boolean"||typeof e=="number"||typeof e=="string")){if(e instanceof Date){if(Number.isNaN(e.getTime()))throw new D("UNSUPPORTED_PARAM","cannot encode invalid Date query parameter");return}if(!(e instanceof Uint8Array||e instanceof Float32Array||e instanceof Float64Array||typeof Buffer<"u"&&e instanceof Buffer)){if(Array.isArray(e)){if(e.every(t=>typeof t=="number"))return;throw new D("UNSUPPORTED_PARAM","array query parameters must contain only numbers")}if(!(typeof e=="object"&&Object.getPrototypeOf(e)===Object.prototype))throw new D("UNSUPPORTED_PARAM",`cannot encode query parameter of type ${typeof e}`)}}}function mC(e){return e.length===0?null:e.length===1&&Array.isArray(e[0])?e[0].map(ch):e.map(ch)}function fC(e){let t=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(typeof Buffer<"u")return Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("base64");let r="";for(let n of t)r+=String.fromCharCode(n);return btoa(r)}function gC(e){if(typeof Buffer<"u"){let n=Buffer.from(e,"base64");return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function hC(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}function di(e){if(Array.isArray(e))return e.map(di);if(e&&typeof e=="object"){if(Object.keys(e).length===1){if(typeof e.$bytes=="string")return gC(e.$bytes);if(typeof e.$uuid=="string")return e.$uuid;if(typeof e.$float=="string"){if(e.$float==="NaN")return Number.NaN;if(e.$float==="Infinity"||e.$float==="+Infinity")return 1/0;if(e.$float==="-Infinity")return-1/0}if(typeof e.$ts=="string"||typeof e.$ts=="number"){let n=typeof e.$ts=="string"?BigInt(e.$ts):BigInt(Math.trunc(e.$ts));return new Date(Number(n/1000000n))}}let r={};for(let[n,s]of Object.entries(e))r[n]=di(s);return r}return e}function yC(e){return e.path?["rpc","--stdio","--path",e.path]:["rpc","--stdio"]}function bC(e,t){let r={token:e.token??e.apiKey??null,username:e.username??null,password:e.password??null,loginUrl:e.loginUrl??null};if(t==null)return r;if(typeof t!="object")throw new TypeError("options.auth must be an object");if(t.token!=null){if(typeof t.token!="string"||t.token.length===0)throw new TypeError("options.auth.token must be a non-empty string");r.token=t.token}if(t.apiKey!=null){if(typeof t.apiKey!="string"||t.apiKey.length===0)throw new TypeError("options.auth.apiKey must be a non-empty string");r.token=t.apiKey}if(t.username!=null){if(typeof t.username!="string"||t.username.length===0)throw new TypeError("options.auth.username must be a non-empty string");r.username=t.username}if(t.password!=null){if(typeof t.password!="string"||t.password.length===0)throw new TypeError("options.auth.password must be a non-empty string");r.password=t.password}return t.loginUrl!=null&&(r.loginUrl=t.loginUrl),r}function wC(e){if(e.kind!=="embedded")throw new D("EMBEDDED_ONLY",lC)}function Mu(){return new D(ah,`${ah}: nested transactions are not supported on one connection`)}function lh(e,t){if(e&&typeof e=="object")try{e.rollbackError=t}catch{}}function _C(e,t){if(!e||typeof e!="object"||e.rid==null&&e.id==null)throw new D("ENGINE_TOO_OLD",`${t}() requires RedDB engine >= ${uh} with insert id support`);return e.rid==null&&(e.rid=e.id),e.id==null&&(e.id=e.rid),e}function EC(e,t){if(!e||typeof e!="object"||!Array.isArray(e.rids)&&!Array.isArray(e.ids))throw new D("ENGINE_TOO_OLD",`bulkInsert() requires RedDB engine >= ${uh} with bulk insert id support`);if(Array.isArray(e.rids)||(e.rids=e.ids),Array.isArray(e.ids)||(e.ids=e.rids),e.rids.length!==t)throw new D("INVALID_RESPONSE",`bulkInsert() expected ${t} rids, got ${e.rids.length}`);return e}var lC,dC,uh,ah,pi,Nu,Fu,dh=h(()=>{Jg();Yg();Yt();Su();Tu();Cu();Iu();Lu();Du();Gu();$u();Tu();Cu();Iu();Lu();Du();Gu();$u();Su();lC="remote URIs are not supported in @reddb-io/sdk; install @reddb-io/client for grpc/http/red transports",dC="1.0",uh="1.0.9",ah="NESTED_TX_NOT_SUPPORTED";pi=class{constructor(t){this.db=t}query(t,...r){return this.db.query(t,...r)}execute(t,...r){return this.db.execute(t,...r)}insert(t,r){return this.db.insert(t,r)}bulkInsert(t,r){return this.db.bulkInsert(t,r)}async transaction(){throw Mu()}},Nu=class{constructor(t){this.db=t,this.active=!1}async begin(){if(this.db.inTransaction)throw Mu();this.db.inTransaction=!0,this.active=!0;try{return await this.db.query("BEGIN")}catch(t){throw this.db.inTransaction=!1,this.active=!1,t}}async commit(){if(!this.active)throw new D("INVALID_ARGUMENT","tx.commit() called without an open transaction");try{return await this.db.query("COMMIT")}finally{this.active=!1,this.db.inTransaction=!1}}async rollback(){if(!this.active)throw new D("INVALID_ARGUMENT","tx.rollback() called without an open transaction");try{return await this.db.query("ROLLBACK")}finally{this.active=!1,this.db.inTransaction=!1}}async run(t){if(typeof t!="function")throw new TypeError("tx.run(callback) requires a function");if(this.db.inTransaction)throw new D("INVALID_ARGUMENT","nested tx.run() is not supported; issue savepoints via tx.query() instead");await this.begin();try{let r=await t(new pi(this.db));return await this.commit(),r}catch(r){if(this.active)try{await this.rollback()}catch(n){lh(r,n)}throw r}}},Fu=class{constructor(t,r={}){this.client=t,this.transport=r.transport??null,this.helperSpecVersion=dC,this.cache=new Rs(t,this.transport),this.queue=new ks(t),this.queues=this.queue,this.documents=new Ss(this);let n=new fn(t);this.kv=Object.assign((s="kv_default")=>new fn(t,s),{put:n.put.bind(n),invalidateTags:n.invalidateTags.bind(n),watch:n.watch.bind(n),watchPrefix:n.watchPrefix.bind(n)}),this.config=(s="red.config")=>new Ts(t,s),this.vault=(s="red.vault")=>new vs(t,s),this.inTransaction=!1}query(t,...r){if(typeof t!="string"||t.trim().length===0)return Promise.reject(new D("INVALID_ARGUMENT","query() requires a non-empty SQL string"));let n=mC(r);return n==null?this.client.call("query",{sql:t}).then(di):this.client.call("query",{sql:t,params:n}).then(di)}execute(t,...r){return this.query(t,...r)}async insert(t,r){let n=await this.client.call("insert",{collection:t,payload:r});return _C(n,"insert")}async bulkInsert(t,r){if(Array.isArray(r)&&r.length===0)return{affected:0,rids:[],ids:[]};let n=await this.client.call("bulk_insert",{collection:t,payloads:r});return EC(n,r.length)}tx(){return new Nu(this)}async transaction(t){if(this.inTransaction)throw Mu();if(typeof t!="function")throw new TypeError("transaction(callback) requires a function");this.inTransaction=!0;let r=!1;try{await this.query("BEGIN"),r=!0;let n=await t(new pi(this));return await this.query("COMMIT"),n}catch(n){if(r)try{await this.query("ROLLBACK")}catch(s){lh(n,s)}throw n}finally{this.inTransaction=!1}}exists(t){return ih(this,t)}list(){return oh(this)}from(t){return new xs(this,t)}get(t,r){return this.client.call("get",{collection:t,id:String(r)})}delete(t,r){return this.client.call("delete",{collection:t,id:String(r)})}health(){return this.client.call("health",{})}version(){return this.client.call("version",{})}login(t,r){return this.client.call("auth.login",{username:t,password:r})}whoami(){return this.client.call("auth.whoami",{})}changePassword(t,r){return this.client.call("auth.change_password",{current_password:t,new_password:r})}createApiKey({username:t,role:r}={}){return this.client.call("auth.create_api_key",{username:t,role:r})}revokeApiKey(t){return this.client.call("auth.revoke_api_key",{key:t})}close(){return this.client.close()}}});import{createHash as RC}from"node:crypto";import{existsSync as ph}from"node:fs";import{mkdir as kC,readFile as SC,rename as Bu,rm as Cs,stat as ju}from"node:fs/promises";import{basename as TC,dirname as vC}from"node:path";async function mh(e){await(await xr.open({...e,allowResidentOpen:!0})).close()}var xr,fh=h(()=>{"use strict";dh();Xo();ci();xr=class e{constructor(t,r){this.opts=r;this.path=t}document;db;path;dirty=!1;static async open(t){if(process.env.RSP_FAIL_IF_STORE_OPEN==="1"&&!t.allowResidentOpen)throw new Error("RSP_FAIL_IF_STORE_OPEN blocked store open");let r=qg(t.uri),n=await Ug(r),s=new e(n,{uri:t.uri,ttlDays:ni(t.ttlDays,ze),ephemeralTtlHours:ni(t.ephemeralTtlHours,Ye),byteBudget:ni(t.byteBudget,Qe),now:t.now??(()=>new Date)});return Hg(n)?(await ai(),await kC(vC(n),{recursive:!0}),s.db=await mi(`file://${n}`),await s.ensureRedDbCollections(),await s.ensureRedDbStore()):s.document=await jg(s.path),s}async close(){await this.db?.close()}redDb(){return this.db}async mint(t,r){if(this.db)return await this.mintRedDb(t,r);let n=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=bs(n,r),a=zt(i),c=Gt(r.command),u=c==="derivable"?gu(n,r.command):null,l=c==="re-executable"?hu(n,r.command):null,p=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,d=fu(s,p,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Sr(n),f=p==="ephemeral"?wu(n,g,o):null,k=yu(n,u,l,f);f&&!this.document.blobs[f.key]&&(this.document.blobs[f.key]=f,this.dirty=!0);let E={collection:ue,handle:i,original_bytes:n.length,stored_bytes:k,command:r.command,created_at:o,expires_at:d,loss:r.loss,storage_class:p,content_hash:g,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};return delete this.document.tombstones[Tr(i)],this.document.records[a]=E,this.upsertIndex({handle:i,key:a,bytes:k,raw_bytes:n.length,command:r.command,created_at:o,expires_at:d,storage_class:p,blob_key:f?.key}),this.prune(),await this.flush(),i}async get(t){if(this.db)return await this.getRedDb(t);if(!_s(t))return null;let r=this.tombstone(t);if(r)return r;let n=this.document.records[zt(t)];if(!Es(n))return null;if(Date.parse(n.expires_at)<=this.opts.now().getTime()){let o={status:"expired",expired_at:n.expires_at,command:n.command};return this.expireEntry({handle:n.handle,key:zt(n.handle),bytes:bu(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:ws(n),blob_key:n.blob_key},n.expires_at),await this.flush(),o}let s=await this.readOriginal(n);return!s&&(n.derivation_recipe||n.reexecution_recipe)?{status:"expired",expired_at:n.expires_at,command:n.command}:s?{collection:ue,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:ws(n)}:null}async stats(){if(this.db)return await this.statsRedDb();this.prune(),await this.flush();let r=this.readIndex().records;return{records:r.length,bytes:vr(r),oldest:r.reduce((n,s)=>n==null||s.created_at<n?s.created_at:n,null),budget:this.opts.byteBudget,storage_classes:pu(r)}}async recoveryHandles(t=5){return this.db?await this.recoveryHandlesRedDb(t):(this.prune(),await this.flush(),mu(this.readIndex().records,this.opts.now(),t))}readIndex(){return this.document.index}writeIndex(t){this.document.index=t}upsertIndex(t){let n=this.readIndex().records.filter(s=>s.handle!==t.handle);n.push(t),this.writeIndex({version:1,records:n}),this.dirty=!0}prune(){let t=this.opts.now().getTime(),r=new Date(t).toISOString(),n=this.readIndex(),s=[];for(let i of n.records)Date.parse(i.expires_at)<=t?this.expireEntry(i,i.expires_at):s.push(i);let o=vr(s);for(s.sort((i,a)=>i.created_at.localeCompare(a.created_at));o>this.opts.byteBudget&&s.length>0;){let i=s.shift();this.expireEntry(i,r),o=vr(s)}s.length<n.records.length&&this.writeIndex({version:1,records:s}),this.deleteUnreferencedLocalBlobs(s)}expireEntry(t,r){delete this.document.records[t.key],this.document.tombstones[Tr(t.handle)]={status:"expired",expired_at:r,command:t.command},this.dirty=!0}tombstone(t){let r=this.document.tombstones[Tr(t)];return oi(r)?r:null}async readOriginal(t){if(t.original)return Buffer.from(t.original,"base64");if(t.derivation_recipe)return Dg(t.derivation_recipe);if(t.reexecution_recipe)return Gg(t.reexecution_recipe);if(t.blob_key){let r=this.db?await this.kvGet(t.blob_key):this.document.blobs[t.blob_key];return si(r)?Lg(r):null}return null}deleteUnreferencedLocalBlobs(t){let r=new Set(t.map(n=>n.blob_key).filter(n=>typeof n=="string"));for(let n of Object.keys(this.document.blobs))r.has(n)||(delete this.document.blobs[n],this.dirty=!0)}async flush(){this.dirty&&(await mn(this.path,this.document),this.dirty=!1),await this.rotateLocalGenerationIfOversized()}async rotateLocalGenerationIfOversized(){let t=await ju(this.path).then(a=>a.size,()=>0);if(t<=this.opts.byteBudget)return;let r=this.readIndex().records,n=new Set(r.map(a=>a.key)),s=new Set(r.map(a=>a.blob_key).filter(a=>typeof a=="string")),o={version:1,records:Object.fromEntries(Object.entries(this.document.records).filter(([a])=>n.has(a))),blobs:Object.fromEntries(Object.entries(this.document.blobs).filter(([a])=>s.has(a))),tombstones:{},index:{version:1,records:r}},i=Buffer.byteLength(`${JSON.stringify(o)}
|
|
81
|
-
`,"utf8");i>this.opts.byteBudget||i>=t||(this.document=o,await mn(this.path,this.document))}kv(){if(!this.db)throw new Error("rsp RedDB store is not open");return this.db.kv(ue)}async kvGet(t){let r=await this.kv().get(t);if(typeof r!="string")return r;try{return JSON.parse(r)}catch{return r}}async ensureRedDbStore(){let t=await this.readRedDbIndex();await this.writeRedDbIndex(t)}async ensureRedDbCollections(){if(!this.db)throw new Error("rsp RedDB store is not open");let t=(await this.db.list()).find(r=>r.name===ue);if(!t){await this.db.query(`CREATE KV IF NOT EXISTS ${ue}`);return}if(t.model!=="kv"){if(t.model!=="table")throw new Error(`cannot self-heal elision collection ${ue}: unsupported model ${t.model}`);await this.db.query(`DROP TABLE ${ue}`),await this.db.query(`CREATE KV IF NOT EXISTS ${ue}`)}}async mintRedDb(t,r){let n=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=bs(n,r),a=zt(i),c=Gt(r.command),u=c==="derivable"?gu(n,r.command):null,l=c==="re-executable"?hu(n,r.command):null,p=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,d=fu(s,p,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Sr(n),f=p==="ephemeral"?wu(n,g,o):null,k=yu(n,u,l,f);f&&!si(await this.kvGet(f.key))&&await this.kv().put(f.key,f);let E={collection:ue,handle:i,original_bytes:n.length,stored_bytes:k,command:r.command,created_at:o,expires_at:d,loss:r.loss,storage_class:p,content_hash:g,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};await this.kv().delete(Tr(i)),await this.kv().put(a,E);let _=(await this.readRedDbIndex()).records.filter(T=>T.handle!==i);return _.push({handle:i,key:a,bytes:k,raw_bytes:n.length,command:r.command,created_at:o,expires_at:d,storage_class:p,blob_key:f?.key}),await this.pruneRedDb({version:1,records:_},!0),await this.assertRedDbMintPersisted(i,k),i}async getRedDb(t){if(!_s(t))return null;let r=await this.kvGet(Tr(t));if(oi(r))return r;let n=await this.kvGet(zt(t));if(!Es(n))return null;if(Date.parse(n.expires_at)<=this.opts.now().getTime()){let o={status:"expired",expired_at:n.expires_at,command:n.command};return await this.expireRedDbEntry({handle:n.handle,key:zt(n.handle),bytes:bu(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:ws(n),blob_key:n.blob_key},n.expires_at),o}let s=await this.readOriginal(n);return!s&&(n.derivation_recipe||n.reexecution_recipe)?{status:"expired",expired_at:n.expires_at,command:n.command}:s?{collection:ue,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:ws(n)}:null}async statsRedDb(){let t=await this.pruneRedDb(await this.readRedDbIndex());return{records:t.records.length,bytes:vr(t.records),oldest:t.records.reduce((r,n)=>r==null||n.created_at<r?n.created_at:r,null),budget:this.opts.byteBudget,storage_classes:pu(t.records)}}async recoveryHandlesRedDb(t){let r=await this.pruneRedDb(await this.readRedDbIndex());return mu(r.records,this.opts.now(),t)}async memory(t,r){if(!this.db)throw new Error("resident memory operations require the shared RedDB store");if(await this.ensureMemoryGraphStore(),t==="recall"){let n=Ng(r);return await this.memoryRecallRedDb(n.query,n.limit)}if(t==="ingest"){let n=Fg(r);return await this.memoryIngestRedDb(n)}throw new Error(`unsupported memory action: ${t}`)}async ensureMemoryGraphStore(){if(!this.db)throw new Error("rsp RedDB store is not open");await this.db.execute("CREATE GRAPH IF NOT EXISTS memory_nodes"),await this.db.execute("CREATE GRAPH IF NOT EXISTS memory_edges")}async memoryIngestRedDb(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await Mg(t.cwd,t.maxFiles??200,t.ignore??[]),n=0;for(let s of r){let i=(await SC(s,"utf8").catch(()=>"")).trim();if(!i)continue;let a=TC(s),c=RC("sha256").update("resident-memory-v1\0").update(s).update("\0").update(i).digest("hex");if(await this.db.kv("memory_kv").get(`resident-node-hash:${c}`)!=null)continue;let u=Date.now(),l={title:a,content:i,source:s,confidence:"EXTRACTED",hash:c,project:"default",scope:"project",importance:1,tier:"durable",provenance_tier:"oracle",created_at:u,updated_at:u,accessed_at:u,access_count:0,provenance:{source_kind:"system",writer:"rsp-resident",confidence:"EXTRACTED",evidence:[s],created_at:u,updated_at:u}},p=await this.db.query("INSERT INTO memory_nodes NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *",a,"concept",c,l),d=Number(p.rows[0]?.red_entity_id??p.rows[0]?.rid);Number.isFinite(d)&&await this.db.kv("memory_kv").put(`resident-node-hash:${c}`,d),n+=1}return{files:r.length,nodes:n,edges:0,docs:r.length,added:n,updated:0,skipped:r.length-n,stale:0,semantic:{enabled:!1,nodes:0,edges:0,token_cost:{input:0,output:0}},durationMs:0}}async memoryRecallRedDb(t,r){if(!this.db)throw new Error("rsp RedDB store is not open");let n=await this.db.query("SELECT * FROM memory_nodes"),s=t.toLowerCase().split(/\s+/).filter(Boolean),o=n.rows.map(i=>Bg(i,s)).filter(i=>i!=null).sort((i,a)=>a.score-i.score).slice(0,Math.max(1,Math.min(100,r)));return{hits:o,context_md:o.map(i=>`- memory_nodes:${i.rid} ${i.label}: ${i.excerpt}`).join(`
|
|
82
|
-
`),diagnostics:{vector:{status:"unavailable",candidates:0,contributed:0,reason:"resident-basic-recall"}}}}async readRedDbIndex(){let t=await this.kvGet(ti());return _u(t)?t:{version:1,records:[]}}async writeRedDbIndex(t){await this.kv().put(ti(),t)}async pruneRedDb(t,r=!1){let n=this.opts.now().getTime(),s=new Date(n).toISOString(),o=[];for(let c of t.records)Date.parse(c.expires_at)<=n?await this.expireRedDbEntry(c,c.expires_at):o.push(c);let i=vr(o);for(o.sort((c,u)=>c.created_at.localeCompare(u.created_at));i>this.opts.byteBudget&&o.length>0;){let c=o.shift();await this.expireRedDbEntry(c,s),i=vr(o)}let a={version:1,records:o};return(r||o.length<t.records.length)&&await this.writeRedDbIndex(a),await this.deleteUnreferencedRedDbBlobs(o),await this.rotateRedDbGenerationIfOversized(a),a}async rotateRedDbGenerationIfOversized(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await ju(this.path).then(u=>u.size,()=>0);if(r<=this.opts.byteBudget)return;let n=await this.snapshotRedDbKvCollections(t);if(!n)return;let s=`${process.pid}.${Date.now()}`,o=`${this.path}.${s}.compact`,i=`${this.path}.${s}.old`;await Cs(o,{force:!0}),await Cs(i,{force:!0});let a=await mi(`file://${o}`);try{for(let u of n){await a.query(`CREATE KV IF NOT EXISTS ${Pg(u.name)}`);let l=a.kv(u.name);for(let p of u.items)await l.put(p.key,p.value)}}finally{await a.close()}let c=await ju(o).then(u=>u.size,()=>0);if(c===0||c>this.opts.byteBudget||c>=r){await Cs(o,{force:!0});return}await this.db.close(),this.db=void 0;try{await Bu(this.path,i),await Bu(o,this.path),await Cs(i,{force:!0})}catch(u){throw!ph(this.path)&&ph(i)&&await Bu(i,this.path),await Cs(o,{force:!0}),u}finally{this.db=await mi(`file://${this.path}`)}}async snapshotRedDbKvCollections(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await this.db.list();if(r.some(o=>o.model!=="kv"))return null;let n=[],s=!1;for(let o of r){let i=String(o.name??"").trim();if(i===ue){n.push(await this.snapshotRedDbElisions(t)),s=!0;continue}let a=await this.db.kv(i).list({limit:1e4});if(a.items.length>=1e4)return null;n.push({name:i,items:a.items})}return s||n.push(await this.snapshotRedDbElisions(t)),n}async snapshotRedDbElisions(t){let r=[{key:ti(),value:t}],n=new Set;for(let s of t.records)n.add(s.key),s.blob_key&&n.add(s.blob_key);for(let s of n){let o=await this.kvGet(s);o!=null&&r.push({key:s,value:o})}return{name:ue,items:r}}async expireRedDbEntry(t,r){await this.kv().delete(t.key),await this.kv().put(Tr(t.handle),{status:"expired",expired_at:r,command:t.command})}async deleteUnreferencedRedDbBlobs(t){let r=new Set(t.map(s=>s.blob_key).filter(s=>typeof s=="string")),n=await this.kv().list({limit:1e4}).catch(()=>({items:[]}));for(let s of n.items)s.key.startsWith("blob:")&&!r.has(s.key)&&await this.kv().delete(s.key)}async assertRedDbMintPersisted(t,r){let n=await this.kvGet(zt(t));if(!Es(n))throw new Error(`rsp resident failed to persist elision record ${t}`);let o=(await this.readRedDbIndex()).records.find(i=>i.handle===t);if(!o||o.bytes!==r)throw new Error(`rsp resident failed to persist elision index ${t}`)}}});var gh={};K(gh,{DEFAULT_RSP_BYTE_BUDGET:()=>Qe,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Ye,DEFAULT_RSP_TTL_DAYS:()=>ze,RSP_ELISION_COLLECTION:()=>ue,RspElisionStore:()=>xr,contentHandle:()=>bs,ensureReddbBinaryFromWarmCache:()=>ai,provisionElisionStore:()=>mh,storageClassForCommand:()=>Gt});var fi=h(()=>{"use strict";Xo();ci();ci();fh()});async function gi(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:30,s=r.getTime()-n*24*60*60*1e3,o=await bh(e,s),i=(await Os(e,he)).filter(P=>yn(P)>=s),a=o.filter(P=>F(P.event_type)!=="show"&&F(P.degradation_reason)===""),c=o.filter(P=>F(P.event_type)==="show"),u=o.filter(P=>F(P.degradation_reason)!==""),l=0,p=0,d=0,g=0,f=!1,k=new Map,E=new Map,y=[],_=0,T=0,v=0;for(let P of a){P.elided===!0&&l++;let M=Me(P.raw_bytes),De=Me(P.emitted_bytes),_t=Math.max(0,M-De),Mt=bn(P,"raw"),O=bn(P,"emitted"),N=Math.max(0,Mt.tokens-O.tokens);f||=(P.estimated===!0||Mt.estimated||O.estimated)&&N>0,p+=M,d+=De,g+=N;let Et=Cr(P).slice(0,10);Et&&k.set(Et,(k.get(Et)??0)+N);let st=F(P.command)||"unknown",ve=E.get(st)??{command:st,invocations:0,bytes_saved:0,tokens_saved:0};ve.invocations++,ve.bytes_saved+=_t,ve.tokens_saved+=N,E.set(st,ve);let xe=Vt(P.wrapper_ms);xe!=null&&y.push(xe),_+=Me(P.store_open_count);let Rt=Vt(P.store_elapsed_ms);Rt!=null&&(T+=Rt,v++)}let G=new Map,B=new Map,V=[],te=null;for(let P of u){let M=F(P.degradation_reason)||F(P.reason)||"unknown",De=F(P.wrapper_family)||Be(F(P.command));G.set(M,(G.get(M)??0)+1),B.set(De,(B.get(De)??0)+1);let _t=Cr(P);V.push({timestamp:_t,family:De,command:F(P.command)||"unknown",reason:M,exit_code:Vt(P.wrapper_exit_code),stderr_head:F(P.stderr_head)||null}),(!te||_t>te.timestamp)&&(te={timestamp:_t,reason:M,command:F(P.command)||"unknown"})}let re=a.length+u.length,He=c.filter(P=>P.hit===!0).length,de=Rc(g,f),Ft=xC(i);return{window_days:n,empty:o.length===0,savings:{invocations:a.length,elided:l,raw_bytes:p,emitted_bytes:d,bytes_saved:Math.max(0,p-d),tokens_saved:g,tokens_saved_estimated:de.tokens_saved_estimated,token_estimate_range_pct:de.token_estimate_range_pct,tokens_saved_low:de.tokens_saved_low,tokens_saved_high:de.tokens_saved_high,dollars_saved_estimate_usd:de.dollars_saved_estimate_usd,dollars_saved_low_usd:de.dollars_saved_low_usd,dollars_saved_high_usd:de.dollars_saved_high_usd,pricing_model_family:de.pricing_model_family,pricing_input_usd_per_million_tokens:de.pricing_input_usd_per_million_tokens,pricing_note:de.pricing_note,daily_tokens_saved:[...k.entries()].sort(([P],[M])=>P.localeCompare(M)).map(([P,M])=>({date:P,tokens_saved:M})),top_commands:[...E.values()].sort((P,M)=>M.bytes_saved-P.bytes_saved||M.tokens_saved-P.tokens_saved||P.command.localeCompare(M.command))},health:{degradations:u.length,degradation_rate:re===0?0:u.length/re,show_total:c.length,show_hits:He,show_misses:Math.max(0,c.length-He),show_hit_rate:c.length===0?0:ye(He/c.length),by_reason:[...G.entries()].sort((P,M)=>M[1]-P[1]||P[0].localeCompare(M[0])).map(([P,M])=>({reason:P,count:M})),by_family:[...B.entries()].sort((P,M)=>M[1]-P[1]||P[0].localeCompare(M[0])).map(([P,M])=>({family:P,count:M})),recent_failures:V.sort((P,M)=>M.timestamp.localeCompare(P.timestamp)).slice(0,20),most_recent:te},latency:{wrapper_ms_p50:hn(y,.5),wrapper_ms_p95:hn(y,.95),store_open_count_sum:_,store_elapsed_ms_sum:ye(T),store_elapsed_ms_avg:v===0?null:ye(T/v)},decisions:Ft}}function xC(e){let t=0,r=0,n=0,s=0,o=new Map,i=new Map;for(let a of e){let c=F(a.decision);if(c==="contributed"?t++:c==="failed-open"?n++:r++,a.quota_free===!0&&(s+=Math.max(1,Me(a.saved_units))),c!=="contributed"){let p=F(a.reason)||"unknown";o.set(p,(o.get(p)??0)+1)}let u=F(a.command_family)||"unknown",l=i.get(u)??{contributed:0,passed:0,failed_open:0};c==="contributed"?l.contributed++:c==="failed-open"?l.failed_open++:l.passed++,i.set(u,l)}return{seen:e.length,contributed:t,passed:r,failed_open:n,quota_free_saved_units:s,contribution_rate:e.length===0?0:ye(t/e.length),top_pass_reasons:[...o.entries()].sort((a,c)=>c[1]-a[1]||a[0].localeCompare(c[0])).map(([a,c])=>({reason:a,count:c})),by_command_family:[...i.entries()].sort((a,c)=>{let u=a[1].contributed+a[1].passed+a[1].failed_open;return c[1].contributed+c[1].passed+c[1].failed_open-u||a[0].localeCompare(c[0])}).map(([a,c])=>{let u=c.contributed+c.passed+c.failed_open;return{command_family:a,contributed:c.contributed,passed:c.passed,failed_open:c.failed_open,contribution_rate:u===0?0:ye(c.contributed/u)}})}}async function Uu(e,t,r=new Date){let s=(await Os(e,Ce)).filter(o=>yn(o)<=r.getTime()||Cr(o)==="");return{records:s.length,bytes:s.reduce((o,i)=>o+Buffer.byteLength(JSON.stringify(i),"utf8"),0),oldest:s.reduce((o,i)=>{let a=Cr(i);return a&&(o==null||a<o)?a:o},null),budget:t,storage_classes:$C(s)}}async function Hu(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:28,s=r.toISOString(),o=new Date(r.getTime()-n*24*60*60*1e3).toISOString(),i=Date.parse(o),a=await bh(e,i),c=a.filter(O=>F(O.event_type)!=="show"&&F(O.event_type)!=="control_holdout"&&O.control_holdout!==!0&&F(O.degradation_reason)===""),u=a.filter(O=>F(O.event_type)==="control_holdout"||O.control_holdout===!0),l=a.filter(O=>F(O.event_type)==="show"),p=a.filter(O=>F(O.degradation_reason)!==""),d=[...c,...p].map(yn).filter(O=>Number.isFinite(O)&&O>0),g=d.length===0?null:Math.min(...d),f=g==null?0:Math.max(1,Math.min(n,Math.ceil((r.getTime()-g)/WC()))),k=[],E=new Map,y=new Map,_=new Map,T=new Map,v=new Map,G=new Map,B=0,V=!1,te=0,re=null,He=0,de=0;for(let O of c){let N=Cr(O),Et=N.slice(0,10),st=N.slice(0,16),ve=Be(F(O.command)),xe=Math.max(0,bn(O,"raw").tokens-bn(O,"emitted").tokens);B+=xe,V||=O.estimated===!0&&xe>0;let Rt=Math.max(0,Me(O.raw_bytes)-Me(O.emitted_bytes)),Fr=Vt(O.wrapper_ms);if(Fr!=null){k.push(Fr);let In=E.get(ve)??[];In.push(Fr),E.set(ve,In)}Et&&y.set(Et,(y.get(Et)??0)+1),st&&_.set(st,(_.get(st)??0)+1);let Bt=BC(N);Bt&&T.set(Bt,(T.get(Bt)??0)+1);let Pn=HC(N);Pn&&v.set(Pn,(v.get(Pn)??0)+xe);let ur=G.get(ve)??{command_family:ve,invocations:0,tokens_saved:0,bytes_saved:0};ur.invocations++,ur.tokens_saved+=xe,ur.bytes_saved+=Rt,G.set(ve,ur),O.elided===!0&&te++,(O.store_open_count!=null||O.store_elapsed_ms!=null)&&(He++,Me(O.store_open_count)>0&&de++),xe>0&&(!re||xe>re.tokens_saved||xe===re.tokens_saved&&Rt>re.bytes_saved)&&(re={timestamp:N,command_family:ve,tokens_saved:xe,bytes_saved:Rt})}let Ft=p.map(O=>({timestamp:Cr(O),command_family:Be(F(O.command)),reason:F(O.degradation_reason)||F(O.reason)||"unknown"})).sort((O,N)=>O.timestamp.localeCompare(N.timestamp)),P=new Map;for(let O of Ft)P.set(O.reason,(P.get(O.reason)??0)+1);let M=PC(Ft),De=AC(l),_t=LC([...G.values()],De,M),Mt=[..._.entries()].sort((O,N)=>N[1]-O[1]||O[0].localeCompare(N[0]))[0];return{schema_version:"red.rsp.gains.v1",window:{requested_days:n,data_days:f,since:o,until:s,label:`window: ${n}d, data: ${f}d`,empty:c.length===0&&p.length===0,invocations:c.length,degradations:p.length},latency:{global:yh(k),by_command_family:[...E.entries()].sort((O,N)=>N[1].length-O[1].length||O[0].localeCompare(N[0])).map(([O,N])=>({command_family:O,count:N.length,...yh(N)}))},throughput:{requests_per_day:[...y.entries()].sort(([O],[N])=>O.localeCompare(N)).map(([O,N])=>({date:O,requests:N})),active_minute_avg:_.size===0?null:ye([..._.values()].reduce((O,N)=>O+N,0)/_.size),peak_minute:Mt?{minute:Mt[0],requests:Mt[1]}:null,hour_weekday_heatmap:jC(T)},savings:{tokens:Rc(B,V),measured_control_holdout:CC(c,u),weekly_tokens_saved:qC(v),elision_rate:c.length===0?0:ye(te/c.length),top_commands_by_tokens_saved:[...G.values()].sort((O,N)=>N.tokens_saved-O.tokens_saved||N.bytes_saved-O.bytes_saved||O.command_family.localeCompare(N.command_family)).slice(0,10),top_commands_by_invocation_count:[...G.values()].sort((O,N)=>N.invocations-O.invocations||N.tokens_saved-O.tokens_saved||O.command_family.localeCompare(N.command_family)).slice(0,10),single_biggest_elision:re},health:{degradation_timeline:Ft,degradations_by_reason:[...P.entries()].sort((O,N)=>N[1]-O[1]||O[0].localeCompare(N[0])).map(([O,N])=>({reason:O,count:N})),cold_boots:He===0?null:de,warm_hits:He===0?null:Math.max(0,He-de)},mining:{recovery_usage_by_family:De,degradation_clusters:M,threshold_tuning_suggestions:_t}}}async function bh(e,t){let r=(await Os(e,Ce)).filter(i=>yn(i)>=t),n=r.some(i=>F(i.event_type)!=="show"||F(i.degradation_reason)!==""),s=(await Os(e,Fe)).filter(i=>yn(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:F(i.event_type)||"invocation"})),o=(await Os(e,ft)).filter(i=>yn(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:"invocation",degradation_reason:F(i.reason)||"unknown"}));return[...r,...s,...o]}function bn(e,t){let r=Vt(e[t==="raw"?"tokens_raw":"tokens_emitted"]);if(r!=null)return{tokens:r,estimated:!1};let n=Me(e[t==="raw"?"raw_bytes":"emitted_bytes"]);return{tokens:Math.ceil(n/4),estimated:n>0}}function CC(e,t){let r=GC(t.map(a=>Vt(a.holdout_share)))??0;if(t.length===0)return{enabled:!1,holdout_share:r,holdout_invocations:0,compressed_invocations:e.length,savings_rate:null,confidence_interval_95:null,note:"control holdout disabled or no holdout samples in window"};let n=e.map(hh).filter(a=>a!=null),s=t.map(hh).filter(a=>a!=null),o=n.length>0?n:s,i=o.length===0?null:ye(DC(o));return{enabled:!0,holdout_share:ye(r),holdout_invocations:t.length,compressed_invocations:e.length,savings_rate:i,confidence_interval_95:i==null?null:OC(o,i),note:"measured from opt-in uncompressed control holdout; report proposes, it does not tune automatically"}}function hh(e){let t=bn(e,"raw").tokens;if(t<=0)return null;let r=bn(e,"emitted").tokens;return Math.max(0,t-r)/t}function OC(e,t){if(e.length<=1)return{low:ye(Math.max(0,t)),high:ye(Math.min(1,t))};let r=e.reduce((s,o)=>s+(o-t)**2,0)/(e.length-1),n=1.96*Math.sqrt(r/e.length);return{low:ye(Math.max(0,t-n)),high:ye(Math.min(1,t+n))}}function AC(e){let t=new Map;for(let r of e){let n=Be(F(r.recovered_command)||F(r.command)),s=t.get(n)??{command_family:n,show_total:0,show_hits:0,show_misses:0};s.show_total++,r.hit===!0?s.show_hits++:s.show_misses++,t.set(n,s)}return[...t.values()].sort((r,n)=>n.show_total-r.show_total||r.command_family.localeCompare(n.command_family)).map(r=>({...r,show_hit_rate:r.show_total===0?0:ye(r.show_hits/r.show_total)}))}function PC(e){let t=new Map;for(let r of e){let n=`${r.command_family}\0${r.reason}`,s=t.get(n)??{command_family:r.command_family,reason:r.reason,count:0};s.count++,t.set(n,s)}return[...t.values()].sort((r,n)=>n.count-r.count||r.command_family.localeCompare(n.command_family)||r.reason.localeCompare(n.reason)).map(r=>({...r,suggestion:IC(r)}))}function IC(e){return/unavailable|not provisioned|missing/i.test(e.reason)?`Investigate ${e.command_family} wrapper availability before changing thresholds`:/timeout|large|limit/i.test(e.reason)?`Review ${e.command_family} byte thresholds and timeout caps for ${e.count} matching degradations`:`Investigate ${e.command_family} ${e.reason} cluster before tuning compression thresholds`}function LC(e,t,r){let n=[];for(let s of t.filter(o=>o.show_total>0))n.push({command_family:s.command_family,signal:`recovery_show_rate=${s.show_total}`,suggestion:s.show_hit_rate>=.5?"Consider preserving more context or raising terse thresholds for frequently recovered outputs":"Recovery misses dominate; inspect handle lifetime before threshold changes"});for(let s of r.filter(o=>o.count>1))n.push({command_family:s.command_family,signal:`degradation_cluster=${s.reason}:${s.count}`,suggestion:"Fix the repeated degradation before tightening compression"});for(let s of e.filter(o=>o.invocations>0&&o.tokens_saved===0))n.push({command_family:s.command_family,signal:"zero_token_savings",suggestion:"Consider bypassing or raising admission thresholds for this family"});return n.slice(0,10)}function DC(e){return e.reduce((t,r)=>t+r,0)/e.length}function GC(e){let t=e.filter(r=>r!=null);return t.length===0?null:Math.max(...t)}function $C(e){let t=FC();for(let r of e){if(F(r.event_type)==="show"||F(r.degradation_reason)!==""||r.elided!==!0)continue;let n=NC(r.storage_class)??Gt(F(r.command));t[n].records+=1;let s=Me(r.raw_bytes);t[n].bytes+=s,t[n].raw_bytes+=s}return t}function NC(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"?e:null}function FC(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}async function Os(e,t){return(await e.kv(t).list({limit:1e4}).catch(n=>{if(n instanceof Error&&/\bnot found\b/i.test(n.message))return{items:[]};throw n})).items.map(n=>MC(n.value)).filter(n=>un(n))}function MC(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function yn(e){let t=Date.parse(Cr(e));return Number.isFinite(t)?t:0}function Cr(e){return F(e.created_at)||F(e.ts)||""}function F(e){return typeof e=="string"?e:""}function hn(e,t){if(e.length===0)return null;let r=[...e].sort((s,o)=>s-o),n=Math.min(r.length-1,Math.max(0,Math.ceil(r.length*t)-1));return ye(r[n])}function yh(e){return{wrapper_ms_p50:hn(e,.5),wrapper_ms_p90:hn(e,.9),wrapper_ms_p95:hn(e,.95),wrapper_ms_p99:hn(e,.99)}}function ye(e){return Math.round(e*100)/100}function BC(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${UC(t.getUTCDay())}:${t.getUTCHours()}`:null}function jC(e){let t=[];for(let r of["sun","mon","tue","wed","thu","fri","sat"])for(let n=0;n<24;n++){let s=e.get(`${r}:${n}`)??0;s>0&&t.push({weekday:r,hour:n,requests:s})}return t}function UC(e){return["sun","mon","tue","wed","thu","fri","sat"][e]??"unknown"}function HC(e){let t=new Date(e);if(!Number.isFinite(t.getTime()))return null;let r=t.getUTCDay(),n=r===0?-6:1-r;return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()+n)).toISOString().slice(0,10)}function qC(e){let t=null;return[...e.entries()].sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>{let s=t==null||t===0?null:ye((n-t)/t*100);return t=n,{week_start:r,tokens_saved:n,wow_delta_pct:s}})}function WC(){return 24*60*60*1e3}var wh=h(()=>{"use strict";fs();fi();kc();Vo();ru()});var As={};K(As,{RSP_ACCOUNTING_EVENTS_COLLECTION:()=>Ce,RSP_DECISIONS_COLLECTION:()=>he,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:()=>ft,RSP_TELEMETRY_INDEX_COLLECTION:()=>ls,RSP_TELEMETRY_INVOCATIONS_COLLECTION:()=>Fe,RSP_TELEMETRY_LEGACY_SPOOL_FILE:()=>eu,RSP_TELEMETRY_SPOOL_CORRECTIONS_FILE:()=>tu,RSP_TELEMETRY_SPOOL_FILE:()=>Zc,appendTelemetryEvent:()=>Dt,appendTelemetryEventSync:()=>Kt,drainTelemetrySpool:()=>cu,parseTelemetryEvent:()=>dn,readAccountingLaneStats:()=>Uu,readTelemetryGainsReport:()=>Hu,readTelemetryStats:()=>gi,takeTelemetrySpool:()=>Jv,telemetryLegacySpoolPath:()=>Yo,telemetrySpoolCorrectionsPath:()=>au,telemetrySpoolPath:()=>Lt});var et=h(()=>{"use strict";Vo();Og();wh()});var Eh={};K(Eh,{readGhConditionalJson:()=>Oe,readGhEtagCache:()=>jo,sweepGhEtagCache:()=>zc});import{spawn as JC}from"node:child_process";import{createHash as VC,randomUUID as KC}from"node:crypto";async function Oe(e){let t=e.cwd??process.cwd(),r=e.telemetryRoot??t,n=process.hrtime.bigint(),s=e.overheadCeiling??Ke,o=zC(e.path,e.params),i=YC(o),c=tc(r,"gh-api-json")?void 0:await Jc(r,i),u=["api","--include","--method","GET",e.path];for(let[f,k]of _h(e.params))u.push("-f",`${f}=${String(k)}`);c?.etag&&u.push("-H",`If-None-Match: ${c.etag}`);let l=await QC(u,t,e.env,e.signal),p=f=>{let k=Kn();Jn(r,{family:"gh-api-json",wrapperMs:Number(process.hrtime.bigint()-n)/1e6,childMs:k.childMs,selfStateBytesRead:k.selfStateBytesRead,bytesSaved:f},s)},d=XC(l.stdout);if(d.statusCode===304&&!!c)return p(Buffer.byteLength(c.body)),await qu(r,e.command??`gh api ${e.path}`,!0),{status:0,stdout:c.body,stderr:l.stderr,etag:c.etag,quotaFree:!0};if(d.statusCode>=200&&d.statusCode<300){let f=d.headers.get("etag");return f&&await Vc(r,{key:i,request:o,etag:f,body:d.body,updated_at:new Date().toISOString()},{maxBytes:e.cacheMaxBytes}),p(0),await qu(r,e.command??`gh api ${e.path}`,!1),{status:l.status,stdout:d.body,stderr:l.stderr,etag:f??void 0,quotaFree:!1}}return p(0),await qu(r,e.command??`gh api ${e.path}`,!1),{status:l.status,stdout:d.body||l.stdout,stderr:l.stderr,quotaFree:!1}}function _h(e){return Object.entries(e??{}).filter(t=>t[1]!==void 0).sort(([t],[r])=>t.localeCompare(r))}function zC(e,t){return JSON.stringify({method:"GET",path:e,params:_h(t)})}function YC(e){return VC("sha256").update(`rsp-gh-etag-v1\0${e}`).digest("hex")}async function QC(e,t,r,n){return n?.aborted?{status:1,stdout:"",stderr:"gh call cancelled"}:await new Promise(s=>{let o=!1,i=d=>{o||(o=!0,n?.removeEventListener("abort",c),s(d))},a=JC("gh",e,{cwd:t,env:r?{...process.env,...r}:process.env,stdio:["ignore","pipe","pipe"]});function c(){try{a.kill("SIGKILL")}catch{}i({status:1,stdout:"",stderr:"gh call cancelled"})}n?.addEventListener("abort",c,{once:!0});let u=ke();a.once("close",u),a.once("error",u);let l=[],p=[];a.stdout.on("data",d=>l.push(Buffer.from(d))),a.stderr.on("data",d=>p.push(Buffer.from(d))),a.once("error",d=>i({status:1,stdout:"",stderr:d.message})),a.once("close",d=>{i({status:d??1,stdout:Buffer.concat(l).toString("utf8"),stderr:Buffer.concat(p).toString("utf8").trim()})})})}function XC(e){let t=e.replace(/\r\n/g,`
|
|
83
|
-
`),r=[...t.matchAll(/^HTTP\/\S+\s+(\d{3})[^\n]*\n/gm)];if(r.length===0)return{statusCode:0,headers:new Map,body:e};let n=r[r.length-1],s=Number(n[1]),o=n.index+n[0].length,i=t.indexOf(`
|
|
84
|
-
|
|
85
|
-
`,o),a=i>=0?t.slice(o,i):t.slice(o),c=new Map;for(let u of a.split(`
|
|
86
|
-
`)){let l=u.indexOf(":");l<=0||c.set(u.slice(0,l).trim().toLowerCase(),u.slice(l+1).trim())}return{statusCode:s,headers:c,body:i>=0?t.slice(i+2):""}}async function qu(e,t,r){await Dt(e,{collection:he,id:KC(),created_at:new Date().toISOString(),command:t,command_family:"gh api",decision:"contributed",reason:r?"gh-conditional-304":"gh-conditional-fetch",quota_free:r,saved_units:r?1:0})}var hi=h(()=>{"use strict";us();us();oe();et()});import{spawn as ZC}from"node:child_process";async function Ps(e,t){return await eO(t,async r=>{let n=await rO(e,t.cwd,r);return n||await tO(e,t.cwd,r)})}async function eO(e,t){if(e.signal.aborted)return{status:1,stdout:"",stderr:"wait cancelled"};let r=new AbortController,n=setTimeout(()=>r.abort(),e.timeoutMs),s=AbortSignal.any([e.signal,r.signal]);try{let o=await t(s);return r.signal.aborted?{status:1,stdout:"",stderr:`GitHub probe exceeded ${e.timeoutMs}ms`}:o}finally{clearTimeout(n)}}async function tO(e,t,r){return r.aborted?{status:1,stdout:"",stderr:"gh call cancelled"}:await new Promise(n=>{let s=!1,o=l=>{s||(s=!0,r.removeEventListener("abort",a),n(l))},i=ZC("gh",e,{cwd:t,stdio:["ignore","pipe","pipe"]});function a(){let l=i.pid;l&&Ao(l).then(p=>Oo(p,"SIGKILL"));try{i.kill("SIGKILL")}catch{}o({status:1,stdout:"",stderr:"gh call cancelled"})}r.addEventListener("abort",a,{once:!0});let c=[],u=[];i.stdout.on("data",l=>c.push(Buffer.from(l))),i.stderr.on("data",l=>u.push(Buffer.from(l))),i.once("error",l=>o({status:1,stdout:"",stderr:l.message})),i.once("close",l=>{o({status:l??1,stdout:Buffer.concat(c).toString("utf8"),stderr:Buffer.concat(u).toString("utf8").trim()})})})}async function rO(e,t,r){if(e[0]==="pr"&&e[1]==="view"&&e[2])return await nO(e[2],t,r);if(e[0]==="run"&&e[1]==="view"&&e[2]){let n=await Oe({path:`repos/{owner}/{repo}/actions/runs/${e[2]}`,cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(n.status!==0)return n;let s=pt(JSON.parse(n.stdout));return{status:0,stderr:n.stderr,stdout:JSON.stringify({databaseId:sn(s,"database_id")||sn(s,"id"),status:ge(s,"status").toUpperCase(),conclusion:ge(s,"conclusion").toUpperCase(),workflowName:ge(s,"workflow_name")||ge(s,"name"),headBranch:ge(s,"head_branch"),url:ge(s,"html_url")})}}if(e[0]==="run"&&e[1]==="list"){let n=Go(e,"--branch"),s=Go(e,"--limit")??"20",o=await Oe({path:"repos/{owner}/{repo}/actions/runs",params:{branch:n,per_page:s},cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(o.status!==0)return o;let i=Rr(pt(JSON.parse(o.stdout)).workflow_runs).map(a=>({databaseId:sn(a,"database_id")||sn(a,"id")}));return{status:0,stdout:JSON.stringify(i),stderr:o.stderr}}if(e[0]==="release"&&e[1]==="list"){let n=Go(e,"--limit")??"20",s=await Oe({path:"repos/{owner}/{repo}/releases",params:{per_page:n},cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(s.status!==0)return s;let o=Rr(JSON.parse(s.stdout)).map(i=>({tagName:ge(i,"tag_name"),publishedAt:ge(i,"published_at"),isDraft:i.draft===!0}));return{status:0,stdout:JSON.stringify(o),stderr:s.stderr}}return null}async function nO(e,t,r){let n=await Oe({path:`repos/{owner}/{repo}/pulls/${e}`,cwd:t,signal:r,command:`gh pr view ${e}`});if(n.status!==0)return n;let s=pt(JSON.parse(n.stdout));if(Array.isArray(s.statusCheckRollup))return{status:0,stdout:n.stdout,stderr:n.stderr};let o=ge(pt(s.head),"sha"),[i,a]=o?await Promise.all([Oe({path:`repos/{owner}/{repo}/commits/${o}/status`,cwd:t,signal:r,command:`gh pr view ${e} status`}),Oe({path:`repos/{owner}/{repo}/commits/${o}/check-runs`,cwd:t,signal:r,command:`gh pr view ${e} check-runs`})]):[{status:0,stdout:"{}",stderr:"",quotaFree:!1},{status:0,stdout:"{}",stderr:"",quotaFree:!1}],c=i.status===0?Rr(pt(JSON.parse(i.stdout)).statuses):[],u=a.status===0?Rr(pt(JSON.parse(a.stdout)).check_runs):[];return{status:0,stderr:[n.stderr,i.stderr,a.stderr].filter(Boolean).join(`
|
|
87
|
-
`),stdout:JSON.stringify({number:sn(s,"number"),state:ge(s,"state").toUpperCase(),mergeable:sO(s),statusCheckRollup:[...c.map(l=>({conclusion:ge(l,"state").toUpperCase()})),...u.map(l=>({status:ge(l,"status").toUpperCase(),conclusion:ge(l,"conclusion").toUpperCase()}))],url:ge(s,"html_url")})}}function sO(e){let t=ge(e,"mergeable_state").toUpperCase();return t&&t!=="UNKNOWN"?t==="CLEAN"?"MERGEABLE":t:e.mergeable===!0?"MERGEABLE":e.mergeable===!1?"CONFLICTING":"UNKNOWN"}var Rh=h(()=>{"use strict";hi();$o();Pt()});function Sh(e,t,r){let n=Date.now();return()=>oO(e,t,r,n)}async function oO(e,t,r,n){if(!/^[1-9][0-9]*$/.test(e))return fe("missing PR number");let s=await Ps(["pr","view",e,"--json","number,state,mergeable,statusCheckRollup,url"],t);if(s.status!==0)return fe(s.stderr||"gh pr view failed");let o=Uc(s.stdout),i=Array.isArray(o.statusCheckRollup)?o.statusCheckRollup:[],a=String(o.mergeable??""),c=i.map(iO),u=c.filter(p=>p==="failure").length,l=c.filter(p=>p==="pending").length;if(String(o.state)!=="OPEN")return At("failure",`PR #${e} is ${String(o.state).toLowerCase()}`,{mergeable:a});if(a==="CONFLICTING")return At("failure",`PR #${e} has merge conflicts`,{failing:u,pending:l,mergeable:a});if(u>0)return At("failure",`PR #${e} has failing checks`,{failing:u,pending:l,mergeable:a});if(l>0)return Xr(`PR #${e} has ${l} pending checks`);if(i.length===0){let p=Date.now()-n;return a==="UNKNOWN"||a==="BLOCKED"||p<r.emptyChecksGraceMs?Xr(`PR #${e} has no registered checks yet`,{checks:0,mergeable:a,empty_checks_elapsed_ms:p}):At("success",`PR #${e} has no checks configured`,{checks:0,mergeable:a})}return a==="UNKNOWN"?Xr(`PR #${e} mergeability is still unknown`,{checks:i.length,mergeable:a}):At("success",`PR #${e} checks passed`,{checks:i.length,mergeable:a})}async function Th(e,t){if(!e)return fe("missing run id");let r=await Ps(["run","view",e,"--json","databaseId,status,conclusion,workflowName,headBranch,url"],t);if(r.status!==0)return fe(r.stderr||"gh run view failed");let n=Uc(r.stdout),s=String(n.status??"").toLowerCase(),o=String(n.conclusion??"").toLowerCase();return s!=="completed"?Xr(`run ${e} is ${s||"pending"}`):o==="success"?At("success",`run ${e} succeeded`,kh(n)):At("failure",`run ${e} concluded ${o||"unknown"}`,kh(n))}async function vh(e,t){let r=await Ps(["run","list","--branch",e,"--limit","1","--json","databaseId"],t);if(r.status!==0)return"";let n=JSON.parse(r.stdout),s=Array.isArray(n)?n[0]:void 0;return nn(s)&&s.databaseId!=null?String(s.databaseId):""}async function xh(e,t,r){let n=await Ps(["release","list","--limit","20","--json","tagName,publishedAt,isDraft"],r);if(n.status!==0)return fe(n.stderr||"gh release list failed");let o=Rr(JSON.parse(n.stdout)).find(i=>{let a=String(i.tagName??""),c=new Date(String(i.publishedAt??""));return i.isDraft!==!0&&(!e||aO(e,a))&&c>=t});return o?At("success",`release ${String(o.tagName)} published`,{tag:String(o.tagName),published_at:String(o.publishedAt??"")}):Xr("no matching release is published yet")}function iO(e){let t=nn(e)?e:{},r=String(t.conclusion??t.state??t.status??"").toLowerCase();return["success","successful","passed","completed","neutral","skipped"].includes(r)?"success":["failure","failed","error","timed_out","cancelled","action_required"].includes(r)?"failure":"pending"}function kh(e){return{database_id:typeof e.databaseId=="number"?e.databaseId:String(e.databaseId??""),conclusion:String(e.conclusion??""),workflow:String(e.workflowName??""),branch:String(e.headBranch??""),url:String(e.url??"")}}function aO(e,t){let r=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${r}$`).test(t)}var Ch=h(()=>{"use strict";_r();Rh();$o()});function Is(){return["usage: rsp wait <subcommand> [options]","","Subcommands:"," rsp wait pr <number> [--timeout 45m] [--reason <text>]"," rsp wait run <id|--branch <branch> --latest> [--timeout 45m]"," rsp wait release [--tag <glob>] [--timeout 2h]",' rsp wait cmd -- "<command line>" [--timeout 30m]'," rsp wait ls","","Examples:",' rsp wait pr 123 --reason "before merge"'," rsp wait run --branch feature/wait --latest",' rsp wait release --tag "v2.*"',' rsp wait cmd -- "pnpm -C apps/rsp build"'," rsp wait ls","","Doctrine: never hand-write sleep polling loops; run rsp wait in a background shell - process exit IS the signal.","Exit codes: 0 = success verdict, 1 = failure verdict, 2 = timeout/indeterminate.","Result: TOON by default; --json selects JSON; --result-file <path> is written atomically before any wake.","Command capture: --capture-bytes <n> (default 16384); elision handles recover larger stdout/stderr.",'Completion hooks: --signal-pid <pid> [--signal USR1] and --notify-cmd "<cmd>" run after the result is durable.',"Hook timeout: --notify-timeout 10s. Process termination: TERM, --terminate-grace 2s, then KILL.","GitHub bounds: --probe-timeout 60s caps one probe, so a hung gh call cannot outlive --timeout.",""].join(`
|
|
88
|
-
`)}var Wu=h(()=>{"use strict"});var Oh=h(()=>{"use strict";W()});var Ah=h(()=>{"use strict"});function cO(e){return Object.keys(e)}function wn(e){return{...e,fields:cO(e.fields)}}var Ph,Ih,Lh,uO,lO,dO,Dh,Ju=h(()=>{"use strict";Ph="red.castle.lane.v1",Ih="red.castle.state.v1",Lh="red.castle.history.v1",uO="red.castle.validation.v2",lO="red.castle.envelope.v1",dO="red.castle.hitl-card.v1",Dh=[wn({schemaId:Ph,docPath:".red/contracts/red.castle.lane.v1.md",typeNames:["CastleLaneRecord","CastleLaneKind"],fields:{at:!0,kind:!0,worker_id:!0,supervisor_id:!0,issue:!0,attempt:!0,payload:!0}}),wn({schemaId:Ih,docPath:".red/contracts/red.castle.state.v1.md",typeNames:["CastleStateSnapshot","CastleStateKind"],fields:{kind:!0,id:!0,version:!0,updated_at:!0,worker_id:!0,supervisor_id:!0,runner:!0,bundle_version:!0,pid:!0,started_at:!0,current:!0,queue:!0,completed:!0,envelope:!0}}),wn({schemaId:Lh,docPath:".red/contracts/red.castle.history.v1.md",typeNames:["CastleHistoryRecord","CastleHistoryEvent"],fields:{ts:!0,epoch:!0,worker:!0,issue:!0,event:!0,duration_s:!0,runner:!0,merge_sha:!0,reason:!0}}),wn({schemaId:uO,docPath:".red/contracts/red.castle.validation.v2.md",typeNames:["CastleValidationRecord","CastleValidationStatus"],fields:{schema:!0,name:!0,status:!0,command:!0,exitCode:!0,durationMs:!0,summary:!0}}),wn({schemaId:lO,docPath:".red/contracts/red.castle.envelope.v1.md",typeNames:["CastleEnvelope","CastleEnvelopeSection","CastleAttemptStatus"],fields:{status:!0,worker:!0,duration:!0,diff:!0,attempt:!0,mergeSha:!0,sections:!0}}),wn({schemaId:dO,docPath:".red/contracts/red.castle.hitl-card.v1.md",typeNames:["CastleHitlCard","CastleHitlCardPrStatus","CastleHitlCardAction"],fields:{issueNumber:!0,issueTitle:!0,issueUrl:!0,pendingDecision:!0,prStatus:!0,updatedAt:!0}})]});var yj,yi=h(()=>{"use strict";W();Ju();yj=new Map(Dh.map(e=>[e.schemaId,new Set(e.fields)]))});var Gh=h(()=>{"use strict";Ah();yi()});var $h=h(()=>{"use strict"});var bi=h(()=>{"use strict"});var Vu=h(()=>{"use strict";bi()});var wi=h(()=>{"use strict"});import{appendFile as fO,mkdir as gO,readFile as hO}from"node:fs/promises";import{dirname as yO,join as bO}from"node:path";function Ku(e,t){if(typeof e!="string"||e.length===0)throw new Error(`singleton event ${t} must be a non-empty string`);return e}function Nh(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton event must be a record");let t={...e},r=t.payload;if(typeof r=="string")try{t.payload=JSON.parse(r)}catch{throw new Error("singleton event payload is not valid JSON")}if(t.payload!==void 0&&(t.payload===null||typeof t.payload!="object"||Array.isArray(t.payload)))throw new Error("singleton event payload must be a record");return{at:Ku(t.at,"at"),singleton:Ku(t.singleton,"singleton"),kind:Ku(t.kind,"kind"),...t.payload===void 0?{}:{payload:t.payload}}}function wO(e){return{at:e.at,singleton:e.singleton,kind:e.kind,...e.payload===void 0?{}:{payload:JSON.stringify(e.payload)}}}function _O(e){if(e!==void 0&&(!Number.isSafeInteger(e)||e<0))throw new Error("singleton event tail must be a non-negative integer")}function EO(e){return bO(e.castleStateRoot,"singleton-events.toonl")}function zu(e,t={}){let r=t.fs??{appendFile:fO,mkdir:gO,readFile:hO},n=t.clock??(()=>new Date().toISOString()),s=EO(e);return{path:s,async append(o){let i=Nh({at:o.at??n(),...o});return await r.mkdir(yO(s),{recursive:!0}),await r.appendFile(s,Ht().push(wO(i)),"utf8"),i},async read(o={}){_O(o.tail);let i;try{i=await r.readFile(s,"utf8")}catch(c){if(c.code==="ENOENT")return[];throw c}let a=Ut(i).map(Nh);return o.tail===void 0?a:o.tail===0?[]:a.slice(-o.tail)}}}var Yu=h(()=>{"use strict";W()});var _i=h(()=>{"use strict";W();wi();Yu()});var Fh=h(()=>{"use strict";bi();Vu();_i()});var Mh=h(()=>{"use strict"});var tU,Bh=h(()=>{"use strict";W();tU=24*60*60*1e3});var jh=h(()=>{"use strict";yi()});var oU,iU,Uh=h(()=>{"use strict";oU=15*6e4,iU=30*6e4});var Hh=h(()=>{"use strict"});var kO,SO,uU,lU,qh=h(()=>{"use strict";kO=["supervisor_start","supervisor_exit","fleet_scaled","worker_start","worker_exit","worker_steered","worker_escalated","post_claim","pre_worktree","post_issue","pre_requeue","pre_merge","post_merge"],SO={pre_worktree:["cargo","gradle"]},uU=Object.values(SO).flat(),lU=new Set(kO)});var Wh=h(()=>{"use strict"});var Jh=h(()=>{"use strict";_i()});var Vh=h(()=>{"use strict"});var Kh=h(()=>{});var zh=h(()=>{"use strict";Kh()});var Yh=h(()=>{"use strict"});var Qh=h(()=>{"use strict"});var Qu=h(()=>{"use strict"});var Xh=h(()=>{"use strict";W();Qu()});var Zh=h(()=>{"use strict";W()});var Xu=h(()=>{"use strict"});var Zu=h(()=>{"use strict"});import{resolve as be}from"node:path";function ey(e){let t=be(e),r=be(t,"state"),n=be(r,"castle"),s=be(t,"tmp"),o=be(s,"supervisors"),i=be(s,"workers"),a=be(s,"monitors"),c=be(s,"worktrees");return{redRoot:t,stateRoot:r,castleStateRoot:n,castleHistory:be(n,"history.toonl"),castleValidation:be(n,"validation.toonl"),tmpRoot:s,supervisorsRoot:o,supervisor:u=>be(o,u),projectSupervisor:be(o,TO),workersRoot:i,worker:u=>be(i,u),workerSteerFile:u=>be(i,u,"steer.toon"),monitorsRoot:a,monitor:u=>be(a,u),worktreesRoot:c,worktreeLane:u=>be(c,u)}}var TO,ty=h(()=>{"use strict";TO="default"});var ry=h(()=>{"use strict";wi()});var ny=h(()=>{"use strict"});var sy=h(()=>{"use strict";Xu();Zu()});import{mkdir as vO,readFile as xO,rename as CO,rm as OO,writeFile as AO}from"node:fs/promises";import{dirname as PO,join as IO}from"node:path";function DO(e){if(!LO.test(e)||e==="."||e==="..")throw new Error(`invalid singleton name ${JSON.stringify(e)}`)}function GO(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function $O(e){return e.code==="ENOENT"}function NO(e){return e.code==="EEXIST"}function FO(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton lease must be a record");let t=e;if(!Number.isInteger(t.pid)||t.pid<=0)throw new Error("singleton lease pid must be a positive integer");for(let r of["start_time","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)throw new Error(`singleton lease ${r} must be a non-empty string`);return t}function el(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function Ei(e,t){return DO(t),IO(e.castleStateRoot,"singletons",t,"lease.toon")}function oy(e,t={}){let r=t.fs??{mkdir:vO,readFile:xO,rename:CO,rm:OO,writeFile:AO},n=t.clock??(()=>new Date().toISOString()),s=t.isPidAlive??GO;async function o(a){try{return FO(H(await r.readFile(a,"utf8")))}catch(c){if($O(c))return;throw c}}async function i(a,c){let u=`${a}.tmp-${c.pid}-${crypto.randomUUID()}`;await r.writeFile(u,$(c,{keyedMapCollapse:!0}),{encoding:"utf8"}),await r.rename(u,a)}return{read(a){return o(Ei(e,a))},async acquire(a,c){let u=Ei(e,a);await r.mkdir(PO(u),{recursive:!0});let l=!1;for(;;){let p=n(),d={pid:c.pid,start_time:c.startTime,acquired_at:p,renewed_at:p};try{return await r.writeFile(u,$(d,{keyedMapCollapse:!0}),{encoding:"utf8",flag:"wx"}),{acquired:!0,reaped:l,lease:d}}catch(f){if(!NO(f))throw f}let g=await o(u);if(g){if(el(g,c))return{acquired:!0,reaped:l,lease:g};if(await s(g.pid))return{acquired:!1,lease:g};await r.rm(u,{force:!0}),l=!0}}},async renew(a,c){let u=Ei(e,a),l=await o(u);if(!l||!el(l,c))throw new Ri(a);let p={...l,renewed_at:n()};return await i(u,p),p},async release(a,c){let u=Ei(e,a),l=await o(u);if(!l)return!1;if(!el(l,c))throw new Ri(a);return await r.rm(u,{force:!0}),!0}}}var Ri,LO,iy=h(()=>{"use strict";W();Ri=class extends Error{constructor(t){super(`singleton lease ${JSON.stringify(t)} is held by another owner`),this.name="SingletonLeaseOwnershipError"}},LO=/^[a-z0-9][a-z0-9._-]{0,63}$/});var tl=h(()=>{"use strict"});var ay=h(()=>{"use strict"});var MO,BO,jO,XU,cy=h(()=>{"use strict";MO={refreshCadenceS:270,tolerance:3},BO=270,jO=2700,XU={...MO,claimGraceS:BO,recentCommitProtectionS:jO}});var uy=h(()=>{"use strict"});function ly(e){return e==="single-object"?"rest":"graphql"}function Z(e,t,r,n,s,o){return{key:e,kind:"read",cardinality:t,volatility:r,surface:o??ly(t),budget:n,...o?{only:o}:{},why:s}}function Ae(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,why:n}}var dy,eH,py=h(()=>{dy=[Z("issue view","single-object","stable-poll","rest","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),Z("pr view","single-object","stable-poll","rest","one pull request by number, polled per Worker per iteration"),Z("repo view","single-object","stable-poll","rest","one repository's own metadata, repeatedly read while usually unchanged"),Z("run view","single-object","stable-poll","rest","one Actions run repeatedly polled to terminal; Actions has no GraphQL surface"),Z("release view","single-object","stable-poll","rest","one release by tag, repeatedly checked while usually absent or unchanged"),Z("pr diff","single-object","one-shot","rest","one pull request's diff, read once for review and served by a REST media type"),Z("issue list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged issue connection; GraphQL avoids N REST pages"),Z("pr list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged pull-request connection; GraphQL avoids N REST pages"),Z("pr checks","multi-node","stable-poll","graphql","check contexts form a connection repeatedly polled while awaiting terminal state"),Z("release list","multi-node","stable-poll","rest","release waits poll a usually-unchanged list; Releases has no GraphQL connection gh reads","rest"),Z("run list","multi-node","stable-poll","rest","run waits poll a usually-unchanged list; Actions has no GraphQL surface","rest"),Z("label list","multi-node","one-shot","graphql","a label connection loaded once for the current operation"),Z("issue list (search)","multi-node","stable-poll","search","queue discovery polls usually-unchanged search results through the 30/min search connection"),Z("pr list (search)","multi-node","stable-poll","search","PR discovery polls usually-unchanged search results through the 30/min search connection"),Z("search issues","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),Z("search prs","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),Z("search repos","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),Z("api graphql","multi-node","one-shot","graphql","the caller supplies one explicit GraphQL query rather than a routed poll"),Z("api rest","single-object","one-shot","rest","the caller supplies one explicit REST path rather than a routed poll"),Ae("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ae("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ae("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ae("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ae("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ae("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ae("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ae("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ae("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ae("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ae("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ae("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ae("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ae("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],eH=new Map(dy.map(e=>[e.key,e]))});var my=h(()=>{W()});var sl=Qd((rl,nl)=>{(function(e,t){typeof rl=="object"&&typeof nl<"u"?nl.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(rl,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(I){return I&&I.default||I}var r=function(I,b,m={}){var w,R,S;for(w in b)S=b[w],m[w]=(R=I[w])!=null?R:S;return m},n=function(I,b,m={}){var w,R;for(w in I)R=I[w],b[w]!==void 0&&(m[w]=R);return m},s={load:r,overwrite:n},o;o=class{constructor(b,m){this.incr=b,this.decr=m,this._first=null,this._last=null,this.length=0}push(b){var m;this.length++,typeof this.incr=="function"&&this.incr(),m={value:b,prev:this._last,next:null},this._last!=null?(this._last.next=m,this._last=m):this._first=this._last=m}shift(){var b;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),b=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,b}first(){if(this._first!=null)return this._first.value}getArray(){var b,m,w;for(b=this._first,w=[];b!=null;)w.push((m=b,b=b.next,m.value));return w}forEachShift(b){var m;for(m=this.shift();m!=null;)b(m),m=this.shift()}debug(){var b,m,w,R,S;for(b=this._first,S=[];b!=null;)S.push((m=b,b=b.next,{value:m.value,prev:(w=m.prev)!=null?w.value:void 0,next:(R=m.next)!=null?R.value:void 0}));return S}};var i=o,a;a=class{constructor(b){if(this.instance=b,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(m,w)=>this._addListener(m,"many",w),this.instance.once=(m,w)=>this._addListener(m,"once",w),this.instance.removeAllListeners=(m=null)=>m!=null?delete this._events[m]:this._events={}}_addListener(b,m,w){var R;return(R=this._events)[b]==null&&(R[b]=[]),this._events[b].push({cb:w,status:m}),this.instance}listenerCount(b){return this._events[b]!=null?this._events[b].length:0}async trigger(b,...m){var w,R;try{return b!=="debug"&&this.trigger("debug",`Event triggered: ${b}`,m),this._events[b]==null?void 0:(this._events[b]=this._events[b].filter(function(S){return S.status!=="none"}),R=this._events[b].map(async S=>{var C,A;if(S.status!=="none"){S.status==="once"&&(S.status="none");try{return A=typeof S.cb=="function"?S.cb(...m):void 0,typeof A?.then=="function"?await A:A}catch(U){return C=U,this.trigger("error",C),null}}}),(await Promise.all(R)).find(function(S){return S!=null}))}catch(S){return w=S,this.trigger("error",w),null}}};var c=a,u,l,p;u=i,l=c,p=class{constructor(b){var m;this.Events=new l(this),this._length=0,this._lists=function(){var w,R,S;for(S=[],m=w=1,R=b;1<=R?w<=R:w>=R;m=1<=R?++w:--w)S.push(new u(()=>this.incr(),()=>this.decr()));return S}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(b){return this._lists[b.options.priority].push(b)}queued(b){return b!=null?this._lists[b].length:this._length}shiftAll(b){return this._lists.forEach(function(m){return m.forEachShift(b)})}getFirst(b=this._lists){var m,w,R;for(m=0,w=b.length;m<w;m++)if(R=b[m],R.length>0)return R;return[]}shiftLastFrom(b){return this.getFirst(this._lists.slice(b).reverse()).shift()}};var d=p,g;g=class extends Error{};var f=g,k,E,y,_,T;_=10,E=5,T=s,k=f,y=class{constructor(b,m,w,R,S,C,A,U){this.task=b,this.args=m,this.rejectOnDrop=S,this.Events=C,this._states=A,this.Promise=U,this.options=T.load(w,R),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===R.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((ie,pe)=>{this._resolve=ie,this._reject=pe}),this.retryCount=0}_sanitizePriority(b){var m;return m=~~b!==b?E:b,m<0?0:m>_-1?_-1:m}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:b,message:m="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(b??new k(m)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(b){var m;if(m=this._states.jobStatus(this.options.id),!(m===b||b==="DONE"&&m===null))throw new k(`Invalid job status ${m}, expected ${b}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(b,m){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:b,blocked:m})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(b,m,w,R){var S,C,A;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),C={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",C);try{if(A=await(b!=null?b.schedule(this.options,this.task,...this.args):this.task(...this.args)),m())return this.doDone(C),await R(this.options,C),this._assertStatus("DONE"),this._resolve(A)}catch(U){return S=U,this._onFailure(S,C,m,w,R)}}doExpire(b,m,w){var R,S;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),S={args:this.args,options:this.options,retryCount:this.retryCount},R=new k(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(R,S,b,m,w)}async _onFailure(b,m,w,R,S){var C,A;if(w())return C=await this.Events.trigger("failed",b,m),C!=null?(A=~~C,this.Events.trigger("retry",`Retrying ${this.options.id} after ${A} ms`,m),this.retryCount++,R(A)):(this.doDone(m),await S(this.options,m),this._assertStatus("DONE"),this._reject(b))}doDone(b){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",b)}};var v=y,G,B,V;V=s,G=f,B=class{constructor(b,m,w){this.instance=b,this.storeOptions=m,this.clientId=this.instance._randomIndex(),V.load(w,w,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var b;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(b=this.heartbeat=setInterval(()=>{var m,w,R,S,C;if(S=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&S>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=S,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&S>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:m,reservoirIncreaseMaximum:R,reservoir:C}=this.storeOptions,this._lastReservoirIncrease=S,w=R!=null?Math.min(m,R-C):m,w>0))return this.storeOptions.reservoir+=w,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?b.unref():void 0:clearInterval(this.heartbeat)}async __publish__(b){return await this.yieldLoop(),this.instance.Events.trigger("message",b.toString())}async __disconnect__(b){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(b=0){return new this.Promise(function(m,w){return setTimeout(m,b)})}computePenalty(){var b;return(b=this.storeOptions.penalty)!=null?b:15*this.storeOptions.minTime||5e3}async __updateSettings__(b){return await this.yieldLoop(),V.overwrite(b,b,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(b){return await this.yieldLoop(),this._nextRequest+this.timeout<b}computeCapacity(){var b,m;return{maxConcurrent:b,reservoir:m}=this.storeOptions,b!=null&&m!=null?Math.min(b-this._running,m):b!=null?b-this._running:m??null}conditionsCheck(b){var m;return m=this.computeCapacity(),m==null||b<=m}async __incrementReservoir__(b){var m;return await this.yieldLoop(),m=this.storeOptions.reservoir+=b,this.instance._drainAll(this.computeCapacity()),m}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(b){return this._unblockTime>=b}check(b,m){return this.conditionsCheck(b)&&this._nextRequest-m<=0}async __check__(b){var m;return await this.yieldLoop(),m=Date.now(),this.check(b,m)}async __register__(b,m,w){var R,S;return await this.yieldLoop(),R=Date.now(),this.conditionsCheck(m)?(this._running+=m,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=m),S=Math.max(this._nextRequest-R,0),this._nextRequest=R+S+this.storeOptions.minTime,{success:!0,wait:S,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(b,m){var w,R,S;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&m>this.storeOptions.maxConcurrent)throw new G(`Impossible to add a job having a weight of ${m} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return R=Date.now(),S=this.storeOptions.highWater!=null&&b===this.storeOptions.highWater&&!this.check(m,R),w=this.strategyIsBlock()&&(S||this.isBlocked(R)),w&&(this._unblockTime=R+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:S,blocked:w,strategy:this.storeOptions.strategy}}async __free__(b,m){return await this.yieldLoop(),this._running-=m,this._done+=m,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var te=B,re,He;re=f,He=class{constructor(b){this.status=b,this._jobs={},this.counts=this.status.map(function(){return 0})}next(b){var m,w;if(m=this._jobs[b],w=m+1,m!=null&&w<this.status.length)return this.counts[m]--,this.counts[w]++,this._jobs[b]++;if(m!=null)return this.counts[m]--,delete this._jobs[b]}start(b){var m;return m=0,this._jobs[b]=m,this.counts[m]++}remove(b){var m;return m=this._jobs[b],m!=null&&(this.counts[m]--,delete this._jobs[b]),m!=null}jobStatus(b){var m;return(m=this.status[this._jobs[b]])!=null?m:null}statusJobs(b){var m,w,R,S,C;if(b!=null){if(w=this.status.indexOf(b),w<0)throw new re(`status must be one of ${this.status.join(", ")}`);R=this._jobs,S=[];for(m in R)C=R[m],C===w&&S.push(m);return S}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((b,m,w)=>(b[this.status[w]]=m,b),{})}};var de=He,Ft,P;Ft=i,P=class{constructor(b,m){this.schedule=this.schedule.bind(this),this.name=b,this.Promise=m,this._running=0,this._queue=new Ft}isEmpty(){return this._queue.length===0}async _tryToRun(){var b,m,w,R,S,C,A;if(this._running<1&&this._queue.length>0)return this._running++,{task:A,args:b,resolve:S,reject:R}=this._queue.shift(),m=await async function(){try{return C=await A(...b),function(){return S(C)}}catch(U){return w=U,function(){return R(w)}}}(),this._running--,this._tryToRun(),m()}schedule(b,...m){var w,R,S;return S=R=null,w=new this.Promise(function(C,A){return S=C,R=A}),this._queue.push({task:b,args:m,resolve:S,reject:R}),this._tryToRun(),w}};var M=P,De="2.19.5",_t={version:De},Mt=Object.freeze({version:De,default:_t}),O=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),N=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Et=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),st,ve,xe,Rt,Fr,Bt;Bt=s,st=c,Rt=O,xe=N,Fr=Et,ve=function(){class I{constructor(m={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=m,Bt.load(this.limiterOptions,this.defaults,this),this.Events=new st(this),this.instances={},this.Bottleneck=zd,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Rt(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new xe(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(m=""){var w;return(w=this.instances[m])!=null?w:(()=>{var R;return R=this.instances[m]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${m}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",R,m),R})()}async deleteKey(m=""){var w,R;return R=this.instances[m],this.connection&&(w=await this.connection.__runCommand__(["del",...Fr.allKeys(`${this.id}-${m}`)])),R!=null&&(delete this.instances[m],await R.disconnect()),R!=null||w>0}limiters(){var m,w,R,S;w=this.instances,R=[];for(m in w)S=w[m],R.push({key:m,limiter:S});return R}keys(){return Object.keys(this.instances)}async clusterKeys(){var m,w,R,S,C,A,U,ie,pe;if(this.connection==null)return this.Promise.resolve(this.keys());for(A=[],m=null,pe=`b_${this.id}-`.length,w=9;m!==0;)for([ie,R]=await this.connection.__runCommand__(["scan",m??0,"match",`b_${this.id}-*_settings`,"count",1e4]),m=~~ie,S=0,U=R.length;S<U;S++)C=R[S],A.push(C.slice(pe,-w));return A}_startAutoCleanup(){var m;return clearInterval(this.interval),typeof(m=this.interval=setInterval(async()=>{var w,R,S,C,A,U;A=Date.now(),S=this.instances,C=[];for(R in S){U=S[R];try{await U._store.__groupCheck__(A)?C.push(this.deleteKey(R)):C.push(void 0)}catch(ie){w=ie,C.push(U.Events.trigger("error",w))}}return C},this.timeout/2)).unref=="function"?m.unref():void 0}updateSettings(m={}){if(Bt.overwrite(m,this.defaults,this),Bt.overwrite(m,m,this.limiterOptions),m.timeout!=null)return this._startAutoCleanup()}disconnect(m=!0){var w;if(!this.sharedConnection)return(w=this.connection)!=null?w.disconnect(m):void 0}}return I.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},I}.call(e);var Pn=ve,ur,In,jd;jd=s,In=c,ur=function(){class I{constructor(m={}){this.options=m,jd.load(this.options,this.defaults,this),this.Events=new In(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((m,w)=>this._resolve=m)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(m){var w;return this._arr.push(m),w=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),w}}return I.prototype.defaults={maxTime:null,maxSize:null,Promise},I}.call(e);var qE=ur,WE=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),JE=t(Mt),Ud,Hd,ma,fa,qd,ga,Wd,Jd,Vd,ha,ot,Kd=[].splice;ga=10,Hd=5,ot=s,Wd=d,fa=v,qd=te,Jd=WE,ma=c,Vd=de,ha=M,Ud=function(){class I{constructor(m={},...w){var R,S;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(m,w),ot.load(m,this.instanceDefaults,this),this._queues=new Wd(ga),this._scheduled={},this._states=new Vd(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new ma(this),this._submitLock=new ha("submit",this.Promise),this._registerLock=new ha("register",this.Promise),S=ot.load(m,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return R=ot.load(m,this.redisStoreDefaults,{}),new Jd(this,S,R);if(this.datastore==="local")return R=ot.load(m,this.localStoreDefaults,{}),new qd(this,S,R);throw new I.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var C;return(C=this._store.heartbeat)!=null&&typeof C.ref=="function"?C.ref():void 0}),this._queues.on("zero",()=>{var C;return(C=this._store.heartbeat)!=null&&typeof C.unref=="function"?C.unref():void 0})}_validateOptions(m,w){if(!(m!=null&&typeof m=="object"&&w.length===0))throw new I.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(m){return this._store.__publish__(m)}disconnect(m=!0){return this._store.__disconnect__(m)}chain(m){return this._limiter=m,this}queued(m){return this._queues.queued(m)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(m){return this._states.jobStatus(m)}jobs(m){return this._states.statusJobs(m)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(m=1){return this._store.__check__(m)}_clearGlobalState(m){return this._scheduled[m]!=null?(clearTimeout(this._scheduled[m].expiration),delete this._scheduled[m],!0):!1}async _free(m,w,R,S){var C,A;try{if({running:A}=await this._store.__free__(m,R.weight),this.Events.trigger("debug",`Freed ${R.id}`,S),A===0&&this.empty())return this.Events.trigger("idle")}catch(U){return C=U,this.Events.trigger("error",C)}}_run(m,w,R){var S,C,A;return w.doRun(),S=this._clearGlobalState.bind(this,m),A=this._run.bind(this,m,w),C=this._free.bind(this,m,w),this._scheduled[m]={timeout:setTimeout(()=>w.doExecute(this._limiter,S,A,C),R),expiration:w.options.expiration!=null?setTimeout(function(){return w.doExpire(S,A,C)},R+w.options.expiration):void 0,job:w}}_drainOne(m){return this._registerLock.schedule(()=>{var w,R,S,C,A;return this.queued()===0?this.Promise.resolve(null):(A=this._queues.getFirst(),{options:C,args:w}=S=A.first(),m!=null&&C.weight>m?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${C.id}`,{args:w,options:C}),R=this._randomIndex(),this._store.__register__(R,C.weight,C.expiration).then(({success:U,wait:ie,reservoir:pe})=>{var Ln;return this.Events.trigger("debug",`Drained ${C.id}`,{success:U,args:w,options:C}),U?(A.shift(),Ln=this.empty(),Ln&&this.Events.trigger("empty"),pe===0&&this.Events.trigger("depleted",Ln),this._run(R,S,ie),this.Promise.resolve(C.weight)):this.Promise.resolve(null)})))})}_drainAll(m,w=0){return this._drainOne(m).then(R=>{var S;return R!=null?(S=m!=null?m-R:m,this._drainAll(S,w+R)):this.Promise.resolve(w)}).catch(R=>this.Events.trigger("error",R))}_dropAllQueued(m){return this._queues.shiftAll(function(w){return w.doDrop({message:m})})}stop(m={}){var w,R;return m=ot.load(m,this.stopDefaults),R=S=>{var C;return C=()=>{var A;return A=this._states.counts,A[0]+A[1]+A[2]+A[3]===S},new this.Promise((A,U)=>C()?A():this.on("done",()=>{if(C())return this.removeAllListeners("done"),A()}))},w=m.dropWaitingJobs?(this._run=function(S,C){return C.doDrop({message:m.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var S,C,A;C=this._scheduled;for(S in C)A=C[S],this.jobStatus(A.job.options.id)==="RUNNING"&&(clearTimeout(A.timeout),clearTimeout(A.expiration),A.job.doDrop({message:m.dropErrorMessage}));return this._dropAllQueued(m.dropErrorMessage),R(0)}))):this.schedule({priority:ga-1,weight:0},()=>R(1)),this._receive=function(S){return S._reject(new I.prototype.BottleneckError(m.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new I.prototype.BottleneckError("stop() has already been called")),w}async _addToQueue(m){var w,R,S,C,A,U,ie;({args:w,options:C}=m);try{({reachedHWM:A,blocked:R,strategy:ie}=await this._store.__submit__(this.queued(),C.weight))}catch(pe){return S=pe,this.Events.trigger("debug",`Could not queue ${C.id}`,{args:w,options:C,error:S}),m.doDrop({error:S}),!1}return R?(m.doDrop(),!0):A&&(U=ie===I.prototype.strategy.LEAK?this._queues.shiftLastFrom(C.priority):ie===I.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(C.priority+1):ie===I.prototype.strategy.OVERFLOW?m:void 0,U?.doDrop(),U==null||ie===I.prototype.strategy.OVERFLOW)?(U==null&&m.doDrop(),A):(m.doQueue(A,R),this._queues.push(m),await this._drainAll(),A)}_receive(m){return this._states.jobStatus(m.options.id)!=null?(m._reject(new I.prototype.BottleneckError(`A job with the same id already exists (id=${m.options.id})`)),!1):(m.doReceive(),this._submitLock.schedule(this._addToQueue,m))}submit(...m){var w,R,S,C,A,U,ie;return typeof m[0]=="function"?(A=m,[R,...m]=A,[w]=Kd.call(m,-1),C=ot.load({},this.jobDefaults)):(U=m,[C,R,...m]=U,[w]=Kd.call(m,-1),C=ot.load(C,this.jobDefaults)),ie=(...pe)=>new this.Promise(function(Ln,KE){return R(...pe,function(...Yd){return(Yd[0]!=null?KE:Ln)(Yd)})}),S=new fa(ie,m,C,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),S.promise.then(function(pe){return typeof w=="function"?w(...pe):void 0}).catch(function(pe){return Array.isArray(pe)?typeof w=="function"?w(...pe):void 0:typeof w=="function"?w(pe):void 0}),this._receive(S)}schedule(...m){var w,R,S;return typeof m[0]=="function"?([S,...m]=m,R={}):[R,S,...m]=m,w=new fa(S,m,R,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(w),w.promise}wrap(m){var w,R;return w=this.schedule.bind(this),R=function(...S){return w(m.bind(this),...S)},R.withOptions=function(S,...C){return w(S,m,...C)},R}async updateSettings(m={}){return await this._store.__updateSettings__(ot.overwrite(m,this.storeDefaults)),ot.overwrite(m,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(m=0){return this._store.__incrementReservoir__(m)}}return I.default=I,I.Events=ma,I.version=I.prototype.version=JE.version,I.strategy=I.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},I.BottleneckError=I.prototype.BottleneckError=f,I.Group=I.prototype.Group=Pn,I.RedisConnection=I.prototype.RedisConnection=O,I.IORedisConnection=I.prototype.IORedisConnection=N,I.Batcher=I.prototype.Batcher=qE,I.prototype.jobDefaults={priority:Hd,weight:1,expiration:null,id:"<no-id>"},I.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:I.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},I.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},I.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},I.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},I.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},I}.call(e);var zd=Ud,VE=zd;return VE})});var Nt,ol=h(()=>{Nt=class extends Error{name;status;request;response;constructor(t,r,n){super(t,{cause:n.cause}),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0);"response"in n&&(this.response=n.response);let s=Object.assign({},n.request);n.request.headers.authorization&&(s.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),s.url=s.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=s}}});function HO(e){return e.request!==void 0}async function fy(e,t,r,n){if(!HO(r)||!r?.request.request)throw r;if(r.status>=400&&!e.doNotRetry.includes(r.status)){let s=n.request.retries!=null?n.request.retries:e.retries,o=Math.pow((n.request.retryCount||0)+1,2);throw t.retry.retryRequest(r,s,o)}throw r}async function qO(e,t,r,n){let s=new gy.default;return s.on("failed",function(o,i){let a=~~o.request.request?.retries,c=~~o.request.request?.retryAfter;if(n.request.retryCount=i.retryCount+1,a>i.retryCount)return c*e.retryAfterBaseValue}),s.schedule(WO.bind(null,e,t,r),n)}async function WO(e,t,r,n){let s=await r(n);if(s.data&&s.data.errors&&s.data.errors.length>0&&/Something went wrong while executing your query/.test(s.data.errors[0].message)){let o=new Nt(s.data.errors[0].message,500,{request:n,response:s});return fy(e,t,o,n)}return s}function il(e,t){let r=Object.assign({enabled:!0,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,410,422,451],retries:3},t.retry),n={retry:{retryRequest:(s,o,i)=>(s.request.request=Object.assign({},s.request.request,{retries:o,retryAfter:i}),s)}};return r.enabled&&(e.hook.error("request",fy.bind(null,r,n)),e.hook.wrap("request",qO.bind(null,r,n))),n}var gy,UO,hy=h(()=>{gy=ba(sl(),1);ol();UO="0.0.0-development";il.VERSION=UO});function VO(e,t,r){return e.retryLimiter.schedule(KO,e,t,r)}async function KO(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),s=zO(r.method,n),o=!s&&r.method!=="GET"&&r.method!=="HEAD",i=r.method==="GET"&&n.startsWith("/search/"),a=n.startsWith("/graphql"),u=~~t.retryCount>0?{priority:0,weight:0}:{};e.clustering&&(u.expiration=1e3*60),(o||a)&&await e.write.key(e.id).schedule(u,al),o&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(u,al),i&&await e.search.key(e.id).schedule(u,al);let l=(s?e.auth:e.global).key(e.id).schedule(u,t,r);if(a){let p=await l;if(p.data.errors!=null&&p.data.errors.some(d=>d.type==="RATE_LIMITED"))throw Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:p,data:p.data})}return l}function zO(e,t){return e==="PATCH"&&/^\/applications\/[^/]+\/token\/scoped$/.test(t)||e==="POST"&&(/^\/applications\/[^/]+\/token$/.test(t)||/^\/app\/installations\/[^/]+\/access_tokens$/.test(t)||t==="/login/oauth/access_token")}function QO(e){let r=`^(?:${e.map(n=>n.split("/").map(s=>s.startsWith("{")?"(?:.+?)":s).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}function ki(e,t){let{enabled:r=!0,Bottleneck:n=by.default,id:s="no-id",timeout:o=1e3*60*2,connection:i}=t.throttle||{};if(!r)return{};let a={timeout:o};typeof i<"u"&&(a.connection=i);let c=Object.assign({clustering:i!=null,triggersNotification:wy,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:s},t.throttle);if(typeof c.onSecondaryRateLimit!="function"||typeof c.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
|
|
61
|
+
`)),!0):!1}function kf(e){return typeof e=="object"&&e!==null&&e.code===Ot}var Ef,Jt=h(()=>{"use strict";Xa();ut();Ef=!1});function Bc(e){return e==="success"?0:e==="failure"?1:2}function jc(e){return e==="cmd"||e==="pr"||e==="run"||e==="release"}function It(e,t,r){return{status:e,exitCode:Bc(e),summary:t,...r?{details:r}:{}}}function ge(e,t){return{status:"indeterminate",exitCode:2,summary:e,...t?{details:t}:{}}}function Xr(e,t){return{status:"running",exitCode:2,summary:e,...t?{details:t}:{}}}var Cf,Of,Af,Fc,Pf,If,Lf,Gf,Mc,wr=h(()=>{"use strict";Cf="rsp.wait.result",Of="rsp.wait.registry",Af="rsp.wait.list",Fc={cmd:18e5,pr:27e5,run:27e5,release:72e5},Pf=16*1024,If=1e4,Lf=2e3,Gf=6e4,Mc={cmd:"local-cmd:event-driven",pr:"github-pr:15-20s-backoff-jitter",run:"github-run:15-20s-backoff-jitter",release:"release:60s"}});import{readdir as HT,readFile as qT}from"node:fs/promises";async function Zr(e,t){let r=e.pid;if(!r)return{cleaned:!0,escalation:"none",survivors:[]};let n=await Io(r),s=[r,...n];if(s.every(c=>!_r(c)))return{cleaned:!0,escalation:"none",survivors:[]};if(Df(e,"SIGTERM"),Po(n,"SIGTERM"),await $f(s,t))return{cleaned:!0,escalation:"term",survivors:[]};let o=[...new Set([...s,...await Io(r)])];Df(e,"SIGKILL"),Po(o,"SIGKILL");let i=Math.max(1e3,t);await WT(e,i);let a=await $f(o,i);return{cleaned:a,escalation:"kill",survivors:a?[]:o.filter(_r)}}function Df(e,t){let r=e.pid;if(r)try{process.platform!=="win32"?process.kill(-r,t):e.kill(t)}catch{try{e.kill(t)}catch{}}}function Po(e,t){for(let r of e)try{process.kill(r,t)}catch{}}async function WT(e,t){return e.exitCode!==null||e.signalCode!==null?!0:await new Promise(r=>{let n=setTimeout(()=>r(!1),t);e.once("close",()=>{clearTimeout(n),r(!0)})})}async function $f(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(e.every(n=>!_r(n)))return!0;await JT(Math.min(25,Math.max(1,r-Date.now())))}return e.every(n=>!_r(n))}async function Io(e){if(process.platform!=="linux")return[];let t=new Map;for(let s of await HT("/proc").catch(()=>[])){if(!/^[1-9][0-9]*$/.test(s))continue;let o=Number(s),i=await Nf(o);if(!i)continue;let a=Number(i[1]);if(!Number.isSafeInteger(a))continue;let c=t.get(a)??[];c.push(o),t.set(a,c)}let r=[],n=[...t.get(e)??[]];for(;n.length>0;){let s=n.shift();r.push(s),n.push(...t.get(s)??[])}return r.reverse()}async function es(e){return(await Nf(e))?.[19]}async function en(e,t){if(!_r(e))return!1;if(!t)return!0;let r=await es(e);return r===void 0?process.platform!=="linux":r===t}function _r(e){try{return process.kill(e,0),!0}catch{return!1}}async function Nf(e){if(process.platform!=="linux")return null;try{let t=await qT(`/proc/${e}/stat`,"utf8"),r=t.lastIndexOf(")");return r<0?null:t.slice(r+2).trim().split(/\s+/)}catch{return null}}async function JT(e){await new Promise(t=>setTimeout(t,e))}var Lt=h(()=>{"use strict"});import{constants as VT}from"node:os";async function Ff(e){let t=e[1],r={timeoutMs:Fc.cmd,reason:"",signal:"SIGUSR1",notifyTimeoutMs:If,terminateGraceMs:Lf,probeTimeoutMs:Gf,format:"toon",captureBytes:Pf},n={kind:t,options:r};if(!t||t==="--help"||t==="-h")return{...n,kind:"help"};if(t!=="ls"&&t!=="cmd"&&t!=="pr"&&t!=="run"&&t!=="release")return{...n,kind:void 0};t!=="ls"&&(r.timeoutMs=Fc[t]);let s=e.indexOf("--"),o=s>=0?s:e.length;for(let i=2;i<o;i++){let a=e[i];a==="--timeout"?r.timeoutMs=ts(e[++i]??""):a==="--reason"?r.reason=e[++i]??"":a==="--signal-pid"?r.signalPid=Number(e[++i]):a==="--signal"?r.signal=YT(e[++i]??""):a==="--notify-cmd"?r.notifyCmd=e[++i]??"":a==="--notify-timeout"?r.notifyTimeoutMs=ts(e[++i]??""):a==="--terminate-grace"?r.terminateGraceMs=ts(e[++i]??""):a==="--probe-timeout"?r.probeTimeoutMs=ts(e[++i]??""):a==="--result-file"?r.resultFile=e[++i]??"":a==="--json"?r.format="json":a==="--capture-bytes"?r.captureBytes=zT(e[++i]??"","capture bytes"):t==="run"&&a==="--branch"?n.branch=e[++i]??"":t==="run"&&a==="--latest"?n.latest=!0:t==="release"&&a==="--tag"?n.tagGlob=e[++i]??"":!a.startsWith("--")&&!n.target&&(n.target=a)}return await KT(r),t==="cmd"&&(n.commandLine=s>=0?e.slice(s+1).join(" "):""),n}async function KT(e){if(!(e.signal in VT.signals))throw new Error(`invalid signal: ${e.signal}`);if(e.signalPid!==void 0){if(!Number.isSafeInteger(e.signalPid)||e.signalPid<=0)throw new Error(`invalid signal pid: ${e.signalPid}`);if(!_r(e.signalPid))throw new Error(`signal pid is not running: ${e.signalPid}`);e.signalPidStartTime=await es(e.signalPid)}if(e.resultFile!==void 0&&!e.resultFile.trim())throw new Error("invalid result file: empty path")}function ts(e){let t=/^([1-9][0-9]*)(ms|s|m|h)?$/.exec(e);if(!t)throw new Error(`invalid timeout: ${e}`);let r=Number(t[1]),n=t[2]??"ms";return n==="ms"?r:n==="s"?r*1e3:n==="m"?r*6e4:r*60*6e4}function rs(e,t,r=process.env){let n=r[e];if(!n)return t;try{return ts(n)}catch{return t}}function zT(e,t){if(!/^[1-9][0-9]*$/.test(e))throw new Error(`invalid ${t}: ${e}`);return Number(e)}function YT(e){return e.startsWith("SIG")?e:`SIG${e}`}var Mf=h(()=>{"use strict";wr();Lt()});import{existsSync as Uc,readFileSync as QT,statSync as XT}from"node:fs";import{basename as Bf,dirname as Lo,isAbsolute as ZT,join as jf,resolve as ns}from"node:path";function Go(e,t=process.env){let r=ns(e);if(ec.map(i=>t[i]).find(Boolean))return km({startDir:r,env:t,exists:Uc});let s=tv(r),o=ev(r,s);return o||(s??r)}function ev(e,t){let r=e;for(;;){if(Uc(jf(r,".red")))return r;if(t&&r===t)return null;let n=ns(r,"..");if(n===r)return null;r=n}}function tv(e){let t=e;for(;;){let r=jf(t,".git");if(Uc(r))return sv(r)?t:rv(r)??t;let n=ns(t,"..");if(n===t)return null;t=n}}function rv(e){let t=nv(e);if(!t)return null;let r=Lo(t),n=Lo(r);return Bf(r)!=="worktrees"||Bf(n)!==".git"?null:Lo(n)}function nv(e){let t;try{t=QT(e,"utf8")}catch{return null}let r=/^gitdir:\s*(.+)$/m.exec(t.trim());if(!r)return null;let n=r[1].trim();return ZT(n)?ns(n):ns(Lo(e),n)}function sv(e){try{return XT(e).isDirectory()}catch{return!1}}var Hc=h(()=>{Le()});import{join as ov}from"node:path";function av(e,t=process.env){return Go(e,t)}function tn(e,t=process.env){return Rm(av(e,t))}function Uf(e,t=process.env){return ov(tn(e,t),iv)}var iv,qc=h(()=>{"use strict";Le();Hc();iv="spool"});import{randomUUID as cv}from"node:crypto";import{existsSync as uv}from"node:fs";import{mkdir as lv,readdir as dv,readFile as pv,rename as mv,rm as Wc,writeFile as fv}from"node:fs/promises";import{dirname as gv,join as qf}from"node:path";function Wf(e,t,r=process.env){return qf(tn(e,r),`${t}${hv}`)}async function rn(e,t){await Jc(e,`${ne(t)}
|
|
62
|
+
`)}async function Do(e,t,r){t.status=r,await rn(e,t)}async function $o(e,t=process.env){let r=tn(e,t);if(!uv(r))return[];let n=await dv(r).catch(()=>[]),s=[];for(let o of n.filter(i=>yv.some(a=>i.endsWith(a)))){let i=qf(r,o),a=await bv(i);if(!a){await Wc(i,{force:!0});continue}if(!await wv(a)){await Wc(i,{force:!0});continue}s.push(a)}return s}async function bv(e){let t;try{t=await pv(e,"utf8")}catch{return null}let r=t.trim();if(!r)return null;let n=_v(r);return n&&Object.keys(n).length>0?n:null}async function wv(e){let t=typeof e.pid=="number"?e.pid:0;if(!t||!Number.isSafeInteger(t)||t<=0)return!1;let r=typeof e.pid_start_time=="string"?e.pid_start_time:void 0;return await en(t,r)}function _v(e){try{let t=H(e);if(Hf(t))return t}catch{}try{let t=JSON.parse(e);if(Hf(t))return t}catch{}return null}async function Jc(e,t){await lv(gv(e),{recursive:!0});let r=`${e}.tmp-${process.pid}-${cv()}`;try{await fv(r,t,"utf8"),await mv(r,e)}finally{await Wc(r,{force:!0})}}function Vc(e){return{schema:Of,version:1,...e}}function Hf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var hv,yv,os=h(()=>{"use strict";J();vt();wr();qc();Lt();hv=".toon",yv=[".toon",".json"]});function nn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lt(e){return nn(e)?e:{}}function Er(e){return Array.isArray(e)?e.filter(nn):[]}function he(e,t){let r=e[t];return typeof r=="string"?r:""}function sn(e,t){let r=e[t];return typeof r=="number"?r:0}function Kc(e){let t=JSON.parse(e);if(!nn(t))throw new Error("expected JSON object");return t}function No(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}var Fo=h(()=>{"use strict"});import{spawn as Ev}from"node:child_process";import{resolve as Rv}from"node:path";async function Jf(e,t,r){let n=[];if(e.signalPid){let s=await kv(e);s&&n.push(s)}if(e.notifyCmd?.trim()){let s=await Sv(e,t,r);s&&n.push({hook:"notify-cmd",...s})}return n.length===0?{status:"success"}:{status:"failure",errors:n}}async function kv(e){let t=e.signalPid;if(!await en(t,e.signalPidStartTime))return{hook:"signal-pid",error:"target process is no longer the process the wait was asked to signal",pid:t,signal:e.signal};try{return process.kill(t,e.signal),null}catch(r){return{hook:"signal-pid",error:Vf(r),pid:t,signal:e.signal}}}async function Sv(e,t,r){let n=lt(t.wait),s=lt(t.verdict);return await Tv(e.notifyCmd,r,e.notifyTimeoutMs,e.terminateGraceMs,{...process.env,RSP_WAIT_RESULT_JSON:JSON.stringify(t),RSP_WAIT_RESULT_FILE:e.resultFile?Rv(r,e.resultFile):"",RSP_WAIT_STATUS:String(n.status??"indeterminate"),RSP_WAIT_EXIT_CODE:String(s.target_exit_code??2),RSP_WAIT_TARGET:String(n.target??""),RSP_WAIT_RESULT_SCHEMA:"rsp.wait.result@1"})}async function Tv(e,t,r,n,s){return await new Promise(o=>{let i=!1,a=!1,c=d=>{i||(i=!0,o(d))},u=Ev(e,{cwd:t,shell:!0,stdio:"ignore",env:s,detached:process.platform!=="win32"}),l=setTimeout(()=>{a=!0,Zr(u,n).then(d=>c({error:`timed out after ${r}ms`,...d.cleaned?{}:{survivors:d.survivors}}))},r);u.once("error",d=>{clearTimeout(l),c({error:Vf(d)})}),u.once("close",(d,p)=>{clearTimeout(l),!a&&c(d===0?null:{error:`exited with ${p??d??"unknown"}`,status:d??null,signal:p??null})})})}function Vf(e){return e instanceof Error?e.message:String(e)}var Kf=h(()=>{"use strict";Fo();Lt()});import{resolve as vv}from"node:path";async function zf(e){let{kind:t,entry:r,options:n,cwd:s}=e,o=xv(e.verdict,e.cleanupProven,e.survivors),i=new Date().toISOString(),a=is(t,r,o,{status:"pending"},i);await as(n.resultFile,a,n.format);let c=await Jf(n,a,s),u=is(t,r,o,c,i);return await as(n.resultFile,u,n.format),{result:u,exitCode:Yf(o,c)}}function Yf(e,t){return t.status!=="success"||e.status==="running"?2:Bc(e.status)}function xv(e,t,r=[]){return t!==!1?e:{status:"indeterminate",exitCode:2,summary:`${e.summary}; could not verify process cleanup`,details:{...e.details??{},cleanup:{verified:!1,survivors:r}}}}function is(e,t,r,n,s){return{schema:Cf,version:1,wait:{id:t.id,target:t.target,kind:e,status:r.status,reason:t.reason,started_at:t.started_at,completed_at:s,poll_tier:t.poll_tier},verdict:{exit_code:Yf(r,n),target_exit_code:r.exitCode,summary:r.summary,delivery:n,...r.details?{details:r.details}:{}}}}async function as(e,t,r){e&&await Jc(vv(e),on(t,r))}function on(e,t){return t==="json"?`${JSON.stringify(e,null,2)}
|
|
63
|
+
`:`${ne(e)}
|
|
64
|
+
`}var Qf=h(()=>{"use strict";vt();wr();os();Kf()});import{createWriteStream as Cv,mkdirSync as Ov}from"node:fs";import{readFile as Av,rm as Pv}from"node:fs/promises";import{dirname as Iv}from"node:path";import{join as Xf}from"node:path";function Zf(e,t,r){return{stdout:new Mo(r,Xf(e,`${t}.stdout.bin`)),stderr:new Mo(r,Xf(e,`${t}.stderr.bin`))}}function Lv(e){let t=e.toString("utf8");return Buffer.from(t,"utf8").equals(e)&&!Gv(e)?{inline:t}:{inline:e.toString("base64"),inline_encoding:"base64"}}function Gv(e){for(let t of e)if(t<=8||t>=11&&t<=31&&t!==13||t===127)return!0;return!1}var Mo,eg=h(()=>{"use strict";Mo=class{constructor(t,r){this.limit=t;this.spoolPath=r}head=[];headBytes=0;total=0;spool=null;spoolReady=Promise.resolve();spoolError=null;closed=!1;write(t){if(this.closed)return;this.total+=t.length;let r=this.limit-this.headBytes;if(r>0){let n=t.subarray(0,r);this.head.push(n),this.headBytes+=n.length}if(this.total>this.limit){let n=r>0?t.subarray(r):t;this.openSpool(),n.length>0&&this.appendSpool(n)}}async finish(t,r){this.closed=!0;let n=Buffer.concat(this.head),s=this.total>this.headBytes,o={bytes:this.total,...Lv(n),truncated:s};if(!s)return await this.discardSpool(),o;if(await this.closeSpool(),this.spoolError)return o.recovery_error=this.spoolError,o;try{let i=await Av(this.spoolPath);o.handle=await t.mint(Buffer.concat([n,i]),{command:r,loss:{level:"terse",bytes_elided:this.total-this.headBytes}}),await this.discardSpool()}catch(i){o.recovery_error=i instanceof Error?i.message:String(i),o.spool_path=this.spoolPath}return o}async discard(){this.closed=!0,await this.closeSpool(),await this.discardSpool()}openSpool(){if(this.spool||this.spoolError)return;let t;try{Ov(Iv(this.spoolPath),{recursive:!0}),t=Cv(this.spoolPath,{flags:"w"})}catch(r){this.spoolError=r instanceof Error?r.message:String(r);return}t.on("error",r=>{this.spoolError=r instanceof Error?r.message:String(r)}),this.spool=t}appendSpool(t){let r=this.spool;r&&(this.spoolReady=this.spoolReady.then(()=>new Promise(n=>{r.write(t)?n():r.once("drain",()=>n())})))}async closeSpool(){let t=this.spool;t&&(this.spool=null,await this.spoolReady.catch(()=>{}),await new Promise(r=>t.end(()=>r())))}async discardSpool(){await Pv(this.spoolPath,{force:!0}).catch(()=>{})}}});import{existsSync as Dv,readFileSync as SB}from"node:fs";import{dirname as $v,join as Nv}from"node:path";function tg(e,t){let r=e;for(let n=0;n<16;n++){let s=Nv(r,t);if(Dv(s))return s;let o=$v(r);if(o===r)break;r=o}return null}function Fv(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function Bo(e,t){let r=[];for(let n of e.split(`
|
|
65
|
+
`)){let s=n.replace(/\r$/,""),o=s.trim();if(!o||o.startsWith("#"))continue;let i=s.indexOf(":");if(i<0)continue;let a=s.length-s.trimStart().length,c=s.slice(0,i).trim();if(!c)continue;let u=s.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:c}),u&&r.map(d=>d.key).join(".")===t)return Fv(u)}}var rg=h(()=>{});var pg={};K(pg,{DEFAULT_GH_ETAG_CACHE_MAX_BYTES:()=>cn,GH_ETAG_CACHE_DIR_NAME:()=>ig,LEGACY_GH_ETAG_CACHE_FILE:()=>ag,LEGACY_GH_ETAG_CACHE_JSON_FILE:()=>cg,enforceGhEtagCacheCeiling:()=>Xc,ghEtagCacheDir:()=>jo,ghEtagEntryPath:()=>Uo,isCacheEntry:()=>qo,legacyGhEtagCachePaths:()=>Qc,migrateLegacyGhEtagCache:()=>eu,readGhEtagCache:()=>Ho,readGhEtagEntry:()=>Wv,resetGhEtagCacheMigrationMemo:()=>Vv,sweepGhEtagCache:()=>Zc,writeGhEtagEntry:()=>Jv});import{existsSync as Mv}from"node:fs";import{mkdir as Bv,readdir as jv,rename as Uv,rm as ng,stat as sg,unlink as og,writeFile as Hv}from"node:fs/promises";import{dirname as qv,join as an}from"node:path";function jo(e){return an(X(e),ig)}function Uo(e,t){return an(jo(e),`${Qv(t)}.toon`)}function Qc(e){let t=X(e);return[an(t,ag),an(t,cg)]}async function Wv(e,t){await eu(e);try{let r=dg(await _o(Uo(e,t)));return qo(r)?r:void 0}catch{return}}async function Jv(e,t,r={}){return await lg(Uo(e,t.key),t),await Xc(e,r.maxBytes??cn)}async function Xc(e,t=cn){let r=await zv(e),n=r.reduce((o,i)=>o+i.bytes,0);if(n<=t)return{evictedEntries:0,bytes:n};r.sort((o,i)=>o.mtimeMs-i.mtimeMs||o.path.localeCompare(i.path));let s=0;for(let o of r){if(n<=t)break;try{await og(o.path),n-=o.bytes,s+=1}catch{}}return{evictedEntries:s,bytes:n}}async function Zc(e,t={}){let r=await eu(e,{force:!0}),n=await Kv(e);return{...await Xc(e,t.maxBytes??cn),reclaimedTmp:n,migratedEntries:r}}async function Ho(e){for(let t of Qc(e))try{let r=dg(await _o(t));if(Xv(r))return r}catch{}return{version:1,entries:{}}}async function eu(e,t={}){if(!t.force&&zc.has(e))return 0;zc.add(e);let r=Qc(e).filter(o=>Mv(o));if(r.length===0)return 0;let n=await Ho(e),s=0;for(let[o,i]of Object.entries(n.entries)){if(!qo(i))continue;let a=Uo(e,o);await Yv(a)||(await lg(a,{...i,key:o}),s+=1)}for(let o of r)await ng(o,{force:!0});return s}function Vv(){zc.clear()}async function Kv(e){let t=0;for(let r of[X(e),jo(e)])for(let n of await ug(r))if(n.endsWith(".tmp"))try{await og(an(r,n)),t+=1}catch{}return t}async function zv(e){let t=jo(e),r=[];for(let n of await ug(t)){if(!n.endsWith(".toon"))continue;let s=an(t,n);try{let o=await sg(s);o.isFile()&&r.push({path:s,bytes:o.size,mtimeMs:o.mtimeMs})}catch{}}return r}async function ug(e){try{return await jv(e)}catch{return[]}}async function Yv(e){try{return await sg(e),!0}catch{return!1}}async function lg(e,t){await Bv(qv(e),{recursive:!0});let r=`${e}.${process.pid}.${Date.now()}.tmp`;try{await Hv(r,`${$(t)}
|
|
66
|
+
`,{encoding:"utf8",mode:384}),await Uv(r,e)}catch(n){throw await ng(r,{force:!0}),n}}function Qv(e){if(!/^[A-Za-z0-9_-]{1,128}$/.test(e))throw new Error(`unsafe gh etag cache key: ${e}`);return e}function dg(e){try{return JSON.parse(e)}catch{return H(e)}}function Xv(e){return Yc(e)&&e.version===1&&Yc(e.entries)&&Object.values(e.entries).every(qo)}function qo(e){return Yc(e)&&typeof e.key=="string"&&typeof e.request=="string"&&typeof e.etag=="string"&&typeof e.body=="string"&&typeof e.updated_at=="string"}function Yc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ig,ag,cg,cn,zc,Wo=h(()=>{"use strict";Le();J();ae();ig="gh-etag",ag="gh-etag-cache.toon",cg="gh-etag-cache.json",cn=4*1024*1024;zc=new Set});var bg={};K(bg,{DEFAULT_RSP_BYTE_BUDGET:()=>Xe,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Qe,DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>Gt,DEFAULT_RSP_IDLE_MS:()=>Ko,DEFAULT_RSP_MEASUREMENT_HOLDOUT_SHARE:()=>yg,DEFAULT_RSP_STORE_PATH:()=>tu,DEFAULT_RSP_TELEMETRY_BYTE_BUDGET:()=>Vo,DEFAULT_RSP_TELEMETRY_DRAIN_INTERVAL_MS:()=>fg,DEFAULT_RSP_TELEMETRY_DRAIN_TIMEOUT_MS:()=>gg,DEFAULT_RSP_TELEMETRY_TTL_DAYS:()=>Jo,DEFAULT_RSP_TTL_DAYS:()=>Ye,MIN_RSP_IDLE_MS:()=>hg,resolveRspConfig:()=>De});import{existsSync as Zv,readFileSync as ex}from"node:fs";import{join as tx,resolve as mg}from"node:path";function De(e,t,r){let n=tg(mg(e),tx(".red","config.yaml")),s=n?ex(n,"utf8"):"",o=Bo(s,"rsp.enabled")==="true",i=Bo(s,"rsp.proxy.enabled"),a=i===void 0?o:i==="true",c=ke(ce(s,"rsp.ttlDays"),Ye),u=ke(dt(t.RSP_EPHEMERAL_TTL_HOURS)??ce(s,"rsp.ephemeralTtlHours"),Qe),l=ke(ce(s,"rsp.byteBudget"),Xe),d=ke(ce(s,"rsp.telemetryTtlDays"),Jo),p=ke(ce(s,"rsp.telemetryByteBudget")??ce(s,"rsp.byteBudget"),Vo),g=ke(dt(t.RSP_TELEMETRY_DRAIN_INTERVAL_MS)??ce(s,"rsp.telemetryDrainIntervalMs"),fg),f=ke(dt(t.RSP_TELEMETRY_DRAIN_TIMEOUT_MS)??ce(s,"rsp.telemetryDrainTimeoutMs"),gg),k=rx(dt(t.RSP_IDLE_MS)??ce(s,"rsp.idleMs"),Ko,hg),E=ke(dt(t.RSP_HEAVY_GIT_BYTE_THRESHOLD)??ce(s,"rsp.heavyGitByteThreshold"),Gt),y=nx(dt(t.RSP_MEASUREMENT_HOLDOUT_SHARE)??ce(s,"rsp.measurement.holdoutShare"),yg),_=ke(dt(t.RSP_GH_ETAG_CACHE_MAX_BYTES)??ce(s,"rsp.ghEtagCacheMaxBytes"),cn),T={maxOverheadMs:ke(dt(t.RSP_MAX_OVERHEAD_MS)??ce(s,"rsp.overhead.maxOverheadMs"),fo),maxSelfStateBytes:ke(dt(t.RSP_MAX_SELF_STATE_BYTES)??ce(s,"rsp.overhead.maxSelfStateBytes"),go),netLossFloorBytes:ke(ce(s,"rsp.overhead.netLossFloorBytes"),ho),consecutiveBreaches:ke(dt(t.RSP_OVERHEAD_CONSECUTIVE_BREACHES)??ce(s,"rsp.overhead.consecutiveBreaches"),yo),cooldownMs:ke(ce(s,"rsp.overhead.cooldownMs"),bo)},C=ct(e).rootDir,L=r??t.RSP_STORE_URI??`file://${Em(mg(C),Zv)}`;return{enabled:o,proxyEnabled:a,storeUri:L,ttlDays:c,ephemeralTtlHours:u,byteBudget:l,telemetryTtlDays:d,telemetryByteBudget:p,telemetryDrainIntervalMs:g,telemetryDrainTimeoutMs:f,idleMs:k,heavyGitByteThreshold:E,measurementHoldoutShare:y,ghEtagCacheMaxBytes:_,overhead:T}}function ce(e,t){let r=Bo(e,t);if(r==null)return;let n=Number(r);return Number.isFinite(n)?n:void 0}function ke(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function rx(e,t,r){let n=ke(e,t);return Math.max(n,r)}function nx(e,t){return typeof e!="number"||!Number.isFinite(e)?t:e<=0?0:e>=1?1:e}function dt(e){if(e==null||e.trim()==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}var Gt,tu,Ye,Qe,Xe,Jo,Vo,fg,gg,Ko,hg,yg,Be=h(()=>{"use strict";rg();Le();Oo();ae();Wo();Gt=8*1024,tu=wm,Ye=7,Qe=6,Xe=64*1024*1024,Jo=90,Vo=4*1024*1024,fg=3e4,gg=2e3,Ko=5*6e4,hg=5e3,yg=0});function wg(e,t=process.env){return{async mint(r,n){let{residentElisionStore:s}=await Promise.resolve().then(()=>(Jt(),Zn)),o=s(e,De(e,t));try{return await o.mint(r,n)}finally{await o.close()}}}}var _g=h(()=>{"use strict";Be()});import{spawn as sx}from"node:child_process";async function Rg(e){let{commandLine:t,options:r,cwd:n,registryPath:s,entry:o,signal:i}=e;if(!t.trim())return{verdict:ge("missing command line")};let a=e.store??wg(n),c=Zf(e.spoolDir,o.id,r.captureBytes);return await new Promise(u=>{let l=!1,d=!1,p=async y=>{l||(l=!0,i.removeEventListener("abort",k),await Do(s,o,y.verdict.status).catch(()=>{}),u(y))},g=sx(t,{cwd:n,shell:!0,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"});g.stdout?.on("data",y=>c.stdout.write(Buffer.from(y))),g.stderr?.on("data",y=>c.stderr.write(Buffer.from(y)));let f=async(y,_)=>{if(l||d)return;d=!0,clearTimeout(E);let T=await Zr(g,r.terminateGraceMs),C=await Eg(null,null,c,a,t);await p({verdict:{status:y,exitCode:2,summary:_,details:C},cleanupProven:T.cleaned,survivors:T.survivors})},k=()=>void f("indeterminate","command interrupted");i.addEventListener("abort",k,{once:!0});let E=setTimeout(()=>{f("timeout",`command timed out after ${kg(r.timeoutMs)}`)},r.timeoutMs);g.once("error",y=>{clearTimeout(E),c.stdout.discard(),c.stderr.discard(),p({verdict:{status:"failure",exitCode:1,summary:y.message}})}),g.once("close",(y,_)=>{if(clearTimeout(E),l||d)return;let T=y===0;Eg(y,_,c,a,t).then(C=>p({verdict:{status:T?"success":"failure",exitCode:T?0:1,summary:T?"command exited successfully":`command exited with ${_??y??"unknown"}`,details:C}}))}),i.aborted&&k()})}async function zo(e){let{probe:t,timeoutMs:r,baseSleepMs:n,registryPath:s,entry:o,signal:i}=e,a=Date.now()+r,c=0,u;for(;Date.now()<a;){if(i.aborted)return{verdict:ox(u,c,o.last_poll_at)};let l;try{l=await t()}catch(k){l=ge(k instanceof Error?k.message:String(k))}if(u=l,o.attempts=++c,o.last_poll_at=new Date().toISOString(),o.last_observation=ru(l),await rn(s,o).catch(()=>{}),l.status!=="running"&&l.status!=="indeterminate")return await Do(s,o,l.status).catch(()=>{}),{verdict:l};let d=Math.min(n*4,Math.round(n*Math.pow(1.25,c-1))),p=Math.floor(Math.random()*1e3),g=Math.min(d+p,Math.max(0,a-Date.now())),f=e.makeWakeSignal?.();await ix(g,i,f)}return await Do(s,o,"timeout").catch(()=>{}),{verdict:{status:"timeout",exitCode:2,summary:`timed out after ${kg(r)}`,details:u?{attempts:c,last_poll_at:o.last_poll_at??null,last_observation:ru(u)}:{attempts:c}}}}async function Eg(e,t,r,n,s){let[o,i]=await Promise.all([r.stdout.finish(n,`${s} # stdout`),r.stderr.finish(n,`${s} # stderr`)]);return{status:e??null,signal:t??null,stdout:o,stderr:i}}function ru(e){return{status:e.status,exit_code:e.exitCode,summary:e.summary,...e.details?{details:e.details}:{}}}function ox(e,t,r){return ge("wait interrupted",{attempts:t,last_poll_at:r??null,...e?{last_observation:ru(e)}:{}})}async function ix(e,t,r){t.aborted||e<=0||r?.aborted||await new Promise(n=>{let s=setTimeout(o,e);function o(){clearTimeout(s),t.removeEventListener("abort",i),r?.removeEventListener("abort",a),n()}let i=()=>o(),a=()=>o();t.addEventListener("abort",i,{once:!0}),r?.addEventListener("abort",a,{once:!0})})}function kg(e){return e%36e5===0?`${e/36e5}h`:e%6e4===0?`${e/6e4}m`:e%1e3===0?`${e/1e3}s`:`${e}ms`}var Sg=h(()=>{"use strict";eg();_g();wr();Lt();os()});var Tg={};K(Tg,{readGhConditionalJson:()=>xe,readGhEtagCache:()=>Ho,sweepGhEtagCache:()=>Zc});import{execFileSync as ax}from"node:child_process";async function xe(e){if(e.signal?.aborted)return{status:1,stdout:"",stderr:"gh call cancelled",quotaFree:!1};let t=e.cwd??process.cwd(),r=e.env??process.env,n=lx(t),s={...n?{owner:n.owner,repo:n.repo}:{},...e.params??{}},o={args:e.args??ux(e.path),path:e.path,actor:cx(r),...Object.keys(s).length>0?{params:s}:{}};try{let i;if(e.residentRead)i=await e.residentRead(o);else{let a=De(t,r),c=Xn(t,a);try{i=await c.githubRead(o)}finally{await c.close()}}return{status:i.status,stdout:i.stdout,stderr:i.stderr,quotaFree:i.quotaFree}}catch(i){return{status:75,stdout:"",stderr:JSON.stringify({refused:!0,reason:"rsp-github-resident-unavailable",repair:"restore the rsp resident and GitHub credential, then retry",detail:i instanceof Error?i.message:String(i)}),quotaFree:!1}}}function cx(e){let t=(e.RED_AFK_GH_ACTOR??"").trim();return t===""?"session":`proxied-agent:${t}`}function ux(e){return/\/pulls\/[^/]+\/?$/.test(e)?["pr","view"]:/\/pulls\/?$/.test(e)?["pr","list"]:/\/issues\/[^/]+\/?$/.test(e)?["issue","view"]:/\/issues\/?$/.test(e)?["issue","list"]:/\/actions\/runs\/[^/]+\/?$/.test(e)?["run","view"]:/\/actions\/runs\/?$/.test(e)?["run","list"]:["api",e]}function lx(e){let t="";try{t=String(ax("git",["config","--get","remote.origin.url"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]})).trim()}catch{return null}let n=t.replace(/^git@[^:]+:/,"").replace(/^ssh:\/\/git@[^/]+\//,"").replace(/^https?:\/\/[^/]+\//,"").replace(/\.git$/,"").replace(/^\/+|\/+$/g,"").split("/").filter(Boolean);return n.length<2?null:{owner:n[n.length-2],repo:n[n.length-1]}}var Yo=h(()=>{"use strict";Be();Jt();Wo()});import{spawn as dx}from"node:child_process";async function cs(e,t){return await px(t,async r=>{let n=await fx(e,t.cwd,r);return n||await mx(e,t.cwd,r)})}async function px(e,t){if(e.signal.aborted)return{status:1,stdout:"",stderr:"wait cancelled"};let r=new AbortController,n=setTimeout(()=>r.abort(),e.timeoutMs),s=AbortSignal.any([e.signal,r.signal]);try{let o=await t(s);return r.signal.aborted?{status:1,stdout:"",stderr:`GitHub probe exceeded ${e.timeoutMs}ms`}:o}finally{clearTimeout(n)}}async function mx(e,t,r){return r.aborted?{status:1,stdout:"",stderr:"gh call cancelled"}:await new Promise(n=>{let s=!1,o=l=>{s||(s=!0,r.removeEventListener("abort",a),n(l))},i=dx("gh",e,{cwd:t,stdio:["ignore","pipe","pipe"]});function a(){let l=i.pid;l&&Io(l).then(d=>Po(d,"SIGKILL"));try{i.kill("SIGKILL")}catch{}o({status:1,stdout:"",stderr:"gh call cancelled"})}r.addEventListener("abort",a,{once:!0});let c=[],u=[];i.stdout.on("data",l=>c.push(Buffer.from(l))),i.stderr.on("data",l=>u.push(Buffer.from(l))),i.once("error",l=>o({status:1,stdout:"",stderr:l.message})),i.once("close",l=>{o({status:l??1,stdout:Buffer.concat(c).toString("utf8"),stderr:Buffer.concat(u).toString("utf8").trim()})})})}async function fx(e,t,r){if(e[0]==="pr"&&e[1]==="view"&&e[2])return await gx(e[2],t,r);if(e[0]==="run"&&e[1]==="view"&&e[2]){let n=await xe({path:`repos/{owner}/{repo}/actions/runs/${e[2]}`,cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(n.status!==0)return n;let s=lt(JSON.parse(n.stdout));return{status:0,stderr:n.stderr,stdout:JSON.stringify({databaseId:sn(s,"database_id")||sn(s,"id"),status:he(s,"status").toUpperCase(),conclusion:he(s,"conclusion").toUpperCase(),workflowName:he(s,"workflow_name")||he(s,"name"),headBranch:he(s,"head_branch"),url:he(s,"html_url")})}}if(e[0]==="run"&&e[1]==="list"){let n=No(e,"--branch"),s=No(e,"--limit")??"20",o=await xe({path:"repos/{owner}/{repo}/actions/runs",params:{branch:n,per_page:s},cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(o.status!==0)return o;let i=Er(lt(JSON.parse(o.stdout)).workflow_runs).map(a=>({databaseId:sn(a,"database_id")||sn(a,"id")}));return{status:0,stdout:JSON.stringify(i),stderr:o.stderr}}if(e[0]==="release"&&e[1]==="list"){let n=No(e,"--limit")??"20",s=await xe({path:"repos/{owner}/{repo}/releases",params:{per_page:n},cwd:t,signal:r,command:`gh ${e.join(" ")}`});if(s.status!==0)return s;let o=Er(JSON.parse(s.stdout)).map(i=>({tagName:he(i,"tag_name"),publishedAt:he(i,"published_at"),isDraft:i.draft===!0}));return{status:0,stdout:JSON.stringify(o),stderr:s.stderr}}return null}async function gx(e,t,r){let n=await xe({path:`repos/{owner}/{repo}/pulls/${e}`,cwd:t,signal:r,command:`gh pr view ${e}`});if(n.status!==0)return n;let s=lt(JSON.parse(n.stdout));if(Array.isArray(s.statusCheckRollup))return{status:0,stdout:n.stdout,stderr:n.stderr};let o=he(lt(s.head),"sha"),[i,a]=o?await Promise.all([xe({path:`repos/{owner}/{repo}/commits/${o}/status`,cwd:t,signal:r,command:`gh pr view ${e} status`}),xe({path:`repos/{owner}/{repo}/commits/${o}/check-runs`,cwd:t,signal:r,command:`gh pr view ${e} check-runs`})]):[{status:0,stdout:"{}",stderr:"",quotaFree:!1},{status:0,stdout:"{}",stderr:"",quotaFree:!1}],c=i.status===0?Er(lt(JSON.parse(i.stdout)).statuses):[],u=a.status===0?Er(lt(JSON.parse(a.stdout)).check_runs):[];return{status:0,stderr:[n.stderr,i.stderr,a.stderr].filter(Boolean).join(`
|
|
67
|
+
`),stdout:JSON.stringify({number:sn(s,"number"),state:he(s,"state").toUpperCase(),mergeable:hx(s),statusCheckRollup:[...c.map(l=>({conclusion:he(l,"state").toUpperCase()})),...u.map(l=>({status:he(l,"status").toUpperCase(),conclusion:he(l,"conclusion").toUpperCase()}))],url:he(s,"html_url")})}}function hx(e){let t=he(e,"mergeable_state").toUpperCase();return t&&t!=="UNKNOWN"?t==="CLEAN"?"MERGEABLE":t:e.mergeable===!0?"MERGEABLE":e.mergeable===!1?"CONFLICTING":"UNKNOWN"}var vg=h(()=>{"use strict";Yo();Fo();Lt()});function Cg(e,t,r){let n=Date.now();return()=>yx(e,t,r,n)}async function yx(e,t,r,n){if(!/^[1-9][0-9]*$/.test(e))return ge("missing PR number");let s=await cs(["pr","view",e,"--json","number,state,mergeable,statusCheckRollup,url"],t);if(s.status!==0)return ge(s.stderr||"gh pr view failed");let o=Kc(s.stdout),i=Array.isArray(o.statusCheckRollup)?o.statusCheckRollup:[],a=String(o.mergeable??""),c=i.map(bx),u=c.filter(d=>d==="failure").length,l=c.filter(d=>d==="pending").length;if(String(o.state)!=="OPEN")return It("failure",`PR #${e} is ${String(o.state).toLowerCase()}`,{mergeable:a});if(a==="CONFLICTING")return It("failure",`PR #${e} has merge conflicts`,{failing:u,pending:l,mergeable:a});if(u>0)return It("failure",`PR #${e} has failing checks`,{failing:u,pending:l,mergeable:a});if(l>0)return Xr(`PR #${e} has ${l} pending checks`);if(i.length===0){let d=Date.now()-n;return a==="UNKNOWN"||a==="BLOCKED"||d<r.emptyChecksGraceMs?Xr(`PR #${e} has no registered checks yet`,{checks:0,mergeable:a,empty_checks_elapsed_ms:d}):It("success",`PR #${e} has no checks configured`,{checks:0,mergeable:a})}return a==="UNKNOWN"?Xr(`PR #${e} mergeability is still unknown`,{checks:i.length,mergeable:a}):It("success",`PR #${e} checks passed`,{checks:i.length,mergeable:a})}async function Og(e,t){if(!e)return ge("missing run id");let r=await cs(["run","view",e,"--json","databaseId,status,conclusion,workflowName,headBranch,url"],t);if(r.status!==0)return ge(r.stderr||"gh run view failed");let n=Kc(r.stdout),s=String(n.status??"").toLowerCase(),o=String(n.conclusion??"").toLowerCase();return s!=="completed"?Xr(`run ${e} is ${s||"pending"}`):o==="success"?It("success",`run ${e} succeeded`,xg(n)):It("failure",`run ${e} concluded ${o||"unknown"}`,xg(n))}async function Ag(e,t){let r=await cs(["run","list","--branch",e,"--limit","1","--json","databaseId"],t);if(r.status!==0)return"";let n=JSON.parse(r.stdout),s=Array.isArray(n)?n[0]:void 0;return nn(s)&&s.databaseId!=null?String(s.databaseId):""}async function Pg(e,t,r){let n=await cs(["release","list","--limit","20","--json","tagName,publishedAt,isDraft"],r);if(n.status!==0)return ge(n.stderr||"gh release list failed");let o=Er(JSON.parse(n.stdout)).find(i=>{let a=String(i.tagName??""),c=new Date(String(i.publishedAt??""));return i.isDraft!==!0&&(!e||wx(e,a))&&c>=t});return o?It("success",`release ${String(o.tagName)} published`,{tag:String(o.tagName),published_at:String(o.publishedAt??"")}):Xr("no matching release is published yet")}function bx(e){let t=nn(e)?e:{},r=String(t.conclusion??t.state??t.status??"").toLowerCase();return["success","successful","passed","completed","neutral","skipped"].includes(r)?"success":["failure","failed","error","timed_out","cancelled","action_required"].includes(r)?"failure":"pending"}function xg(e){return{database_id:typeof e.databaseId=="number"?e.databaseId:String(e.databaseId??""),conclusion:String(e.conclusion??""),workflow:String(e.workflowName??""),branch:String(e.headBranch??""),url:String(e.url??"")}}function wx(e,t){let r=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${r}$`).test(t)}var Ig=h(()=>{"use strict";wr();vg();Fo()});function us(){return["usage: rsp wait <subcommand> [options]","","Subcommands:"," rsp wait pr <number> [--timeout 45m] [--reason <text>]"," rsp wait run <id|--branch <branch> --latest> [--timeout 45m]"," rsp wait release [--tag <glob>] [--timeout 2h]",' rsp wait cmd -- "<command line>" [--timeout 30m]'," rsp wait ls","","Examples:",' rsp wait pr 123 --reason "before merge"'," rsp wait run --branch feature/wait --latest",' rsp wait release --tag "v2.*"',' rsp wait cmd -- "pnpm -C apps/rsp build"'," rsp wait ls","","Doctrine: never hand-write sleep polling loops; run rsp wait in a background shell - process exit IS the signal.","Exit codes: 0 = success verdict, 1 = failure verdict, 2 = timeout/indeterminate.","Result: TOON by default; --json selects JSON; --result-file <path> is written atomically before any wake.","Command capture: --capture-bytes <n> (default 16384); elision handles recover larger stdout/stderr.",'Completion hooks: --signal-pid <pid> [--signal USR1] and --notify-cmd "<cmd>" run after the result is durable.',"Hook timeout: --notify-timeout 10s. Process termination: TERM, --terminate-grace 2s, then KILL.","GitHub bounds: --probe-timeout 60s caps one probe, so a hung gh call cannot outlive --timeout.",""].join(`
|
|
68
|
+
`)}var nu=h(()=>{"use strict"});var Lg=h(()=>{"use strict";J()});var Gg=h(()=>{"use strict"});function _x(e){return Object.keys(e)}function un(e){return{...e,fields:_x(e.fields)}}var Dg,$g,Ng,Ex,Rx,kx,Fg,su=h(()=>{"use strict";Dg="red.castle.lane.v1",$g="red.castle.state.v1",Ng="red.castle.history.v1",Ex="red.castle.validation.v2",Rx="red.castle.envelope.v1",kx="red.castle.hitl-card.v1",Fg=[un({schemaId:Dg,docPath:".red/contracts/red.castle.lane.v1.md",typeNames:["CastleLaneRecord","CastleLaneKind"],fields:{at:!0,kind:!0,worker_id:!0,supervisor_id:!0,issue:!0,attempt:!0,msg:!0,payload:!0}}),un({schemaId:$g,docPath:".red/contracts/red.castle.state.v1.md",typeNames:["CastleStateSnapshot","CastleStateKind"],fields:{kind:!0,id:!0,version:!0,updated_at:!0,worker_id:!0,supervisor_id:!0,runner:!0,bundle_version:!0,pid:!0,started_at:!0,current:!0,queue:!0,completed:!0,envelope:!0}}),un({schemaId:Ng,docPath:".red/contracts/red.castle.history.v1.md",typeNames:["CastleHistoryRecord","CastleHistoryEvent"],fields:{ts:!0,epoch:!0,worker:!0,issue:!0,event:!0,duration_s:!0,runner:!0,merge_sha:!0,reason:!0}}),un({schemaId:Ex,docPath:".red/contracts/red.castle.validation.v2.md",typeNames:["CastleValidationRecord","CastleValidationStatus"],fields:{schema:!0,name:!0,status:!0,command:!0,exitCode:!0,durationMs:!0,summary:!0}}),un({schemaId:Rx,docPath:".red/contracts/red.castle.envelope.v1.md",typeNames:["CastleEnvelope","CastleEnvelopeSection","CastleAttemptStatus"],fields:{status:!0,worker:!0,duration:!0,diff:!0,attempt:!0,mergeSha:!0,sections:!0}}),un({schemaId:kx,docPath:".red/contracts/red.castle.hitl-card.v1.md",typeNames:["CastleHitlCard","CastleHitlCardPrStatus","CastleHitlCardAction"],fields:{issueNumber:!0,issueTitle:!0,issueUrl:!0,pendingDecision:!0,prStatus:!0,updatedAt:!0}})]});var hj,Qo=h(()=>{"use strict";J();su();hj=new Map(Fg.map(e=>[e.schemaId,new Set(e.fields)]))});var Mg=h(()=>{"use strict";Gg();Qo()});var Bg=h(()=>{"use strict"});var Xo=h(()=>{"use strict"});var ou=h(()=>{"use strict";Xo()});var Zo=h(()=>{"use strict"});import{appendFile as vx,mkdir as xx,readFile as Cx}from"node:fs/promises";import{dirname as Ox,join as Ax}from"node:path";function iu(e,t){if(typeof e!="string"||e.length===0)throw new Error(`singleton event ${t} must be a non-empty string`);return e}function jg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton event must be a record");let t={...e},r=t.payload;if(typeof r=="string")try{t.payload=JSON.parse(r)}catch{throw new Error("singleton event payload is not valid JSON")}if(t.payload!==void 0&&(t.payload===null||typeof t.payload!="object"||Array.isArray(t.payload)))throw new Error("singleton event payload must be a record");return{at:iu(t.at,"at"),singleton:iu(t.singleton,"singleton"),kind:iu(t.kind,"kind"),...t.payload===void 0?{}:{payload:t.payload}}}function Px(e){return{at:e.at,singleton:e.singleton,kind:e.kind,...e.payload===void 0?{}:{payload:JSON.stringify(e.payload)}}}function Ix(e){if(e!==void 0&&(!Number.isSafeInteger(e)||e<0))throw new Error("singleton event tail must be a non-negative integer")}function Lx(e){return Ax(e.castleStateRoot,"singleton-events.toonl")}function au(e,t={}){let r=t.fs??{appendFile:vx,mkdir:xx,readFile:Cx},n=t.clock??(()=>new Date().toISOString()),s=Lx(e);return{path:s,async append(o){let i=jg({at:o.at??n(),...o});return await r.mkdir(Ox(s),{recursive:!0}),await r.appendFile(s,St().push(Px(i)),"utf8"),i},async read(o={}){Ix(o.tail);let i;try{i=await r.readFile(s,"utf8")}catch(c){if(c.code==="ENOENT")return[];throw c}let a=kt(i).map(jg);return o.tail===void 0?a:o.tail===0?[]:a.slice(-o.tail)}}}var cu=h(()=>{"use strict";J()});var ei=h(()=>{"use strict";J();Zo();cu()});var Ug=h(()=>{"use strict";Xo();ou();ei()});var Hg=h(()=>{"use strict"});var e1,qg=h(()=>{"use strict";J();e1=24*60*60*1e3});var Wg=h(()=>{"use strict";Qo()});var s1,o1,Jg=h(()=>{"use strict";s1=15*6e4,o1=30*6e4});var Vg=h(()=>{"use strict"});var Dx,$x,c1,u1,Kg=h(()=>{"use strict";Dx=["supervisor_start","supervisor_exit","fleet_scaled","worker_start","worker_exit","worker_steered","worker_escalated","post_claim","pre_worktree","post_issue","pre_requeue","pre_merge","post_merge"],$x={pre_worktree:["cargo","gradle"]},c1=Object.values($x).flat(),u1=new Set(Dx)});var zg=h(()=>{"use strict"});var Yg=h(()=>{"use strict";ei()});var Qg=h(()=>{"use strict"});var Xg=h(()=>{});var Zg=h(()=>{"use strict";Xg()});var eh=h(()=>{"use strict"});var th=h(()=>{"use strict"});var uu=h(()=>{"use strict"});var rh=h(()=>{"use strict";J();uu()});var nh=h(()=>{"use strict";J()});var lu=h(()=>{"use strict"});var du=h(()=>{"use strict"});import{resolve as ye}from"node:path";function sh(e){let t=ye(e),r=ye(t,"state"),n=ye(r,"castle"),s=ye(t,"tmp"),o=ye(s,"supervisors"),i=ye(s,"workers"),a=ye(s,"monitors"),c=ye(s,"worktrees");return{redRoot:t,stateRoot:r,castleStateRoot:n,castleHistory:ye(n,"history.toonl"),castleValidation:ye(n,"validation.toonl"),tmpRoot:s,supervisorsRoot:o,supervisor:u=>ye(o,u),projectSupervisor:ye(o,Nx),workersRoot:i,worker:u=>ye(i,u),workerSteerFile:u=>ye(i,u,"steer.toon"),monitorsRoot:a,monitor:u=>ye(a,u),worktreesRoot:c,worktreeLane:u=>ye(c,u)}}var Nx,oh=h(()=>{"use strict";Nx="default"});var ih=h(()=>{"use strict";Zo()});var ah=h(()=>{"use strict"});var ch=h(()=>{"use strict";lu();du()});import{mkdir as Fx,readFile as Mx,rename as Bx,rm as jx,writeFile as Ux}from"node:fs/promises";import{dirname as Hx,join as qx}from"node:path";function Jx(e){if(!Wx.test(e)||e==="."||e==="..")throw new Error(`invalid singleton name ${JSON.stringify(e)}`)}function Vx(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function Kx(e){return e.code==="ENOENT"}function zx(e){return e.code==="EEXIST"}function Yx(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("singleton lease must be a record");let t=e;if(!Number.isInteger(t.pid)||t.pid<=0)throw new Error("singleton lease pid must be a positive integer");for(let r of["start_time","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)throw new Error(`singleton lease ${r} must be a non-empty string`);return t}function pu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function ti(e,t){return Jx(t),qx(e.castleStateRoot,"singletons",t,"lease.toon")}function uh(e,t={}){let r=t.fs??{mkdir:Fx,readFile:Mx,rename:Bx,rm:jx,writeFile:Ux},n=t.clock??(()=>new Date().toISOString()),s=t.isPidAlive??Vx;async function o(a){try{return Yx(H(await r.readFile(a,"utf8")))}catch(c){if(Kx(c))return;throw c}}async function i(a,c){let u=`${a}.tmp-${c.pid}-${crypto.randomUUID()}`;await r.writeFile(u,$(c,{keyedMapCollapse:!0}),{encoding:"utf8"}),await r.rename(u,a)}return{read(a){return o(ti(e,a))},async acquire(a,c){let u=ti(e,a);await r.mkdir(Hx(u),{recursive:!0});let l=!1;for(;;){let d=n(),p={pid:c.pid,start_time:c.startTime,acquired_at:d,renewed_at:d};try{return await r.writeFile(u,$(p,{keyedMapCollapse:!0}),{encoding:"utf8",flag:"wx"}),{acquired:!0,reaped:l,lease:p}}catch(f){if(!zx(f))throw f}let g=await o(u);if(g){if(pu(g,c))return{acquired:!0,reaped:l,lease:g};if(await s(g.pid))return{acquired:!1,lease:g};await r.rm(u,{force:!0}),l=!0}}},async renew(a,c){let u=ti(e,a),l=await o(u);if(!l||!pu(l,c))throw new ri(a);let d={...l,renewed_at:n()};return await i(u,d),d},async release(a,c){let u=ti(e,a),l=await o(u);if(!l)return!1;if(!pu(l,c))throw new ri(a);return await r.rm(u,{force:!0}),!0}}}var ri,Wx,lh=h(()=>{"use strict";J();ri=class extends Error{constructor(t){super(`singleton lease ${JSON.stringify(t)} is held by another owner`),this.name="SingletonLeaseOwnershipError"}},Wx=/^[a-z0-9][a-z0-9._-]{0,63}$/});var mu=h(()=>{"use strict"});var dh=h(()=>{"use strict"});var Qx,Xx,Zx,Q1,ph=h(()=>{"use strict";Qx={refreshCadenceS:270,tolerance:3},Xx=270,Zx=2700,Q1={...Qx,claimGraceS:Xx,recentCommitProtectionS:Zx}});var mh=h(()=>{"use strict"});function fh(e){return e==="single-object"?"rest":"graphql"}function ee(e,t,r,n,s,o){return{key:e,kind:"read",cardinality:t,volatility:r,surface:o??fh(t),budget:n,...o?{only:o}:{},why:s}}function Ce(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,why:n}}function hh(e){let t=[],r=0;for(;r<e.length&&e[r].startsWith("-");)r+=e[r]==="-R"||e[r]==="--repo"?2:1;for(;r<e.length&&!e[r].startsWith("-")&&t.length<2;)t.push(e[r]),r+=1;return t}function fu(e){let t=hh(e);if(t.length===0)return"";if(t[0]==="api")return t[1]==="graphql"?"api graphql":"api rest";let r=t.length===1?t[0]:`${t[0]} ${t[1]}`;return t[1]==="list"&&e.includes("--search")?`${r} (search)`:r}function yh(e){return eC.get(fu(e))??null}function gu(e){let t=yh(e);if(!t)throw new ni(e);return t}var gh,eC,ni,bh=h(()=>{gh=[ee("issue view","single-object","stable-poll","rest","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),ee("pr view","single-object","stable-poll","rest","one pull request by number, polled per Worker per iteration"),ee("repo view","single-object","stable-poll","rest","one repository's own metadata, repeatedly read while usually unchanged"),ee("run view","single-object","stable-poll","rest","one Actions run repeatedly polled to terminal; Actions has no GraphQL surface"),ee("release view","single-object","stable-poll","rest","one release by tag, repeatedly checked while usually absent or unchanged"),ee("pr diff","single-object","one-shot","rest","one pull request's diff, read once for review and served by a REST media type"),ee("issue list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged issue connection; GraphQL avoids N REST pages"),ee("pr list","multi-node","stable-poll","graphql","a repeatedly polled, usually-unchanged pull-request connection; GraphQL avoids N REST pages"),ee("pr checks","multi-node","stable-poll","graphql","check contexts form a connection repeatedly polled while awaiting terminal state"),ee("release list","multi-node","stable-poll","rest","release waits poll a usually-unchanged list; Releases has no GraphQL connection gh reads","rest"),ee("run list","multi-node","stable-poll","rest","run waits poll a usually-unchanged list; Actions has no GraphQL surface","rest"),ee("label list","multi-node","one-shot","graphql","a label connection loaded once for the current operation"),ee("issue list (search)","multi-node","stable-poll","search","queue discovery polls usually-unchanged search results through the 30/min search connection"),ee("pr list (search)","multi-node","stable-poll","search","PR discovery polls usually-unchanged search results through the 30/min search connection"),ee("search issues","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("search prs","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("search repos","multi-repository","one-shot","search","a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ee("api graphql","multi-node","one-shot","graphql","the caller supplies one explicit GraphQL query rather than a routed poll"),ee("api rest","single-object","one-shot","rest","the caller supplies one explicit REST path rather than a routed poll"),Ce("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ce("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ce("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ce("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ce("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ce("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ce("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ce("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ce("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ce("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ce("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ce("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ce("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ce("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],eC=new Map(gh.map(e=>[e.key,e]));ni=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=fu(t);super(`unclassified GitHub operation ${JSON.stringify(r||"(empty argv)")}: add an entry to GITHUB_OPERATIONS in packages/github/surface.ts stating its cardinality. Defaulting to GraphQL is what sent every single-object poll to the node-point pool (ADR 0132 decision 4).`),this.operation=r,this.args=[...t]}}});import{appendFile as tC,mkdir as rC,readFile as nC}from"node:fs/promises";import{dirname as sC}from"node:path";function yu(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let s=oC(n.operation,n.cost,n.observedAt??t(),n.actor),o=St().push(aC(s));return r=r.then(async()=>{await rC(sC(e.path),{recursive:!0}),await tC(e.path,o,"utf8")}),r},async report(n){await r;let s=hu(n.from,"report window start"),o=hu(n.to,"report window end");if(o<=s)throw new Error("GitHub attribution report window end must be after its start");let i=await iC(e.path),a=new Map;for(let u of i.observations){let l=Date.parse(u.observed_at);if(l<s||l>=o||n.pool!==void 0&&u.pool!==n.pool)continue;let d=`${u.pool}\0${u.operation_key}\0${u.actor??""}`,p=a.get(d);a.set(d,{operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:(p?.count??0)+1,cost:(p?.cost??0)+u.cost})}let c=[...a.values()].sort((u,l)=>l.cost-u.cost||l.count-u.count||u.operation_key.localeCompare(l.operation_key)||u.pool.localeCompare(l.pool)||(u.actor??"").localeCompare(l.actor??""));return{version:1,origin:"process-attribution",window:{from:n.from,to:n.to},pool:n.pool??null,total_count:c.reduce((u,l)=>u+l.count,0),total_cost:c.reduce((u,l)=>u+l.cost,0),operations:c,unreadable_records:i.unreadable}}}}function oC(e,t,r,n){if(hu(r,"GitHub spend observation"),!Number.isSafeInteger(t)||t<0)throw new Error(`GitHub spend observation cost must be a non-negative safe integer; received ${t}`);if(n!==void 0&&n.trim()==="")throw new Error("GitHub spend observation actor must be non-empty when supplied");return{version:1,observed_at:r,operation_key:e.key,pool:e.budget,...n===void 0?{}:{actor:n},cost:t}}async function iC(e){let t;try{t=await nC(e,"utf8")}catch(o){if(lC(o)&&o.code==="ENOENT")return{observations:[],unreadable:0};throw o}let r=[],n=0,s=t.split(`
|
|
69
|
+
`);for(let o=0;o<s.length;o+=1){let i=s[o];if(i.trim()==="")continue;let a=s[o+1];if(!i.startsWith("[]{")||a===void 0||a.trim()===""){n+=1;continue}let c;try{c=kt(`${i}
|
|
70
|
+
${a}
|
|
71
|
+
`)[0]}catch{n+=1,o+=1;continue}if(!cC(c)){n+=1,o+=1;continue}r.push(c),o+=1}return{observations:r,unreadable:n}}function aC(e){return{version:e.version,observed_at:e.observed_at,operation_key:e.operation_key,pool:e.pool,...e.actor===void 0?{}:{actor:e.actor},cost:e.cost}}function cC(e){return uC(e)?e.version===1&&typeof e.observed_at=="string"&&Number.isFinite(Date.parse(e.observed_at))&&typeof e.operation_key=="string"&&e.operation_key!==""&&(e.pool==="rest"||e.pool==="graphql"||e.pool==="search")&&(e.actor===void 0||typeof e.actor=="string"&&e.actor!=="")&&typeof e.cost=="number"&&Number.isSafeInteger(e.cost)&&e.cost>=0:!1}function hu(e,t){let r=Date.parse(e);if(!Number.isFinite(r))throw new Error(`${t} must be an ISO-8601 instant; received ${JSON.stringify(e)}`);return r}function uC(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lC(e){return e instanceof Error&&"code"in e}var wh=h(()=>{J()});var _u=cp((bu,wu)=>{(function(e,t){typeof bu=="object"&&typeof wu<"u"?wu.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(bu,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(I){return I&&I.default||I}var r=function(I,b,m={}){var w,R,S;for(w in b)S=b[w],m[w]=(R=I[w])!=null?R:S;return m},n=function(I,b,m={}){var w,R;for(w in I)R=I[w],b[w]!==void 0&&(m[w]=R);return m},s={load:r,overwrite:n},o;o=class{constructor(b,m){this.incr=b,this.decr=m,this._first=null,this._last=null,this.length=0}push(b){var m;this.length++,typeof this.incr=="function"&&this.incr(),m={value:b,prev:this._last,next:null},this._last!=null?(this._last.next=m,this._last=m):this._first=this._last=m}shift(){var b;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),b=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,b}first(){if(this._first!=null)return this._first.value}getArray(){var b,m,w;for(b=this._first,w=[];b!=null;)w.push((m=b,b=b.next,m.value));return w}forEachShift(b){var m;for(m=this.shift();m!=null;)b(m),m=this.shift()}debug(){var b,m,w,R,S;for(b=this._first,S=[];b!=null;)S.push((m=b,b=b.next,{value:m.value,prev:(w=m.prev)!=null?w.value:void 0,next:(R=m.next)!=null?R.value:void 0}));return S}};var i=o,a;a=class{constructor(b){if(this.instance=b,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(m,w)=>this._addListener(m,"many",w),this.instance.once=(m,w)=>this._addListener(m,"once",w),this.instance.removeAllListeners=(m=null)=>m!=null?delete this._events[m]:this._events={}}_addListener(b,m,w){var R;return(R=this._events)[b]==null&&(R[b]=[]),this._events[b].push({cb:w,status:m}),this.instance}listenerCount(b){return this._events[b]!=null?this._events[b].length:0}async trigger(b,...m){var w,R;try{return b!=="debug"&&this.trigger("debug",`Event triggered: ${b}`,m),this._events[b]==null?void 0:(this._events[b]=this._events[b].filter(function(S){return S.status!=="none"}),R=this._events[b].map(async S=>{var x,A;if(S.status!=="none"){S.status==="once"&&(S.status="none");try{return A=typeof S.cb=="function"?S.cb(...m):void 0,typeof A?.then=="function"?await A:A}catch(U){return x=U,this.trigger("error",x),null}}}),(await Promise.all(R)).find(function(S){return S!=null}))}catch(S){return w=S,this.trigger("error",w),null}}};var c=a,u,l,d;u=i,l=c,d=class{constructor(b){var m;this.Events=new l(this),this._length=0,this._lists=function(){var w,R,S;for(S=[],m=w=1,R=b;1<=R?w<=R:w>=R;m=1<=R?++w:--w)S.push(new u(()=>this.incr(),()=>this.decr()));return S}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(b){return this._lists[b.options.priority].push(b)}queued(b){return b!=null?this._lists[b].length:this._length}shiftAll(b){return this._lists.forEach(function(m){return m.forEachShift(b)})}getFirst(b=this._lists){var m,w,R;for(m=0,w=b.length;m<w;m++)if(R=b[m],R.length>0)return R;return[]}shiftLastFrom(b){return this.getFirst(this._lists.slice(b).reverse()).shift()}};var p=d,g;g=class extends Error{};var f=g,k,E,y,_,T;_=10,E=5,T=s,k=f,y=class{constructor(b,m,w,R,S,x,A,U){this.task=b,this.args=m,this.rejectOnDrop=S,this.Events=x,this._states=A,this.Promise=U,this.options=T.load(w,R),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===R.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((oe,me)=>{this._resolve=oe,this._reject=me}),this.retryCount=0}_sanitizePriority(b){var m;return m=~~b!==b?E:b,m<0?0:m>_-1?_-1:m}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:b,message:m="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(b??new k(m)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(b){var m;if(m=this._states.jobStatus(this.options.id),!(m===b||b==="DONE"&&m===null))throw new k(`Invalid job status ${m}, expected ${b}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(b,m){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:b,blocked:m})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(b,m,w,R){var S,x,A;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),x={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",x);try{if(A=await(b!=null?b.schedule(this.options,this.task,...this.args):this.task(...this.args)),m())return this.doDone(x),await R(this.options,x),this._assertStatus("DONE"),this._resolve(A)}catch(U){return S=U,this._onFailure(S,x,m,w,R)}}doExpire(b,m,w){var R,S;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),S={args:this.args,options:this.options,retryCount:this.retryCount},R=new k(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(R,S,b,m,w)}async _onFailure(b,m,w,R,S){var x,A;if(w())return x=await this.Events.trigger("failed",b,m),x!=null?(A=~~x,this.Events.trigger("retry",`Retrying ${this.options.id} after ${A} ms`,m),this.retryCount++,R(A)):(this.doDone(m),await S(this.options,m),this._assertStatus("DONE"),this._reject(b))}doDone(b){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",b)}};var C=y,L,F,q;q=s,L=f,F=class{constructor(b,m,w){this.instance=b,this.storeOptions=m,this.clientId=this.instance._randomIndex(),q.load(w,w,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var b;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(b=this.heartbeat=setInterval(()=>{var m,w,R,S,x;if(S=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&S>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=S,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&S>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:m,reservoirIncreaseMaximum:R,reservoir:x}=this.storeOptions,this._lastReservoirIncrease=S,w=R!=null?Math.min(m,R-x):m,w>0))return this.storeOptions.reservoir+=w,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?b.unref():void 0:clearInterval(this.heartbeat)}async __publish__(b){return await this.yieldLoop(),this.instance.Events.trigger("message",b.toString())}async __disconnect__(b){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(b=0){return new this.Promise(function(m,w){return setTimeout(m,b)})}computePenalty(){var b;return(b=this.storeOptions.penalty)!=null?b:15*this.storeOptions.minTime||5e3}async __updateSettings__(b){return await this.yieldLoop(),q.overwrite(b,b,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(b){return await this.yieldLoop(),this._nextRequest+this.timeout<b}computeCapacity(){var b,m;return{maxConcurrent:b,reservoir:m}=this.storeOptions,b!=null&&m!=null?Math.min(b-this._running,m):b!=null?b-this._running:m??null}conditionsCheck(b){var m;return m=this.computeCapacity(),m==null||b<=m}async __incrementReservoir__(b){var m;return await this.yieldLoop(),m=this.storeOptions.reservoir+=b,this.instance._drainAll(this.computeCapacity()),m}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(b){return this._unblockTime>=b}check(b,m){return this.conditionsCheck(b)&&this._nextRequest-m<=0}async __check__(b){var m;return await this.yieldLoop(),m=Date.now(),this.check(b,m)}async __register__(b,m,w){var R,S;return await this.yieldLoop(),R=Date.now(),this.conditionsCheck(m)?(this._running+=m,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=m),S=Math.max(this._nextRequest-R,0),this._nextRequest=R+S+this.storeOptions.minTime,{success:!0,wait:S,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(b,m){var w,R,S;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&m>this.storeOptions.maxConcurrent)throw new L(`Impossible to add a job having a weight of ${m} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return R=Date.now(),S=this.storeOptions.highWater!=null&&b===this.storeOptions.highWater&&!this.check(m,R),w=this.strategyIsBlock()&&(S||this.isBlocked(R)),w&&(this._unblockTime=R+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:S,blocked:w,strategy:this.storeOptions.strategy}}async __free__(b,m){return await this.yieldLoop(),this._running-=m,this._done+=m,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var se=F,re,de;re=f,de=class{constructor(b){this.status=b,this._jobs={},this.counts=this.status.map(function(){return 0})}next(b){var m,w;if(m=this._jobs[b],w=m+1,m!=null&&w<this.status.length)return this.counts[m]--,this.counts[w]++,this._jobs[b]++;if(m!=null)return this.counts[m]--,delete this._jobs[b]}start(b){var m;return m=0,this._jobs[b]=m,this.counts[m]++}remove(b){var m;return m=this._jobs[b],m!=null&&(this.counts[m]--,delete this._jobs[b]),m!=null}jobStatus(b){var m;return(m=this.status[this._jobs[b]])!=null?m:null}statusJobs(b){var m,w,R,S,x;if(b!=null){if(w=this.status.indexOf(b),w<0)throw new re(`status must be one of ${this.status.join(", ")}`);R=this._jobs,S=[];for(m in R)x=R[m],x===w&&S.push(m);return S}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((b,m,w)=>(b[this.status[w]]=m,b),{})}};var pe=de,Mt,P;Mt=i,P=class{constructor(b,m){this.schedule=this.schedule.bind(this),this.name=b,this.Promise=m,this._running=0,this._queue=new Mt}isEmpty(){return this._queue.length===0}async _tryToRun(){var b,m,w,R,S,x,A;if(this._running<1&&this._queue.length>0)return this._running++,{task:A,args:b,resolve:S,reject:R}=this._queue.shift(),m=await async function(){try{return x=await A(...b),function(){return S(x)}}catch(U){return w=U,function(){return R(w)}}}(),this._running--,this._tryToRun(),m()}schedule(b,...m){var w,R,S;return S=R=null,w=new this.Promise(function(x,A){return S=x,R=A}),this._queue.push({task:b,args:m,resolve:S,reject:R}),this._tryToRun(),w}};var B=P,Ne="2.19.5",wt={version:Ne},Bt=Object.freeze({version:Ne,default:wt}),O=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),N=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),_t=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),rt,Te,ve,Et,Fr,jt;jt=s,rt=c,Et=O,ve=N,Fr=_t,Te=function(){class I{constructor(m={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=m,jt.load(this.limiterOptions,this.defaults,this),this.Events=new rt(this),this.instances={},this.Bottleneck=ip,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Et(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new ve(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(m=""){var w;return(w=this.instances[m])!=null?w:(()=>{var R;return R=this.instances[m]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${m}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",R,m),R})()}async deleteKey(m=""){var w,R;return R=this.instances[m],this.connection&&(w=await this.connection.__runCommand__(["del",...Fr.allKeys(`${this.id}-${m}`)])),R!=null&&(delete this.instances[m],await R.disconnect()),R!=null||w>0}limiters(){var m,w,R,S;w=this.instances,R=[];for(m in w)S=w[m],R.push({key:m,limiter:S});return R}keys(){return Object.keys(this.instances)}async clusterKeys(){var m,w,R,S,x,A,U,oe,me;if(this.connection==null)return this.Promise.resolve(this.keys());for(A=[],m=null,me=`b_${this.id}-`.length,w=9;m!==0;)for([oe,R]=await this.connection.__runCommand__(["scan",m??0,"match",`b_${this.id}-*_settings`,"count",1e4]),m=~~oe,S=0,U=R.length;S<U;S++)x=R[S],A.push(x.slice(me,-w));return A}_startAutoCleanup(){var m;return clearInterval(this.interval),typeof(m=this.interval=setInterval(async()=>{var w,R,S,x,A,U;A=Date.now(),S=this.instances,x=[];for(R in S){U=S[R];try{await U._store.__groupCheck__(A)?x.push(this.deleteKey(R)):x.push(void 0)}catch(oe){w=oe,x.push(U.Events.trigger("error",w))}}return x},this.timeout/2)).unref=="function"?m.unref():void 0}updateSettings(m={}){if(jt.overwrite(m,this.defaults,this),jt.overwrite(m,m,this.limiterOptions),m.timeout!=null)return this._startAutoCleanup()}disconnect(m=!0){var w;if(!this.sharedConnection)return(w=this.connection)!=null?w.disconnect(m):void 0}}return I.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},I}.call(e);var Pn=Te,ur,In,Xd;Xd=s,In=c,ur=function(){class I{constructor(m={}){this.options=m,Xd.load(this.options,this.defaults,this),this.Events=new In(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((m,w)=>this._resolve=m)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(m){var w;return this._arr.push(m),w=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),w}}return I.prototype.defaults={maxTime:null,maxSize:null,Promise},I}.call(e);var cR=ur,uR=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),lR=t(Bt),Zd,ep,wa,_a,tp,Ea,rp,np,sp,Ra,nt,op=[].splice;Ea=10,ep=5,nt=s,rp=p,_a=C,tp=se,np=uR,wa=c,sp=pe,Ra=B,Zd=function(){class I{constructor(m={},...w){var R,S;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(m,w),nt.load(m,this.instanceDefaults,this),this._queues=new rp(Ea),this._scheduled={},this._states=new sp(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new wa(this),this._submitLock=new Ra("submit",this.Promise),this._registerLock=new Ra("register",this.Promise),S=nt.load(m,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return R=nt.load(m,this.redisStoreDefaults,{}),new np(this,S,R);if(this.datastore==="local")return R=nt.load(m,this.localStoreDefaults,{}),new tp(this,S,R);throw new I.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var x;return(x=this._store.heartbeat)!=null&&typeof x.ref=="function"?x.ref():void 0}),this._queues.on("zero",()=>{var x;return(x=this._store.heartbeat)!=null&&typeof x.unref=="function"?x.unref():void 0})}_validateOptions(m,w){if(!(m!=null&&typeof m=="object"&&w.length===0))throw new I.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(m){return this._store.__publish__(m)}disconnect(m=!0){return this._store.__disconnect__(m)}chain(m){return this._limiter=m,this}queued(m){return this._queues.queued(m)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(m){return this._states.jobStatus(m)}jobs(m){return this._states.statusJobs(m)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(m=1){return this._store.__check__(m)}_clearGlobalState(m){return this._scheduled[m]!=null?(clearTimeout(this._scheduled[m].expiration),delete this._scheduled[m],!0):!1}async _free(m,w,R,S){var x,A;try{if({running:A}=await this._store.__free__(m,R.weight),this.Events.trigger("debug",`Freed ${R.id}`,S),A===0&&this.empty())return this.Events.trigger("idle")}catch(U){return x=U,this.Events.trigger("error",x)}}_run(m,w,R){var S,x,A;return w.doRun(),S=this._clearGlobalState.bind(this,m),A=this._run.bind(this,m,w),x=this._free.bind(this,m,w),this._scheduled[m]={timeout:setTimeout(()=>w.doExecute(this._limiter,S,A,x),R),expiration:w.options.expiration!=null?setTimeout(function(){return w.doExpire(S,A,x)},R+w.options.expiration):void 0,job:w}}_drainOne(m){return this._registerLock.schedule(()=>{var w,R,S,x,A;return this.queued()===0?this.Promise.resolve(null):(A=this._queues.getFirst(),{options:x,args:w}=S=A.first(),m!=null&&x.weight>m?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${x.id}`,{args:w,options:x}),R=this._randomIndex(),this._store.__register__(R,x.weight,x.expiration).then(({success:U,wait:oe,reservoir:me})=>{var Ln;return this.Events.trigger("debug",`Drained ${x.id}`,{success:U,args:w,options:x}),U?(A.shift(),Ln=this.empty(),Ln&&this.Events.trigger("empty"),me===0&&this.Events.trigger("depleted",Ln),this._run(R,S,oe),this.Promise.resolve(x.weight)):this.Promise.resolve(null)})))})}_drainAll(m,w=0){return this._drainOne(m).then(R=>{var S;return R!=null?(S=m!=null?m-R:m,this._drainAll(S,w+R)):this.Promise.resolve(w)}).catch(R=>this.Events.trigger("error",R))}_dropAllQueued(m){return this._queues.shiftAll(function(w){return w.doDrop({message:m})})}stop(m={}){var w,R;return m=nt.load(m,this.stopDefaults),R=S=>{var x;return x=()=>{var A;return A=this._states.counts,A[0]+A[1]+A[2]+A[3]===S},new this.Promise((A,U)=>x()?A():this.on("done",()=>{if(x())return this.removeAllListeners("done"),A()}))},w=m.dropWaitingJobs?(this._run=function(S,x){return x.doDrop({message:m.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var S,x,A;x=this._scheduled;for(S in x)A=x[S],this.jobStatus(A.job.options.id)==="RUNNING"&&(clearTimeout(A.timeout),clearTimeout(A.expiration),A.job.doDrop({message:m.dropErrorMessage}));return this._dropAllQueued(m.dropErrorMessage),R(0)}))):this.schedule({priority:Ea-1,weight:0},()=>R(1)),this._receive=function(S){return S._reject(new I.prototype.BottleneckError(m.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new I.prototype.BottleneckError("stop() has already been called")),w}async _addToQueue(m){var w,R,S,x,A,U,oe;({args:w,options:x}=m);try{({reachedHWM:A,blocked:R,strategy:oe}=await this._store.__submit__(this.queued(),x.weight))}catch(me){return S=me,this.Events.trigger("debug",`Could not queue ${x.id}`,{args:w,options:x,error:S}),m.doDrop({error:S}),!1}return R?(m.doDrop(),!0):A&&(U=oe===I.prototype.strategy.LEAK?this._queues.shiftLastFrom(x.priority):oe===I.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(x.priority+1):oe===I.prototype.strategy.OVERFLOW?m:void 0,U?.doDrop(),U==null||oe===I.prototype.strategy.OVERFLOW)?(U==null&&m.doDrop(),A):(m.doQueue(A,R),this._queues.push(m),await this._drainAll(),A)}_receive(m){return this._states.jobStatus(m.options.id)!=null?(m._reject(new I.prototype.BottleneckError(`A job with the same id already exists (id=${m.options.id})`)),!1):(m.doReceive(),this._submitLock.schedule(this._addToQueue,m))}submit(...m){var w,R,S,x,A,U,oe;return typeof m[0]=="function"?(A=m,[R,...m]=A,[w]=op.call(m,-1),x=nt.load({},this.jobDefaults)):(U=m,[x,R,...m]=U,[w]=op.call(m,-1),x=nt.load(x,this.jobDefaults)),oe=(...me)=>new this.Promise(function(Ln,pR){return R(...me,function(...ap){return(ap[0]!=null?pR:Ln)(ap)})}),S=new _a(oe,m,x,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),S.promise.then(function(me){return typeof w=="function"?w(...me):void 0}).catch(function(me){return Array.isArray(me)?typeof w=="function"?w(...me):void 0:typeof w=="function"?w(me):void 0}),this._receive(S)}schedule(...m){var w,R,S;return typeof m[0]=="function"?([S,...m]=m,R={}):[R,S,...m]=m,w=new _a(S,m,R,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(w),w.promise}wrap(m){var w,R;return w=this.schedule.bind(this),R=function(...S){return w(m.bind(this),...S)},R.withOptions=function(S,...x){return w(S,m,...x)},R}async updateSettings(m={}){return await this._store.__updateSettings__(nt.overwrite(m,this.storeDefaults)),nt.overwrite(m,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(m=0){return this._store.__incrementReservoir__(m)}}return I.default=I,I.Events=wa,I.version=I.prototype.version=lR.version,I.strategy=I.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},I.BottleneckError=I.prototype.BottleneckError=f,I.Group=I.prototype.Group=Pn,I.RedisConnection=I.prototype.RedisConnection=O,I.IORedisConnection=I.prototype.IORedisConnection=N,I.Batcher=I.prototype.Batcher=cR,I.prototype.jobDefaults={priority:ep,weight:1,expiration:null,id:"<no-id>"},I.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:I.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},I.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},I.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},I.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},I.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},I}.call(e);var ip=Zd,dR=ip;return dR})});var Dt,Eu=h(()=>{Dt=class extends Error{name;status;request;response;constructor(t,r,n){super(t,{cause:n.cause}),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0);"response"in n&&(this.response=n.response);let s=Object.assign({},n.request);n.request.headers.authorization&&(s.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),s.url=s.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=s}}});function pC(e){return e.request!==void 0}async function _h(e,t,r,n){if(!pC(r)||!r?.request.request)throw r;if(r.status>=400&&!e.doNotRetry.includes(r.status)){let s=n.request.retries!=null?n.request.retries:e.retries,o=Math.pow((n.request.retryCount||0)+1,2);throw t.retry.retryRequest(r,s,o)}throw r}async function mC(e,t,r,n){let s=new Eh.default;return s.on("failed",function(o,i){let a=~~o.request.request?.retries,c=~~o.request.request?.retryAfter;if(n.request.retryCount=i.retryCount+1,a>i.retryCount)return c*e.retryAfterBaseValue}),s.schedule(fC.bind(null,e,t,r),n)}async function fC(e,t,r,n){let s=await r(n);if(s.data&&s.data.errors&&s.data.errors.length>0&&/Something went wrong while executing your query/.test(s.data.errors[0].message)){let o=new Dt(s.data.errors[0].message,500,{request:n,response:s});return _h(e,t,o,n)}return s}function Ru(e,t){let r=Object.assign({enabled:!0,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,410,422,451],retries:3},t.retry),n={retry:{retryRequest:(s,o,i)=>(s.request.request=Object.assign({},s.request.request,{retries:o,retryAfter:i}),s)}};return r.enabled&&(e.hook.error("request",_h.bind(null,r,n)),e.hook.wrap("request",mC.bind(null,r,n))),n}var Eh,dC,Rh=h(()=>{Eh=Sa(_u(),1);Eu();dC="0.0.0-development";Ru.VERSION=dC});function hC(e,t,r){return e.retryLimiter.schedule(yC,e,t,r)}async function yC(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),s=bC(r.method,n),o=!s&&r.method!=="GET"&&r.method!=="HEAD",i=r.method==="GET"&&n.startsWith("/search/"),a=n.startsWith("/graphql"),u=~~t.retryCount>0?{priority:0,weight:0}:{};e.clustering&&(u.expiration=1e3*60),(o||a)&&await e.write.key(e.id).schedule(u,ku),o&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(u,ku),i&&await e.search.key(e.id).schedule(u,ku);let l=(s?e.auth:e.global).key(e.id).schedule(u,t,r);if(a){let d=await l;if(d.data.errors!=null&&d.data.errors.some(p=>p.type==="RATE_LIMITED"))throw Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:d,data:d.data})}return l}function bC(e,t){return e==="PATCH"&&/^\/applications\/[^/]+\/token\/scoped$/.test(t)||e==="POST"&&(/^\/applications\/[^/]+\/token$/.test(t)||/^\/app\/installations\/[^/]+\/access_tokens$/.test(t)||t==="/login/oauth/access_token")}function _C(e){let r=`^(?:${e.map(n=>n.split("/").map(s=>s.startsWith("{")?"(?:.+?)":s).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}function si(e,t){let{enabled:r=!0,Bottleneck:n=Sh.default,id:s="no-id",timeout:o=1e3*60*2,connection:i}=t.throttle||{};if(!r)return{};let a={timeout:o};typeof i<"u"&&(a.connection=i);let c=Object.assign({clustering:i!=null,triggersNotification:Th,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:s},t.throttle);if(typeof c.onSecondaryRateLimit!="function"||typeof c.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
|
|
89
72
|
You must pass the onSecondaryRateLimit and onRateLimit error handlers.
|
|
90
73
|
See https://octokit.github.io/rest.js/#throttling
|
|
91
74
|
|
|
@@ -95,82 +78,110 @@ ${s}
|
|
|
95
78
|
onRateLimit: (retryAfter, options) => {/* ... */}
|
|
96
79
|
}
|
|
97
80
|
})
|
|
98
|
-
`);let u=!1,l=()=>{if(u)return;u=!0,tt.global==null&&XO(n,a),c.global=c.global??tt.global,c.auth=c.auth??tt.auth,c.search=c.search??tt.search,c.write=c.write??tt.write,c.notifications=c.notifications??tt.notifications,c.retryLimiter=c.retryLimiter??new n;let p={},d=new n.Events(p);p.on("secondary-limit",c.onSecondaryRateLimit),p.on("rate-limit",c.onRateLimit),p.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),c.retryLimiter.on("failed",async function(g,f){let[k,E,y]=f.args,{pathname:_}=new URL(y.url,"http://github.test");if(!(_.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let v=~~E.retryCount;E.retryCount=v,y.request.retryCount=v;let{wantRetry:G,retryAfter:B=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let V=Number(g.response.headers["retry-after"])||k.fallbackSecondaryRateRetryAfter;return{wantRetry:await d.trigger("secondary-limit",V,y,e,v),retryAfter:V}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(V=>V.type==="RATE_LIMITED")){let V=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),te=Math.max(Math.ceil((V-Date.now())/1e3)+1,0);return{wantRetry:await d.trigger("rate-limit",te,y,e,v),retryAfter:te}}return{}}();if(G)return E.retryCount++,B*k.retryAfterBaseValue})};return e.hook.wrap("request",(p,d)=>(l(),VO(c,p,d))),{}}var by,JO,al,YO,yy,wy,tt,XO,_y=h(()=>{by=ba(sl(),1),JO="0.0.0-development",al=()=>Promise.resolve();YO=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/issues/{issue_number}/sub_issue","/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];yy=QO(YO),wy=yy.test.bind(yy),tt={},XO=function(e,t){tt.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),tt.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),tt.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),tt.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),tt.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};ki.VERSION=JO;ki.triggersNotification=wy});function Xt(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:"<environment undetectable>"}var Ls=h(()=>{});function Si(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((s,o)=>Si.bind(null,e,o,s,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((s,o)=>o.hook.bind(null,s,n),r)():r(n))}var Ey=h(()=>{});function Ry(e,t,r,n){let s=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=(o,i)=>Promise.resolve().then(s.bind(null,i)).then(o.bind(null,i))),t==="after"&&(n=(o,i)=>{let a;return Promise.resolve().then(o.bind(null,i)).then(c=>(a=c,s(a,i))).then(()=>a)}),t==="error"&&(n=(o,i)=>Promise.resolve().then(o.bind(null,i)).catch(a=>s(a,i))),e.registry[r].push({hook:n,orig:s})}var ky=h(()=>{});function Sy(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(s=>s.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var Ty=h(()=>{});function Cy(e,t,r){let n=xy(Sy,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(s=>{let o=r?[t,s,r]:[t,s];e[s]=e.api[s]=xy(Ry,null).apply(null,o)})}function ZO(){let e=Symbol("Singular"),t={registry:{}},r=Si.bind(null,t,e);return Cy(r,t,e),r}function e0(){let e={registry:{}},t=Si.bind(null,e);return Cy(t,e),t}var vy,xy,Oy,Ay=h(()=>{Ey();ky();Ty();vy=Function.bind,xy=vy.bind(vy);Oy={Singular:ZO,Collection:e0}});function s0(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function o0(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Ly(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{o0(t[n])?n in e?r[n]=Ly(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Py(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function ul(e,t,r){if(typeof t=="string"){let[s,o]=t.split(" ");r=Object.assign(o?{method:s,url:o}:{url:s},r)}else r=Object.assign({},t);r.headers=s0(r.headers),Py(r),Py(r.headers);let n=Ly(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(s=>!n.mediaType.previews.includes(s)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(s=>s.replace(/-preview/,""))),n}function i0(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(s=>s==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${s}=${encodeURIComponent(t[s])}`).join("&")}function c0(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function u0(e){let t=e.match(a0);return t?t.map(c0).reduce((r,n)=>r.concat(n),[]):[]}function Iy(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Dy(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function En(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Ds(e,t,r){return t=e==="+"||e==="#"?Dy(t):En(t),r?En(r)+"="+t:t}function _n(e){return e!=null}function cl(e){return e===";"||e==="&"||e==="?"}function l0(e,t,r,n){var s=e[r],o=[];if(_n(s)&&s!=="")if(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||typeof s=="boolean")s=s.toString(),n&&n!=="*"&&(s=s.substring(0,parseInt(n,10))),o.push(Ds(t,s,cl(t)?r:""));else if(n==="*")Array.isArray(s)?s.filter(_n).forEach(function(i){o.push(Ds(t,i,cl(t)?r:""))}):Object.keys(s).forEach(function(i){_n(s[i])&&o.push(Ds(t,s[i],i))});else{let i=[];Array.isArray(s)?s.filter(_n).forEach(function(a){i.push(Ds(t,a))}):Object.keys(s).forEach(function(a){_n(s[a])&&(i.push(En(a)),i.push(Ds(t,s[a].toString())))}),cl(t)?o.push(En(r)+"="+i.join(",")):i.length!==0&&o.push(i.join(","))}else t===";"?_n(s)&&o.push(En(r)):s===""&&(t==="&"||t==="?")?o.push(En(r)+"="):s===""&&o.push("");return o}function d0(e){return{expand:p0.bind(null,e)}}function p0(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,s,o){if(s){let a="",c=[];if(r.indexOf(s.charAt(0))!==-1&&(a=s.charAt(0),s=s.substr(1)),s.split(/,/g).forEach(function(u){var l=/([^:\*]*)(?::(\d+)|(\*))?/.exec(u);c.push(l0(t,a,l[1],l[2]||l[3]))}),a&&a!=="+"){var i=",";return a==="?"?i="&":a!=="#"&&(i=a),(c.length!==0?a:"")+c.join(i)}else return c.join(",")}else return Dy(o)}),e==="/"?e:e.replace(/\/$/,"")}function Gy(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),s,o=Iy(e,["method","baseUrl","url","headers","request","mediaType"]),i=u0(r);r=d0(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=Iy(o,a);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(l=>l.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let l=n.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g)||[];n.accept=l.concat(e.mediaType.previews).map(p=>{let d=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${p}-preview${d}`}).join(",")}return["GET","HEAD"].includes(t)?r=i0(r,c):"data"in c?s=c.data:Object.keys(c).length&&(s=c),!n["content-type"]&&typeof s<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof s>"u"&&(s=""),Object.assign({method:t,url:r,headers:n},typeof s<"u"?{body:s}:null,e.request?{request:e.request}:null)}function m0(e,t,r){return Gy(ul(e,t,r))}function $y(e,t){let r=ul(e,t),n=m0.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:$y.bind(null,r),merge:ul.bind(null,r),parse:Gy})}var t0,r0,n0,a0,Ny,Fy=h(()=>{Ls();t0="0.0.0-development",r0=`octokit-endpoint.js/${t0} ${Xt()}`,n0={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":r0},mediaType:{format:""}};a0=/\{[^{}}]+\}/g;Ny=$y(null,n0)});var Wy=Qd(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});Ti.format=y0;Ti.parse=b0;var f0=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,By=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,g0=/[\\"]/g,h0=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,jy=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function y0(e){let{type:t,parameters:r}=e;if(!t||!h0.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let s of Object.keys(r)){if(!By.test(s))throw new TypeError(`Invalid parameter name: ${s}`);n+=`; ${s}=${R0(r[s])}`}return n}function b0(e,t){let r=e.length,n=dl(e,0,r),s=n;n=ll(e,n,r);let o=pl(e,s,n),i=e.slice(s,o).toLowerCase(),a=t?.parameters===!1?new jy:E0(e,n,r);return{type:i,parameters:a}}var Uy=32,Hy=9,qy=59,w0=61,My=34,_0=92;function E0(e,t,r){let n=new jy;e:for(;t<r;){t=dl(e,t+1,r);let s=t;for(;t<r;){let o=e.charCodeAt(t);if(o===qy)continue e;if(o===w0){let i=pl(e,s,t),a=e.slice(s,i).toLowerCase();if(t=dl(e,t+1,r),t<r&&e.charCodeAt(t)===My){t++;let u="";for(;t<r;){let l=e.charCodeAt(t++);if(l===My){t=ll(e,t,r),n[a]===void 0&&(n[a]=u);break}if(l===_0&&t<r){u+=e[t++];continue}u+=String.fromCharCode(l)}continue e}let c=t;if(t=ll(e,t,r),n[a]===void 0){let u=pl(e,c,t);n[a]=e.slice(c,u)}continue e}t++}}return n}function ll(e,t,r){for(;t<r&&e.charCodeAt(t)!==qy;)t++;return t}function dl(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==Uy&&n!==Hy)break;t++}return t}function pl(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==Uy&&n!==Hy)break;r--}return r}function R0(e){if(By.test(e))return e;if(f0.test(e))return`"${e.replace(g0,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});var k0,xi,Zt,ml,Yy,Jy,Vy,fl,gl,S0,Qy,vi,T0,v0,x0,Xy,Ky,C0,O0,A0,zy,Zy,eb=h(()=>{k0=/^-?\d+$/,xi=/^-?\d+n+$/,Zt=JSON.stringify,ml=JSON.parse,Yy=/^-?\d+n$/,Jy=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Vy=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,fl=e=>e===void 0||typeof e=="function"||typeof e=="symbol",gl=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",S0=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let s=typeof t=="function",o=Array.isArray(t)?new Set(t.map(String)):null,i=(f,k,E)=>(E!==null&&typeof E=="object"&&typeof E.toJSON=="function"&&(E=E.toJSON(k)),typeof E=="string"&&xi.test(E)?E+"n":typeof E=="bigint"?"rawJSON"in JSON?JSON.rawJSON(E.toString()):E.toString()+"n":(s&&(E=t.call(f,k,E)),E!==null&&typeof E=="object"&&(E instanceof Number||E instanceof String||E instanceof Boolean)&&(E=E.valueOf()),E)),a=i({"":e},"",e);if(fl(a))return;let c=a===null||typeof a!="object",u=gl(a);if(c||u)return Zt(a);let l=[],p=0,d=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;d.length>0;){let f=d[d.length-1];f.index===0&&(l.push(f.isArray?"[":"{"),p++);let k=!1;if(f.isArray)if(f.index<f.val.length){f.first||l.push(","),n&&l.push(`
|
|
99
|
-
`+n.repeat(
|
|
100
|
-
`+n.repeat(
|
|
101
|
-
`+n.repeat(
|
|
81
|
+
`);let u=!1,l=()=>{if(u)return;u=!0,Ze.global==null&&EC(n,a),c.global=c.global??Ze.global,c.auth=c.auth??Ze.auth,c.search=c.search??Ze.search,c.write=c.write??Ze.write,c.notifications=c.notifications??Ze.notifications,c.retryLimiter=c.retryLimiter??new n;let d={},p=new n.Events(d);d.on("secondary-limit",c.onSecondaryRateLimit),d.on("rate-limit",c.onRateLimit),d.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),c.retryLimiter.on("failed",async function(g,f){let[k,E,y]=f.args,{pathname:_}=new URL(y.url,"http://github.test");if(!(_.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let C=~~E.retryCount;E.retryCount=C,y.request.retryCount=C;let{wantRetry:L,retryAfter:F=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let q=Number(g.response.headers["retry-after"])||k.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",q,y,e,C),retryAfter:q}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(q=>q.type==="RATE_LIMITED")){let q=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),se=Math.max(Math.ceil((q-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",se,y,e,C),retryAfter:se}}return{}}();if(L)return E.retryCount++,F*k.retryAfterBaseValue})};return e.hook.wrap("request",(d,p)=>(l(),hC(c,d,p))),{}}var Sh,gC,ku,wC,kh,Th,Ze,EC,vh=h(()=>{Sh=Sa(_u(),1),gC="0.0.0-development",ku=()=>Promise.resolve();wC=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/issues/{issue_number}/sub_issue","/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];kh=_C(wC),Th=kh.test.bind(kh),Ze={},EC=function(e,t){Ze.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),Ze.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),Ze.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),Ze.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),Ze.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};si.VERSION=gC;si.triggersNotification=Th});function Vt(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:"<environment undetectable>"}var ls=h(()=>{});function oi(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((s,o)=>oi.bind(null,e,o,s,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((s,o)=>o.hook.bind(null,s,n),r)():r(n))}var xh=h(()=>{});function Ch(e,t,r,n){let s=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=(o,i)=>Promise.resolve().then(s.bind(null,i)).then(o.bind(null,i))),t==="after"&&(n=(o,i)=>{let a;return Promise.resolve().then(o.bind(null,i)).then(c=>(a=c,s(a,i))).then(()=>a)}),t==="error"&&(n=(o,i)=>Promise.resolve().then(o.bind(null,i)).catch(a=>s(a,i))),e.registry[r].push({hook:n,orig:s})}var Oh=h(()=>{});function Ah(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(s=>s.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var Ph=h(()=>{});function Gh(e,t,r){let n=Lh(Ah,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(s=>{let o=r?[t,s,r]:[t,s];e[s]=e.api[s]=Lh(Ch,null).apply(null,o)})}function RC(){let e=Symbol("Singular"),t={registry:{}},r=oi.bind(null,t,e);return Gh(r,t,e),r}function kC(){let e={registry:{}},t=oi.bind(null,e);return Gh(t,e),t}var Ih,Lh,Dh,$h=h(()=>{xh();Oh();Ph();Ih=Function.bind,Lh=Ih.bind(Ih);Dh={Singular:RC,Collection:kC}});function xC(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function CC(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Mh(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{CC(t[n])?n in e?r[n]=Mh(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Nh(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Tu(e,t,r){if(typeof t=="string"){let[s,o]=t.split(" ");r=Object.assign(o?{method:s,url:o}:{url:s},r)}else r=Object.assign({},t);r.headers=xC(r.headers),Nh(r),Nh(r.headers);let n=Mh(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(s=>!n.mediaType.previews.includes(s)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(s=>s.replace(/-preview/,""))),n}function OC(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(s=>s==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${s}=${encodeURIComponent(t[s])}`).join("&")}function PC(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function IC(e){let t=e.match(AC);return t?t.map(PC).reduce((r,n)=>r.concat(n),[]):[]}function Fh(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Bh(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function dn(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function ds(e,t,r){return t=e==="+"||e==="#"?Bh(t):dn(t),r?dn(r)+"="+t:t}function ln(e){return e!=null}function Su(e){return e===";"||e==="&"||e==="?"}function LC(e,t,r,n){var s=e[r],o=[];if(ln(s)&&s!=="")if(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||typeof s=="boolean")s=s.toString(),n&&n!=="*"&&(s=s.substring(0,parseInt(n,10))),o.push(ds(t,s,Su(t)?r:""));else if(n==="*")Array.isArray(s)?s.filter(ln).forEach(function(i){o.push(ds(t,i,Su(t)?r:""))}):Object.keys(s).forEach(function(i){ln(s[i])&&o.push(ds(t,s[i],i))});else{let i=[];Array.isArray(s)?s.filter(ln).forEach(function(a){i.push(ds(t,a))}):Object.keys(s).forEach(function(a){ln(s[a])&&(i.push(dn(a)),i.push(ds(t,s[a].toString())))}),Su(t)?o.push(dn(r)+"="+i.join(",")):i.length!==0&&o.push(i.join(","))}else t===";"?ln(s)&&o.push(dn(r)):s===""&&(t==="&"||t==="?")?o.push(dn(r)+"="):s===""&&o.push("");return o}function GC(e){return{expand:DC.bind(null,e)}}function DC(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,s,o){if(s){let a="",c=[];if(r.indexOf(s.charAt(0))!==-1&&(a=s.charAt(0),s=s.substr(1)),s.split(/,/g).forEach(function(u){var l=/([^:\*]*)(?::(\d+)|(\*))?/.exec(u);c.push(LC(t,a,l[1],l[2]||l[3]))}),a&&a!=="+"){var i=",";return a==="?"?i="&":a!=="#"&&(i=a),(c.length!==0?a:"")+c.join(i)}else return c.join(",")}else return Bh(o)}),e==="/"?e:e.replace(/\/$/,"")}function jh(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),s,o=Fh(e,["method","baseUrl","url","headers","request","mediaType"]),i=IC(r);r=GC(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(l=>i.includes(l)).concat("baseUrl"),c=Fh(o,a);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(l=>l.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let l=n.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g)||[];n.accept=l.concat(e.mediaType.previews).map(d=>{let p=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${d}-preview${p}`}).join(",")}return["GET","HEAD"].includes(t)?r=OC(r,c):"data"in c?s=c.data:Object.keys(c).length&&(s=c),!n["content-type"]&&typeof s<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof s>"u"&&(s=""),Object.assign({method:t,url:r,headers:n},typeof s<"u"?{body:s}:null,e.request?{request:e.request}:null)}function $C(e,t,r){return jh(Tu(e,t,r))}function Uh(e,t){let r=Tu(e,t),n=$C.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Uh.bind(null,r),merge:Tu.bind(null,r),parse:jh})}var SC,TC,vC,AC,Hh,qh=h(()=>{ls();SC="0.0.0-development",TC=`octokit-endpoint.js/${SC} ${Vt()}`,vC={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":TC},mediaType:{format:""}};AC=/\{[^{}}]+\}/g;Hh=Uh(null,vC)});var Qh=cp(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.format=BC;ii.parse=jC;var NC=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,Jh=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,FC=/[\\"]/g,MC=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Vh=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function BC(e){let{type:t,parameters:r}=e;if(!t||!MC.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let s of Object.keys(r)){if(!Jh.test(s))throw new TypeError(`Invalid parameter name: ${s}`);n+=`; ${s}=${WC(r[s])}`}return n}function jC(e,t){let r=e.length,n=xu(e,0,r),s=n;n=vu(e,n,r);let o=Cu(e,s,n),i=e.slice(s,o).toLowerCase(),a=t?.parameters===!1?new Vh:qC(e,n,r);return{type:i,parameters:a}}var Kh=32,zh=9,Yh=59,UC=61,Wh=34,HC=92;function qC(e,t,r){let n=new Vh;e:for(;t<r;){t=xu(e,t+1,r);let s=t;for(;t<r;){let o=e.charCodeAt(t);if(o===Yh)continue e;if(o===UC){let i=Cu(e,s,t),a=e.slice(s,i).toLowerCase();if(t=xu(e,t+1,r),t<r&&e.charCodeAt(t)===Wh){t++;let u="";for(;t<r;){let l=e.charCodeAt(t++);if(l===Wh){t=vu(e,t,r),n[a]===void 0&&(n[a]=u);break}if(l===HC&&t<r){u+=e[t++];continue}u+=String.fromCharCode(l)}continue e}let c=t;if(t=vu(e,t,r),n[a]===void 0){let u=Cu(e,c,t);n[a]=e.slice(c,u)}continue e}t++}}return n}function vu(e,t,r){for(;t<r&&e.charCodeAt(t)!==Yh;)t++;return t}function xu(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==Kh&&n!==zh)break;t++}return t}function Cu(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==Kh&&n!==zh)break;r--}return r}function WC(e){if(Jh.test(e))return e;if(NC.test(e))return`"${e.replace(FC,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});var JC,ci,Kt,Ou,ry,Xh,Zh,Au,Pu,VC,ny,ai,KC,zC,YC,sy,ey,QC,XC,ZC,ty,oy,iy=h(()=>{JC=/^-?\d+$/,ci=/^-?\d+n+$/,Kt=JSON.stringify,Ou=JSON.parse,ry=/^-?\d+n$/,Xh=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Zh=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Au=e=>e===void 0||typeof e=="function"||typeof e=="symbol",Pu=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",VC=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let s=typeof t=="function",o=Array.isArray(t)?new Set(t.map(String)):null,i=(f,k,E)=>(E!==null&&typeof E=="object"&&typeof E.toJSON=="function"&&(E=E.toJSON(k)),typeof E=="string"&&ci.test(E)?E+"n":typeof E=="bigint"?"rawJSON"in JSON?JSON.rawJSON(E.toString()):E.toString()+"n":(s&&(E=t.call(f,k,E)),E!==null&&typeof E=="object"&&(E instanceof Number||E instanceof String||E instanceof Boolean)&&(E=E.valueOf()),E)),a=i({"":e},"",e);if(Au(a))return;let c=a===null||typeof a!="object",u=Pu(a);if(c||u)return Kt(a);let l=[],d=0,p=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;p.length>0;){let f=p[p.length-1];f.index===0&&(l.push(f.isArray?"[":"{"),d++);let k=!1;if(f.isArray)if(f.index<f.val.length){f.first||l.push(","),n&&l.push(`
|
|
82
|
+
`+n.repeat(d));let E=f.val[f.index],y=i(f.val,String(f.index),E);if(Au(y))l.push("null"),f.first=!1,f.index++;else{let _=y!==null&&typeof y=="object",T=Pu(y);if(_&&!T){if(g.has(y))throw new TypeError("Converting circular structure to JSON");g.add(y),p.push({parent:f.val,key:String(f.index),val:y,isArray:Array.isArray(y),keys:Array.isArray(y)?null:Object.keys(y),index:0,first:!0}),f.first=!1,f.index++}else l.push(Kt(y)),f.first=!1,f.index++}}else k=!0;else{for(;f.index<f.keys.length;){let y=f.keys[f.index++];if(o&&!o.has(y))continue;let T=f.val[y],C=i(f.val,y,T);if(Au(C))continue;f.first||l.push(","),n?l.push(`
|
|
83
|
+
`+n.repeat(d)+Kt(y)+": "):l.push(Kt(y)+":");let L=C!==null&&typeof C=="object",F=Pu(C);if(L&&!F){if(g.has(C))throw new TypeError("Converting circular structure to JSON");g.add(C),p.push({parent:f.val,key:y,val:C,isArray:Array.isArray(C),keys:Array.isArray(C)?null:Object.keys(C),index:0,first:!0}),f.first=!1;break}else l.push(Kt(C)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(k=!0)}k&&(d--,!f.first&&n&&l.push(`
|
|
84
|
+
`+n.repeat(d)),l.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return l.join("")},ny=(e,t,r)=>{try{return"rawJSON"in JSON?Kt(e,(a,c)=>typeof c=="bigint"?JSON.rawJSON(c.toString()):typeof t=="function"?t(a,c):(Array.isArray(t)&&t.includes(a),c),r):e?Kt(e,(a,c)=>typeof c=="string"&&ci.test(c)||typeof c=="bigint"?c.toString()+"n":typeof t=="function"?t(a,c):(Array.isArray(t)&&t.includes(a),c),r).replace(Xh,"$1$2$3").replace(Zh,"$1$2$3"):Kt(e,t,r)}catch(n){if(n instanceof RangeError){let s=VC(e,t,r);return s===void 0?void 0:"rawJSON"in JSON?s:s.replace(Xh,"$1$2$3").replace(Zh,"$1$2$3")}throw n}},ai=new Map,KC=()=>{let e=JSON.parse.toString();if(ai.has(e))return ai.get(e);try{let t=JSON.parse("1",(r,n,s)=>!!s?.source&&s.source==="1");return ai.set(e,t),t}catch{return ai.set(e,!1),!1}},zC=(e,t,r,n)=>typeof t=="string"&&ry.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&ci.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,YC=(e,t)=>JSON.parse(e,(r,n,s)=>{let o=typeof n=="number",i=n>Number.MAX_SAFE_INTEGER||n<Number.MIN_SAFE_INTEGER,a=o&&i,c=s&&JC.test(s.source);return a&&c?BigInt(s.source):typeof t=="function"?t(r,n,s):n}),sy=Number.MAX_SAFE_INTEGER.toString(),ey=sy.length,QC=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,XC=/^"-?\d+n+"$/,ZC=(e,t)=>{let r={"":e},n=[{parent:r,key:"",visited:!1}];for(;n.length>0;){let s=n[n.length-1];if(s.visited){let{parent:o,key:i}=s,a=o[i];typeof a=="string"&&(ry.test(a)?a=BigInt(a.slice(0,-1)):ci.test(a)&&(a=a.slice(0,-1))),typeof t=="function"&&(a=t.call(o,i,a)),a===void 0?delete o[i]:o[i]=a,n.pop()}else{s.visited=!0;let o=s.parent[s.key];if(o!==null&&typeof o=="object"){let a=Object.keys(o);for(let c=a.length-1;c>=0;c--)n.push({parent:o,key:a[c],visited:!1})}}}return r[""]},ty=e=>e.replace(QC,(t,r,n,s)=>{let o=t[0]==='"';if(o&&XC.test(t))return t.substring(0,t.length-1)+'n"';let a=n||s,c=r&&(r.length<ey||r.length===ey&&r<=sy);return o||a||c?t:'"'+t+'n"'}),oy=(e,t)=>{if(!e)return Ou(e,t);try{if(KC())return YC(e,t);let r=ty(e);return Ou(r,(n,s,o)=>zC(n,s,o,t))}catch(r){if(r instanceof RangeError){let n=ty(e),s=Ou(n);return ZC(s,t)}throw r}}});function rO(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}async function cy(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let r=e.request?.log||console,n=e.request?.parseSuccessResponseBody!==!1,s=rO(e.body)||Array.isArray(e.body)?ny(e.body):e.body,o=Object.fromEntries(Object.entries(e.headers).map(([d,p])=>[d,String(p)])),i;try{i=await t(e.url,{method:e.method,body:s,redirect:e.request?.redirect,headers:o,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(d){let p="Unknown Error";if(d instanceof Error){if(d.name==="AbortError")throw d.status=500,d;p=d.message,d.name==="TypeError"&&"cause"in d&&(d.cause instanceof Error?p=d.cause.message:typeof d.cause=="string"&&(p=d.cause))}let g=new Dt(p,500,{request:e});throw g.cause=d,g}let a=i.status,c=i.url,u={};for(let[d,p]of i.headers)u[d]=p;let l={url:c,status:a,headers:u,data:""};if("deprecation"in u){let d=u.link&&u.link.match(/<([^<>]+)>; rel="deprecation"/),p=d&&d.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${u.sunset}${p?`. See ${p}`:""}`)}if(a===204||a===205)return l;if(e.method==="HEAD"){if(a<400)return l;throw new Dt(i.statusText,a,{response:l,request:e})}if(a===304)throw l.data=await Iu(i),new Dt("Not modified",a,{response:l,request:e});if(a>=400)throw l.data=await Iu(i),new Dt(sO(l.data),a,{response:l,request:e});return l.data=n?await Iu(i):i.body,l}async function Iu(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(ay);let r=(0,uy.parse)(t);if(nO(r)){let n="";try{return n=await e.text(),oy(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(ay):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function nO(e){return e.type==="application/json"||e.type==="application/scim+json"}function sO(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if(typeof e=="object"&&e!==null&&"message"in e){let t=e,r="documentation_url"in t?` - ${t.documentation_url}`:"";return Array.isArray(t.errors)?`${t.message}: ${t.errors.map(n=>JSON.stringify(n)).join(", ")}${r}`:`${t.message}${r}`}return`Unknown error: ${JSON.stringify(e)}`}function Lu(e,t){let r=e.defaults(t);return Object.assign(function(s,o){let i=r.merge(s,o);if(!i.request||!i.request.hook)return cy(r.parse(i));let a=(c,u)=>cy(r.parse(r.merge(c,u)));return Object.assign(a,{endpoint:r,defaults:Lu.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:Lu.bind(null,r)})}var uy,eO,tO,ay,ps,Gu=h(()=>{qh();ls();uy=Sa(Qh(),1);iy();Eu();eO="10.0.13",tO={headers:{"user-agent":`octokit-request.js/${eO} ${Vt()}`}};ay=()=>"";ps=Lu(Hh,tO);});function iO(e){return`Request failed due to following response errors:
|
|
102
85
|
`+e.errors.map(t=>` - ${t.message}`).join(`
|
|
103
|
-
`)}function j0(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let i in r)if(B0.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,s=Object.keys(n).reduce((i,a)=>M0.includes(a)?(i[a]=n[a],i):(i.variables||(i.variables={}),i.variables[a]=n[a],i),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return sb.test(o)&&(s.url=o.replace(sb,"/api/graphql")),e(s).then(i=>{if(i.data.errors){let a={};for(let c of Object.keys(i.headers))a[c]=i.headers[c];throw new F0(s,a,i.data)}return i.data.data})}function wl(e,t){let r=e.defaults(t);return Object.assign((s,o)=>j0(r,s,o),{defaults:wl.bind(null,r),endpoint:r.endpoint})}function ob(e){return wl(e,{method:"POST",url:"/graphql"})}var $0,F0,M0,B0,sb,GH,ib=h(()=>{bl();Ls();$0="0.0.0-development";F0=class extends Error{constructor(e,t,r){super(N0(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}request;headers;response;name="GraphqlResponseError";errors;data},M0=["method","baseUrl","url","headers","request","query","mediaType","operationName"],B0=["query","method","url"],sb=/\/api\/v3\/?$/;GH=wl(Gs,{headers:{"user-agent":`octokit-graphql.js/${$0} ${Xt()}`},method:"POST",url:"/graphql"});});async function H0(e){let t=U0(e),r=e.startsWith("v1.")||e.startsWith("ghs_"),n=e.startsWith("ghu_");return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function q0(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function W0(e,t,r,n){let s=t.endpoint.merge(r,n);return s.headers.authorization=q0(e),t(s)}var _l,ab,cb,U0,ub,lb=h(()=>{_l="(?:[a-zA-Z0-9_-]+)",ab="\\.",cb=new RegExp(`^${_l}${ab}${_l}${ab}${_l}$`),U0=cb.test.bind(cb);ub=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(H0.bind(null,t),{hook:W0.bind(null,t)})}});var El,db=h(()=>{El="7.0.7"});function K0(e={}){return typeof e.debug!="function"&&(e.debug=pb),typeof e.info!="function"&&(e.info=pb),typeof e.warn!="function"&&(e.warn=J0),typeof e.error!="function"&&(e.error=V0),e}var pb,J0,V0,mb,Ci,fb=h(()=>{Ls();Ay();bl();ib();lb();db();pb=()=>{},J0=console.warn.bind(console),V0=console.error.bind(console);mb=`octokit-core.js/${El} ${Xt()}`,Ci=class{static VERSION=El;static defaults(t){return class extends this{constructor(...n){let s=n[0]||{};if(typeof t=="function"){super(t(s));return}super(Object.assign({},t,s,s.userAgent&&t.userAgent?{userAgent:`${s.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(s=>!r.includes(s)))}}constructor(t={}){let r=new Oy.Collection,n={baseUrl:Gs.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${mb}`:mb,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Gs.defaults(n),this.graphql=ob(this.request).defaults(n),this.log=K0(t.log),this.hook=r,t.authStrategy){let{authStrategy:o,...i}=t,a=o(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let o=ub(t.auth);r.wrap("request",o.hook),this.auth=o}let s=this.constructor;for(let o=0;o<s.plugins.length;++o)Object.assign(this,s.plugins[o](this,t))}request;graphql;log;hook;auth}});var gb,hb=h(()=>{gb="6.0.0"});function Rl(e){e.hook.wrap("request",(t,r)=>{e.log.debug("request",r);let n=Date.now(),s=e.request.endpoint.parse(r),o=s.url.replace(r.baseUrl,"");return t(r).then(i=>{let a=i.headers["x-github-request-id"];return e.log.info(`${s.method} ${o} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i}).catch(i=>{let a=i.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${s.method} ${o} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i})})}var yb=h(()=>{hb();Rl.VERSION=gb});function Y0(e){if(!e.data)return{...e,data:[]};if(!(("total_count"in e.data||"total_commits"in e.data)&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,s=e.data.total_count,o=e.data.total_commits;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count,delete e.data.total_commits;let i=Object.keys(e.data)[0],a=e.data[i];return e.data=a,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=s,e.data.total_commits=o,e}function kl(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),s=typeof t=="function"?t:e.request,o=n.method,i=n.headers,a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{let c=await s({method:o,url:a,headers:i}),u=Y0(c);if(a=((u.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in u.data){let l=new URL(u.url),p=l.searchParams,d=parseInt(p.get("page")||"1",10),g=parseInt(p.get("per_page")||"250",10);d*g<u.data.total_commits&&(p.set("page",String(d+1)),a=l.toString())}return{value:u}}catch(c){if(c.status!==409)throw c;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function bb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),wb(e,[],kl(e,t,r)[Symbol.asyncIterator](),n)}function wb(e,t,r,n){return r.next().then(s=>{if(s.done)return t;let o=!1;function i(){o=!0}return t=t.concat(n?n(s.value,i):s.value.data),o?t:wb(e,t,r,n)})}function Sl(e){return{paginate:Object.assign(bb.bind(null,e),{iterator:kl.bind(null,e)})}}var z0,XH,_b=h(()=>{z0="0.0.0-development";XH=Object.assign(bb,{iterator:kl});Sl.VERSION=z0});var Tl,Eb=h(()=>{Tl="17.0.0"});var Q0,Rb,kb=h(()=>{Q0={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteCustomImageFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],deleteCustomImageVersionFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomImageForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],getCustomImageVersionForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listCustomImageVersionsForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"],listCustomImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingPremiumRequestUsageReportOrg:["GET /organizations/{org}/settings/billing/premium_request/usage"],getGithubBillingPremiumRequestUsageReportUser:["GET /users/{username}/settings/billing/premium_request/usage"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubBillingUsageReportUser:["GET /users/{username}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},credentials:{revoke:["POST /credentials/revoke"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],repositoryAccessForOrg:["GET /organizations/{org}/dependabot/repository-access"],setRepositoryAccessDefaultLevel:["PUT /organizations/{org}/dependabot/repository-access/default-level"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],updateRepositoryAccessForOrg:["PATCH /organizations/{org}/dependabot/repository-access"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},enterpriseTeamMemberships:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"],get:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],list:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],remove:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"]},enterpriseTeamOrganizations:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"],delete:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignment:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignments:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"]},enterpriseTeams:{create:["POST /enterprises/{enterprise}/teams"],delete:["DELETE /enterprises/{enterprise}/teams/{team_slug}"],get:["GET /enterprises/{enterprise}/teams/{team_slug}"],list:["GET /enterprises/{enterprise}/teams"],update:["PATCH /enterprises/{enterprise}/teams/{team_slug}"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addBlockedByDependency:["POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],getParent:["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listDependenciesBlockedBy:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],listDependenciesBlocking:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeDependencyBlockedBy:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createArtifactStorageRecord:["POST /orgs/{org}/artifacts/metadata/storage-record"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createWebhook:["POST /orgs/{org}/hooks"],customPropertiesForOrgsCreateOrUpdateOrganizationValues:["PATCH /organizations/{org}/org-properties/values"],customPropertiesForOrgsGetOrganizationValues:["GET /organizations/{org}/org-properties/values"],customPropertiesForReposCreateOrUpdateOrganizationDefinition:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposCreateOrUpdateOrganizationDefinitions:["PATCH /orgs/{org}/properties/schema"],customPropertiesForReposCreateOrUpdateOrganizationValues:["PATCH /orgs/{org}/properties/values"],customPropertiesForReposDeleteOrganizationDefinition:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinition:["GET /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinitions:["GET /orgs/{org}/properties/schema"],customPropertiesForReposGetOrganizationValues:["GET /orgs/{org}/properties/values"],delete:["DELETE /orgs/{org}"],deleteAttestationsBulk:["POST /orgs/{org}/attestations/delete-request"],deleteAttestationsById:["DELETE /orgs/{org}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /orgs/{org}/attestations/digest/{subject_digest}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],disableSelectedRepositoryImmutableReleasesOrganization:["DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],enableSelectedRepositoryImmutableReleasesOrganization:["PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],get:["GET /orgs/{org}"],getImmutableReleasesSettings:["GET /orgs/{org}/settings/immutable-releases"],getImmutableReleasesSettingsRepositories:["GET /orgs/{org}/settings/immutable-releases/repositories"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listArtifactStorageRecords:["GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"],listAttestationRepositories:["GET /orgs/{org}/attestations/repositories"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listAttestationsBulk:["POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setImmutableReleasesSettings:["PUT /orgs/{org}/settings/immutable-releases"],setImmutableReleasesSettingsRepositories:["PUT /orgs/{org}/settings/immutable-releases/repositories"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},projects:{addItemForOrg:["POST /orgs/{org}/projectsV2/{project_number}/items"],addItemForUser:["POST /users/{username}/projectsV2/{project_number}/items"],deleteItemForOrg:["DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],deleteItemForUser:["DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"],getFieldForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"],getFieldForUser:["GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"],getForOrg:["GET /orgs/{org}/projectsV2/{project_number}"],getForUser:["GET /users/{username}/projectsV2/{project_number}"],getOrgItem:["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],getUserItem:["GET /users/{username}/projectsV2/{project_number}/items/{item_id}"],listFieldsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields"],listFieldsForUser:["GET /users/{username}/projectsV2/{project_number}/fields"],listForOrg:["GET /orgs/{org}/projectsV2"],listForUser:["GET /users/{username}/projectsV2"],listItemsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/items"],listItemsForUser:["GET /users/{username}/projectsV2/{project_number}/items"],updateItemForOrg:["PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],updateItemForUser:["PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkImmutableReleases:["GET /repos/{owner}/{repo}/immutable-releases"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],customPropertiesForReposCreateOrUpdateRepositoryValues:["PATCH /repos/{owner}/{repo}/properties/values"],customPropertiesForReposGetRepositoryValues:["GET /repos/{owner}/{repo}/properties/values"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disableImmutableReleases:["DELETE /repos/{owner}/{repo}/immutable-releases"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enableImmutableReleases:["PUT /repos/{owner}/{repo}/immutable-releases"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],listOrgPatternConfigs:["GET /orgs/{org}/secret-scanning/pattern-configurations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],updateOrgPatternConfigs:["PATCH /orgs/{org}/secret-scanning/pattern-configurations"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteAttestationsBulk:["POST /users/{username}/attestations/delete-request"],deleteAttestationsById:["DELETE /users/{username}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /users/{username}/attestations/digest/{subject_digest}"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listAttestationsBulk:["POST /users/{username}/attestations/bulk-list{?per_page,before,after}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Rb=Q0});function vl(e){let t={};for(let r of Or.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},X0);return t}function Z0(e,t,r,n,s){let o=e.request.defaults(n);function i(...a){let c=o.endpoint.merge(...a);if(s.mapToData)return c=Object.assign({},c,{data:c[s.mapToData],[s.mapToData]:void 0}),o(c);if(s.renamed){let[u,l]=s.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${u}.${l}()`)}if(s.deprecated&&e.log.warn(s.deprecated),s.renamedParameters){let u=o.endpoint.merge(...a);for(let[l,p]of Object.entries(s.renamedParameters))l in u&&(e.log.warn(`"${l}" parameter is deprecated for "octokit.${t}.${r}()". Use "${p}" instead`),p in u||(u[p]=u[l]),delete u[l]);return o(u)}return o(...a)}return Object.assign(i,o)}var Or,X0,Sb=h(()=>{kb();Or=new Map;for(let[e,t]of Object.entries(Rb))for(let[r,n]of Object.entries(t)){let[s,o,i]=n,[a,c]=s.split(/ /),u=Object.assign({method:a,url:c},o);Or.has(e)||Or.set(e,new Map),Or.get(e).set(r,{scope:e,methodName:r,endpointDefaults:u,decorations:i})}X0={has({scope:e},t){return Or.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Or.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let s=Or.get(t).get(n);if(!s)return;let{endpointDefaults:o,decorations:i}=s;return i?r[n]=Z0(e,t,n,o,i):r[n]=e.request.defaults(o),r[n]}}});function eA(e){return{rest:vl(e)}}function xl(e){let t=vl(e);return{...t,rest:t}}var Tb=h(()=>{Eb();Sb();eA.VERSION=Tl;xl.VERSION=Tl});var vb,xb=h(()=>{vb="22.0.1"});var Cb,Ob=h(()=>{fb();yb();_b();Tb();xb();Cb=Ci.plugin(Rl,xl,Sl).defaults({userAgent:`octokit-rest.js/${vb}`})});var yq,Ab=h(()=>{hy();_y();Ob();yq=Cb.plugin(il,ki)});var Pb=h(()=>{});var Ib=h(()=>{});var Lb=h(()=>{});var Db=h(()=>{py();my();Ab();Pb();Ib();Lb()});import{execFile as oA}from"node:child_process";import{promisify as iA}from"node:util";var bW,Gb=h(()=>{"use strict";Db();tl();bW=iA(oA)});var $b=h(()=>{"use strict";Oh();Gh();$h();bi();Fh();Mh();Bh();jh();yi();Uh();Hh();qh();Wh();Vu();Jh();Vh();zh();Yh();Qh();_i();Xh();Zh();Ju();Xu();Zu();ty();ry();ny();sy();wi();Qu();Yu();iy();tl();ay();cy();uy();Gb()});import{EventEmitter as aA}from"node:events";import{spawn as cA}from"node:child_process";function Ai(e,t){let r=Number(t);return!Number.isSafeInteger(r)||r<=0?!1:!!(e.pull_request?.number===r||e.check_run?.pull_requests?.some(n=>n.number===r)||e.check_suite?.pull_requests?.some(n=>n.number===r))}function Pi(e,t){return e.workflow_run!=null&&String(e.workflow_run.id)===t}var $s,Cl,uA,lA,dA,pA,Oi,Ol=h(()=>{$s="github-webhook",Cl="github.webhook.delivery";uA="pull_request,pull_request_review,check_run,check_suite,workflow_run",lA=3,dA=1e3,pA=/no extension matched|unknown command|command not found/i,Oi=class extends aA{constructor(r,n){super();this.opts=r;this.terminate=n}child;_dead=!1;restarts=0;_mode="polling";stopping;get mode(){return this._mode}get dead(){return this._dead}start(){this._dead||this.opts.cancelSignal.aborted||(this.opts.cancelSignal.addEventListener("abort",()=>void this.stop(),{once:!0}),this.spawnChild())}async stop(){if(this.stopping)return await this.stopping;this._dead=!0,this.emit("stopped");let r=this.child;this.child=void 0,r&&(this.stopping=this.terminate(r,dA).then(()=>{}),await this.stopping)}makeWakeSignalFor(r,n){return()=>{if(this._mode!=="webhook"||this._dead)return;let s=new AbortController,o=c=>{(r==="pr"?Ai(c,n):Pi(c,n))&&(a(),s.abort())},i=()=>{a()},a=()=>{this.off("delivery",o),this.off("stopped",i)};return this.on("delivery",o),this.once("stopped",i),s.signal}}spawnChild(){if(this._dead)return;let r=this.opts.ghBin??"gh",n;try{n=cA(r,["webhook","forward",`--events=${uA}`],{cwd:this.opts.cwd,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"})}catch{return}this.child=n;let s="";n.stdout?.setEncoding("utf8"),n.stdout?.on("data",i=>{s+=i;let a;for(;(a=s.indexOf(`
|
|
104
|
-
`))>=0;){let c=s.slice(0,a).trim();s=s.slice(a+1),c&&this.onLine(c)}});let o=[];n.stderr?.on("data",i=>{o.push(Buffer.from(i))}),n.once("error",()=>{this.child===n&&(this.child=void 0),this.scheduleRestart()}),n.once("close",i=>{if(this.child===n&&(this.child=void 0),this._dead)return;let a=Buffer.concat(o).toString("utf8");pA.test(a)||this.restarts===0&&(i===1||i===127)||this.scheduleRestart()})}onLine(r){let n;try{n=JSON.parse(r)}catch{this.emit("malformed-delivery",r);return}this._mode!=="webhook"&&(this._mode="webhook",this.emit("mode-changed","webhook")),this.emit("delivery",n)}scheduleRestart(){if(this._dead||this.restarts>=lA)return;let r=Math.min(500*Math.pow(2,this.restarts),5e3);this.restarts++,setTimeout(()=>this.spawnChild(),r).unref()}}});var Ii,Nb=h(()=>{"use strict";Ol();Ol();Pt();Ii=class extends Oi{constructor(t){super(t,Zr)}}});import{EventEmitter as mA}from"node:events";import{join as fA}from"node:path";function Pl(e){let t=Io(e.cwd),r=ey(fA(t,".red"));return new Al({...e,leases:e.leases??oy(r),lane:e.lane??zu(r),makeForwarder:e.makeForwarder??((n,s)=>new Ii({cwd:n,cancelSignal:s})),isLeaseHolderLive:e.isLeaseHolderLive??(n=>en(n.pid,n.start_time))})}var Al,Fb=h(()=>{"use strict";$b();Nb();Pt();Nc();Al=class extends mA{constructor(r){super();this.options=r}_mode="polling";cursor=0;timer;fallback;stopped=!1;syncing=!1;get mode(){return this.fallback?.mode??this._mode}async start(){let r=await this.options.leases.read($s).catch(()=>{});if(!r||!await this.options.isLeaseHolderLive(r)){this.startFallback();return}let n=await this.options.lane.read().catch(()=>{});if(!n){this.degradeToFallback();return}this.cursor=n.length,this._mode="webhook",this.emit("mode-changed","webhook"),this.timer=setInterval(()=>void this.sync().catch(()=>this.degradeToFallback()),this.options.pollIntervalMs??100),this.timer.unref(),this.options.cancelSignal.addEventListener("abort",()=>void this.stop(),{once:!0})}async stop(){this.stopped||(this.stopped=!0,this.timer&&clearInterval(this.timer),await this.fallback?.stop(),this.emit("stopped"))}makeWakeSignalFor(r,n){return()=>{if(this.fallback)return this.fallback.makeWakeSignalFor(r,n)();if(this._mode!=="webhook"||this.stopped)return;let s=new AbortController,o=a=>{(r==="pr"?Ai(a,n):Pi(a,n))&&(i(),s.abort())},i=()=>{this.off("delivery",o),this.off("stopped",i)};return this.on("delivery",o),this.once("stopped",i),s.signal}}startFallback(){this.fallback||this.stopped||(this.fallback=this.options.makeForwarder(this.options.cwd,this.options.cancelSignal),this.fallback.on("mode-changed",r=>{this.emit("mode-changed",r)}),this.fallback.on("delivery",r=>{this.emit("delivery",r)}),this.fallback.start())}degradeToFallback(){this.timer&&clearInterval(this.timer),this.timer=void 0,this._mode="polling",this.startFallback()}async sync(){if(!(this.syncing||this.stopped)){this.syncing=!0;try{let r=await this.options.lane.read();r.length<this.cursor&&(this.cursor=0);let n=r.slice(this.cursor);this.cursor=r.length;for(let o of n)o.singleton===$s&&o.kind===Cl&&o.payload&&this.emit("delivery",o.payload);let s=await this.options.leases.read($s);(!s||!await this.options.isLeaseHolderLive(s))&&this.degradeToFallback()}finally{this.syncing=!1}}}}});var Il={};K(Il,{listWaits:()=>Do,renderWaitHelp:()=>Is,runWait:()=>yA});import{randomUUID as Mb}from"node:crypto";import{mkdir as gA,rm as hA}from"node:fs/promises";async function yA(e,t=process.cwd()){let r;try{r=await xf(e)}catch(n){return await RA(e,n)}if(r.kind==="help"||e.includes("--help")||e.includes("-h"))return process.stdout.write(Is()),0;if(r.kind==="ls"){let n={schema:wf,version:1,waits:await Do(t)};return process.stdout.write(on(n,r.options.format)),0}return Gc(r.kind)?await bA({...r,kind:r.kind},t):(process.stdout.write(Is()),2)}async function bA(e,t){let r=e.kind,n=jc({id:Mb(),kind:r,target:EA(e),reason:e.options.reason,pid:process.pid,pid_start_time:await ts(process.pid),started_at:new Date().toISOString(),deadline_at:new Date(Date.now()+e.options.timeoutMs).toISOString(),timeout_ms:e.options.timeoutMs,poll_tier:Lc[r],status:"running",attempts:0}),s=Df(t,n.id),o=new AbortController,i,a=l=>{i=l,o.abort()},c=()=>a("SIGINT"),u=()=>a("SIGTERM");process.once("SIGINT",c),process.once("SIGTERM",u);try{await gA(tn(t),{recursive:!0}),await rn(s,n);let l=await wA(e,t,s,n,o.signal);i&&(l={...l,verdict:fe(`wait interrupted by ${i}`,l.verdict.details)});let p=await Ff({kind:r,entry:n,verdict:l.verdict,options:e.options,cwd:t,cleanupProven:l.cleanupProven,survivors:l.survivors});return process.stdout.write(on(p.result,e.options.format)),p.exitCode}catch(l){let p=fe(l instanceof Error?l.message:String(l)),d=as(r,n,p,{status:"success"},new Date().toISOString());return await cs(e.options.resultFile,d,e.options.format).catch(()=>{}),process.stdout.write(on(d,e.options.format)),2}finally{process.removeListener("SIGINT",c),process.removeListener("SIGTERM",u),await hA(s,{force:!0}).catch(()=>{})}}async function wA(e,t,r,n,s){let o={cwd:t,signal:s,timeoutMs:e.options.probeTimeoutMs};switch(e.kind){case"cmd":return await dg({commandLine:e.commandLine??"",options:e.options,cwd:t,spoolDir:Pf(t),registryPath:r,entry:n,signal:s});case"pr":{let i=e.target??"";if(!/^[1-9][0-9]*$/.test(i))return{verdict:fe("missing PR number")};n.webhook_mode="polling";let a=Pl({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await Jo({probe:Sh(i,o,{emptyChecksGraceMs:ns("RSP_WAIT_PR_EMPTY_CHECKS_GRACE_MS",3e4)}),timeoutMs:e.options.timeoutMs,baseSleepMs:ns("RSP_WAIT_PR_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("pr",i),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"run":{let i=await _A(e,o,r,n);if(!i.ok)return{verdict:fe(i.reason)};n.webhook_mode="polling";let a=Pl({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await Jo({probe:()=>Th(i.value,o),timeoutMs:e.options.timeoutMs,baseSleepMs:ns("RSP_WAIT_RUN_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("run",i.value),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"release":return await Jo({probe:()=>xh(e.tagGlob,new Date(n.started_at),o),timeoutMs:e.options.timeoutMs,baseSleepMs:ns("RSP_WAIT_RELEASE_POLL_MS",6e4),registryPath:r,entry:n,signal:s})}}async function _A(e,t,r,n){if(e.target)return{ok:!0,value:e.target};if(!(e.latest&&e.branch))return{ok:!1,reason:"missing run id"};let s=await vh(e.branch,t);return s?(e.target=s,n.target=`run:${s}`,await rn(r,n),{ok:!0,value:s}):{ok:!1,reason:`no run found for branch ${e.branch}`}}function EA(e){return e.kind==="cmd"?`cmd:${e.commandLine??""}`:e.kind==="run"&&e.branch&&e.latest?`run:${e.branch}:latest`:e.kind==="release"?`release:${e.tagGlob??"*"}`:`${e.kind}:${e.target??""}`}async function RA(e,t){let r=e.includes("--json")?"json":"toon",n=e.indexOf("--result-file"),s=n>=0?e[n+1]:void 0,o=Gc(e[1])?e[1]:"cmd",i=new Date().toISOString(),a=jc({id:Mb(),kind:o,target:`${o}:`,reason:"",pid:process.pid,started_at:i,deadline_at:i,timeout_ms:0,poll_tier:Lc[o],status:"indeterminate",attempts:0}),c=as(o,a,fe(t instanceof Error?t.message:String(t)),{status:"success"},i);return await cs(s,c,r).catch(()=>{}),process.stdout.write(on(c,r)),2}var Ll=h(()=>{"use strict";Cf();Bf();mg();_r();Fc();Ch();Pt();is();Wu();Fb();is();Wu()});import{existsSync as xA}from"node:fs";import{join as CA}from"node:path";function OA(){for(let e of(process.env.PATH??"").split(":"))if(e&&xA(CA(e,"rsp")))return!0;return!1}function Ns(){return OA()?["rsp"]:[process.execPath,process.argv[1]]}var Dl=h(()=>{"use strict"});var Li={};K(Li,{parseProxyCommandLine:()=>qb,rewriteProxyCommandLine:()=>Hb,runProxy:()=>IA});import{spawn as AA}from"node:child_process";function PA(e){return/[^\w@%+=:,./-]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}async function IA(e,t){let r="",n="",s=[],o=process.hrtime.bigint();try{if(r=qb(e),process.env.RSP_PROXY_FAIL_INTERNAL==="1")throw new Error("forced proxy failure");let c=Hb(r,t.level??"lossless");n=c.commandLine,s=c.matches}catch(c){if(r)return await LA(t.telemetryRoot,r,c),await Ub(r);throw c}for(let c of s)await DA(t.telemetryRoot,c);let i=await Ub(n||r),a=Number(process.hrtime.bigint()-o)/1e6;return await Dt(t.telemetryRoot,{collection:Fe,ts:new Date().toISOString(),command:r,wrapper:"proxy",loss:"lossless",elided:!1,raw_bytes:0,emitted_bytes:0,wrapper_ms:a,accounting_recorded:!1}),i}function Hb(e,t="lossless",r=Ns()){let n=BA(e),s=[];return{commandLine:n.map((i,a)=>{if(i.kind==="operator"||MA(n,a)==="|")return i.text;let c=GA(i.text,t,r);return c?(s.push(c.match),c.text):i.text}).join(""),matches:s}}function qb(e){if(e[0]!=="proxy")throw new Error("expected rsp proxy -- <command line>");let t=e.indexOf("--"),r=t>=0?e.slice(t+1):e.slice(1),n=r.length===1?r[0]:r.join(" ");if(!n.trim())throw new Error("usage: rsp proxy -- <command line>");return n}async function LA(e,t,r){await Dt(e,{collection:he,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t,command_family:Be(t),decision:"failed-open",reason:"proxy-internal-error",error:r instanceof Error?r.name:typeof r})}async function DA(e,t){await Dt(e,{collection:he,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t.command,command_family:t.commandFamily,decision:t.decision,reason:t.reason,capability_id:t.capabilityId})}async function Ub(e){let t=AA(e,{shell:!0,stdio:"inherit"}),r=ke();return t.once("close",r),t.once("error",r),await new Promise(n=>{t.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
|
|
105
|
-
|
|
86
|
+
`)}function lO(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let i in r)if(uO.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,s=Object.keys(n).reduce((i,a)=>cO.includes(a)?(i[a]=n[a],i):(i.variables||(i.variables={}),i.variables[a]=n[a],i),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return ly.test(o)&&(s.url=o.replace(ly,"/api/graphql")),e(s).then(i=>{if(i.data.errors){let a={};for(let c of Object.keys(i.headers))a[c]=i.headers[c];throw new aO(s,a,i.data)}return i.data.data})}function Du(e,t){let r=e.defaults(t);return Object.assign((s,o)=>lO(r,s,o),{defaults:Du.bind(null,r),endpoint:r.endpoint})}function dy(e){return Du(e,{method:"POST",url:"/graphql"})}var oO,aO,cO,uO,ly,DU,py=h(()=>{Gu();ls();oO="0.0.0-development";aO=class extends Error{constructor(e,t,r){super(iO(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}request;headers;response;name="GraphqlResponseError";errors;data},cO=["method","baseUrl","url","headers","request","query","mediaType","operationName"],uO=["query","method","url"],ly=/\/api\/v3\/?$/;DU=Du(ps,{headers:{"user-agent":`octokit-graphql.js/${oO} ${Vt()}`},method:"POST",url:"/graphql"});});async function pO(e){let t=dO(e),r=e.startsWith("v1.")||e.startsWith("ghs_"),n=e.startsWith("ghu_");return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function mO(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function fO(e,t,r,n){let s=t.endpoint.merge(r,n);return s.headers.authorization=mO(e),t(s)}var $u,my,fy,dO,gy,hy=h(()=>{$u="(?:[a-zA-Z0-9_-]+)",my="\\.",fy=new RegExp(`^${$u}${my}${$u}${my}${$u}$`),dO=fy.test.bind(fy);gy=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(pO.bind(null,t),{hook:fO.bind(null,t)})}});var Nu,yy=h(()=>{Nu="7.0.7"});function yO(e={}){return typeof e.debug!="function"&&(e.debug=by),typeof e.info!="function"&&(e.info=by),typeof e.warn!="function"&&(e.warn=gO),typeof e.error!="function"&&(e.error=hO),e}var by,gO,hO,wy,ui,_y=h(()=>{ls();$h();Gu();py();hy();yy();by=()=>{},gO=console.warn.bind(console),hO=console.error.bind(console);wy=`octokit-core.js/${Nu} ${Vt()}`,ui=class{static VERSION=Nu;static defaults(t){return class extends this{constructor(...n){let s=n[0]||{};if(typeof t=="function"){super(t(s));return}super(Object.assign({},t,s,s.userAgent&&t.userAgent?{userAgent:`${s.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(s=>!r.includes(s)))}}constructor(t={}){let r=new Dh.Collection,n={baseUrl:ps.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${wy}`:wy,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=ps.defaults(n),this.graphql=dy(this.request).defaults(n),this.log=yO(t.log),this.hook=r,t.authStrategy){let{authStrategy:o,...i}=t,a=o(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let o=gy(t.auth);r.wrap("request",o.hook),this.auth=o}let s=this.constructor;for(let o=0;o<s.plugins.length;++o)Object.assign(this,s.plugins[o](this,t))}request;graphql;log;hook;auth}});var Ey,Ry=h(()=>{Ey="6.0.0"});function Fu(e){e.hook.wrap("request",(t,r)=>{e.log.debug("request",r);let n=Date.now(),s=e.request.endpoint.parse(r),o=s.url.replace(r.baseUrl,"");return t(r).then(i=>{let a=i.headers["x-github-request-id"];return e.log.info(`${s.method} ${o} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i}).catch(i=>{let a=i.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${s.method} ${o} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i})})}var ky=h(()=>{Ry();Fu.VERSION=Ey});function wO(e){if(!e.data)return{...e,data:[]};if(!(("total_count"in e.data||"total_commits"in e.data)&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,s=e.data.total_count,o=e.data.total_commits;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count,delete e.data.total_commits;let i=Object.keys(e.data)[0],a=e.data[i];return e.data=a,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=s,e.data.total_commits=o,e}function Mu(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),s=typeof t=="function"?t:e.request,o=n.method,i=n.headers,a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{let c=await s({method:o,url:a,headers:i}),u=wO(c);if(a=((u.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in u.data){let l=new URL(u.url),d=l.searchParams,p=parseInt(d.get("page")||"1",10),g=parseInt(d.get("per_page")||"250",10);p*g<u.data.total_commits&&(d.set("page",String(p+1)),a=l.toString())}return{value:u}}catch(c){if(c.status!==409)throw c;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function Sy(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),Ty(e,[],Mu(e,t,r)[Symbol.asyncIterator](),n)}function Ty(e,t,r,n){return r.next().then(s=>{if(s.done)return t;let o=!1;function i(){o=!0}return t=t.concat(n?n(s.value,i):s.value.data),o?t:Ty(e,t,r,n)})}function Bu(e){return{paginate:Object.assign(Sy.bind(null,e),{iterator:Mu.bind(null,e)})}}var bO,XU,vy=h(()=>{bO="0.0.0-development";XU=Object.assign(Sy,{iterator:Mu});Bu.VERSION=bO});var ju,xy=h(()=>{ju="17.0.0"});var _O,Cy,Oy=h(()=>{_O={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteCustomImageFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],deleteCustomImageVersionFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomImageForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],getCustomImageVersionForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listCustomImageVersionsForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"],listCustomImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingPremiumRequestUsageReportOrg:["GET /organizations/{org}/settings/billing/premium_request/usage"],getGithubBillingPremiumRequestUsageReportUser:["GET /users/{username}/settings/billing/premium_request/usage"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubBillingUsageReportUser:["GET /users/{username}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},credentials:{revoke:["POST /credentials/revoke"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],repositoryAccessForOrg:["GET /organizations/{org}/dependabot/repository-access"],setRepositoryAccessDefaultLevel:["PUT /organizations/{org}/dependabot/repository-access/default-level"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],updateRepositoryAccessForOrg:["PATCH /organizations/{org}/dependabot/repository-access"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},enterpriseTeamMemberships:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"],get:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],list:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],remove:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"]},enterpriseTeamOrganizations:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"],delete:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignment:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignments:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"]},enterpriseTeams:{create:["POST /enterprises/{enterprise}/teams"],delete:["DELETE /enterprises/{enterprise}/teams/{team_slug}"],get:["GET /enterprises/{enterprise}/teams/{team_slug}"],list:["GET /enterprises/{enterprise}/teams"],update:["PATCH /enterprises/{enterprise}/teams/{team_slug}"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addBlockedByDependency:["POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],getParent:["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listDependenciesBlockedBy:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],listDependenciesBlocking:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeDependencyBlockedBy:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createArtifactStorageRecord:["POST /orgs/{org}/artifacts/metadata/storage-record"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createWebhook:["POST /orgs/{org}/hooks"],customPropertiesForOrgsCreateOrUpdateOrganizationValues:["PATCH /organizations/{org}/org-properties/values"],customPropertiesForOrgsGetOrganizationValues:["GET /organizations/{org}/org-properties/values"],customPropertiesForReposCreateOrUpdateOrganizationDefinition:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposCreateOrUpdateOrganizationDefinitions:["PATCH /orgs/{org}/properties/schema"],customPropertiesForReposCreateOrUpdateOrganizationValues:["PATCH /orgs/{org}/properties/values"],customPropertiesForReposDeleteOrganizationDefinition:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinition:["GET /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinitions:["GET /orgs/{org}/properties/schema"],customPropertiesForReposGetOrganizationValues:["GET /orgs/{org}/properties/values"],delete:["DELETE /orgs/{org}"],deleteAttestationsBulk:["POST /orgs/{org}/attestations/delete-request"],deleteAttestationsById:["DELETE /orgs/{org}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /orgs/{org}/attestations/digest/{subject_digest}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],disableSelectedRepositoryImmutableReleasesOrganization:["DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],enableSelectedRepositoryImmutableReleasesOrganization:["PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],get:["GET /orgs/{org}"],getImmutableReleasesSettings:["GET /orgs/{org}/settings/immutable-releases"],getImmutableReleasesSettingsRepositories:["GET /orgs/{org}/settings/immutable-releases/repositories"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listArtifactStorageRecords:["GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"],listAttestationRepositories:["GET /orgs/{org}/attestations/repositories"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listAttestationsBulk:["POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setImmutableReleasesSettings:["PUT /orgs/{org}/settings/immutable-releases"],setImmutableReleasesSettingsRepositories:["PUT /orgs/{org}/settings/immutable-releases/repositories"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},projects:{addItemForOrg:["POST /orgs/{org}/projectsV2/{project_number}/items"],addItemForUser:["POST /users/{username}/projectsV2/{project_number}/items"],deleteItemForOrg:["DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],deleteItemForUser:["DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"],getFieldForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"],getFieldForUser:["GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"],getForOrg:["GET /orgs/{org}/projectsV2/{project_number}"],getForUser:["GET /users/{username}/projectsV2/{project_number}"],getOrgItem:["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],getUserItem:["GET /users/{username}/projectsV2/{project_number}/items/{item_id}"],listFieldsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields"],listFieldsForUser:["GET /users/{username}/projectsV2/{project_number}/fields"],listForOrg:["GET /orgs/{org}/projectsV2"],listForUser:["GET /users/{username}/projectsV2"],listItemsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/items"],listItemsForUser:["GET /users/{username}/projectsV2/{project_number}/items"],updateItemForOrg:["PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],updateItemForUser:["PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkImmutableReleases:["GET /repos/{owner}/{repo}/immutable-releases"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],customPropertiesForReposCreateOrUpdateRepositoryValues:["PATCH /repos/{owner}/{repo}/properties/values"],customPropertiesForReposGetRepositoryValues:["GET /repos/{owner}/{repo}/properties/values"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disableImmutableReleases:["DELETE /repos/{owner}/{repo}/immutable-releases"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enableImmutableReleases:["PUT /repos/{owner}/{repo}/immutable-releases"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],listOrgPatternConfigs:["GET /orgs/{org}/secret-scanning/pattern-configurations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],updateOrgPatternConfigs:["PATCH /orgs/{org}/secret-scanning/pattern-configurations"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteAttestationsBulk:["POST /users/{username}/attestations/delete-request"],deleteAttestationsById:["DELETE /users/{username}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /users/{username}/attestations/digest/{subject_digest}"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listAttestationsBulk:["POST /users/{username}/attestations/bulk-list{?per_page,before,after}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Cy=_O});function Uu(e){let t={};for(let r of Rr.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},EO);return t}function RO(e,t,r,n,s){let o=e.request.defaults(n);function i(...a){let c=o.endpoint.merge(...a);if(s.mapToData)return c=Object.assign({},c,{data:c[s.mapToData],[s.mapToData]:void 0}),o(c);if(s.renamed){let[u,l]=s.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${u}.${l}()`)}if(s.deprecated&&e.log.warn(s.deprecated),s.renamedParameters){let u=o.endpoint.merge(...a);for(let[l,d]of Object.entries(s.renamedParameters))l in u&&(e.log.warn(`"${l}" parameter is deprecated for "octokit.${t}.${r}()". Use "${d}" instead`),d in u||(u[d]=u[l]),delete u[l]);return o(u)}return o(...a)}return Object.assign(i,o)}var Rr,EO,Ay=h(()=>{Oy();Rr=new Map;for(let[e,t]of Object.entries(Cy))for(let[r,n]of Object.entries(t)){let[s,o,i]=n,[a,c]=s.split(/ /),u=Object.assign({method:a,url:c},o);Rr.has(e)||Rr.set(e,new Map),Rr.get(e).set(r,{scope:e,methodName:r,endpointDefaults:u,decorations:i})}EO={has({scope:e},t){return Rr.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Rr.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let s=Rr.get(t).get(n);if(!s)return;let{endpointDefaults:o,decorations:i}=s;return i?r[n]=RO(e,t,n,o,i):r[n]=e.request.defaults(o),r[n]}}});function kO(e){return{rest:Uu(e)}}function Hu(e){let t=Uu(e);return{...t,rest:t}}var Py=h(()=>{xy();Ay();kO.VERSION=ju;Hu.VERSION=ju});var Iy,Ly=h(()=>{Iy="22.0.1"});var Gy,Dy=h(()=>{_y();ky();vy();Py();Ly();Gy=ui.plugin(Fu,Hu,Bu).defaults({userAgent:`octokit-rest.js/${Iy}`})});function $y(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function qu(e){let t=e.etags??$y(),r=new SO({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{request:{fetch:e.fetchImpl}}:{},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),n=async s=>{let o=t.get(s.cacheKey),i={...s.parameters??{}},a=ms(i.headers)?i.headers:{};i.headers={...a,...o?{"if-none-match":o.etag}:{}};try{let c=await r.request(s.route,i),u=c.headers,l=di(u,"etag");return l!==void 0&&t.set(s.cacheKey,{etag:l,data:c.data,headers:u}),await e.attribution?.record({operation:s.operation,cost:1,actor:s.actor}),{data:c.data,headers:u,quotaFree:!1}}catch(c){if(li(c)===304){if(o===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(s.cacheKey)} without a held answer to reuse`,{cause:c});let u=Ny(c),l={...o.headers,...u},d=di(l,"etag")??o.etag;return t.set(s.cacheKey,{etag:d,data:o.data,headers:l}),await e.attribution?.record({operation:s.operation,cost:0,actor:s.actor}),{data:o.data,headers:l,quotaFree:!0}}throw li(c)===401?new fs({cause:c}):c}};return{conditionalRest:n,async conditionalPaginate(s){let o=[],i={},a=0,c=!0,u=1;for(;;){let l=await n({...s,cacheKey:`${s.cacheKey}:page:${u}`,parameters:{...s.parameters??{},per_page:100,page:u}});if(a+=1,c=c&&l.quotaFree,!Array.isArray(l.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(s.cacheKey)} page ${u}`);if(o.push(...l.data),i=l.headers,!TO(l.headers))break;u+=1}return{data:o,headers:i,requestCount:a,quotaFree:c}},async graphql(s,o={},i){try{let a=await r.graphql(s,o);return i&&await e.attribution?.record({operation:i.operation,cost:1,actor:i.actor}),a}catch(a){throw li(a)===401?new fs({cause:a}):a}}}}function TO(e){let t=di(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Wu(e){let t=li(e),r=Ny(e);return t===429||t===403&&di(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function li(e){if(ms(e))return typeof e.status=="number"?e.status:void 0}function Ny(e){return!ms(e)||!ms(e.response)||!ms(e.response.headers)?{}:e.response.headers}function di(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function ms(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var SO,fs,Fy=h(()=>{Rh();vh();Dy();SO=Gy.plugin(Ru,si);fs=class extends Error{status=401;constructor(t){super("GitHub rejected the host credential; refresh the stored login with `gh auth login` or provide a current host token",t),this.name="GithubCredentialError"}}});var My=h(()=>{});var By=h(()=>{});var jy=h(()=>{});var Ju=h(()=>{bh();wh();Fy();My();By();jy()});import{execFile as AO}from"node:child_process";import{promisify as PO}from"node:util";var aq,Uy=h(()=>{"use strict";Ju();mu();aq=PO(AO)});var Hy=h(()=>{"use strict";Lg();Mg();Bg();Xo();Ug();Hg();qg();Wg();Qo();Jg();Vg();Kg();zg();ou();Yg();Qg();Zg();eh();th();ei();rh();nh();su();lu();du();oh();ih();ah();ch();Zo();uu();cu();lh();mu();dh();ph();mh();Uy()});import{EventEmitter as IO}from"node:events";import{spawn as LO}from"node:child_process";function mi(e,t){let r=Number(t);return!Number.isSafeInteger(r)||r<=0?!1:!!(e.pull_request?.number===r||e.check_run?.pull_requests?.some(n=>n.number===r)||e.check_suite?.pull_requests?.some(n=>n.number===r))}function fi(e,t){return e.workflow_run!=null&&String(e.workflow_run.id)===t}var gs,Vu,GO,DO,$O,NO,pi,Ku=h(()=>{gs="github-webhook",Vu="github.webhook.delivery";GO="pull_request,pull_request_review,check_run,check_suite,workflow_run",DO=3,$O=1e3,NO=/no extension matched|unknown command|command not found/i,pi=class extends IO{constructor(r,n){super();this.opts=r;this.terminate=n}child;_dead=!1;restarts=0;_mode="polling";stopping;get mode(){return this._mode}get dead(){return this._dead}start(){this._dead||this.opts.cancelSignal.aborted||(this.opts.cancelSignal.addEventListener("abort",()=>void this.stop(),{once:!0}),this.spawnChild())}async stop(){if(this.stopping)return await this.stopping;this._dead=!0,this.emit("stopped");let r=this.child;this.child=void 0,r&&(this.stopping=this.terminate(r,$O).then(()=>{}),await this.stopping)}makeWakeSignalFor(r,n){return()=>{if(this._mode!=="webhook"||this._dead)return;let s=new AbortController,o=c=>{(r==="pr"?mi(c,n):fi(c,n))&&(a(),s.abort())},i=()=>{a()},a=()=>{this.off("delivery",o),this.off("stopped",i)};return this.on("delivery",o),this.once("stopped",i),s.signal}}spawnChild(){if(this._dead)return;let r=this.opts.ghBin??"gh",n;try{n=LO(r,["webhook","forward",`--events=${GO}`],{cwd:this.opts.cwd,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"})}catch{return}this.child=n;let s="";n.stdout?.setEncoding("utf8"),n.stdout?.on("data",i=>{s+=i;let a;for(;(a=s.indexOf(`
|
|
87
|
+
`))>=0;){let c=s.slice(0,a).trim();s=s.slice(a+1),c&&this.onLine(c)}});let o=[];n.stderr?.on("data",i=>{o.push(Buffer.from(i))}),n.once("error",()=>{this.child===n&&(this.child=void 0),this.scheduleRestart()}),n.once("close",i=>{if(this.child===n&&(this.child=void 0),this._dead)return;let a=Buffer.concat(o).toString("utf8");NO.test(a)||this.restarts===0&&(i===1||i===127)||this.scheduleRestart()})}onLine(r){let n;try{n=JSON.parse(r)}catch{this.emit("malformed-delivery",r);return}this._mode!=="webhook"&&(this._mode="webhook",this.emit("mode-changed","webhook")),this.emit("delivery",n)}scheduleRestart(){if(this._dead||this.restarts>=DO)return;let r=Math.min(500*Math.pow(2,this.restarts),5e3);this.restarts++,setTimeout(()=>this.spawnChild(),r).unref()}}});var gi,qy=h(()=>{"use strict";Ku();Ku();Lt();gi=class extends pi{constructor(t){super(t,Zr)}}});import{EventEmitter as FO}from"node:events";import{join as MO}from"node:path";function Yu(e){let t=Go(e.cwd),r=sh(MO(t,".red"));return new zu({...e,leases:e.leases??uh(r),lane:e.lane??au(r),makeForwarder:e.makeForwarder??((n,s)=>new gi({cwd:n,cancelSignal:s})),isLeaseHolderLive:e.isLeaseHolderLive??(n=>en(n.pid,n.start_time))})}var zu,Wy=h(()=>{"use strict";Hy();qy();Lt();Hc();zu=class extends FO{constructor(r){super();this.options=r}_mode="polling";cursor=0;timer;fallback;stopped=!1;syncing=!1;get mode(){return this.fallback?.mode??this._mode}async start(){let r=await this.options.leases.read(gs).catch(()=>{});if(!r||!await this.options.isLeaseHolderLive(r)){this.startFallback();return}let n=await this.options.lane.read().catch(()=>{});if(!n){this.degradeToFallback();return}this.cursor=n.length,this._mode="webhook",this.emit("mode-changed","webhook"),this.timer=setInterval(()=>void this.sync().catch(()=>this.degradeToFallback()),this.options.pollIntervalMs??100),this.timer.unref(),this.options.cancelSignal.addEventListener("abort",()=>void this.stop(),{once:!0})}async stop(){this.stopped||(this.stopped=!0,this.timer&&clearInterval(this.timer),await this.fallback?.stop(),this.emit("stopped"))}makeWakeSignalFor(r,n){return()=>{if(this.fallback)return this.fallback.makeWakeSignalFor(r,n)();if(this._mode!=="webhook"||this.stopped)return;let s=new AbortController,o=a=>{(r==="pr"?mi(a,n):fi(a,n))&&(i(),s.abort())},i=()=>{this.off("delivery",o),this.off("stopped",i)};return this.on("delivery",o),this.once("stopped",i),s.signal}}startFallback(){this.fallback||this.stopped||(this.fallback=this.options.makeForwarder(this.options.cwd,this.options.cancelSignal),this.fallback.on("mode-changed",r=>{this.emit("mode-changed",r)}),this.fallback.on("delivery",r=>{this.emit("delivery",r)}),this.fallback.start())}degradeToFallback(){this.timer&&clearInterval(this.timer),this.timer=void 0,this._mode="polling",this.startFallback()}async sync(){if(!(this.syncing||this.stopped)){this.syncing=!0;try{let r=await this.options.lane.read();r.length<this.cursor&&(this.cursor=0);let n=r.slice(this.cursor);this.cursor=r.length;for(let o of n)o.singleton===gs&&o.kind===Vu&&o.payload&&this.emit("delivery",o.payload);let s=await this.options.leases.read(gs);(!s||!await this.options.isLeaseHolderLive(s))&&this.degradeToFallback()}finally{this.syncing=!1}}}}});var Qu={};K(Qu,{listWaits:()=>$o,renderWaitHelp:()=>us,runWait:()=>UO});import{randomUUID as Jy}from"node:crypto";import{mkdir as BO,rm as jO}from"node:fs/promises";async function UO(e,t=process.cwd()){let r;try{r=await Ff(e)}catch(n){return await VO(e,n)}if(r.kind==="help"||e.includes("--help")||e.includes("-h"))return process.stdout.write(us()),0;if(r.kind==="ls"){let n={schema:Af,version:1,waits:await $o(t)};return process.stdout.write(on(n,r.options.format)),0}return jc(r.kind)?await HO({...r,kind:r.kind},t):(process.stdout.write(us()),2)}async function HO(e,t){let r=e.kind,n=Vc({id:Jy(),kind:r,target:JO(e),reason:e.options.reason,pid:process.pid,pid_start_time:await es(process.pid),started_at:new Date().toISOString(),deadline_at:new Date(Date.now()+e.options.timeoutMs).toISOString(),timeout_ms:e.options.timeoutMs,poll_tier:Mc[r],status:"running",attempts:0}),s=Wf(t,n.id),o=new AbortController,i,a=l=>{i=l,o.abort()},c=()=>a("SIGINT"),u=()=>a("SIGTERM");process.once("SIGINT",c),process.once("SIGTERM",u);try{await BO(tn(t),{recursive:!0}),await rn(s,n);let l=await qO(e,t,s,n,o.signal);i&&(l={...l,verdict:ge(`wait interrupted by ${i}`,l.verdict.details)});let d=await zf({kind:r,entry:n,verdict:l.verdict,options:e.options,cwd:t,cleanupProven:l.cleanupProven,survivors:l.survivors});return process.stdout.write(on(d.result,e.options.format)),d.exitCode}catch(l){let d=ge(l instanceof Error?l.message:String(l)),p=is(r,n,d,{status:"success"},new Date().toISOString());return await as(e.options.resultFile,p,e.options.format).catch(()=>{}),process.stdout.write(on(p,e.options.format)),2}finally{process.removeListener("SIGINT",c),process.removeListener("SIGTERM",u),await jO(s,{force:!0}).catch(()=>{})}}async function qO(e,t,r,n,s){let o={cwd:t,signal:s,timeoutMs:e.options.probeTimeoutMs};switch(e.kind){case"cmd":return await Rg({commandLine:e.commandLine??"",options:e.options,cwd:t,spoolDir:Uf(t),registryPath:r,entry:n,signal:s});case"pr":{let i=e.target??"";if(!/^[1-9][0-9]*$/.test(i))return{verdict:ge("missing PR number")};n.webhook_mode="polling";let a=Yu({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await zo({probe:Cg(i,o,{emptyChecksGraceMs:rs("RSP_WAIT_PR_EMPTY_CHECKS_GRACE_MS",3e4)}),timeoutMs:e.options.timeoutMs,baseSleepMs:rs("RSP_WAIT_PR_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("pr",i),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"run":{let i=await WO(e,o,r,n);if(!i.ok)return{verdict:ge(i.reason)};n.webhook_mode="polling";let a=Yu({cwd:t,cancelSignal:s});a.once("mode-changed",()=>{n.webhook_mode="webhook"}),await a.start();try{return await zo({probe:()=>Og(i.value,o),timeoutMs:e.options.timeoutMs,baseSleepMs:rs("RSP_WAIT_RUN_POLL_MS",15e3),makeWakeSignal:a.makeWakeSignalFor("run",i.value),registryPath:r,entry:n,signal:s})}finally{await a.stop()}}case"release":return await zo({probe:()=>Pg(e.tagGlob,new Date(n.started_at),o),timeoutMs:e.options.timeoutMs,baseSleepMs:rs("RSP_WAIT_RELEASE_POLL_MS",6e4),registryPath:r,entry:n,signal:s})}}async function WO(e,t,r,n){if(e.target)return{ok:!0,value:e.target};if(!(e.latest&&e.branch))return{ok:!1,reason:"missing run id"};let s=await Ag(e.branch,t);return s?(e.target=s,n.target=`run:${s}`,await rn(r,n),{ok:!0,value:s}):{ok:!1,reason:`no run found for branch ${e.branch}`}}function JO(e){return e.kind==="cmd"?`cmd:${e.commandLine??""}`:e.kind==="run"&&e.branch&&e.latest?`run:${e.branch}:latest`:e.kind==="release"?`release:${e.tagGlob??"*"}`:`${e.kind}:${e.target??""}`}async function VO(e,t){let r=e.includes("--json")?"json":"toon",n=e.indexOf("--result-file"),s=n>=0?e[n+1]:void 0,o=jc(e[1])?e[1]:"cmd",i=new Date().toISOString(),a=Vc({id:Jy(),kind:o,target:`${o}:`,reason:"",pid:process.pid,started_at:i,deadline_at:i,timeout_ms:0,poll_tier:Mc[o],status:"indeterminate",attempts:0}),c=is(o,a,ge(t instanceof Error?t.message:String(t)),{status:"success"},i);return await as(s,c,r).catch(()=>{}),process.stdout.write(on(c,r)),2}var Xu=h(()=>{"use strict";Mf();Qf();Sg();wr();qc();Ig();Lt();os();nu();Wy();os();nu()});var Zu,el,tl,Oe,Ae,je,pt,hs,hi=h(()=>{"use strict";Zu="rsp-telemetry.spool.toonl",el="rsp-telemetry.spool.jsonl",tl="rsp-telemetry.spool.corrections.toonl",Oe="rsp_accounting_events_v1",Ae="rsp_decisions_v1",je="rsp_telemetry_invocations_v1",pt="rsp_telemetry_degradations_v1",hs="rsp_telemetry_index_v1"});function pn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ue(e){return zt(e)??0}function zt(e){return typeof e=="number"&&Number.isFinite(e)?e:null}var rl=h(()=>{"use strict"});import{randomUUID as sl,createHash as XO}from"node:crypto";import{appendFileSync as Zy,existsSync as ZO,mkdirSync as eb}from"node:fs";import{mkdir as tb,readdir as e0,readFile as rb,rename as t0,rm as nb,writeFile as ol}from"node:fs/promises";import{basename as nl,dirname as ys,join as mn,resolve as zy}from"node:path";function bi(e){if(!e)return null;let t=zy(e);for(;;){if(ZO(mn(t,".red")))return t;let r=zy(mn(t,".."));if(r===t)break;t=r}return null}function $t(e){return mn(X(e),Zu)}function wi(e){return mn(X(e),el)}function al(e){return mn(X(e),tl)}async function kr(e,t){Yt(e,t)}function Yt(e,t){try{let r=bi(e);if(!r)return;let n=$t(r);eb(ys(n),{recursive:!0}),Zy(n,a0({spool_id:sl(),event:n0(t)}),{encoding:"utf8",mode:384})}catch{}}function n0(e){return Yy(Yy(e,"raw_text","raw_bytes"),"emitted_text","emitted_bytes")}function Yy(e,t,r){let n=e[t];if(typeof n!="string")return e;let s=Buffer.byteLength(n,"utf8");if(s<=r0)return e;let o={...e};return delete o[t],Ue(o[r])===0&&(o[r]=s),o.estimated=!0,o}async function s0(e){let t=bi(e);if(!t)return[];let r=$t(t);await tb(ys(r),{recursive:!0}).catch(()=>{});let n=await ib(t),s=[...await ab(t),...await u0(n)];return await Promise.all(n.map(o=>nb(o,{force:!0}))),s.map(o=>JSON.stringify(o.event))}async function cl(e,t){let r=bi(e);if(!r)return;let n=$t(r);await tb(ys(n),{recursive:!0}).catch(()=>{}),await c0(r);for(let s of await o0(r))await Qy(r,s,t);for(let s of await ab(r))await sb(r,s,t,!0);for(let s of await ib(r))await Qy(r,s,t)}async function o0(e){let t=[$t(e),wi(e)],r=ys(t[0]);return(await e0(r).catch(()=>[])).filter(s=>t.some(o=>s.startsWith(`${nl(o)}.`)&&s.endsWith(".drain"))).filter(s=>{let o=t.find(c=>s.startsWith(`${nl(c)}.`));if(!o)return!1;let i=`${nl(o)}.`,a=Number(s.slice(i.length).split(".")[0]);return!(Number.isInteger(a)&&a!==process.pid&&i0(a))}).sort().map(s=>mn(r,s))}function i0(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}async function Qy(e,t,r){try{let n=await ob(t);for(let s of cb(n))await sb(e,s,r,!1)}finally{await nb(t,{force:!0})}}async function sb(e,t,r,n){let s=t.event?JSON.stringify(t.event):t.raw_line??"";try{if(await r(s)){n&&Xy(e,{correction_id:sl(),target_spool_id:t.spool_id,action:"resolved",created_at:new Date().toISOString()});return}}catch{}Xy(e,{correction_id:sl(),target_spool_id:t.spool_id,action:"retry",created_at:new Date().toISOString(),event_json:t.event?JSON.stringify(t.event):void 0})}async function ob(e){let t="";for(let r=0;r<5;r++){let n=await rb(e,"utf8").catch(()=>"");if(n===t)return n;t=n,await new Promise(s=>setTimeout(s,2))}return t}function fn(e){try{let t=JSON.parse(e);return!pn(t)||t.collection!==Oe&&t.collection!==Ae&&t.collection!==je&&t.collection!==pt?null:t}catch{return null}}function a0(e){return St().push(p0(e))}function Xy(e,t){try{let r=bi(e);if(!r)return;let n=al(r);eb(ys(n),{recursive:!0});let s=St();Zy(n,s.push({correction_id:t.correction_id,target_spool_id:t.target_spool_id,action:t.action,created_at:t.created_at,event_json:t.event_json??null}),{encoding:"utf8",mode:384})}catch{}}async function ib(e){let t=[$t(e),wi(e)],r=[];for(let n of t){let s=`${n}.${process.pid}.${Date.now()}.drain`;try{await t0(n,s),await ol(n,"",{flag:"wx"}).catch(()=>{}),r.push(s)}catch(o){if(o.code!=="ENOENT")continue}}return r}async function c0(e){await Promise.all([ol($t(e),"",{flag:"a"}),ol(wi(e),"",{flag:"a"})]).catch(()=>{})}async function u0(e){let t=[];for(let r of e)t.push(...cb(await ob(r)));return t}async function ab(e){let t=await rb(al(e),"utf8").catch(()=>""),r=new Map;for(let n of l0(t))r.set(n.target_spool_id,n);return[...r.values()].filter(n=>n.action==="retry"&&n.event_json).map(n=>({spool_id:n.target_spool_id,event:fn(n.event_json)??void 0})).filter(n=>n.event!==void 0)}function cb(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s){try{let o=JSON.parse(s);if(pn(o)){let i=fn(JSON.stringify(o));t.push(i?{spool_id:yi(JSON.stringify(o)),event:i}:{spool_id:yi(s),raw_line:s})}continue}catch{}if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r){t.push({spool_id:yi(s),raw_line:s});continue}try{for(let o of kt(`${r}
|
|
88
|
+
${s}
|
|
89
|
+
`))il(o)&&m0(o)&&t.push({spool_id:o.spool_id,event:ub(o)})}catch{s.startsWith("{")&&t.push({spool_id:yi(s),raw_line:s})}}}return t}function l0(e){return d0(e).map(f0).filter(t=>t!==null)}function d0(e){let t=[],r="";for(let n of e.split(/\r?\n/)){let s=n.trim();if(s)try{let o=JSON.parse(s);il(o)&&t.push(o)}catch{if(/^\[(?:\d*)\]\{[^}]+\}:$/.test(s)){r=s;continue}if(!r)continue;try{for(let o of kt(`${r}
|
|
90
|
+
${s}
|
|
91
|
+
`))il(o)&&t.push(o)}catch{}}}return t}function yi(e){return`legacy:${XO("sha256").update(e).digest("hex").slice(0,24)}`}function p0(e){let t={spool_id:e.spool_id};for(let[r,n]of Object.entries(e.event??{}))r!=="spool_id"&&(typeof n=="string"||typeof n=="number"||typeof n=="boolean"||n===null?t[r]=n:n!==void 0&&(t[r]=JSON.stringify(n)));return t}function ub(e){let{spool_id:t,...r}=e;return fn(JSON.stringify(r))}function m0(e){return typeof e.spool_id=="string"&&ub(e)!==null}function f0(e){return typeof e.correction_id=="string"&&typeof e.target_spool_id=="string"&&(e.action==="retry"||e.action==="resolved")&&typeof e.created_at=="string"&&(e.event_json===null||typeof e.event_json=="string")?{correction_id:e.correction_id,target_spool_id:e.target_spool_id,action:e.action,created_at:e.created_at,event_json:e.event_json??void 0}:null}function il(e){return pn(e)?Object.values(e).every(t=>typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===null):!1}var r0,lb=h(()=>{"use strict";Le();J();hi();rl();r0=64*1024});function _i(e){return e.trim().split(/\s+/).filter(Boolean)}function bs(e){return e.split(/&&|[;|]/).map(t=>t.trim()).filter(Boolean)}function ws(e){return e.split(/[ \t]+/).filter(Boolean).map(t=>t.replace(/^env$/,""))}function He(e){let t=_i(e);return t.length===0?"unknown":t[0]==="git"&&t[1]?`git ${t[1]}`:Sr(t)&&t[1]&&t[2]?`gh ${t[1]} ${t[2]} json-jq`:Sr(t)&&t[1]?`gh ${t[1]} json-jq`:Sr(t)?"gh json-jq":t[0]==="gh"&&t[1]&&t[2]?`gh ${t[1]} ${t[2]}`:t[0]==="gh"&&t[1]?`gh ${t[1]}`:t[0]==="cargo"&&t[1]?`cargo ${t[1]}`:t[0]==="vitest"?"vitest":t[0]}function Sr(e){return e[0]==="gh"&&e.some(g0)}function g0(e){return e==="--json"||e==="--jq"||e.startsWith("--json=")||e.startsWith("--jq=")}function gn(e){return/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(e)}var _s=h(()=>{"use strict"});var ue,Ei=h(()=>{"use strict";Be();ue="rsp_elisions_v1"});import{spawnSync as ks}from"node:child_process";import{createHash as dl}from"node:crypto";import{existsSync as h0}from"node:fs";import{mkdir as y0,readFile as b0,readdir as db,rename as w0,writeFile as _0}from"node:fs/promises";import{homedir as E0}from"node:os";import{basename as R0,dirname as k0,join as Es}from"node:path";import{fileURLToPath as S0}from"node:url";import{gunzipSync as T0,gzipSync as v0}from"node:zlib";function Ss(e,t){return`el:${dl("sha256").update("rsp-elision-v1\0").update(e).update("\0").update(JSON.stringify({command:t.command,loss:t.loss})).digest("hex").slice(0,12)}`}function Qt(e){return`record:${e.slice(3)}`}function vr(e){return`expired:${e.slice(3)}`}function Si(){return"index:v1"}function x0(e){return`blob:${e}`}function pb(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid RedDB identifier: ${e}`);return e}function Nt(e){let t=_i(e),r=t[0]??"";if(r==="cat")return"derivable";if(r==="git"){let n=t[1]??"";return n==="log"||n==="diff"||n==="blame"||n==="show"?"derivable":Ti(t)?"re-executable":"ephemeral"}return"ephemeral"}function Ts(e){return Oi(e.storage_class)?e.storage_class:Nt(e.command)}function mb(e){return Oi(e.storage_class)?e.storage_class:Nt(e.command)}function pl(e){let t=A0(),r={derivable:new Set,"re-executable":new Set,ephemeral:new Set};for(let n of e){let s=mb(n);if(t[s].records+=1,t[s].raw_bytes+=n.raw_bytes??n.bytes,n.blob_key){if(r[s].has(n.blob_key))continue;r[s].add(n.blob_key)}t[s].bytes+=n.bytes}return t}function ml(e,t,r){let n=t.getTime();return[...e].sort((s,o)=>o.created_at.localeCompare(s.created_at)).slice(0,Math.max(0,r)).map(s=>{let o=Math.max(0,Math.floor((n-Date.parse(s.created_at))/1e3));return{handle:s.handle,command:s.command,created_at:s.created_at,expires_at:s.expires_at,age_seconds:o,age_display:C0(o),storage_class:mb(s),recover:`rsp show ${s.handle}`}})}function C0(e){if(e<60)return`${e}s`;let t=Math.floor(e/60);if(t<60)return`${t}m`;let r=Math.floor(t/60);return r<24?`${r}h`:`${Math.floor(r/24)}d`}function fl(e,t,r,n){let s=t==="ephemeral"?n*60*60*1e3:r*24*60*60*1e3;return new Date(e.getTime()+s).toISOString()}function xr(e){let t=0,r=new Set;for(let n of e){if(n.blob_key){if(r.has(n.blob_key))continue;r.add(n.blob_key)}t+=n.bytes}return t}function gl(e,t){let r=process.cwd(),n=ks("git",["rev-parse","--is-inside-work-tree"],{cwd:r,encoding:"utf8"});if(n.status!==0||n.stdout.trim()!=="true")return null;let s=ks("git",["hash-object","-w","--stdin"],{cwd:r,input:e,encoding:"buffer"});if(s.status!==0)return null;let o=s.stdout.toString("utf8").trim();return/^[0-9a-f]{40,64}$/.test(o)?{kind:"git-blob",command:t,cwd:r,object_ids:[o],working_tree_fingerprint:O0(r),original_bytes:e.length}:null}function O0(e){let t=ul(e,["rev-parse","HEAD"])||"unborn",r=ul(e,["write-tree"])||"no-index",n=ul(e,["status","--porcelain=v1","-z"])||"";return dl("sha256").update(t).update("\0").update(r).update("\0").update(n).digest("hex")}function ul(e,t){let r=ks("git",t,{cwd:e,encoding:"utf8"});return r.status===0?r.stdout.trim():null}function hl(e,t){let r=_i(t);if(!Ti(r))return null;let n=yb(process.cwd(),r,e.length);return!n||Tr(n)!==Tr(e)?null:{kind:"command",command:t,cwd:process.cwd(),argv:r,original_bytes:e.length,content_hash:Tr(e)}}function Ti(e){return e[0]==="git"?e[1]==="status"?!0:e[1]!=="branch"?!1:e.length===2||e.slice(2).every(t=>/^-[avvr]+$/.test(t)):!1}function Tr(e){return dl("sha256").update("rsp-reexecutable-content-v1\0").update(e).digest("hex")}function yl(e,t,r,n){return t?Buffer.byteLength(JSON.stringify(t),"utf8"):r?Buffer.byteLength(JSON.stringify(r),"utf8"):n?n.stored_bytes:e.length}function bl(e){return typeof e.stored_bytes=="number"?e.stored_bytes:e.derivation_recipe?Buffer.byteLength(JSON.stringify(e.derivation_recipe),"utf8"):e.reexecution_recipe?Buffer.byteLength(JSON.stringify(e.reexecution_recipe),"utf8"):e.blob_key?typeof e.stored_bytes=="number"?e.stored_bytes:0:e.original_bytes}function wl(e,t,r){let n=v0(e);return{key:x0(t),content_hash:t,encoding:"gzip+base64",bytes:n.toString("base64"),original_bytes:e.length,stored_bytes:n.length,created_at:r}}function fb(e){try{let t=T0(Buffer.from(e.bytes,"base64"));return t.length===e.original_bytes?t:null}catch{return null}}function gb(e){let t=e.object_ids[0];if(!t)return null;let r=ks("git",["cat-file","-p",t],{cwd:e.cwd,encoding:"buffer",maxBuffer:Math.max(e.original_bytes+1024,1024*1024)});return r.status!==0||r.stdout.length!==e.original_bytes?null:r.stdout}function hb(e){if(!Ti(e.argv))return null;let t=yb(e.cwd,e.argv,e.original_bytes);return t?Tr(t)===e.content_hash?t:Buffer.concat([Buffer.from(`reconstructed after state moved - current snapshot follows
|
|
92
|
+
`,"utf8"),t]):null}function yb(e,t,r){let n=t[0];if(!n)return null;let s=ks(n,t.slice(1),{cwd:e,encoding:"buffer",maxBuffer:Math.max(r+1024,1024*1024)});return s.status!==0||s.signal?null:s.stdout}function A0(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}function vs(e){return/^el:[a-f0-9]{12}$/.test(e)}function ki(e){return/^blob:[a-f0-9]{64}$/.test(e)}function bb(e){if(!Rs(e))throw new Error("memory recall payload must be an object");let t=e.query;if(typeof t!="string"||t.trim()==="")throw new Error("memory recall query is required");let r=typeof e.limit=="number"&&Number.isFinite(e.limit)?e.limit:10;return{query:t,limit:r,options:{includeSuperseded:e.includeSuperseded===!0,scope:Rs(e.scope)?e.scope:void 0,ranking:Rs(e.ranking)?e.ranking:void 0}}}function wb(e){if(!Rs(e))throw new Error("memory ingest payload must be an object");let t=e.cwd;if(typeof t!="string"||t.trim()==="")throw new Error("memory ingest cwd is required");let r=typeof e.maxFiles=="number"&&Number.isFinite(e.maxFiles)?e.maxFiles:void 0,n=Array.isArray(e.ignore)?e.ignore.filter(s=>typeof s=="string"):void 0;return{cwd:t,maxFiles:r,ignore:n}}function Rs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function _b(e,t,r){let n=[],s=new Set([".git","node_modules",".red",...r]);async function o(i){if(n.length>=t)return;let a=await db(i,{withFileTypes:!0}).catch(()=>[]);for(let c of a){if(n.length>=t)return;if(s.has(c.name))continue;let u=Es(i,c.name);c.isDirectory()?await o(u):c.isFile()&&/\.(md|mdx|txt|ts|tsx|js|jsx|json|yaml|yml|toml|rs|go|py|sql)$/i.test(c.name)&&n.push(u)}}return await o(e),n}function Eb(e,t){let r=Number(e.red_entity_id??e.rid);if(!Number.isFinite(r))return null;let n=e.properties??e.PROPERTIES,s=Rs(n)?n:{},o=String(e.label??e.LABEL??s.title??`memory-${r}`),i=String(e.node_type??e.NODE_TYPE??"concept"),a=String(s.content??s.summary??s.title??o),c=`${o} ${a}`.toLowerCase(),u=t.filter(l=>c.includes(l));return u.length===0&&t.length>0?null:{id:String(r),rid:r,label:o,node_type:i,score:u.length||1,excerpt:a.slice(0,500)}}function vi(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function xs(e){if(!qe(e))return!1;let t=typeof e.original=="string"&&e.original_encoding==="base64",r=I0(e.derivation_recipe),n=L0(e.reexecution_recipe),s=e.blob_key,o=typeof s=="string"&&ki(s);return e.collection===ue&&typeof e.handle=="string"&&vs(e.handle)&&(t||r||n||o)&&typeof e.original_bytes=="number"&&(e.content_hash===void 0||El(e.content_hash))&&(e.stored_bytes===void 0||typeof e.stored_bytes=="number")&&(s===void 0||typeof s=="string"&&ki(s))&&typeof e.command=="string"&&typeof e.created_at=="string"&&typeof e.expires_at=="string"&&P0(e.loss)&&(e.storage_class===void 0||Oi(e.storage_class))}function _l(e){return!qe(e)||e.version!==1||!Array.isArray(e.records)?!1:e.records.every(t=>{if(!qe(t))return!1;let r=t.blob_key;return typeof t.handle=="string"&&vs(t.handle)&&typeof t.key=="string"&&typeof t.bytes=="number"&&(t.raw_bytes===void 0||typeof t.raw_bytes=="number")&&typeof t.command=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&(t.storage_class===void 0||Oi(t.storage_class))&&(r===void 0||typeof r=="string"&&ki(r))})}function xi(e){return qe(e)&&typeof e.key=="string"&&ki(e.key)&&El(e.content_hash)&&e.encoding==="gzip+base64"&&typeof e.bytes=="string"&&typeof e.original_bytes=="number"&&typeof e.stored_bytes=="number"&&typeof e.created_at=="string"}function Ci(e){return qe(e)&&e.status==="expired"&&typeof e.expired_at=="string"&&typeof e.command=="string"}function P0(e){return qe(e)&&typeof e.level=="string"&&typeof e.bytes_elided=="number"}function Oi(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"}function I0(e){return qe(e)&&e.kind==="git-blob"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.object_ids)&&e.object_ids.every(t=>typeof t=="string"&&/^[0-9a-f]{40,64}$/.test(t))&&typeof e.working_tree_fingerprint=="string"&&typeof e.original_bytes=="number"}function L0(e){return qe(e)&&e.kind==="command"&&typeof e.command=="string"&&typeof e.cwd=="string"&&Array.isArray(e.argv)&&e.argv.every(t=>typeof t=="string")&&Ti(e.argv)&&typeof e.original_bytes=="number"&&El(e.content_hash)}function El(e){return typeof e=="string"&&/^[0-9a-f]{64}$/.test(e)}function qe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Rb(e){try{let n=(await b0(e,"utf8")).trim();if(n==="")return Ri();let s;try{s=JSON.parse(n)}catch{s=H(n)}if(G0(s))return{...s,blobs:s.blobs??{}}}catch(r){if(r.code==="ENOENT"){let s=Ri();return await hn(e,s),s}let n=Ri();return await hn(e,n),n}let t=Ri();return await hn(e,t),t}async function kb(e){try{return e}catch(t){if(t.code==="ENOENT")return e;throw t}}function Sb(e){return R0(e)==="red-skills.rdb"}async function Ai(){if(process.env.REDDB_BIN)return;let e=process.env.RED_SKILLS_CACHE_DIR??(process.env.XDG_CACHE_HOME?Es(process.env.XDG_CACHE_HOME,"red-skills","bundles"):Es(E0(),".cache","red-skills","bundles")),t=Es(e,"reddb"),r;try{r=await db(t)}catch{return}r.sort().reverse();for(let n of r){let s=Es(t,n,process.platform==="win32"?"red.exe":"red");if(h0(s)){process.env.REDDB_BIN=s;return}}}async function hn(e,t){await y0(k0(e),{recursive:!0});let r=`${e}.${process.pid}.tmp`;await _0(r,`${$(ll(t))}
|
|
93
|
+
`,"utf8"),await w0(r,e)}function ll(e){if(e==null)return null;if(typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)?e:null;if(Array.isArray(e))return e.map(t=>ll(t));if(typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))n!==void 0&&(t[r]=ll(n));return t}return String(e)}function Ri(){return{version:1,records:{},blobs:{},tombstones:{},index:{version:1,records:[]}}}function G0(e){return qe(e)&&e.version===1&&qe(e.records)&&Object.values(e.records).every(xs)&&(e.blobs===void 0||qe(e.blobs)&&Object.values(e.blobs).every(xi))&&qe(e.tombstones)&&Object.values(e.tombstones).every(Ci)&&_l(e.index)}function Tb(e){if(!e.startsWith("file://"))throw new Error("rsp elision store requires a file:// URI");return S0(e)}var Pi=h(()=>{"use strict";J();_s();Ei()});async function vb(e,t){return D0?F0(e,t):$0?B0(e,t):N0(e,t)}async function N0(e,t){let{spawn:r}=await import("node:child_process"),n=r(e,t,{stdio:["pipe","pipe","inherit"]});return{runtime:"node",stdin:{write(s){return new Promise((o,i)=>{n.stdin.write(s,a=>a?i(a):o())})},end(){n.stdin.end()}},stdout:n.stdout,kill(){n.kill("SIGTERM")},wait(){return new Promise(s=>{n.on("exit",o=>s(o??0))})}}}function F0(e,t){let r=globalThis.Bun.spawn({cmd:[e,...t],stdin:"pipe",stdout:"pipe",stderr:"inherit"}),n=r.stdin.getWriter?r.stdin.getWriter():null;return{runtime:"bun",stdin:{async write(s){n?await n.write(s):(r.stdin.write(s),await r.stdin.flush())},end(){n?n.close():r.stdin.end()}},stdout:M0(r.stdout),kill(){r.kill()},wait(){return r.exited}}}async function*M0(e){let t=e.getReader();try{for(;;){let{value:r,done:n}=await t.read();if(n)return;yield r}}finally{t.releaseLock()}}async function B0(e,t){let n=new globalThis.Deno.Command(e,{args:t,stdin:"piped",stdout:"piped",stderr:"inherit"}).spawn(),s=n.stdin.getWriter();return{runtime:"deno",stdin:{async write(o){await s.write(o)},end(){try{s.close()}catch{}}},stdout:j0(n.stdout),kill(){try{n.kill("SIGTERM")}catch{}},async wait(){return(await n.status).code??0}}}async function*j0(e){let t=e.getReader();try{for(;;){let{value:r,done:n}=await t.read();if(n)return;yield r}}finally{t.releaseLock()}}var D0,$0,xb=h(()=>{D0=typeof globalThis.Bun<"u"&&typeof globalThis.Bun.spawn=="function",$0=typeof globalThis.Deno<"u"&&typeof globalThis.Deno.Command=="function"});import{existsSync as U0}from"node:fs";import{join as H0}from"node:path";function Cb(e){if(!e||typeof e!="object")throw new TypeError("resolveBin: options object required");let{name:t,packageRoot:r,envVar:n}=e;if(typeof t!="string"||t==="")throw new TypeError("resolveBin: `name` must be a non-empty string");if(typeof r!="string"||r==="")throw new TypeError("resolveBin: `packageRoot` must be a non-empty string");if(typeof n!="string"||n==="")throw new TypeError("resolveBin: `envVar` must be a non-empty string");let s=process.env?.[n];if(typeof s=="string"&&s!=="")return s;let o=H0(r,"bin",t);if(U0(o))return o;throw new Error(`reddb: binary "${t}" not found.
|
|
94
|
+
expected at: ${o}
|
|
95
|
+
override: set ${n}=/path/to/${t}
|
|
96
|
+
fix: re-run \`pnpm install\` (the postinstall script downloads it),
|
|
97
|
+
or check the postinstall log for a download error.`)}var Ob=h(()=>{});import{fileURLToPath as q0}from"node:url";import{dirname as W0,resolve as J0,join as bJ}from"node:path";function z0(){return typeof process<"u"&&process.platform==="win32"?"red.exe":"red"}function Ab(){let e=process.env?.REDDB_BINARY_PATH;return typeof e=="string"&&e!==""&&!process.env?.REDDB_BIN?e:Cb({name:z0(),packageRoot:K0,envVar:"REDDB_BIN"})}var V0,K0,Pb=h(()=>{Ob();V0=W0(q0(import.meta.url)),K0=J0(V0,"..")});var Y0,Q0,D,Ii,Xt=h(()=>{Y0=new TextEncoder,Q0=new TextDecoder("utf-8"),D=class extends Error{constructor(t,r,n){super(r),this.name="RedDBError",this.code=t,this.data=n??null}},Ii=class{constructor(t){this.child=t,this.nextId=1,this.pending=new Map,this.closed=!1,this.closeReason=null,this.readerPromise=this.#t()}call(t,r={}){if(this.closed)return Promise.reject(new D("CLIENT_CLOSED",`client is closed: ${this.closeReason??"unknown"}`));let n=this.nextId++,s=JSON.stringify({jsonrpc:"2.0",id:n,method:t,params:r});return new Promise((o,i)=>{this.pending.set(n,{resolve:o,reject:i}),this.child.stdin.write(Y0.encode(s+`
|
|
98
|
+
`)).catch(a=>{this.pending.delete(n),i(a)})})}async close(){if(!this.closed){try{await this.call("close",{})}catch{}this.#e("close requested");try{this.child.stdin.end()}catch{}await this.child.wait()}}async#t(){let t=new Uint8Array(0);try{for await(let r of this.child.stdout){let n=new Uint8Array(t.length+r.length);n.set(t,0),n.set(r,t.length),t=n;let s=0;for(let o=0;o<t.length;o++)if(t[o]===10){let i=t.subarray(s,o);this.#r(Q0.decode(i)),s=o+1}s>0&&(t=t.subarray(s))}}catch(r){this.#e(`stdout reader error: ${r.message}`);return}this.#e("server stdout closed")}#r(t){if(!t.trim())return;let r;try{r=JSON.parse(t)}catch(o){this.#e(`malformed server response: ${o.message}`);return}let n=r.id;if(n==null)return;let s=this.pending.get(n);s&&(this.pending.delete(n),r.error?s.reject(new D(r.error.code??"UNKNOWN",r.error.message??"unknown error",r.error.data)):s.resolve(r.result))}#e(t){if(this.closed)return;this.closed=!0,this.closeReason=t;let r=new D("CLIENT_CLOSED",t);for(let{reject:n}of this.pending.values())n(r);this.pending.clear()}}});function kl(e){if(typeof e!="string"||e.length===0)throw new TypeError("connect() requires a URI string (e.g. 'red://localhost:5050' or 'red:///data.rdb')");return e.startsWith("red://")||e==="red:"||e==="red:/"?X0(e):Z0(e)}function X0(e){let t=e;e==="red:"||e==="red:/"||e==="red://"?t="red://embedded.local":e.startsWith("red:///")?t=`red://embedded.local${e.slice(6)}`:(e==="red://memory"||e==="red://memory/"||e==="red://:memory"||e==="red://:memory:")&&(t="red://embedded.local");let r;try{r=new URL(t)}catch(l){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${l.message}`)}let n=r.searchParams,s=(n.get("proto")||"").toLowerCase(),o=r.pathname&&r.pathname!=="/"?r.pathname:"";if(r.hostname==="embedded.local")return o?{kind:"embedded",path:o,params:n,originalUri:e}:{kind:"embedded",params:n,originalUri:e};let i=eA(s),a=r.port?Number(r.port):Rl(i),c=r.username?decodeURIComponent(r.username):void 0,u=r.password?decodeURIComponent(r.password):void 0;return{kind:i,host:r.hostname,port:a,path:o||void 0,username:c,password:u,token:n.get("token")??void 0,apiKey:n.get("apiKey")??n.get("api_key")??void 0,loginUrl:n.get("loginUrl")??n.get("login_url")??void 0,params:n,originalUri:e}}function Z0(e){if(e==="memory://"||e==="memory:")return{kind:"embedded",originalUri:e};if(e.startsWith("file://")){let t=e.slice(7);if(!t)throw new TypeError(`invalid file:// URI: missing path in '${e}'`);return{kind:"embedded",path:t,originalUri:e}}if(e.startsWith("grpc://")||e.startsWith("grpcs://")||e.startsWith("reds://")){let t=e.split("://",1)[0],r;try{r=new URL("https://"+e.slice(`${t}://`.length))}catch(o){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${o.message}`)}if(!r.hostname)throw new TypeError(`invalid ${t}:// URI: missing host in '${e}'`);let n=t==="reds"?"reds":t==="grpcs"?"grpcs":"grpc",s=r.searchParams;return{kind:n,host:r.hostname,port:r.port?Number(r.port):Rl(n),username:r.username?decodeURIComponent(r.username):void 0,password:r.password?decodeURIComponent(r.password):void 0,token:s.get("token")??void 0,apiKey:s.get("apiKey")??s.get("api_key")??void 0,loginUrl:s.get("loginUrl")??s.get("login_url")??void 0,params:s,originalUri:e}}if(e.startsWith("http://")||e.startsWith("https://")){let t;try{t=new URL(e)}catch(r){throw new D("UNPARSEABLE_URI",`failed to parse '${e}': ${r.message}`)}return{kind:t.protocol==="https:"?"https":"http",host:t.hostname,port:t.port?Number(t.port):Rl(t.protocol==="https:"?"https":"http"),path:t.pathname!=="/"?t.pathname:void 0,username:t.username?decodeURIComponent(t.username):void 0,password:t.password?decodeURIComponent(t.password):void 0,token:t.searchParams.get("token")??void 0,apiKey:t.searchParams.get("apiKey")??void 0,params:t.searchParams,originalUri:e}}throw new D("UNSUPPORTED_SCHEME",`unsupported URI: '${e}'. Use 'red://...' or one of memory://, file://, grpc://, http(s)://`)}function eA(e){switch(e){case"":case"red":return"red";case"reds":return"reds";case"grpc":return"grpc";case"grpcs":return"grpcs";case"http":return"http";case"https":return"https";case"pg":case"postgres":case"postgresql":return"pg";default:throw new D("UNSUPPORTED_PROTO",`unknown proto='${e}'. Supported: red | reds | grpc | grpcs | http | https | pg`)}}function Rl(e){switch(e){case"http":return 5e3;case"https":return 55555;case"red":case"reds":case"redwire":return 5050;case"grpc":return 55055;case"grpcs":return 55555;case"pg":case"postgres":case"postgresql":return 5432;default:return}}var Sl=h(()=>{Xt()});function rA(e){if(typeof e=="string"){let t=new TextEncoder().encode(e);return Ib(t)}if(e instanceof Uint8Array||typeof Buffer<"u"&&Buffer.isBuffer(e))return Ib(e);throw new TypeError("cache value must be a string, Uint8Array, or Buffer")}function Ib(e){if(typeof Buffer<"u")return Buffer.from(e).toString("base64");let t="";for(let r of e)t+=String.fromCharCode(r);return btoa(t)}function nA(e){if(typeof Buffer<"u")return new Uint8Array(Buffer.from(e,"base64"));let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}var tA,Cs,Tl=h(()=>{Xt();tA=new Set(["embedded"]),Cs=class{constructor(t,r){this._client=t,this._transport=r??null}_guard(t){if(this._transport&&tA.has(this._transport))throw new D("UNSUPPORTED_TRANSPORT",`cache.${t} is not available on '${this._transport}' transport; use @reddb-io/client for remote cache endpoints.`)}async get(t,r){this._guard("get");let n=await this._client.call("cache.get",{namespace:t,key:r});return n==null||n.value==null?null:nA(n.value)}async put(t,r,n,s={}){this._guard("put");let o=rA(n);await this._client.call("cache.put",{namespace:t,key:r,value:o,...s})}async exists(t,r){return this._guard("exists"),(await this._client.call("cache.exists",{namespace:t,key:r}))?.status??"maybe"}async invalidate(t,r){this._guard("invalidate"),await this._client.call("cache.invalidate",{namespace:t,key:r})}async invalidatePrefix(t,r){return this._guard("invalidatePrefix"),(await this._client.call("cache.invalidate_prefix",{namespace:t,prefix:r}))?.removed??0}async invalidateTags(t,r){return this._guard("invalidateTags"),(await this._client.call("cache.invalidate_tags",{namespace:t,tags:r}))?.removed??0}async flushNamespace(t){this._guard("flushNamespace"),await this._client.call("cache.flush_namespace",{namespace:t})}}});function vl(e,t){return`${xl(e)}.${sA(t)}`}function xl(e){let t=String(e),r=t.match(/[^A-Za-z0-9_]/);if(r)throw new D("INVALID_KV_KEY",`invalid KV key "${t}": character "${r[0]}" is not supported`);return t}function sA(e){let t=String(e);return/^[A-Za-z0-9_]+$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function oA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="object"?`'${JSON.stringify(e).replace(/'/g,"''")}'`:`'${String(e).replace(/'/g,"''")}'`}function Lb(e){return`'${String(e).replace(/'/g,"''")}'`}var yn,Cl=h(()=>{Xt();yn=class{constructor(t,r="kv_default"){this.client=t,this.collection=r}put(t,r,n={}){let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Lb).join(", ")}]`:"",i=n.expireMs!=null?` EXPIRE ${Number(n.expireMs)} ms`:"";return this.client.call("query",{sql:`KV PUT ${vl(s,t)} = ${oA(r)}${i}${o}`})}set(t,r,n={}){return this.put(t,r,n)}async get(t,r={}){let n=r.collection??this.collection;return(await this.client.call("query",{sql:`KV GET ${vl(n,t)}`}))?.rows?.[0]?.value??null}async getMany(t,r={}){let n=[];for(let s of t)n.push(await this.get(s,r));return n}async exists(t,r={}){return{exists:await this.get(t,r)!==null}}async delete(t,r={}){let n=r.collection??this.collection,s=await this.client.call("query",{sql:`KV DELETE ${vl(n,t)}`}),o=s.affected??s.affected_rows??0;return{affected:o,deleted:o>0}}async list(t={}){let r=t.collection??this.collection,n=t.limit==null?100:Number(t.limit);if(!Number.isInteger(n)||n<=0)throw new D("INVALID_ARGUMENT","kv.list limit must be a positive integer");let s=t.prefix==null?"":String(t.prefix),i=(await this.client.call("query",{sql:`SELECT key, value FROM ${xl(r)} ORDER BY key ASC LIMIT ${n}`})).rows??[];return{items:s.length>0?i.filter(c=>String(c.key).startsWith(s)):i}}async invalidateTags(t,r={}){let n=r.collection??this.collection,s=await this.client.call("query",{sql:`INVALIDATE TAGS [${t.map(Lb).join(", ")}] FROM ${xl(n)}`});return s.affected??s.affected_rows??s.rows?.[0]?.invalidated??0}async*watch(t,r={}){if(!this.client.baseUrl)throw new D("UNSUPPORTED_TRANSPORT","kv.watch requires the HTTP transport");let n=r.collection??this.collection,s=new URLSearchParams;r.sinceLsn!=null&&s.set("since_lsn",String(r.sinceLsn)),r.limit!=null&&s.set("limit",String(r.limit));let o=s.toString()?`?${s}`:"",i=`${this.client.baseUrl}/collections/${encodeURIComponent(n)}/kv/${encodeURIComponent(String(t))}/watch${o}`,a=await fetch(i,this.client.attachAuth({method:"GET"}));if(!a.ok)throw new D("HTTP_ERROR",`kv.watch failed with HTTP ${a.status}`);let c=await a.text();for(let u of c.split(`
|
|
99
|
+
|
|
100
|
+
`)){let l=u.split(`
|
|
101
|
+
`).find(d=>d.startsWith("data: "));l&&(yield JSON.parse(l.slice(6)))}}watchPrefix(t,r={}){return this.watch(`${t}.*`,r)}}});function iA(e,t,r){let{waitMs:n,group:s=null,count:o=null}=r??{};if(!Number.isInteger(n)||n<0)throw new D("INVALID_QUEUE_WAIT","queue readWait requires an explicit non-negative integer waitMs (no infinite wait)");let i=Ft(e),a=Ft(t),c=s!=null?` GROUP ${Ft(s)}`:"",u=o!=null?Al(o):"";return`QUEUE READ ${i}${c} CONSUMER ${a}${u} WAIT ${n}ms`}function Ft(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_QUEUE_NAME",`invalid queue name "${t}": expected an SQL identifier`);return t}function Al(e){if(e==null)return"";if(!Number.isInteger(e)||e<0)throw new D("INVALID_QUEUE_COUNT","queue count must be a non-negative integer");return` COUNT ${e}`}function aA(e){if(!Number.isInteger(e))throw new D("INVALID_QUEUE_PRIORITY","queue priority must be an integer");return String(e)}function cA(e){if(e.key!=null&&(e.delay!=null||e.at!=null))throw new D("INVALID_ARGUMENT","QUEUE PUSH KEY cannot be combined with DELAY / AVAILABLE AT");let t="";return e.priority!=null&&(t+=` PRIORITY ${aA(e.priority)}`),e.key!=null&&(t+=` KEY ${Pl(e.key)}`),e.dedup!=null&&(t+=` DEDUP ${Pl(e.dedup)}`),e.delay!=null&&(t+=` DELAY ${e.delay}`),e.at!=null&&(t+=` AVAILABLE AT ${e.at}`),t}function uA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":typeof e=="string"?Pl(e):JSON.stringify(e)}function Pl(e){return`'${String(e).replace(/'/g,"''")}'`}function Ol(e){return Array.isArray(e?.rows)?e.rows.map(t=>t.payload):[]}var Os,Il=h(()=>{Xt();Os=class{constructor(t){this.client=t}create(t){return this.client.call("query",{sql:`CREATE QUEUE IF NOT EXISTS ${Ft(t)}`})}push(t,r,n={}){let s=cA(n);return this.client.call("query",{sql:`QUEUE PUSH ${Ft(t)} ${uA(r)}${s}`})}async pop(t,r){let n=await this.client.call("query",{sql:`QUEUE POP ${Ft(t)}${Al(r)}`});return Ol(n)}async peek(t,r){let n=await this.client.call("query",{sql:`QUEUE PEEK ${Ft(t)}${Al(r)}`});return Ol(n)}async len(t){let r=await this.client.call("query",{sql:`QUEUE LEN ${Ft(t)}`});return Number(r?.rows?.[0]?.len??0)}purge(t){return this.client.call("query",{sql:`QUEUE PURGE ${Ft(t)}`})}async readWait(t,r,n={}){let s=iA(t,r,n),o=await this.client.call("query",{sql:s});return Ol(o)}}});function Gb(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new D("INVALID_ARGUMENT",`${t} must be an object`)}function lA(e){if(e==null)return 100;if(!Number.isInteger(e)||e<=0)throw new D("INVALID_ARGUMENT","limit must be a positive integer");return e}function Li(e){return String(e).split(".").map(Db).join(".")}function Db(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_ARGUMENT",`invalid SQL identifier "${t}"`);return t}function dA(e){return $b(JSON.stringify(e))}function pA(e){return JSON.stringify(e)}function mA(e){return e==null?"NULL":typeof e=="number"||typeof e=="boolean"?String(e):typeof e=="object"?dA(e):$b(e)}function $b(e){return`'${String(e).replace(/'/g,"''")}'`}var As,Ll=h(()=>{Xt();As=class{constructor(t){this.db=t}async insert(t,r){Gb(r,"documents.insert document"),await this.ensureCollection(t);let n=await this.db.query(`INSERT INTO ${Li(t)} DOCUMENT VALUES (${pA(r)}) RETURNING *`),s=n.rows?.[0];if(!s||s.rid==null)throw new D("INVALID_RESPONSE","documents.insert expected one returned item with rid");return{affected:n.affected??1,rid:s.rid,item:s}}async get(t,r){let n=await this.db.get(t,r);if(!n.entity)throw new D("NOT_FOUND",`document ${String(r)} was not found`);return n.entity}async list(t,r={}){let n=lA(r.limit),s=r.orderBy??r.order_by??"rid ASC",o=r.filter?` WHERE ${String(r.filter)}`:"";return{items:(await this.db.query(`SELECT * FROM ${Li(t)}${o} ORDER BY ${s} LIMIT ${n}`)).rows??[]}}async patch(t,r,n){Gb(n,"documents.patch patch");let s=Object.entries(n);if(s.length===0)throw new D("INVALID_ARGUMENT","documents.patch patch must be a non-empty object");for(let[c]of s)if(c.includes("/"))throw new D("INVALID_ARGUMENT","documents.patch currently accepts top-level document fields");let o=s.map(([c,u])=>`${Db(c)} = ${mA(u)}`).join(", "),a=(await this.db.query(`UPDATE ${Li(t)} SET ${o} WHERE rid = $1 RETURNING *`,r)).rows?.[0];if(!a)throw new D("NOT_FOUND",`document ${String(r)} was not found`);return a}async delete(t,r){let s=(await this.db.delete(t,r)).affected??0;return{affected:s,deleted:s>0}}async ensureCollection(t){try{await this.db.query(`CREATE DOCUMENT ${Li(t)}`)}catch(r){if(!String(r?.message??"").includes("already exists"))throw r}}}});function fA(e,t){if(t.secretRef){let{collection:r,key:n}=t.secretRef;return`SECRET_REF(vault, ${Zt(r)}.${Zt(n)})`}return hA(e)}function gA(e,t){for(let r of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[r]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function Zt(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function hA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):Nb(e)}function Nb(e){return`'${String(e).replace(/'/g,"''")}'`}var Ps,Gl=h(()=>{Ps=class{constructor(t,r="red.config"){this.client=t,this.collection=r}put(t,r,n={}){gA(n,"config");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Nb).join(", ")}]`:"";return this.client.call("query",{sql:`PUT CONFIG ${Zt(s)} ${Zt(t)} = ${fA(r,n)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`GET CONFIG ${Zt(n)} ${Zt(t)}`})}resolve(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`RESOLVE CONFIG ${Zt(n)} ${Zt(t)}`})}}});function yA(e,t){for(let r of["ttl","ttlMs","ttl_ms","expireMs","expire_ms","expiresAt"])if(e[r]!=null)throw new TypeError(`${t} does not support TTL or expiration options`)}function bn(e){let t=String(e);if(!/^[A-Za-z0-9_.]+$/.test(t))throw new TypeError("keyed collection and key names must use letters, numbers, underscores, or dots");return t}function bA(e){return typeof e=="number"||typeof e=="boolean"?String(e):e==null?"NULL":Array.isArray(e)||typeof e=="object"?JSON.stringify(e):Fb(e)}function Fb(e){return`'${String(e).replace(/'/g,"''")}'`}var Is,Dl=h(()=>{Is=class{constructor(t,r="red.vault"){this.client=t,this.collection=r}put(t,r,n={}){yA(n,"vault");let s=n.collection??this.collection,o=Array.isArray(n.tags)&&n.tags.length>0?` TAGS [${n.tags.map(Fb).join(", ")}]`:"";return this.client.call("query",{sql:`VAULT PUT ${bn(s)}.${bn(t)} = ${bA(r)}${o}`})}get(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`VAULT GET ${bn(n)}.${bn(t)}`})}unseal(t,r={}){let n=r.collection??this.collection;return this.client.call("query",{sql:`UNSEAL VAULT ${bn(n)}.${bn(t)}`})}}});async function Bb(e){return((await e.query("SHOW COLLECTIONS")).rows??[]).map(wA)}async function jb(e,t){return((await e.query(`SHOW COLLECTIONS WHERE name = ${EA(t)}`)).rows??[]).some(n=>n.name===String(t))}function wA(e){return{...e,name:String(e.name),model:String(e.model),capabilities:Array.isArray(e.capabilities)?e.capabilities:[]}}function Mb(e){return String(e).split(".").map(_A).join(".")}function _A(e){let t=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t))throw new D("INVALID_IDENTIFIER",`invalid SQL identifier "${t}"`);return t}function EA(e){return`'${String(e).replace(/'/g,"''")}'`}var Ls,$l=h(()=>{Xt();Ls=class e{constructor(t,r,n=null,s=[],o=[]){this.db=t,this.collection=r,this.columns=n,this.whereClauses=s,this.params=o}select(...t){let r=t.length===1&&Array.isArray(t[0])?t[0]:t,n=r.length===1&&r[0]==="*"?null:r;return new e(this.db,this.collection,n!=null&&n.length>0?n:null,this.whereClauses,this.params)}where(t,...r){if(typeof t!="string"||t.trim().length===0)throw new D("INVALID_QUERY_BUILDER","where() requires a non-empty SQL condition");let n=r.length===1&&Array.isArray(r[0])?r[0]:r;return new e(this.db,this.collection,this.columns,[...this.whereClauses,t.trim()],[...this.params,...n])}async run(){let t=this.columns==null?"*":this.columns.map(Mb).join(", "),r=this.whereClauses.length>0?` WHERE ${this.whereClauses.map(i=>`(${i})`).join(" AND ")}`:"",n=`SELECT ${t} FROM ${Mb(this.collection)}${r}`,o=(this.params.length>0?await this.db.query(n,this.params):await this.db.query(n)).rows??[];return this.columns==null?o:o.map(i=>{let a={};for(let c of this.columns)a[c]=i[c];return a})}}});async function $i(e,t={}){let r=kl(e);if(PA(r),r.kind==="embedded"){let n=AA(r,t.auth);if(n.token||n.username)throw new D("AUTH_NOT_APPLICABLE","auth is only meaningful for remote connections; embedded modes inherit caller privileges.");let s=OA(r),o=t.binary??Ab(),i=await vb(o,s),a=new Ii(i);return await a.call("version",{}),new Fl(a,{transport:"embedded"})}}function Hb(e){return SA(e),e instanceof Float32Array||e instanceof Float64Array?Array.from(e):e instanceof Date?{$ts:String(BigInt(e.getTime())*1000000n)}:e instanceof Uint8Array||typeof Buffer<"u"&&e instanceof Buffer?{$bytes:vA(e)}:typeof e=="number"&&!Number.isFinite(e)?Number.isNaN(e)?{$float:"NaN"}:{$float:e>0?"Infinity":"-Infinity"}:typeof e=="string"&&CA(e)?{$uuid:e}:e}function SA(e){if(e!=null&&!(typeof e=="boolean"||typeof e=="number"||typeof e=="string")){if(e instanceof Date){if(Number.isNaN(e.getTime()))throw new D("UNSUPPORTED_PARAM","cannot encode invalid Date query parameter");return}if(!(e instanceof Uint8Array||e instanceof Float32Array||e instanceof Float64Array||typeof Buffer<"u"&&e instanceof Buffer)){if(Array.isArray(e)){if(e.every(t=>typeof t=="number"))return;throw new D("UNSUPPORTED_PARAM","array query parameters must contain only numbers")}if(!(typeof e=="object"&&Object.getPrototypeOf(e)===Object.prototype))throw new D("UNSUPPORTED_PARAM",`cannot encode query parameter of type ${typeof e}`)}}}function TA(e){return e.length===0?null:e.length===1&&Array.isArray(e[0])?e[0].map(Hb):e.map(Hb)}function vA(e){let t=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(typeof Buffer<"u")return Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("base64");let r="";for(let n of t)r+=String.fromCharCode(n);return btoa(r)}function xA(e){if(typeof Buffer<"u"){let n=Buffer.from(e,"base64");return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function CA(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}function Gi(e){if(Array.isArray(e))return e.map(Gi);if(e&&typeof e=="object"){if(Object.keys(e).length===1){if(typeof e.$bytes=="string")return xA(e.$bytes);if(typeof e.$uuid=="string")return e.$uuid;if(typeof e.$float=="string"){if(e.$float==="NaN")return Number.NaN;if(e.$float==="Infinity"||e.$float==="+Infinity")return 1/0;if(e.$float==="-Infinity")return-1/0}if(typeof e.$ts=="string"||typeof e.$ts=="number"){let n=typeof e.$ts=="string"?BigInt(e.$ts):BigInt(Math.trunc(e.$ts));return new Date(Number(n/1000000n))}}let r={};for(let[n,s]of Object.entries(e))r[n]=Gi(s);return r}return e}function OA(e){return e.path?["rpc","--stdio","--path",e.path]:["rpc","--stdio"]}function AA(e,t){let r={token:e.token??e.apiKey??null,username:e.username??null,password:e.password??null,loginUrl:e.loginUrl??null};if(t==null)return r;if(typeof t!="object")throw new TypeError("options.auth must be an object");if(t.token!=null){if(typeof t.token!="string"||t.token.length===0)throw new TypeError("options.auth.token must be a non-empty string");r.token=t.token}if(t.apiKey!=null){if(typeof t.apiKey!="string"||t.apiKey.length===0)throw new TypeError("options.auth.apiKey must be a non-empty string");r.token=t.apiKey}if(t.username!=null){if(typeof t.username!="string"||t.username.length===0)throw new TypeError("options.auth.username must be a non-empty string");r.username=t.username}if(t.password!=null){if(typeof t.password!="string"||t.password.length===0)throw new TypeError("options.auth.password must be a non-empty string");r.password=t.password}return t.loginUrl!=null&&(r.loginUrl=t.loginUrl),r}function PA(e){if(e.kind!=="embedded")throw new D("EMBEDDED_ONLY",RA)}function Ml(){return new D(Ub,`${Ub}: nested transactions are not supported on one connection`)}function Wb(e,t){if(e&&typeof e=="object")try{e.rollbackError=t}catch{}}function IA(e,t){if(!e||typeof e!="object"||e.rid==null&&e.id==null)throw new D("ENGINE_TOO_OLD",`${t}() requires RedDB engine >= ${qb} with insert id support`);return e.rid==null&&(e.rid=e.id),e.id==null&&(e.id=e.rid),e}function LA(e,t){if(!e||typeof e!="object"||!Array.isArray(e.rids)&&!Array.isArray(e.ids))throw new D("ENGINE_TOO_OLD",`bulkInsert() requires RedDB engine >= ${qb} with bulk insert id support`);if(Array.isArray(e.rids)||(e.rids=e.ids),Array.isArray(e.ids)||(e.ids=e.rids),e.rids.length!==t)throw new D("INVALID_RESPONSE",`bulkInsert() expected ${t} rids, got ${e.rids.length}`);return e}var RA,kA,qb,Ub,Di,Nl,Fl,Jb=h(()=>{xb();Pb();Xt();Sl();Tl();Cl();Il();Ll();Gl();Dl();$l();Tl();Cl();Il();Ll();Gl();Dl();$l();Sl();RA="remote URIs are not supported in @reddb-io/sdk; install @reddb-io/client for grpc/http/red transports",kA="1.0",qb="1.0.9",Ub="NESTED_TX_NOT_SUPPORTED";Di=class{constructor(t){this.db=t}query(t,...r){return this.db.query(t,...r)}execute(t,...r){return this.db.execute(t,...r)}insert(t,r){return this.db.insert(t,r)}bulkInsert(t,r){return this.db.bulkInsert(t,r)}async transaction(){throw Ml()}},Nl=class{constructor(t){this.db=t,this.active=!1}async begin(){if(this.db.inTransaction)throw Ml();this.db.inTransaction=!0,this.active=!0;try{return await this.db.query("BEGIN")}catch(t){throw this.db.inTransaction=!1,this.active=!1,t}}async commit(){if(!this.active)throw new D("INVALID_ARGUMENT","tx.commit() called without an open transaction");try{return await this.db.query("COMMIT")}finally{this.active=!1,this.db.inTransaction=!1}}async rollback(){if(!this.active)throw new D("INVALID_ARGUMENT","tx.rollback() called without an open transaction");try{return await this.db.query("ROLLBACK")}finally{this.active=!1,this.db.inTransaction=!1}}async run(t){if(typeof t!="function")throw new TypeError("tx.run(callback) requires a function");if(this.db.inTransaction)throw new D("INVALID_ARGUMENT","nested tx.run() is not supported; issue savepoints via tx.query() instead");await this.begin();try{let r=await t(new Di(this.db));return await this.commit(),r}catch(r){if(this.active)try{await this.rollback()}catch(n){Wb(r,n)}throw r}}},Fl=class{constructor(t,r={}){this.client=t,this.transport=r.transport??null,this.helperSpecVersion=kA,this.cache=new Cs(t,this.transport),this.queue=new Os(t),this.queues=this.queue,this.documents=new As(this);let n=new yn(t);this.kv=Object.assign((s="kv_default")=>new yn(t,s),{put:n.put.bind(n),invalidateTags:n.invalidateTags.bind(n),watch:n.watch.bind(n),watchPrefix:n.watchPrefix.bind(n)}),this.config=(s="red.config")=>new Ps(t,s),this.vault=(s="red.vault")=>new Is(t,s),this.inTransaction=!1}query(t,...r){if(typeof t!="string"||t.trim().length===0)return Promise.reject(new D("INVALID_ARGUMENT","query() requires a non-empty SQL string"));let n=TA(r);return n==null?this.client.call("query",{sql:t}).then(Gi):this.client.call("query",{sql:t,params:n}).then(Gi)}execute(t,...r){return this.query(t,...r)}async insert(t,r){let n=await this.client.call("insert",{collection:t,payload:r});return IA(n,"insert")}async bulkInsert(t,r){if(Array.isArray(r)&&r.length===0)return{affected:0,rids:[],ids:[]};let n=await this.client.call("bulk_insert",{collection:t,payloads:r});return LA(n,r.length)}tx(){return new Nl(this)}async transaction(t){if(this.inTransaction)throw Ml();if(typeof t!="function")throw new TypeError("transaction(callback) requires a function");this.inTransaction=!0;let r=!1;try{await this.query("BEGIN"),r=!0;let n=await t(new Di(this));return await this.query("COMMIT"),n}catch(n){if(r)try{await this.query("ROLLBACK")}catch(s){Wb(n,s)}throw n}finally{this.inTransaction=!1}}exists(t){return jb(this,t)}list(){return Bb(this)}from(t){return new Ls(this,t)}get(t,r){return this.client.call("get",{collection:t,id:String(r)})}delete(t,r){return this.client.call("delete",{collection:t,id:String(r)})}health(){return this.client.call("health",{})}version(){return this.client.call("version",{})}login(t,r){return this.client.call("auth.login",{username:t,password:r})}whoami(){return this.client.call("auth.whoami",{})}changePassword(t,r){return this.client.call("auth.change_password",{current_password:t,new_password:r})}createApiKey({username:t,role:r}={}){return this.client.call("auth.create_api_key",{username:t,role:r})}revokeApiKey(t){return this.client.call("auth.revoke_api_key",{key:t})}close(){return this.client.close()}}});import{createHash as GA}from"node:crypto";import{existsSync as Vb}from"node:fs";import{mkdir as DA,readFile as $A,rename as Bl,rm as Gs,stat as jl}from"node:fs/promises";import{basename as NA,dirname as FA}from"node:path";async function Kb(e){await(await Cr.open({...e,allowResidentOpen:!0})).close()}var Cr,zb=h(()=>{"use strict";Jb();Ei();Pi();Cr=class e{constructor(t,r){this.opts=r;this.path=t}document;db;path;dirty=!1;static async open(t){if(process.env.RSP_FAIL_IF_STORE_OPEN==="1"&&!t.allowResidentOpen)throw new Error("RSP_FAIL_IF_STORE_OPEN blocked store open");let r=Tb(t.uri),n=await kb(r),s=new e(n,{uri:t.uri,ttlDays:vi(t.ttlDays,Ye),ephemeralTtlHours:vi(t.ephemeralTtlHours,Qe),byteBudget:vi(t.byteBudget,Xe),now:t.now??(()=>new Date)});return Sb(n)?(await Ai(),await DA(FA(n),{recursive:!0}),s.db=await $i(`file://${n}`),await s.ensureRedDbCollections(),await s.ensureRedDbStore()):s.document=await Rb(s.path),s}async close(){await this.db?.close()}redDb(){return this.db}async mint(t,r){if(this.db)return await this.mintRedDb(t,r);let n=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=Ss(n,r),a=Qt(i),c=Nt(r.command),u=c==="derivable"?gl(n,r.command):null,l=c==="re-executable"?hl(n,r.command):null,d=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,p=fl(s,d,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Tr(n),f=d==="ephemeral"?wl(n,g,o):null,k=yl(n,u,l,f);f&&!this.document.blobs[f.key]&&(this.document.blobs[f.key]=f,this.dirty=!0);let E={collection:ue,handle:i,original_bytes:n.length,stored_bytes:k,command:r.command,created_at:o,expires_at:p,loss:r.loss,storage_class:d,content_hash:g,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};return delete this.document.tombstones[vr(i)],this.document.records[a]=E,this.upsertIndex({handle:i,key:a,bytes:k,raw_bytes:n.length,command:r.command,created_at:o,expires_at:p,storage_class:d,blob_key:f?.key}),this.prune(),await this.flush(),i}async get(t){if(this.db)return await this.getRedDb(t);if(!vs(t))return null;let r=this.tombstone(t);if(r)return r;let n=this.document.records[Qt(t)];if(!xs(n))return null;if(Date.parse(n.expires_at)<=this.opts.now().getTime()){let o={status:"expired",expired_at:n.expires_at,command:n.command};return this.expireEntry({handle:n.handle,key:Qt(n.handle),bytes:bl(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:Ts(n),blob_key:n.blob_key},n.expires_at),await this.flush(),o}let s=await this.readOriginal(n);return!s&&(n.derivation_recipe||n.reexecution_recipe)?{status:"expired",expired_at:n.expires_at,command:n.command}:s?{collection:ue,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:Ts(n)}:null}async stats(){if(this.db)return await this.statsRedDb();this.prune(),await this.flush();let r=this.readIndex().records;return{records:r.length,bytes:xr(r),oldest:r.reduce((n,s)=>n==null||s.created_at<n?s.created_at:n,null),budget:this.opts.byteBudget,storage_classes:pl(r)}}async recoveryHandles(t=5){return this.db?await this.recoveryHandlesRedDb(t):(this.prune(),await this.flush(),ml(this.readIndex().records,this.opts.now(),t))}readIndex(){return this.document.index}writeIndex(t){this.document.index=t}upsertIndex(t){let n=this.readIndex().records.filter(s=>s.handle!==t.handle);n.push(t),this.writeIndex({version:1,records:n}),this.dirty=!0}prune(){let t=this.opts.now().getTime(),r=new Date(t).toISOString(),n=this.readIndex(),s=[];for(let i of n.records)Date.parse(i.expires_at)<=t?this.expireEntry(i,i.expires_at):s.push(i);let o=xr(s);for(s.sort((i,a)=>i.created_at.localeCompare(a.created_at));o>this.opts.byteBudget&&s.length>0;){let i=s.shift();this.expireEntry(i,r),o=xr(s)}s.length<n.records.length&&this.writeIndex({version:1,records:s}),this.deleteUnreferencedLocalBlobs(s)}expireEntry(t,r){delete this.document.records[t.key],this.document.tombstones[vr(t.handle)]={status:"expired",expired_at:r,command:t.command},this.dirty=!0}tombstone(t){let r=this.document.tombstones[vr(t)];return Ci(r)?r:null}async readOriginal(t){if(t.original)return Buffer.from(t.original,"base64");if(t.derivation_recipe)return gb(t.derivation_recipe);if(t.reexecution_recipe)return hb(t.reexecution_recipe);if(t.blob_key){let r=this.db?await this.kvGet(t.blob_key):this.document.blobs[t.blob_key];return xi(r)?fb(r):null}return null}deleteUnreferencedLocalBlobs(t){let r=new Set(t.map(n=>n.blob_key).filter(n=>typeof n=="string"));for(let n of Object.keys(this.document.blobs))r.has(n)||(delete this.document.blobs[n],this.dirty=!0)}async flush(){this.dirty&&(await hn(this.path,this.document),this.dirty=!1),await this.rotateLocalGenerationIfOversized()}async rotateLocalGenerationIfOversized(){let t=await jl(this.path).then(a=>a.size,()=>0);if(t<=this.opts.byteBudget)return;let r=this.readIndex().records,n=new Set(r.map(a=>a.key)),s=new Set(r.map(a=>a.blob_key).filter(a=>typeof a=="string")),o={version:1,records:Object.fromEntries(Object.entries(this.document.records).filter(([a])=>n.has(a))),blobs:Object.fromEntries(Object.entries(this.document.blobs).filter(([a])=>s.has(a))),tombstones:{},index:{version:1,records:r}},i=Buffer.byteLength(`${JSON.stringify(o)}
|
|
102
|
+
`,"utf8");i>this.opts.byteBudget||i>=t||(this.document=o,await hn(this.path,this.document))}kv(){if(!this.db)throw new Error("rsp RedDB store is not open");return this.db.kv(ue)}async kvGet(t){let r=await this.kv().get(t);if(typeof r!="string")return r;try{return JSON.parse(r)}catch{return r}}async ensureRedDbStore(){let t=await this.readRedDbIndex();await this.writeRedDbIndex(t)}async ensureRedDbCollections(){if(!this.db)throw new Error("rsp RedDB store is not open");let t=(await this.db.list()).find(r=>r.name===ue);if(!t){await this.db.query(`CREATE KV IF NOT EXISTS ${ue}`);return}if(t.model!=="kv"){if(t.model!=="table")throw new Error(`cannot self-heal elision collection ${ue}: unsupported model ${t.model}`);await this.db.query(`DROP TABLE ${ue}`),await this.db.query(`CREATE KV IF NOT EXISTS ${ue}`)}}async mintRedDb(t,r){let n=Buffer.from(t),s=this.opts.now(),o=s.toISOString(),i=Ss(n,r),a=Qt(i),c=Nt(r.command),u=c==="derivable"?gl(n,r.command):null,l=c==="re-executable"?hl(n,r.command):null,d=c==="derivable"&&!u||c==="re-executable"&&!l?"ephemeral":c,p=fl(s,d,this.opts.ttlDays,this.opts.ephemeralTtlHours),g=Tr(n),f=d==="ephemeral"?wl(n,g,o):null,k=yl(n,u,l,f);f&&!xi(await this.kvGet(f.key))&&await this.kv().put(f.key,f);let E={collection:ue,handle:i,original_bytes:n.length,stored_bytes:k,command:r.command,created_at:o,expires_at:p,loss:r.loss,storage_class:d,content_hash:g,...u?{derivation_recipe:u}:l?{reexecution_recipe:l}:{blob_key:f?.key}};await this.kv().delete(vr(i)),await this.kv().put(a,E);let _=(await this.readRedDbIndex()).records.filter(T=>T.handle!==i);return _.push({handle:i,key:a,bytes:k,raw_bytes:n.length,command:r.command,created_at:o,expires_at:p,storage_class:d,blob_key:f?.key}),await this.pruneRedDb({version:1,records:_},!0),await this.assertRedDbMintPersisted(i,k),i}async getRedDb(t){if(!vs(t))return null;let r=await this.kvGet(vr(t));if(Ci(r))return r;let n=await this.kvGet(Qt(t));if(!xs(n))return null;if(Date.parse(n.expires_at)<=this.opts.now().getTime()){let o={status:"expired",expired_at:n.expires_at,command:n.command};return await this.expireRedDbEntry({handle:n.handle,key:Qt(n.handle),bytes:bl(n),raw_bytes:n.original_bytes,command:n.command,created_at:n.created_at,expires_at:n.expires_at,storage_class:Ts(n),blob_key:n.blob_key},n.expires_at),o}let s=await this.readOriginal(n);return!s&&(n.derivation_recipe||n.reexecution_recipe)?{status:"expired",expired_at:n.expires_at,command:n.command}:s?{collection:ue,handle:n.handle,original:s,command:n.command,created_at:n.created_at,loss:n.loss,storage_class:Ts(n)}:null}async statsRedDb(){let t=await this.pruneRedDb(await this.readRedDbIndex());return{records:t.records.length,bytes:xr(t.records),oldest:t.records.reduce((r,n)=>r==null||n.created_at<r?n.created_at:r,null),budget:this.opts.byteBudget,storage_classes:pl(t.records)}}async recoveryHandlesRedDb(t){let r=await this.pruneRedDb(await this.readRedDbIndex());return ml(r.records,this.opts.now(),t)}async memory(t,r){if(!this.db)throw new Error("resident memory operations require the shared RedDB store");if(await this.ensureMemoryGraphStore(),t==="recall"){let n=bb(r);return await this.memoryRecallRedDb(n.query,n.limit)}if(t==="ingest"){let n=wb(r);return await this.memoryIngestRedDb(n)}throw new Error(`unsupported memory action: ${t}`)}async ensureMemoryGraphStore(){if(!this.db)throw new Error("rsp RedDB store is not open");await this.db.execute("CREATE GRAPH IF NOT EXISTS memory_nodes"),await this.db.execute("CREATE GRAPH IF NOT EXISTS memory_edges")}async memoryIngestRedDb(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await _b(t.cwd,t.maxFiles??200,t.ignore??[]),n=0;for(let s of r){let i=(await $A(s,"utf8").catch(()=>"")).trim();if(!i)continue;let a=NA(s),c=GA("sha256").update("resident-memory-v1\0").update(s).update("\0").update(i).digest("hex");if(await this.db.kv("memory_kv").get(`resident-node-hash:${c}`)!=null)continue;let u=Date.now(),l={title:a,content:i,source:s,confidence:"EXTRACTED",hash:c,project:"default",scope:"project",importance:1,tier:"durable",provenance_tier:"oracle",created_at:u,updated_at:u,accessed_at:u,access_count:0,provenance:{source_kind:"system",writer:"rsp-resident",confidence:"EXTRACTED",evidence:[s],created_at:u,updated_at:u}},d=await this.db.query("INSERT INTO memory_nodes NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *",a,"concept",c,l),p=Number(d.rows[0]?.red_entity_id??d.rows[0]?.rid);Number.isFinite(p)&&await this.db.kv("memory_kv").put(`resident-node-hash:${c}`,p),n+=1}return{files:r.length,nodes:n,edges:0,docs:r.length,added:n,updated:0,skipped:r.length-n,stale:0,semantic:{enabled:!1,nodes:0,edges:0,token_cost:{input:0,output:0}},durationMs:0}}async memoryRecallRedDb(t,r){if(!this.db)throw new Error("rsp RedDB store is not open");let n=await this.db.query("SELECT * FROM memory_nodes"),s=t.toLowerCase().split(/\s+/).filter(Boolean),o=n.rows.map(i=>Eb(i,s)).filter(i=>i!=null).sort((i,a)=>a.score-i.score).slice(0,Math.max(1,Math.min(100,r)));return{hits:o,context_md:o.map(i=>`- memory_nodes:${i.rid} ${i.label}: ${i.excerpt}`).join(`
|
|
103
|
+
`),diagnostics:{vector:{status:"unavailable",candidates:0,contributed:0,reason:"resident-basic-recall"}}}}async readRedDbIndex(){let t=await this.kvGet(Si());return _l(t)?t:{version:1,records:[]}}async writeRedDbIndex(t){await this.kv().put(Si(),t)}async pruneRedDb(t,r=!1){let n=this.opts.now().getTime(),s=new Date(n).toISOString(),o=[];for(let c of t.records)Date.parse(c.expires_at)<=n?await this.expireRedDbEntry(c,c.expires_at):o.push(c);let i=xr(o);for(o.sort((c,u)=>c.created_at.localeCompare(u.created_at));i>this.opts.byteBudget&&o.length>0;){let c=o.shift();await this.expireRedDbEntry(c,s),i=xr(o)}let a={version:1,records:o};return(r||o.length<t.records.length)&&await this.writeRedDbIndex(a),await this.deleteUnreferencedRedDbBlobs(o),await this.rotateRedDbGenerationIfOversized(a),a}async rotateRedDbGenerationIfOversized(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await jl(this.path).then(u=>u.size,()=>0);if(r<=this.opts.byteBudget)return;let n=await this.snapshotRedDbKvCollections(t);if(!n)return;let s=`${process.pid}.${Date.now()}`,o=`${this.path}.${s}.compact`,i=`${this.path}.${s}.old`;await Gs(o,{force:!0}),await Gs(i,{force:!0});let a=await $i(`file://${o}`);try{for(let u of n){await a.query(`CREATE KV IF NOT EXISTS ${pb(u.name)}`);let l=a.kv(u.name);for(let d of u.items)await l.put(d.key,d.value)}}finally{await a.close()}let c=await jl(o).then(u=>u.size,()=>0);if(c===0||c>this.opts.byteBudget||c>=r){await Gs(o,{force:!0});return}await this.db.close(),this.db=void 0;try{await Bl(this.path,i),await Bl(o,this.path),await Gs(i,{force:!0})}catch(u){throw!Vb(this.path)&&Vb(i)&&await Bl(i,this.path),await Gs(o,{force:!0}),u}finally{this.db=await $i(`file://${this.path}`)}}async snapshotRedDbKvCollections(t){if(!this.db)throw new Error("rsp RedDB store is not open");let r=await this.db.list();if(r.some(o=>o.model!=="kv"))return null;let n=[],s=!1;for(let o of r){let i=String(o.name??"").trim();if(i===ue){n.push(await this.snapshotRedDbElisions(t)),s=!0;continue}let a=await this.db.kv(i).list({limit:1e4});if(a.items.length>=1e4)return null;n.push({name:i,items:a.items})}return s||n.push(await this.snapshotRedDbElisions(t)),n}async snapshotRedDbElisions(t){let r=[{key:Si(),value:t}],n=new Set;for(let s of t.records)n.add(s.key),s.blob_key&&n.add(s.blob_key);for(let s of n){let o=await this.kvGet(s);o!=null&&r.push({key:s,value:o})}return{name:ue,items:r}}async expireRedDbEntry(t,r){await this.kv().delete(t.key),await this.kv().put(vr(t.handle),{status:"expired",expired_at:r,command:t.command})}async deleteUnreferencedRedDbBlobs(t){let r=new Set(t.map(s=>s.blob_key).filter(s=>typeof s=="string")),n=await this.kv().list({limit:1e4}).catch(()=>({items:[]}));for(let s of n.items)s.key.startsWith("blob:")&&!r.has(s.key)&&await this.kv().delete(s.key)}async assertRedDbMintPersisted(t,r){let n=await this.kvGet(Qt(t));if(!xs(n))throw new Error(`rsp resident failed to persist elision record ${t}`);let o=(await this.readRedDbIndex()).records.find(i=>i.handle===t);if(!o||o.bytes!==r)throw new Error(`rsp resident failed to persist elision index ${t}`)}}});var Yb={};K(Yb,{DEFAULT_RSP_BYTE_BUDGET:()=>Xe,DEFAULT_RSP_EPHEMERAL_TTL_HOURS:()=>Qe,DEFAULT_RSP_TTL_DAYS:()=>Ye,RSP_ELISION_COLLECTION:()=>ue,RspElisionStore:()=>Cr,contentHandle:()=>Ss,ensureReddbBinaryFromWarmCache:()=>Ai,provisionElisionStore:()=>Kb,storageClassForCommand:()=>Nt});var Ni=h(()=>{"use strict";Ei();Pi();Pi();zb()});async function Fi(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:30,s=r.getTime()-n*24*60*60*1e3,o=await Zb(e,s),i=(await Ds(e,Ae)).filter(P=>_n(P)>=s),a=o.filter(P=>M(P.event_type)!=="show"&&M(P.degradation_reason)===""),c=o.filter(P=>M(P.event_type)==="show"),u=o.filter(P=>M(P.degradation_reason)!==""),l=0,d=0,p=0,g=0,f=!1,k=new Map,E=new Map,y=[],_=0,T=0,C=0;for(let P of a){P.elided===!0&&l++;let B=Ue(P.raw_bytes),Ne=Ue(P.emitted_bytes),wt=Math.max(0,B-Ne),Bt=En(P,"raw"),O=En(P,"emitted"),N=Math.max(0,Bt.tokens-O.tokens);f||=(P.estimated===!0||Bt.estimated||O.estimated)&&N>0,d+=B,p+=Ne,g+=N;let _t=Or(P).slice(0,10);_t&&k.set(_t,(k.get(_t)??0)+N);let rt=M(P.command)||"unknown",Te=E.get(rt)??{command:rt,invocations:0,bytes_saved:0,tokens_saved:0};Te.invocations++,Te.bytes_saved+=wt,Te.tokens_saved+=N,E.set(rt,Te);let ve=zt(P.wrapper_ms);ve!=null&&y.push(ve),_+=Ue(P.store_open_count);let Et=zt(P.store_elapsed_ms);Et!=null&&(T+=Et,C++)}let L=new Map,F=new Map,q=[],se=null;for(let P of u){let B=M(P.degradation_reason)||M(P.reason)||"unknown",Ne=M(P.wrapper_family)||He(M(P.command));L.set(B,(L.get(B)??0)+1),F.set(Ne,(F.get(Ne)??0)+1);let wt=Or(P);q.push({timestamp:wt,family:Ne,command:M(P.command)||"unknown",reason:B,exit_code:zt(P.wrapper_exit_code),stderr_head:M(P.stderr_head)||null}),(!se||wt>se.timestamp)&&(se={timestamp:wt,reason:B,command:M(P.command)||"unknown"})}let re=a.length+u.length,de=c.filter(P=>P.hit===!0).length,pe=Oc(g,f),Mt=MA(i);return{window_days:n,empty:o.length===0,savings:{invocations:a.length,elided:l,raw_bytes:d,emitted_bytes:p,bytes_saved:Math.max(0,d-p),tokens_saved:g,tokens_saved_estimated:pe.tokens_saved_estimated,token_estimate_range_pct:pe.token_estimate_range_pct,tokens_saved_low:pe.tokens_saved_low,tokens_saved_high:pe.tokens_saved_high,dollars_saved_estimate_usd:pe.dollars_saved_estimate_usd,dollars_saved_low_usd:pe.dollars_saved_low_usd,dollars_saved_high_usd:pe.dollars_saved_high_usd,pricing_model_family:pe.pricing_model_family,pricing_input_usd_per_million_tokens:pe.pricing_input_usd_per_million_tokens,pricing_note:pe.pricing_note,daily_tokens_saved:[...k.entries()].sort(([P],[B])=>P.localeCompare(B)).map(([P,B])=>({date:P,tokens_saved:B})),top_commands:[...E.values()].sort((P,B)=>B.bytes_saved-P.bytes_saved||B.tokens_saved-P.tokens_saved||P.command.localeCompare(B.command))},health:{degradations:u.length,degradation_rate:re===0?0:u.length/re,show_total:c.length,show_hits:de,show_misses:Math.max(0,c.length-de),show_hit_rate:c.length===0?0:be(de/c.length),by_reason:[...L.entries()].sort((P,B)=>B[1]-P[1]||P[0].localeCompare(B[0])).map(([P,B])=>({reason:P,count:B})),by_family:[...F.entries()].sort((P,B)=>B[1]-P[1]||P[0].localeCompare(B[0])).map(([P,B])=>({family:P,count:B})),recent_failures:q.sort((P,B)=>B.timestamp.localeCompare(P.timestamp)).slice(0,20),most_recent:se},latency:{wrapper_ms_p50:wn(y,.5),wrapper_ms_p95:wn(y,.95),store_open_count_sum:_,store_elapsed_ms_sum:be(T),store_elapsed_ms_avg:C===0?null:be(T/C)},decisions:Mt}}function MA(e){let t=0,r=0,n=0,s=0,o=new Map,i=new Map;for(let a of e){let c=M(a.decision);if(c==="contributed"?t++:c==="failed-open"?n++:r++,a.quota_free===!0&&(s+=Math.max(1,Ue(a.saved_units))),c!=="contributed"){let d=M(a.reason)||"unknown";o.set(d,(o.get(d)??0)+1)}let u=M(a.command_family)||"unknown",l=i.get(u)??{contributed:0,passed:0,failed_open:0};c==="contributed"?l.contributed++:c==="failed-open"?l.failed_open++:l.passed++,i.set(u,l)}return{seen:e.length,contributed:t,passed:r,failed_open:n,quota_free_saved_units:s,contribution_rate:e.length===0?0:be(t/e.length),top_pass_reasons:[...o.entries()].sort((a,c)=>c[1]-a[1]||a[0].localeCompare(c[0])).map(([a,c])=>({reason:a,count:c})),by_command_family:[...i.entries()].sort((a,c)=>{let u=a[1].contributed+a[1].passed+a[1].failed_open;return c[1].contributed+c[1].passed+c[1].failed_open-u||a[0].localeCompare(c[0])}).map(([a,c])=>{let u=c.contributed+c.passed+c.failed_open;return{command_family:a,contributed:c.contributed,passed:c.passed,failed_open:c.failed_open,contribution_rate:u===0?0:be(c.contributed/u)}})}}async function Ul(e,t,r=new Date){let s=(await Ds(e,Oe)).filter(o=>_n(o)<=r.getTime()||Or(o)==="");return{records:s.length,bytes:s.reduce((o,i)=>o+Buffer.byteLength(JSON.stringify(i),"utf8"),0),oldest:s.reduce((o,i)=>{let a=Or(i);return a&&(o==null||a<o)?a:o},null),budget:t,storage_classes:KA(s)}}async function Hl(e,t,r=new Date){let n=Number.isFinite(t)&&t>0?t:28,s=r.toISOString(),o=new Date(r.getTime()-n*24*60*60*1e3).toISOString(),i=Date.parse(o),a=await Zb(e,i),c=a.filter(O=>M(O.event_type)!=="show"&&M(O.event_type)!=="control_holdout"&&O.control_holdout!==!0&&M(O.degradation_reason)===""),u=a.filter(O=>M(O.event_type)==="control_holdout"||O.control_holdout===!0),l=a.filter(O=>M(O.event_type)==="show"),d=a.filter(O=>M(O.degradation_reason)!==""),p=[...c,...d].map(_n).filter(O=>Number.isFinite(O)&&O>0),g=p.length===0?null:Math.min(...p),f=g==null?0:Math.max(1,Math.min(n,Math.ceil((r.getTime()-g)/nP()))),k=[],E=new Map,y=new Map,_=new Map,T=new Map,C=new Map,L=new Map,F=0,q=!1,se=0,re=null,de=0,pe=0;for(let O of c){let N=Or(O),_t=N.slice(0,10),rt=N.slice(0,16),Te=He(M(O.command)),ve=Math.max(0,En(O,"raw").tokens-En(O,"emitted").tokens);F+=ve,q||=O.estimated===!0&&ve>0;let Et=Math.max(0,Ue(O.raw_bytes)-Ue(O.emitted_bytes)),Fr=zt(O.wrapper_ms);if(Fr!=null){k.push(Fr);let In=E.get(Te)??[];In.push(Fr),E.set(Te,In)}_t&&y.set(_t,(y.get(_t)??0)+1),rt&&_.set(rt,(_.get(rt)??0)+1);let jt=XA(N);jt&&T.set(jt,(T.get(jt)??0)+1);let Pn=tP(N);Pn&&C.set(Pn,(C.get(Pn)??0)+ve);let ur=L.get(Te)??{command_family:Te,invocations:0,tokens_saved:0,bytes_saved:0};ur.invocations++,ur.tokens_saved+=ve,ur.bytes_saved+=Et,L.set(Te,ur),O.elided===!0&&se++,(O.store_open_count!=null||O.store_elapsed_ms!=null)&&(de++,Ue(O.store_open_count)>0&&pe++),ve>0&&(!re||ve>re.tokens_saved||ve===re.tokens_saved&&Et>re.bytes_saved)&&(re={timestamp:N,command_family:Te,tokens_saved:ve,bytes_saved:Et})}let Mt=d.map(O=>({timestamp:Or(O),command_family:He(M(O.command)),reason:M(O.degradation_reason)||M(O.reason)||"unknown"})).sort((O,N)=>O.timestamp.localeCompare(N.timestamp)),P=new Map;for(let O of Mt)P.set(O.reason,(P.get(O.reason)??0)+1);let B=HA(Mt),Ne=UA(l),wt=WA([...L.values()],Ne,B),Bt=[..._.entries()].sort((O,N)=>N[1]-O[1]||O[0].localeCompare(N[0]))[0];return{schema_version:"red.rsp.gains.v1",window:{requested_days:n,data_days:f,since:o,until:s,label:`window: ${n}d, data: ${f}d`,empty:c.length===0&&d.length===0,invocations:c.length,degradations:d.length},latency:{global:Xb(k),by_command_family:[...E.entries()].sort((O,N)=>N[1].length-O[1].length||O[0].localeCompare(N[0])).map(([O,N])=>({command_family:O,count:N.length,...Xb(N)}))},throughput:{requests_per_day:[...y.entries()].sort(([O],[N])=>O.localeCompare(N)).map(([O,N])=>({date:O,requests:N})),active_minute_avg:_.size===0?null:be([..._.values()].reduce((O,N)=>O+N,0)/_.size),peak_minute:Bt?{minute:Bt[0],requests:Bt[1]}:null,hour_weekday_heatmap:ZA(T)},savings:{tokens:Oc(F,q),measured_control_holdout:BA(c,u),weekly_tokens_saved:rP(C),elision_rate:c.length===0?0:be(se/c.length),top_commands_by_tokens_saved:[...L.values()].sort((O,N)=>N.tokens_saved-O.tokens_saved||N.bytes_saved-O.bytes_saved||O.command_family.localeCompare(N.command_family)).slice(0,10),top_commands_by_invocation_count:[...L.values()].sort((O,N)=>N.invocations-O.invocations||N.tokens_saved-O.tokens_saved||O.command_family.localeCompare(N.command_family)).slice(0,10),single_biggest_elision:re},health:{degradation_timeline:Mt,degradations_by_reason:[...P.entries()].sort((O,N)=>N[1]-O[1]||O[0].localeCompare(N[0])).map(([O,N])=>({reason:O,count:N})),cold_boots:de===0?null:pe,warm_hits:de===0?null:Math.max(0,de-pe)},mining:{recovery_usage_by_family:Ne,degradation_clusters:B,threshold_tuning_suggestions:wt}}}async function Zb(e,t){let r=(await Ds(e,Oe)).filter(i=>_n(i)>=t),n=r.some(i=>M(i.event_type)!=="show"||M(i.degradation_reason)!==""),s=(await Ds(e,je)).filter(i=>_n(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:M(i.event_type)||"invocation"})),o=(await Ds(e,pt)).filter(i=>_n(i)>=t).filter(i=>!n&&i.accounting_recorded!==!0).map(i=>({...i,event_type:"invocation",degradation_reason:M(i.reason)||"unknown"}));return[...r,...s,...o]}function En(e,t){let r=zt(e[t==="raw"?"tokens_raw":"tokens_emitted"]);if(r!=null)return{tokens:r,estimated:!1};let n=Ue(e[t==="raw"?"raw_bytes":"emitted_bytes"]);return{tokens:Math.ceil(n/4),estimated:n>0}}function BA(e,t){let r=VA(t.map(a=>zt(a.holdout_share)))??0;if(t.length===0)return{enabled:!1,holdout_share:r,holdout_invocations:0,compressed_invocations:e.length,savings_rate:null,confidence_interval_95:null,note:"control holdout disabled or no holdout samples in window"};let n=e.map(Qb).filter(a=>a!=null),s=t.map(Qb).filter(a=>a!=null),o=n.length>0?n:s,i=o.length===0?null:be(JA(o));return{enabled:!0,holdout_share:be(r),holdout_invocations:t.length,compressed_invocations:e.length,savings_rate:i,confidence_interval_95:i==null?null:jA(o,i),note:"measured from opt-in uncompressed control holdout; report proposes, it does not tune automatically"}}function Qb(e){let t=En(e,"raw").tokens;if(t<=0)return null;let r=En(e,"emitted").tokens;return Math.max(0,t-r)/t}function jA(e,t){if(e.length<=1)return{low:be(Math.max(0,t)),high:be(Math.min(1,t))};let r=e.reduce((s,o)=>s+(o-t)**2,0)/(e.length-1),n=1.96*Math.sqrt(r/e.length);return{low:be(Math.max(0,t-n)),high:be(Math.min(1,t+n))}}function UA(e){let t=new Map;for(let r of e){let n=He(M(r.recovered_command)||M(r.command)),s=t.get(n)??{command_family:n,show_total:0,show_hits:0,show_misses:0};s.show_total++,r.hit===!0?s.show_hits++:s.show_misses++,t.set(n,s)}return[...t.values()].sort((r,n)=>n.show_total-r.show_total||r.command_family.localeCompare(n.command_family)).map(r=>({...r,show_hit_rate:r.show_total===0?0:be(r.show_hits/r.show_total)}))}function HA(e){let t=new Map;for(let r of e){let n=`${r.command_family}\0${r.reason}`,s=t.get(n)??{command_family:r.command_family,reason:r.reason,count:0};s.count++,t.set(n,s)}return[...t.values()].sort((r,n)=>n.count-r.count||r.command_family.localeCompare(n.command_family)||r.reason.localeCompare(n.reason)).map(r=>({...r,suggestion:qA(r)}))}function qA(e){return/unavailable|not provisioned|missing/i.test(e.reason)?`Investigate ${e.command_family} wrapper availability before changing thresholds`:/timeout|large|limit/i.test(e.reason)?`Review ${e.command_family} byte thresholds and timeout caps for ${e.count} matching degradations`:`Investigate ${e.command_family} ${e.reason} cluster before tuning compression thresholds`}function WA(e,t,r){let n=[];for(let s of t.filter(o=>o.show_total>0))n.push({command_family:s.command_family,signal:`recovery_show_rate=${s.show_total}`,suggestion:s.show_hit_rate>=.5?"Consider preserving more context or raising terse thresholds for frequently recovered outputs":"Recovery misses dominate; inspect handle lifetime before threshold changes"});for(let s of r.filter(o=>o.count>1))n.push({command_family:s.command_family,signal:`degradation_cluster=${s.reason}:${s.count}`,suggestion:"Fix the repeated degradation before tightening compression"});for(let s of e.filter(o=>o.invocations>0&&o.tokens_saved===0))n.push({command_family:s.command_family,signal:"zero_token_savings",suggestion:"Consider bypassing or raising admission thresholds for this family"});return n.slice(0,10)}function JA(e){return e.reduce((t,r)=>t+r,0)/e.length}function VA(e){let t=e.filter(r=>r!=null);return t.length===0?null:Math.max(...t)}function KA(e){let t=YA();for(let r of e){if(M(r.event_type)==="show"||M(r.degradation_reason)!==""||r.elided!==!0)continue;let n=zA(r.storage_class)??Nt(M(r.command));t[n].records+=1;let s=Ue(r.raw_bytes);t[n].bytes+=s,t[n].raw_bytes+=s}return t}function zA(e){return e==="derivable"||e==="re-executable"||e==="ephemeral"?e:null}function YA(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}async function Ds(e,t){return(await e.kv(t).list({limit:1e4}).catch(n=>{if(n instanceof Error&&/\bnot found\b/i.test(n.message))return{items:[]};throw n})).items.map(n=>QA(n.value)).filter(n=>pn(n))}function QA(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function _n(e){let t=Date.parse(Or(e));return Number.isFinite(t)?t:0}function Or(e){return M(e.created_at)||M(e.ts)||""}function M(e){return typeof e=="string"?e:""}function wn(e,t){if(e.length===0)return null;let r=[...e].sort((s,o)=>s-o),n=Math.min(r.length-1,Math.max(0,Math.ceil(r.length*t)-1));return be(r[n])}function Xb(e){return{wrapper_ms_p50:wn(e,.5),wrapper_ms_p90:wn(e,.9),wrapper_ms_p95:wn(e,.95),wrapper_ms_p99:wn(e,.99)}}function be(e){return Math.round(e*100)/100}function XA(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${eP(t.getUTCDay())}:${t.getUTCHours()}`:null}function ZA(e){let t=[];for(let r of["sun","mon","tue","wed","thu","fri","sat"])for(let n=0;n<24;n++){let s=e.get(`${r}:${n}`)??0;s>0&&t.push({weekday:r,hour:n,requests:s})}return t}function eP(e){return["sun","mon","tue","wed","thu","fri","sat"][e]??"unknown"}function tP(e){let t=new Date(e);if(!Number.isFinite(t.getTime()))return null;let r=t.getUTCDay(),n=r===0?-6:1-r;return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()+n)).toISOString().slice(0,10)}function rP(e){let t=null;return[...e.entries()].sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>{let s=t==null||t===0?null:be((n-t)/t*100);return t=n,{week_start:r,tokens_saved:n,wow_delta_pct:s}})}function nP(){return 24*60*60*1e3}var ew=h(()=>{"use strict";_s();Ni();Ac();hi();rl()});var $s={};K($s,{RSP_ACCOUNTING_EVENTS_COLLECTION:()=>Oe,RSP_DECISIONS_COLLECTION:()=>Ae,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:()=>pt,RSP_TELEMETRY_INDEX_COLLECTION:()=>hs,RSP_TELEMETRY_INVOCATIONS_COLLECTION:()=>je,RSP_TELEMETRY_LEGACY_SPOOL_FILE:()=>el,RSP_TELEMETRY_SPOOL_CORRECTIONS_FILE:()=>tl,RSP_TELEMETRY_SPOOL_FILE:()=>Zu,appendTelemetryEvent:()=>kr,appendTelemetryEventSync:()=>Yt,drainTelemetrySpool:()=>cl,parseTelemetryEvent:()=>fn,readAccountingLaneStats:()=>Ul,readTelemetryGainsReport:()=>Hl,readTelemetryStats:()=>Fi,takeTelemetrySpool:()=>s0,telemetryLegacySpoolPath:()=>wi,telemetrySpoolCorrectionsPath:()=>al,telemetrySpoolPath:()=>$t});var mt=h(()=>{"use strict";hi();lb();ew()});import{existsSync as sP}from"node:fs";import{join as oP}from"node:path";function iP(){for(let e of(process.env.PATH??"").split(":"))if(e&&sP(oP(e,"rsp")))return!0;return!1}function Ns(){return iP()?["rsp"]:[process.execPath,process.argv[1]]}var ql=h(()=>{"use strict"});var Mi={};K(Mi,{parseProxyCommandLine:()=>nw,rewriteProxyCommandLine:()=>rw,runProxy:()=>uP});import{spawn as aP}from"node:child_process";function cP(e){return/[^\w@%+=:,./-]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}async function uP(e,t){let r="",n="",s=[],o=process.hrtime.bigint();try{if(r=nw(e),process.env.RSP_PROXY_FAIL_INTERNAL==="1")throw new Error("forced proxy failure");let c=rw(r,t.level??"lossless");n=c.commandLine,s=c.matches}catch(c){if(r)return await lP(t.telemetryRoot,r,c),await tw(r);throw c}for(let c of s)await dP(t.telemetryRoot,c);let i=await tw(n||r),a=Number(process.hrtime.bigint()-o)/1e6;return await kr(t.telemetryRoot,{collection:je,ts:new Date().toISOString(),command:r,wrapper:"proxy",loss:"lossless",elided:!1,raw_bytes:0,emitted_bytes:0,wrapper_ms:a,accounting_recorded:!1}),i}function rw(e,t="lossless",r=Ns()){let n=yP(e),s=[];return{commandLine:n.map((i,a)=>{if(i.kind==="operator"||hP(n,a)==="|")return i.text;let c=pP(i.text,t,r);return c?(s.push(c.match),c.text):i.text}).join(""),matches:s}}function nw(e){if(e[0]!=="proxy")throw new Error("expected rsp proxy -- <command line>");let t=e.indexOf("--"),r=t>=0?e.slice(t+1):e.slice(1),n=r.length===1?r[0]:r.join(" ");if(!n.trim())throw new Error("usage: rsp proxy -- <command line>");return n}async function lP(e,t,r){await kr(e,{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t,command_family:He(t),decision:"failed-open",reason:"proxy-internal-error",error:r instanceof Error?r.name:typeof r})}async function dP(e,t){await kr(e,{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:"proxy",command:t.command,command_family:t.commandFamily,decision:t.decision,reason:t.reason,capability_id:t.capabilityId})}async function tw(e){let t=aP(e,{shell:!0,stdio:"inherit"}),r=Ge();return t.once("close",r),t.once("error",r),await new Promise(n=>{t.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
|
|
104
|
+
`),n(127)}),t.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}function pP(e,t,r){let n=e.match(/^\s*/)?.[0]??"",s=e.match(/\s*$/)?.[0]??"",o=e.trim();if(!o)return null;let i=wP(o);if(!i)return null;let a=gP(i);if(a>=i.length)return null;let c=i.slice(a),u=c.map(f=>f.value);if(Sr(u))return{text:e,match:{command:c.map(f=>f.raw).join(" "),commandFamily:He(u.join(" ")),decision:"passed",reason:"lossless-gh-json-jq"}};let l=mP(c);if(!l)return null;let d=i.slice(0,a).map(f=>f.raw),p=t==="lossless"?[]:[`--${t}`],g=[...d,...r.map(cP),...p,...l.wrapperWords].join(" ");return{text:`${n}${g}${s}`,match:{command:c.map(f=>f.raw).join(" "),commandFamily:He(u.join(" ")),decision:"contributed",reason:"proxy-segment",capabilityId:l.capabilityId}}}function mP(e){let t=e.map(n=>n.value),r=e.map(n=>n.raw);return t[0]==="git"&&["status","log","diff","show","blame"].includes(t[1]??"")?{capabilityId:`git:${t[1]}`,wrapperWords:r}:t[0]==="git"&&t[1]==="branch"&&t[2]==="-av"?{capabilityId:"git:branch:av",wrapperWords:r}:t[0]==="gh"&&["pr","issue","run"].includes(t[1]??"")&&["list","view"].includes(t[2]??"")?{capabilityId:`gh:${t[1]}:${t[2]}`,wrapperWords:r}:t[0]==="vitest"?{capabilityId:t[1]==="run"?"vitest:run":"vitest",wrapperWords:r}:t[0]==="cargo"&&t[1]==="test"?{capabilityId:"cargo:test",wrapperWords:r}:fP(t,r)}function fP(e,t){return e[0]==="cat"&&e.length===2&&Wl(e[1])?{capabilityId:"cat:file",wrapperWords:["cat",t[1]]}:(e[0]==="head"||e[0]==="tail")&&e.length===2&&Wl(e[1])?{capabilityId:`cat:${e[0]}`,wrapperWords:["cat",`--${e[0]}`,"10",t[1]]}:(e[0]==="head"||e[0]==="tail")&&e.length===4&&e[1]==="-n"&&/^[1-9][0-9]*$/.test(e[2])&&Wl(e[3])?{capabilityId:`cat:${e[0]}`,wrapperWords:["cat",`--${e[0]}`,e[2],t[3]]}:null}function Wl(e){return!!e&&!e.startsWith("-")}function gP(e){let t=0;for(;t<e.length&&gn(e[t].value);)t+=1;if(e[t]?.value!=="env")return t;for(t+=1;t<e.length&&gn(e[t].value);)t+=1;return t}function hP(e,t){for(let r=t+1;r<e.length;r+=1)if(e[r].kind==="operator")return e[r].text}function yP(e){let t=[],r=0,n,s=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(s){s=!1;continue}if(i==="\\"){s=!0;continue}if(n){i===n&&(n=void 0);continue}if(i==="'"||i==='"'){n=i;continue}let a=bP(e,o);a&&(o>r&&t.push({kind:"segment",text:e.slice(r,o)}),t.push({kind:"operator",text:a}),o+=a.length-1,r=o+1)}return r<e.length&&t.push({kind:"segment",text:e.slice(r)}),t}function bP(e,t){let r=e.slice(t,t+2);if(r==="&&"||r==="||")return r;let n=e[t];return n===";"||n==="|"?n:void 0}function wP(e){let t=[],r="",n="",s,o=!1,i=!1,a=()=>{i&&(t.push({raw:r,value:n}),r="",n="",i=!1)};for(let c=0;c<e.length;c+=1){let u=e[c];if(o){r+=u,n+=u,o=!1,i=!0;continue}if(u==="\\"){r+=u,o=!0,i=!0;continue}if(s){r+=u,u===s?s=void 0:n+=u,i=!0;continue}if(u==="'"||u==='"'){r+=u,s=u,i=!0;continue}if(/[ \t]/.test(u)){a();continue}if(/[()<>`]/.test(u))return null;r+=u,n+=u,i=!0}return s||o?null:(a(),t)}var Bi=h(()=>{"use strict";ae();_s();ql();mt()});function iw(e,t={}){let r=_P(e);if(r.length<12)return[];let n=new Map,s=new Map;for(let p of r){s.set(p.signature,(s.get(p.signature)??0)+1);for(let g of new Set(p.tokens))n.set(g,(n.get(g)??0)+1)}let o=r.map(p=>p.length),i=r.map(p=>p.tokens.length),a=r.map(p=>p.numbers.length===0?0:Math.max(...p.numbers.map(Math.abs))),c=Jl(o),u=Jl(i),l=Jl(a),d=t.excludedByteRanges??[];return r.filter(p=>p.text.trim().length>0).filter(p=>!d.some(g=>vP(p.start,p.end,g.start,g.end))).map(p=>({line:p,score:Vl(p.length,c)+Vl(p.tokens.length,u)+Vl(p.numbers.length===0?0:Math.max(...p.numbers.map(Math.abs)),l)+SP(p.tokens,n,r.length)+TP(p.signature,s,r.length)})).filter(p=>p.score>=(t.minScore??7)).sort((p,g)=>g.score-p.score||p.line.index-g.line.index).slice(0,t.maxOutliers??3).sort((p,g)=>p.line.index-g.line.index).map(p=>({lineNumber:p.line.index+1,score:Math.round(p.score*100)/100,text:p.line.text}))}function _P(e){let t=[],r=0,n=0;for(let s of e.matchAll(/\n/g)){let o=s.index??e.length;t.push(sw(n++,r,o,e.slice(r,o).replace(/\r$/,""))),r=o+1}return(r<e.length||e.length===0)&&t.push(sw(n,r,e.length,e.slice(r).replace(/\r$/,""))),t}function sw(e,t,r,n){return{index:e,start:t,end:r,text:n,signature:EP(n),tokens:RP(n),numbers:kP(n),length:n.length}}function EP(e){return e.replace(/[A-Z]+/g,"A").replace(/[a-z]+/g,"a").replace(/\d+(?:\.\d+)?/g,"0").replace(/\s+/g," ").slice(0,160)}function RP(e){return e.toLowerCase().match(/[a-z0-9_.:/-]{3,}/g)??[]}function kP(e){return[...e.matchAll(/[-+]?\d+(?:\.\d+)?/g)].map(t=>Number(t[0])).filter(t=>Number.isFinite(t))}function SP(e,t,r){let n=[...new Set(e)];if(n.length===0)return 0;let s=n.map(o=>Math.log2(r/Math.max(1,t.get(o)??r))).sort((o,i)=>i-o).slice(0,6);return s.reduce((o,i)=>o+i,0)/Math.max(1,s.length)}function TP(e,t,r){return Math.log2(r/Math.max(1,t.get(e)??r))}function Jl(e){let t=ow(e),r=ow(e.map(n=>Math.abs(n-t)))||1;return{median:t,mad:r}}function Vl(e,t){return Math.abs(e-t.median)/t.mad}function ow(e){let t=[...e].sort((n,s)=>n-s),r=Math.floor(t.length/2);return t.length===0?0:t.length%2===1?t[r]:((t[r-1]??0)+(t[r]??0))/2}function vP(e,t,r,n){return e<n&&r<t}var aw=h(()=>{"use strict"});var Kl={};K(Kl,{DEFAULT_RSP_HEAVY_GIT_BYTE_THRESHOLD:()=>Gt,GIT_LOG_MACHINE_FIELDS:()=>uw,StructuredUsageError:()=>ji,cleanStatusPayload:()=>mw,recoveryInstruction:()=>et,renderGitContract:()=>lw,runGitWrapper:()=>CP});import{spawn as xP}from"node:child_process";async function CP(e,t){let r=dw(e),n=pw(r.argv),s=await IP(n,r.argv.slice(1));return lw(e,s,t)}async function lw(e,t,r){let n=dw(e);if((t.status??0)!==0||t.signal){let d=ze(e.join(" "),t.stdout,t.stderr);return{stdout:V(d),stderr:Buffer.from(t.stderr),status:d.exitCode??1,signal:t.signal}}let s=pw(n.argv),o;try{o=LP(s,n.argv,t.stdout,n.query)}catch(d){if(d instanceof Ui)return{stdout:Buffer.from(t.stdout),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,rawOutput:Buffer.from(t.stdout),degradation:{reason:d.reason,family:"git status",stderrHead:d.message}};throw d}let i=$(o);if(OP(s,i,n.full,r))return{stdout:Buffer.from(i),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o};let a=QP(o);if(!a)return{stdout:Buffer.from(i),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o};let c=Buffer.byteLength(i),u=await r.store?.mint(Buffer.from(i),{command:e.join(" "),loss:{level:"terse",bytes_elided:c}});if(!u)throw new Error("terse git output requires an elision store");let l=`\u2026 elided ${a.rowsElided} rows (+${c}) \u2014 ${et(u)}
|
|
106
105
|
`;return{stdout:Buffer.from(`${$(a.payload)}
|
|
107
|
-
${l}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:a.payload,mintedHandle:u,bytesElided:c,rowsElided:a.rowsElided,rawOutput:Buffer.from(i)}}function
|
|
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),
|
|
109
|
-
`).filter(Boolean),n=r.find(c=>c.startsWith("To "))?.slice(3)??"",s=r.filter(c=>c.includes(" ")).map(c=>{let[u,l,
|
|
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),
|
|
111
|
-
`).filter(Boolean).map(i=>{let[a,c,u,l,p
|
|
112
|
-
`)){let T=/^\s*(.+?)\s+\|\s+(\d+)\s+([+\-]+|Bin.*)$/.exec(_);if(!T)continue;let
|
|
113
|
-
`).length:0,files:f,summary:`${r?`${f.length}/${g.length}`:f.length} files, ${k} changed, +${E} -${y}`},r,["rsp git blame --query <author-or-path>","rsp git diff --query <path>"])}function er(e,t,r){return t?
|
|
114
|
-
`),detected:!0,lossy:!0,totalItems:s,keptItems:u.length,handle:
|
|
106
|
+
${l}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:a.payload,mintedHandle:u,bytesElided:c,rowsElided:a.rowsElided,rawOutput:Buffer.from(i)}}function et(e){return e.startsWith("el:")?`rsp show ${e}`:e}function dw(e){let{argv:t,query:r,full:n}=vm(e),s=t.slice(2).find(o=>o.startsWith("--rsp-"));if(s)throw new ji(e.join(" "),s,["--full","--brief","--terse","--query"]);return{argv:t,query:r,full:n}}function OP(e,t,r,n){if(n.level==="terse")return!1;if(r||n.level==="full"||!AP(e)||n.level!=="lossless")return!0;let s=YP(n.heavyGitByteThreshold,Gt);return Buffer.byteLength(t)<=s}function AP(e){return e==="diff"||e==="log"||e==="blame"||e==="show"}function pw(e){if(e[0]!=="git")throw new Error("expected rsp git <subcommand>");let t=e[1];if(t==="status"||t==="log"||t==="diff"||t==="commit"||t==="push"||t==="blame"||t==="branch"||t==="show")return t;throw new Error(`unsupported git subcommand: ${t??""}`)}function PP(e,t){let r=t.slice(1);switch(e){case"status":return["status","--porcelain=v2","-z","-b",...r];case"log":return["log",`--format=%x1e${uw.join("%x1f")}`,"-z",...r];case"diff":return["diff","--numstat","-z",...r];case"commit":return["commit",...r];case"push":return["push","--porcelain",...r];case"blame":return["blame","--line-porcelain",...r];case"branch":return["branch","--format=%(HEAD)%00%(refname:short)%00%(objectname:short)%00%(upstream:short)%00%(worktreepath)%00%(contents:subject)",...r];case"show":return["show","--format=%x1e%H%x1f%h%x1f%an%x1f%aI%x1f%s%x1f%b%x1e","--stat",...r]}}async function IP(e,t){let r=xP("git",PP(e,t),{stdio:["ignore","pipe","pipe"]}),n=Ge();r.once("close",n),r.once("error",n);let s=[],o=[];return r.stdout.on("data",i=>s.push(i)),r.stderr.on("data",i=>o.push(i)),await new Promise((i,a)=>{r.on("error",a),r.on("close",(c,u)=>{i({stdout:Buffer.concat(s).toString("utf8"),stderr:Buffer.concat(o).toString("utf8"),status:c,signal:u})})})}function LP(e,t,r,n){switch(e){case"status":return GP(t,r,n);case"log":return UP(t,r,n);case"diff":return HP(t,r,n);case"commit":return er(qP(t,r),n,["rsp git status --query <path-or-state>"]);case"push":return er(WP(t,r),n,["rsp gh pr list --query <branch>"]);case"blame":return JP(t,r,n);case"branch":return VP(t,r,n);case"show":return KP(t,r,n)}}function GP(e,t,r){let n="",s=[],o=!1,i=!1;for(let u of DP(t)){if(!u)continue;if(i=!0,u.startsWith("# branch.head ")){n=u.slice(14),o=!0;continue}if(u.startsWith("# ")){o=!0;continue}if(u.startsWith("## ")){n=FP(u),o=!0;continue}let l=$P(u);if(l){o=!0,s.push(l);continue}let d=NP(u);d&&(o=!0,s.push(d))}if(s.length===0){if(!i||o)return mw(e.join(" "),n);throw new Ui("git-status-unparseable")}let a=Re(s,r),c=fw(a,"state");return er({command:e.join(" "),branch:n,rows:a,summary:jP(a.length,s.length,c,r)},r,["rsp git diff --query <path>","rsp git log --query <subject>"])}function DP(e){return e.includes("\0")?e.split("\0"):e.split(/\r?\n/)}function $P(e){if(e.startsWith("1 ")){let t=e.split(" "),r=t[1]??"..",n=t.slice(8).join(" ");return Fs(n,r)}if(e.startsWith("2 ")){let t=e.split(" "),r=t[1]??"..";return Fs(t.slice(9).join(" "),r)}if(e.startsWith("u ")){let t=e.split(" "),r=t[1]??"..";return Fs(t.slice(10).join(" "),r)}return e.startsWith("? ")?Fs(e.slice(2),"??"):null}function NP(e){if(e.length<4||e[2]!==" ")return null;let t=e.slice(0,2);return/^[ MADRCU?!][ MADRCU?!?]$/.test(t)?Fs(MP(e.slice(3),t),t):null}function Fs(e,t){let r=cw(t[0]??"."),n=cw(t[1]??".");return{path:BP(e),index:r,worktree:n,state:zP(`${r}${n}`)}}function cw(e){return e===" "?".":e}function FP(e){let t=e.slice(3).split("...")[0]?.trim()??"";return t==="HEAD (no branch)"?"HEAD":t}function MP(e,t){if(!t.includes("R")&&!t.includes("C"))return e;let r=e.lastIndexOf(" -> ");return r>=0?e.slice(r+4):e}function BP(e){let t=e.trim();if(!t.startsWith('"')||!t.endsWith('"'))return t;try{return JSON.parse(t)}catch{return t.slice(1,-1)}}function jP(e,t,r,n){let s=[];return r.renamed&&s.push(`${r.renamed} renamed`),r.untracked&&s.push(`${r.untracked} untracked`),r.changed&&s.push(`${r.changed} changed`),`${n?`${e}/${t}`:e} changes: ${r.added??0} added, ${r.modified??0} modified, ${r.deleted??0} deleted${s.length?`, ${s.join(", ")}`:""}`}function mw(e="git status",t=""){return{command:e,category:"no-op",exit_code:0,noop:!0,scope:"git status",empty:!0,branch:t,rows:[],summary:"git status clean: 0 changes"}}function UP(e,t,r){let n=t.split("\0").filter(Boolean).map(o=>{let i=o.replace(/^\x1e/,"").split("");return{short:i[0]??"",author:i[1]??"",date:i[2]??"",subject:i[3]??""}}),s=Re(n,r);return er({command:e.join(" "),commits:s,summary:`${r?`${s.length}/${n.length}`:s.length} commits`},r,["rsp git diff --query <path>","rsp gh pr list --query <branch>"])}function HP(e,t,r){let s=t.split("\0").filter(Boolean).map(a=>{let[c,u,l]=a.split(" ");return{path:l??"",added:c==="-"?null:Number(c??0),deleted:u==="-"?null:Number(u??0)}}),o=Re(s,r),i=o.reduce((a,c)=>(a.added+=typeof c.added=="number"?c.added:0,a.deleted+=typeof c.deleted=="number"?c.deleted:0,a),{added:0,deleted:0});return er({command:e.join(" "),files:o,summary:`${r?`${o.length}/${s.length}`:o.length} files, +${i.added} -${i.deleted}`},r,["rsp git status --query <path>","rsp git log --query <subject>"])}function qP(e,t){let r=t.split(`
|
|
107
|
+
`)[0]??"",n=/^\[([^ ]+) ([0-9a-f]+)\] (.+)$/.exec(r),s=/(\d+) files? changed/.exec(t),o=/(\d+) insertions?\(\+\)/.exec(t),i=/(\d+) deletions?\(-\)/.exec(t),a=n?.[1]??"",c=n?.[2]??"",u=Number(s?.[1]??0),l=Number(o?.[1]??0),d=Number(i?.[1]??0);return{command:e.join(" "),branch:a,commit:c,subject:n?.[3]??"",files_changed:u,insertions:l,deletions:d,summary:`commit ${c} on ${a}: ${u} files, +${l} -${d}`}}function WP(e,t){let r=t.split(`
|
|
108
|
+
`).filter(Boolean),n=r.find(c=>c.startsWith("To "))?.slice(3)??"",s=r.filter(c=>c.includes(" ")).map(c=>{let[u,l,d=""]=c.split(" "),[p,g]=(l??"").split(":");return{flag:u??"",from:p??"",to:g??"",summary:d}}),o=s.find(c=>c.flag!=="=")??s[0],i=o?.to.startsWith("refs/heads/")?o.to.slice(11):o?.to??"",a=o?.summary.includes("..")?1:0;return s.length>0&&s.every(c=>c.flag==="=")?{command:e.join(" "),category:"no-op",exit_code:0,noop:!0,remote:n,refs:s,summary:`push already satisfied for ${i} -> ${n}`,help:["rsp gh pr list --query <branch>"]}:{command:e.join(" "),remote:n,refs:s,summary:`pushed ${i} -> ${n} +${a} commits`}}function JP(e,t,r){let n=t.split(`
|
|
109
|
+
`),s=[],o=null;for(let c of n){let u=/^([0-9a-f]{8,40}) \d+ (\d+)(?: \d+)?$/.exec(c);if(u){o={commit:u[1]??"",finalLine:Number(u[2]??0),author:"",path:""};continue}if(!o)continue;if(c.startsWith("author ")){o.author=c.slice(7);continue}if(c.startsWith("filename ")){o.path=c.slice(9);continue}if(!c.startsWith(" "))continue;let l=s.at(-1),d=o.commit.slice(0,12);l&&l.commit===d&&l.author===o.author&&l.path===o.path&&l.line_end+1===o.finalLine?l.line_end=o.finalLine:s.push({line_start:o.finalLine,line_end:o.finalLine,author:o.author,commit:d,path:o.path}),o=null}let i=Re(s,r),a=fw(i,"author");return er({command:e.join(" "),ranges:i,authors:a,summary:`${r?`${i.length}/${s.length}`:i.length} ranges, ${Object.keys(a).length} authors`},r,["rsp git show --query <commit>","rsp git log --query <author>"])}function VP(e,t,r){let n=t.split(`
|
|
110
|
+
`).filter(Boolean).map(i=>{let[a,c,u,l,d,p]=i.split("\0");return{current:a==="*",name:c??"",commit:u??"",upstream:l||null,worktree:d||null,subject:p??""}}),s=Re(n,r),o=s.find(i=>i.current)?.name??"";return er({command:e.join(" "),branches:s,summary:`${r?`${s.length}/${n.length}`:s.length} branches${o?`, current ${o}`:""}`},r,["rsp git log --query <branch>","rsp gh pr list --query <branch>"])}function KP(e,t,r){let n=t.indexOf(""),s=n>=0?t.indexOf("",n+1):-1,o=n>=0&&s>=0?t.slice(n+1,s):"",i=s>=0?t.slice(s+1):t,[a,c,u,l,d,p=""]=o.split(""),g=[];for(let _ of i.split(`
|
|
111
|
+
`)){let T=/^\s*(.+?)\s+\|\s+(\d+)\s+([+\-]+|Bin.*)$/.exec(_);if(!T)continue;let C=T[3]??"";g.push({path:(T[1]??"").trim(),changed:Number(T[2]??0),added:[...C].filter(L=>L==="+").length,deleted:[...C].filter(L=>L==="-").length,binary:C.startsWith("Bin")})}let f=Re(g,r),k=0,E=0,y=0;for(let _ of f)k+=typeof _.changed=="number"?_.changed:0,E+=typeof _.added=="number"?_.added:0,y+=typeof _.deleted=="number"?_.deleted:0;return er({command:e.join(" "),commit:a??"",short:c??"",author:u??"",date:l??"",subject:d??"",body_lines:p.trim()?p.trim().split(`
|
|
112
|
+
`).length:0,files:f,summary:`${r?`${f.length}/${g.length}`:f.length} files, ${k} changed, +${E} -${y}`},r,["rsp git blame --query <author-or-path>","rsp git diff --query <path>"])}function er(e,t,r){return t?xt(e,r):e}function zP(e){return e==="??"?"untracked":e.includes("A")?"added":e.includes("D")?"deleted":e.includes("R")?"renamed":e.includes("M")?"modified":"changed"}function fw(e,t){let r={};for(let n of e){let s=String(n[t]??"");r[s]=(r[s]??0)+1}return r}function YP(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function QP(e){for(let t of["rows","commits","files","refs","ranges","branches"]){let r=e[t];if(Array.isArray(r)&&r.length>1)return{payload:{...e,[t]:r.slice(0,1)},rowsElided:r.length-1}}return null}var uw,ji,Ui,Ar=h(()=>{"use strict";ae();J();Be();qn();at();Be();uw=["%h","%an","%as","%s"];ji=class extends Error{constructor(r,n,s){super(`unknown flag: ${n}`);this.command=r;this.flag=n;this.validFlags=s}render(){return om(this.command,this.flag,this.validFlags,`${this.command} --help`)}},Ui=class extends Error{constructor(r){super("git status output was not recognized; passing raw stdout through");this.reason=r}}});var Xl={};K(Xl,{NORMALIZATION_ALLOWLIST:()=>Ew,NORMALIZE_ANSI:()=>qi,NORMALIZE_BLANK_LINES:()=>Vi,NORMALIZE_CR_PROGRESS:()=>Wi,NORMALIZE_JSON_TOON:()=>_w,NORMALIZE_TRAILING_WHITESPACE:()=>Ji,crushJsonArrayItems:()=>Ms,formatCodexNormalizeDecision:()=>vw,formatNormalizeDecision:()=>Tw,hookDecisionFromClaudePostExecJson:()=>Rw,hookDecisionFromCodexPostExecJson:()=>kw,normalizeOutput:()=>Ki,renderGenericJsonLane:()=>Yl,runClaudePostExecHook:()=>eI,runCodexPostExecHook:()=>tI,transcodeJsonToToon:()=>ww});import{readFileSync as Hi}from"node:fs";function ww(e,t){let r=t?.encode??$,n=t?.decode??H,s=e.trimEnd();if(!s)return e;let o;try{o=JSON.parse(s)}catch{return e}let i;try{i=r(o)}catch{return e}let a;try{a=n(i)}catch{return e}return zl(o,a)?i.trimEnd():e}async function Yl(e,t={}){let r=oI(e);if(!r)return{output:e,detected:!1,lossy:!1};let n=r.value;if(!Array.isArray(n))return{output:$(n).trimEnd(),detected:!0,lossy:!1};let s=n.length,o=bw(t.minTokens,XP),i=bw(t.maxItems,ZP);if(!(s>i&&lI(e)>=o))return{output:$(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s};let c;try{c=(t.crusher??Ms)(n,i)}catch(k){return{output:$(n).trimEnd(),detected:!0,lossy:!1,totalItems:s,keptItems:s,degradation:{reason:"json-array-crusher-failed",family:"json",stderrHead:dI(k)}}}let u=c.items,l={items:u},d=`items: ${c.kept} kept, ${c.dropped} dropped (shape outliers: ${c.shapeOutliers}, value outliers: ${c.valueOutliers})`,p;t.level&&t.level!=="lossless"&&(p=await t.store?.mint(Buffer.from(e),{command:t.command??"rsp json",loss:{level:t.level,bytes_elided:Buffer.byteLength(e)}}));let g=p?`original: rsp show ${p}`:`original: unavailable - re-run: ${t.command??"command"}`,f=$(l).trimEnd();return{output:[d,g,f].filter(Boolean).join(`
|
|
113
|
+
`),detected:!0,lossy:!0,totalItems:s,keptItems:u.length,handle:p}}function Ms(e,t){if(e.length<=t)return{items:[...e],total:e.length,kept:e.length,dropped:0,shapeOutliers:0,valueOutliers:0};let r=new Set([0,e.length-1]),n=iI(e),s=new Set;n&&e.forEach((a,c)=>{Ql(a)!==n&&s.add(c)});let o=aI(e,n);for(let a of s)r.add(a);for(let a of o)r.add(a);let i=[...r].sort((a,c)=>a-c).slice(0,Math.max(2,t));return{items:i.map(a=>e[a]),total:e.length,kept:i.length,dropped:e.length-i.length,shapeOutliers:[...s].filter(a=>i.includes(a)).length,valueOutliers:[...o].filter(a=>i.includes(a)).length}}function Ki(e){let t=e;for(let r of Ew)t=r.apply(t);return t}async function Rw(e,t){return await Sw(e,t)}async function kw(e,t){return await Sw(e,t)}async function Sw(e,t){let r=sI(e),n=pI(r,["cwd"])||t.cwd;if(!await(t.isEnabled??nI)(n))return{kind:"passthrough",reason:"disabled"};let o=mI(r,"tool_response");if(!o)return{kind:"passthrough",reason:"missing-output"};if(typeof o.output!="string")return{kind:"passthrough",reason:"missing-output"};let i=o.output,c=(t.normalize??Ki)(i);return c===i?{kind:"passthrough",reason:"no-change"}:{kind:"normalized",output:c}}function Tw(e){return e.kind==="normalized"?{stdout:JSON.stringify({tool_response:{output:e.output}}),status:0}:{stdout:"",status:0}}function vw(e){return{stdout:"",status:0}}async function eI(e){let t=e?Hi(e,"utf8"):Hi(0,"utf8"),r=await Rw(t,{cwd:process.cwd()}),n=Tw(r);return n.stdout&&process.stdout.write(n.stdout),n.status}async function tI(e){let t=e?Hi(e,"utf8"):Hi(0,"utf8"),r=await kw(t,{cwd:process.cwd()}),n=vw(r);return n.stdout&&process.stdout.write(n.stdout),n.status}function rI(e){let t="",r=0;for(;r<e.length;){let n=e.charCodeAt(r);if(n===27){let s=e.charCodeAt(r+1);if(s===93){for(r+=2;r<e.length;){let o=e.charCodeAt(r);if(o===7){r++;break}if(o===27&&e.charCodeAt(r+1)===92){r+=2;break}r++}continue}if(s===91){for(r+=2;r<e.length&&gw(e.charCodeAt(r));)r++;r<e.length&&r++;continue}r+=s>=32?2:1;continue}if(n===155){for(r++;r<e.length&&gw(e.charCodeAt(r));)r++;r<e.length&&r++;continue}t+=e[r++]}return t}function gw(e){return e>=32&&e<=63}function nI(e){return De(e,process.env).enabled}function sI(e){try{let t=JSON.parse(e);return Rn(t)?t:{}}catch{return{}}}function oI(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return Rn(n)||Array.isArray(n)?{value:n}:null}catch{}let r=[];for(let n of e.split(/\r?\n/))if(n.trim())try{r.push(JSON.parse(n))}catch{return null}return r.length>0?{value:r}:null}function iI(e){let t=new Map;for(let s of e){let o=Ql(s);t.set(o,(t.get(o)??0)+1)}let[r,n]=[...t.entries()].sort((s,o)=>o[1]-s[1]||s[0].localeCompare(o[0]))[0]??[];return typeof r=="string"&&typeof n=="number"&&n>e.length/2?r:null}function Ql(e){return Array.isArray(e)?"array":Rn(e)?Object.keys(e).sort().map(t=>`${t}:${hw(e[t])}`).join("|"):hw(e)}function aI(e,t){let r=new Set,n=new Map;e.forEach((s,o)=>{if(!(t&&Ql(s)!==t))for(let[i,a]of xw(s)){let c=n.get(i)??[];c.push({index:o,value:a}),n.set(i,c)}});for(let s of n.values()){for(let o of cI(s))r.add(o);for(let o of uI(s))r.add(o)}return r}function cI(e){let t=e.filter(a=>typeof a.value=="number"&&Number.isFinite(a.value));if(t.length<5||t.length!==e.length)return[];let r=t.map(a=>a.value).sort((a,c)=>a-c),n=yw(r),s=r.map(a=>Math.abs(a-n)).sort((a,c)=>a-c),o=yw(s);if(o===0)return t.filter(c=>c.value===n).length/t.length<.8?[]:t.filter(c=>c.value!==n).map(c=>c.index);let i=o*8;return t.filter(a=>Math.abs(a.value-n)>i).map(a=>a.index)}function uI(e){if(e.length<5)return[];if(!e.every(s=>typeof s.value=="string"||typeof s.value=="boolean"||s.value===null))return[];let t=new Map;for(let s of e)t.set(String(s.value),(t.get(String(s.value))??0)+1);if(Math.max(...t.values())/e.length<.8)return[];let n=Math.max(2,Math.floor(e.length*.05));return e.filter(s=>(t.get(String(s.value))??0)<=n).map(s=>s.index)}function xw(e,t=""){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"?[[t||"$",e]]:Array.isArray(e)?[]:Rn(e)?Object.entries(e).flatMap(([r,n])=>xw(n,t?`${t}.${r}`:r)):[]}function hw(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function yw(e){let t=Math.floor(e.length/2);return e.length%2===1?e[t]??0:((e[t-1]??0)+(e[t]??0))/2}function lI(e){return Math.ceil(e.length/4)}function bw(e,t){return e==null?t:Number.isFinite(e)&&e>0?Math.floor(e):t}function dI(e){let r=(e instanceof Error?e.message:String(e??"unknown crusher failure")).split(/\r?\n/,1)[0]?.replace(/\s+/g," ").trim()||"unknown crusher failure";return r.length<=240?r:`${r.slice(0,239)}\u2026`}function pI(e,t){let r=e;for(let n of t){if(!Rn(r))return"";r=r[n]}return typeof r=="string"?r:""}function mI(e,t){let r=e[t];return Rn(r)?r:null}function Rn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function zl(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=typeof t||typeof e!="object"||Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){let i=t;return e.length!==i.length?!1:e.every((a,c)=>zl(a,i[c]))}let r=e,n=t,s=Object.keys(r),o=Object.keys(n);return s.length!==o.length?!1:s.every(i=>Object.prototype.hasOwnProperty.call(n,i)&&zl(r[i],n[i]))}var qi,Wi,Ji,Vi,_w,XP,ZP,Ew,Bs=h(()=>{"use strict";J();Be();qi={id:"ansi",apply:rI},Wi={id:"cr-progress",apply:e=>e.split(`
|
|
115
114
|
`).map(t=>{let r=t.endsWith("\r")?t.slice(0,-1):t,n=r.lastIndexOf("\r");return n>=0?r.slice(n+1):r}).join(`
|
|
116
|
-
`)},
|
|
115
|
+
`)},Ji={id:"trailing-whitespace",apply:e=>e.split(`
|
|
117
116
|
`).map(t=>t.replace(/[ \t]+$/,"")).join(`
|
|
118
|
-
`)},
|
|
117
|
+
`)},Vi={id:"blank-lines",apply:e=>e.replace(/\n{3,}/g,`
|
|
119
118
|
|
|
120
|
-
`)};
|
|
121
|
-
`}function
|
|
122
|
-
`,status:0}}async function
|
|
119
|
+
`)};_w={id:"json-to-toon",apply:e=>ww(e)},XP=200,ZP=15;Ew=[qi,Wi,Ji,Vi,_w]});var Hs={};K(Hs,{parseExecCommandLine:()=>Lw,renderExecContract:()=>Iw,runExecWrapper:()=>bI});import{isUtf8 as fI}from"node:buffer";import{spawn as gI}from"node:child_process";async function bI(e,t){let r=Lw(e),n=await wI(r);return await Iw(r,n,t)}async function Iw(e,t,r){let n=Buffer.from(t.stdout,"binary"),s=Buffer.from(t.stderr,"binary");if((t.status??0)!==0||t.signal){let p=ze(e,t.stdout,t.stderr);return{stdout:V(p),stderr:s,status:p.exitCode??1,signal:t.signal,rawOutput:n}}if(n.length===0)return{stdout:n,stderr:s,status:t.status,signal:t.signal,rawOutput:n};let o=_I(n),i=o.kind==="text"?Buffer.from(o.text):n,a=BI(r.heavyByteThreshold,hI);if(i.length<=a&&r.level!=="terse")return{stdout:i,stderr:s,status:t.status,signal:t.signal,rawOutput:n};let c=n.length,u=r.level==="lossless"?"terse":r.level,l=await r.store?.mint(n,{command:e,loss:{level:u,bytes_elided:c}});if(!l)throw new Error("rsp exec output elision requires an elision store");let d=o.kind==="text"?RI(o.text,n.length,l,r.level,e,r.anomalyScorer,r.jsonArrayCrusher):kI(n,n.length,l,e);return{stdout:Buffer.from(d.text),stderr:s,status:t.status,signal:t.signal,mintedHandle:l,bytesElided:c,rawOutput:n,degradation:d.degradation}}function Lw(e){if(e[0]!=="exec")throw new Error("expected rsp exec -- <command line>");let t=e.indexOf("--"),r=t>=0?e.slice(t+1):e.slice(1),n=r.length===1?r[0]:r.join(" ");if(!n.trim())throw new Error("usage: rsp exec -- <command line>");return n}async function wI(e){let t=gI(e,{shell:!0,stdio:["inherit","pipe","pipe"]}),r=Ge();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",(a,c)=>{o({stdout:Buffer.concat(n).toString("binary"),stderr:Buffer.concat(s).toString("binary"),status:a,signal:c})})})}function _I(e){return fI(e)?{kind:"text",text:EI(e.toString("utf8"))}:{kind:"bytes"}}function EI(e){let t=e;for(let r of[qi,Wi,Ji,Vi])t=r.apply(t);return t}function RI(e,t,r,n,s,o=LI,i=Ms){let c=Math.max(1,Math.floor((n==="terse"?Pw:yI)/2)),u=Buffer.from(e),l=Math.max(0,u.length-c),d=II(e,c,l,o),p=SI(e),g=TI(p,e,u,c,l,d.kind==="ok"?d.lines:[],i),f=Gw(s,p,t,MI(u),r,g.summary),k=d.kind==="failed"?{reason:"exec-anomaly-scorer-failed",family:"exec",stderrHead:Bw(d.error)}:g.degradation;return{text:Mw(f),degradation:k}}function kI(e,t,r,n){let s=Math.max(1,Math.floor(Pw/2)),o={head_hex:e.subarray(0,s).toString("hex"),tail_hex:e.subarray(Math.max(0,e.length-s)).toString("hex")};return{text:Mw(Gw(n,"bytes",t,0,r,o))}}function Gw(e,t,r,n,s,o){return{family:"exec",command:e,content:t,bytes:r,lines:n,summary:o,recovery:{original:et(s)}}}function SI(e){let t=e.trim();return t?$w(t)?"json":Nw(e)?"jsonl":GI(e)?"unified-diff":Fw(e)?"tabular":DI(e)?"log-like":$I(e)?"prose":"untyped":"untyped"}function TI(e,t,r,n,s,o,i=Ms){switch(e){case"json":return vI(t,i);case"jsonl":return{summary:xI(t)};case"unified-diff":return{summary:CI(t)};case"tabular":return{summary:OI(t)};case"log-like":return{summary:AI(t,o)};case"prose":return{summary:PI(t)};case"bytes":return{summary:{}};case"untyped":return{summary:Dw(r,n,s,o)}}}function vI(e,t){let r=$w(e);if(Array.isArray(r)){if(r.length>15)try{let n=t(r,15);return{summary:{root_type:"array",total:n.total,kept:n.kept,dropped:n.dropped,shape_outliers:n.shapeOutliers,value_outliers:n.valueOutliers,items:n.items.map(tr),item_keys:ed(r)}}}catch(n){return{summary:Ow(r),degradation:{reason:"exec-json-array-crusher-failed",family:"exec",stderrHead:Bw(n)}}}return{summary:Ow(r)}}if(Us(r)){let n=Object.entries(r);return{summary:{root_type:"object",keys:n.map(([s])=>s).slice(0,20),key_count:n.length,sample:Object.fromEntries(n.slice(0,8).map(([s,o])=>[s,tr(o)]))}}}return{summary:{root_type:typeof r,value:tr(r)}}}function Ow(e){return{root_type:"array",items:e.length,sample:e.slice(0,5).map(tr),item_keys:ed(e)}}function xI(e){let t=Nw(e)??[],r=NI(t,"level");return{records:t.length,keys:ed(t),levels:r,first:tr(t[0]),last:tr(t.at(-1))}}function CI(e){let t=new Map,r="",n=0,s=0,o=0;for(let i of e.split(/\r?\n/)){let a=/^diff --git a\/(.+?) b\/(.+)$/.exec(i);if(a){r=a[2]??a[1]??"unknown",t.has(r)||t.set(r,{path:r,added:0,deleted:0,hunks:0});continue}if(!r){let c=/^\+\+\+ b\/(.+)$/.exec(i);c&&(r=c[1]??"unknown",t.has(r)||t.set(r,{path:r,added:0,deleted:0,hunks:0}))}i.startsWith("@@")?(o++,r&&t.get(r).hunks++):i.startsWith("+")&&!i.startsWith("+++")?(n++,r&&t.get(r).added++):i.startsWith("-")&&!i.startsWith("---")&&(s++,r&&t.get(r).deleted++)}return{files:[...t.values()].slice(0,12),file_count:t.size,hunks:o,added_lines:n,deleted_lines:s}}function OI(e){let t=Fw(e);return t?{columns:t.columns,rows:t.rows.length,sample:t.rows.slice(0,5)}:Dw(Buffer.from(e),512,Math.max(0,Buffer.byteLength(e)-512),[])}function AI(e,t){let r=js(e);return{entries:r.length,levels:FI(r),first:Pr(r[0]??""),last:Pr(r.at(-1)??""),outliers:t.map(n=>({line:n.lineNumber,score:Number(n.score.toFixed(2)),text:Pr(n.text)}))}}function PI(e){let t=e.trim().split(/\n\s*\n/).filter(n=>n.trim()),r=e.trim().split(/\s+/).filter(Boolean);return{paragraphs:t.length,words:r.length,opening:Pr(t[0]??""),closing:Pr(t.at(-1)??"")}}function Dw(e,t,r,n){let s=Aw(e.subarray(0,t)),o=Aw(e.subarray(r));return{head:s,tail:o,outliers:n.map(i=>({line:i.lineNumber,score:Number(i.score.toFixed(2)),text:Pr(i.text)}))}}function II(e,t,r,n){try{return{kind:"ok",lines:n(e,{headBytes:t,tailStart:r})}}catch(s){return{kind:"failed",error:s}}}function LI(e,t){return iw(e,{excludedByteRanges:[{start:0,end:t.headBytes},{start:t.tailStart,end:Buffer.byteLength(e,"utf8")}]})}function $w(e){let t=e.trim();if(!t||!/^[\[{]/.test(t))return null;try{let r=JSON.parse(t);return Us(r)||Array.isArray(r)?r:null}catch{return null}}function Nw(e){let t=js(e);if(t.length<2||!t.every(n=>/^[\[{]/.test(n.trim())))return null;let r=[];for(let n of t)try{r.push(JSON.parse(n))}catch{return null}return r}function GI(e){let t=js(e),r=t[0]??"";if(!/^diff --git a\/.+ b\/.+/.test(r)&&!/^--- /.test(r))return!1;let n=t.some(i=>/^diff --git a\/.+ b\/.+/.test(i))||t.some(i=>/^--- /.test(i))&&t.some(i=>/^\+\+\+ /.test(i)),s=t.some(i=>/^@@ /.test(i)),o=t.some(i=>/^[+-]/.test(i)&&!/^(---|\+\+\+) /.test(i));return n&&s&&o}function Fw(e){let t=js(e);if(t.length<3)return null;let r=t[0]??"";if(/[=:{}/]/.test(r)||/^\d{4}-\d{2}-\d{2}/.test(r))return null;let n=r.includes(" ")?/\t+/:/\s{2,}/,s=r.split(n).map(i=>i.trim()).filter(Boolean);if(s.length<2||s.some(i=>!/^[A-Za-z0-9_.-]+$/.test(i)))return null;let o=[];for(let i of t.slice(1)){let a=i.split(n).map(c=>c.trim());if(a.length!==s.length||a.some(c=>c===""))return null;o.push(Object.fromEntries(s.map((c,u)=>[c,a[u]??""])))}return o.length>0?{columns:s,rows:o}:null}function DI(e){let t=js(e);return t.length<3?!1:t.filter(n=>/^\d{4}-\d{2}-\d{2}[T\s]/.test(n)||/\b(?:TRACE|DEBUG|INFO|WARN|WARNING|ERROR|FATAL|PANIC)\b/i.test(n)||(n.match(/\b[A-Za-z0-9_.+:-]+=/g)?.length??0)>=2||/^\[[^\]]+\]\s+/.test(n)).length/t.length>=.6}function $I(e){let t=e.trim();if(!t)return!1;let r=t.split(/\s+/).filter(Boolean),n=t.match(/[.!?](?:\s|$)/g)?.length??0;return r.length>=20&&n>=2}function js(e){return e.split(/\r?\n/).filter(t=>t.trim()!=="")}function ed(e){let t=new Map;for(let r of e)if(Us(r))for(let n of Object.keys(r))t.set(n,(t.get(n)??0)+1);return[...t.entries()].sort((r,n)=>n[1]-r[1]||r[0].localeCompare(n[0])).slice(0,20).map(([r])=>r)}function NI(e,t){let r=new Map;for(let n of e){if(!Us(n))continue;let s=n[t];if(typeof s=="string"||typeof s=="number"||typeof s=="boolean"){let o=String(s).toLowerCase();r.set(o,(r.get(o)??0)+1)}}return Object.fromEntries([...r.entries()].sort((n,s)=>n[0].localeCompare(s[0])))}function FI(e){let t=new Map;for(let r of e){let n=/\blevel=([A-Za-z]+)\b/.exec(r)??/\b(TRACE|DEBUG|INFO|WARN|WARNING|ERROR|FATAL|PANIC)\b/i.exec(r);if(!n)continue;let s=(n[1]??n[0]).toLowerCase();t.set(s,(t.get(s)??0)+1)}return Object.fromEntries([...t.entries()].sort((r,n)=>r[0].localeCompare(n[0])))}function tr(e){return typeof e=="string"?Pr(e):typeof e=="number"||typeof e=="boolean"||e===null?e:Array.isArray(e)?e.slice(0,5).map(tr):Us(e)?Object.fromEntries(Object.entries(e).slice(0,8).map(([t,r])=>[t,tr(r)])):String(e)}function Pr(e){let t=e.replace(/\s+/g," ").trim();return t.length<=Cw?t:`${t.slice(0,Cw-1)}\u2026`}function Mw(e){let t=$(e).trimEnd(),r=H(t);if(!Zl(e,r))throw new Error("exec TOON round-trip guard failed");return`${t}
|
|
120
|
+
`}function Zl(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=typeof t||typeof e!="object"||Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){let i=t;return e.length!==i.length?!1:e.every((a,c)=>Zl(a,i[c]))}let r=e,n=t,s=Object.keys(r),o=Object.keys(n);return s.length!==o.length?!1:s.every(i=>Object.prototype.hasOwnProperty.call(n,i)&&Zl(r[i],n[i]))}function Us(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Bw(e){let r=(e instanceof Error?e.message:String(e??"unknown scorer failure")).split(/\r?\n/,1)[0]?.replace(/\s+/g," ").trim()||"unknown scorer failure";return r.length<=240?r:`${r.slice(0,239)}\u2026`}function Aw(e){return e.toString("utf8").replace(/�$/g,"")}function MI(e){if(e.length===0)return 0;let t=0;for(let r of e)r===10&&t++;return e[e.length-1]===10?t:t+1}function BI(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}var hI,yI,Pw,Cw,qs=h(()=>{"use strict";ae();J();aw();Ar();Bs();at();hI=8*1024,yI=2*1024,Pw=1024,Cw=240});var sa={};K(sa,{RSP_WRAPPER_CAPABILITIES:()=>Vs,_testOnlyResetBinaryState:()=>QI,formatCodexHookDecision:()=>Zw,formatHookDecision:()=>Xw,hookDecisionFromClaudePreExecJson:()=>nL,hookDecisionFromCodexPreExecJson:()=>sL,rewriteCommand:()=>Yw,rewriteTableFromCapabilities:()=>zw,runClaudePreExecHook:()=>oL,runCodexPreExecHook:()=>iL});import{accessSync as VI,constants as KI,existsSync as zI,readFileSync as ra}from"node:fs";import{fileURLToPath as YI}from"node:url";function QI(){ta=void 0,td=!1}function XI(){let e=(process.env.PATH??"").split(":");for(let t of e)if(t)try{return VI(`${t}/rsp`,KI.X_OK),!0}catch{}return!1}function ZI(e){return ta===void 0&&(ta=e()),ta}function eL(){td||(td=!0,process.stderr.write("rsp: entrypoint not found on PATH; run `rsp setup` to provision. See apps/rsp/docs/TROUBLESHOOTING.md\n"))}function zw(e){let t=new Map;for(let r of e)t.set(SL(r.command),["rsp",...r.wrapper]);return t}function Yw(e,t=Ns()){let r=gL(e);if(r)return r;let n=mL(e);if(!n)return ea(e,t);let s=n.tokens.map(u=>u.text);if(s.length>0&&gn(s[0]))return ea(e,t);let o=rL(n,t);if(o)return o;if(n.tokens.some(u=>u.quoted))return ea(e,t);let i=[...Vs].sort((u,l)=>l.command.length-u.command.length).find(u=>fL(s,u.command));if(!i)return ea(e,t);let a=[...t,...i.wrapper,...s.slice(i.command.length)],c=s_(n.redirectSuffix);return{kind:"rewrite",command:[...a.map(rr),...c].join(" "),capabilityId:i.id}}function rL(e,t){let r=e.tokens.map(i=>i.text),n=r[0],s=s_(e.redirectSuffix),o=t.map(rr);return n==="cat"&&r.length===2&&Zi(r[1])?{kind:"rewrite",command:[...o,"cat",rr(r[1]),...s].join(" "),capabilityId:"cat:file"}:(n==="head"||n==="tail")&&r.length===2&&Zi(r[1])?{kind:"rewrite",command:[...o,"cat",`--${n}`,"10",rr(r[1]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===4&&r[1]==="-n"&&/^[1-9][0-9]*$/.test(r[2])&&Zi(r[3])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[2],rr(r[3]),...s].join(" "),capabilityId:`cat:${n}`}:(n==="head"||n==="tail")&&r.length===3&&/^-[1-9][0-9]*$/.test(r[1])&&Zi(r[2])?{kind:"rewrite",command:[...o,"cat",`--${n}`,r[1].slice(1),rr(r[2]),...s].join(" "),capabilityId:`cat:${n}`}:null}function Zi(e){return!!e&&!e.startsWith("-")}async function nL(e,t){return await Qw(e,t)}async function sL(e,t){return await Qw(e,t)}async function Qw(e,t){return(await nd(e,t,"pre-exec")).decision}async function nd(e,t,r){let n=c_(e);if(!n.ok){let f={kind:"passthrough",reason:n.reason};return{decision:f,telemetryRoot:t.cwd,event:kn({hook:r,command:"",decision:f,reason:n.reason})}}let s=n.payload,o=tt(s,["cwd"])||tt(s,["tool_input","cwd"])||t.cwd;if(!await(t.isEnabled??aL)(o)){let f={kind:"passthrough",reason:"disabled"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:rd(s),decision:f,reason:"disabled"})}}let a=rd(s);if(!a){let f={kind:"passthrough",reason:"missing-command"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:a,decision:f,reason:"missing-command"})}}let c=t.rspInvocationPrefix??Ns();if(!ZI(t.resolveBinary??(()=>t.rspInvocationPrefix!==void 0||c[0]!=="rsp"||XI()))){eL();let f={kind:"passthrough",reason:"binary-unresolved"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:a,decision:f,reason:"binary-unresolved"})}}let l=process.hrtime.bigint(),p=De(o,process.env).proxyEnabled?hL(a,c):(t.rewrite??(f=>Yw(f,c)))(a),g=Number(process.hrtime.bigint()-l)/1e6;if(p.kind!=="rewrite"){let f=p.reason?p:{...p,reason:"unsupported-command"};return{decision:f,telemetryRoot:o,event:kn({hook:r,command:a,decision:f,reason:f.reason??"unsupported-command",decisionMs:g})}}return await uL(o,t.wakeResident??cL),{decision:p,telemetryRoot:o,event:kn({hook:r,command:a,decision:p,reason:p.capabilityId==="proxy:universal"?"universal-proxy":"matched-capability",decisionMs:g})}}function Xw(e){return e.kind==="rewrite"?e_(e.command):{stdout:"",status:0}}function Zw(e){return e.kind==="rewrite"?e_(e.command):{stdout:"",status:0}}function e_(e){return{stdout:`${JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{command:e}}})}
|
|
121
|
+
`,status:0}}async function oL(e){let t="";try{t=e?ra(e,"utf8"):ra(0,"utf8");let r=await nd(t,{cwd:process.cwd()},"claude-pre-exec");na(r.telemetryRoot,r.event);let n=r.decision;r_("claude-pre-exec",n);let s=Xw(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return na(process.cwd(),t_("claude-pre-exec",t,r)),n_("claude-pre-exec",r),0}}async function iL(e){let t="";try{t=e?ra(e,"utf8"):ra(0,"utf8");let r=await nd(t,{cwd:process.cwd()},"codex-pre-exec");na(r.telemetryRoot,r.event);let n=r.decision;r_("codex-pre-exec",n);let s=Zw(n);return s.stdout&&process.stdout.write(s.stdout),s.status}catch(r){return na(process.cwd(),t_("codex-pre-exec",t,r)),n_("codex-pre-exec",r),0}}function na(e,t){kr(e,t).catch(()=>{})}function kn(e){let t=e.command.trim(),r=e.decision.kind==="rewrite"?e.decision.capabilityId:void 0;return{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:e.hook,command:t||"unknown",command_family:He(t),decision:r?"contributed":"passed",reason:e.reason,capability_id:r,decision_ms:e.decisionMs}}function t_(e,t,r){let n=c_(t),s=n.ok?rd(n.payload):"";return{collection:Ae,event_type:"decision",ts:new Date().toISOString(),hook:e,command:s||"unknown",command_family:He(s),decision:"failed-open",reason:"hook-exception",error:sd(r)}}function aL(e){return De(e,process.env).enabled}async function cL(e){let t=De(e,process.env);if(!t.enabled||!pL(t))return;let r=ct(e);await vo(r,dL(t))}async function uL(e,t){try{await Promise.resolve(t(e))}catch(r){lL(r)}}function r_(e,t){if(process.env.RSP_DEBUG==="1"){if(t.kind==="rewrite"){process.stderr.write(`rsp hook ${e}: rewrite ${t.capabilityId}
|
|
123
122
|
`);return}process.stderr.write(`rsp hook ${e}: passthrough ${t.reason??"unsupported-command"}
|
|
124
|
-
`)}}function
|
|
125
|
-
`)}function
|
|
126
|
-
`)}function
|
|
127
|
-
`)}function
|
|
128
|
-
`),u=o.map(({alias:
|
|
129
|
-
`)),l=i.map(({alias:
|
|
130
|
-
`);return{kind:e,query:
|
|
131
|
-
`)}}function
|
|
132
|
-
`)}}function
|
|
123
|
+
`)}}function n_(e,t){process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook ${e}: exception ${sd(t)}
|
|
124
|
+
`)}function lL(e){Pc(e)||process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp hook pre-exec: resident-wake-failed ${sd(e)}
|
|
125
|
+
`)}function sd(e){return e instanceof Error?e.name||"Error":typeof e}function dL(e){return{storeUri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,telemetryTtlDays:e.telemetryTtlDays,telemetryByteBudget:e.telemetryByteBudget,telemetryDrainIntervalMs:e.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:e.telemetryDrainTimeoutMs,idleMs:e.idleMs}}function pL(e){if(!e.storeUri.startsWith("file://"))return!0;try{return zI(YI(e.storeUri))}catch{return!1}}function rd(e){return tt(e,["tool_input","command"])||tt(e,["tool_input","cmd"])||tt(e,["tool_input","args","command"])||tt(e,["input","command"])||tt(e,["input","cmd"])||tt(e,["arguments","command"])||tt(e,["arguments","cmd"])||tt(e,["command"])||tt(e,["cmd"])}function mL(e){let t=e.trim();if(!t||/[\n\r|;()$`]/.test(t))return null;let r=od(t);if(r.length===0||r[0]?.quoted||r.some(o=>/[()$`]/.test(o.text))||r.some(o=>o.text.includes("=")&&gn(o.text)))return null;let n=[],s=[];for(let o of r){if(o.text.includes(">")||o.text.includes("<")){if(o.quoted||o.text!=="2>/dev/null"&&o.text!=="2>&1")return null;s.push(o);continue}n.push(o)}return n.length===0?null:{tokens:n,redirectSuffix:s}}function od(e){let t=[],r="",n=!1,s=null,o=()=>{!r&&!n||(t.push({text:r,quoted:n}),r="",n=!1)};for(let i=0;i<e.length;i+=1){let a=e[i];if(s){if(a===s){s=null;continue}if(s==='"'&&a==="\\"&&i+1<e.length){i+=1,r+=e[i];continue}r+=a;continue}if(a==="'"||a==='"'){s=a,n=!0;continue}if(a==="\\"&&i+1<e.length){i+=1,r+=e[i];continue}if(/[ \t]/.test(a)){o();continue}r+=a}return s?[]:(o(),t)}function fL(e,t){return e.length<t.length?!1:t.every((r,n)=>e[n]===r)}function gL(e){let t=od(e.trim()).map(r=>r.text);return Sr(t)?{kind:"passthrough",reason:tL}:null}function s_(e){return e.map(t=>t.text)}function rr(e){return/[^\w@%+=:,./-]/.test(e)?id(e):e}function hL(e,t){let r=bL(e);return r?{kind:"passthrough",reason:r}:{kind:"rewrite",command:`${t.map(rr).join(" ")} proxy -- ${id(e.trim())}`,capabilityId:"proxy:universal"}}function yL(e){if(!process.argv[1])return!1;let t=od(e);return t[0]?.text===process.execPath&&t[1]?.text===process.argv[1]}function bL(e){let t=e.trim();if(!t)return"missing-command";if(i_(t))return"background";if(/\b(?:RSP_NO_PROXY|RED_SKILLS_RSP_NO_PROXY)=1\b/.test(t))return"opt-out";let r=ws(bs(t)[0]??"")[0];if(r==="rsp"||yL(t))return"opt-out";if(r&&o_.has(r))return"interactive"}function ea(e,t){let r=e.trim();return wL(r)?{kind:"rewrite",command:`${t.map(rr).join(" ")} exec -- ${id(r)}`,capabilityId:"exec:compound"}:{kind:"passthrough"}}function wL(e){return!(!e||!_L(e)||!EL(e)||i_(e)||/<<-?/.test(e)||/\$\(|`/.test(e)||/[<>]/.test(e)||RL(e,"rsp")||a_(e,o_)||kL(e))}function _L(e){return/&&|[;|]/.test(e)}function i_(e){for(let t=0;t<e.length;t+=1)if(e[t]==="&"&&!(e[t-1]==="&"||e[t+1]==="&")&&!(e[t-1]===">"||e[t+1]===">"))return!0;return!1}function EL(e){return bs(e).some(t=>{let r=ws(t);return r.length===0?!1:r[0]==="git"?["log","diff","show","blame"].includes(r[1]??""):r[0]==="gh"?r.some((n,s)=>s>0&&(n==="list"||n==="view")):r[0]==="vitest"?!0:r[0]==="cargo"&&r[1]==="test"})}function a_(e,t){return bs(e).some(r=>{let n=ws(r)[0];return n?t.has(n):!1})}function RL(e,t){return a_(e,new Set([t]))}function kL(e){return bs(e).some(t=>{let r=ws(t);return r[0]==="grep"&&r.includes("-q")})}function id(e){return`'${e.replace(/'/g,"'\\''")}'`}function SL(e){return e.join("\0")}function c_(e){try{let t=JSON.parse(e);return u_(t)?{ok:!0,payload:t}:{ok:!1,reason:"payload-not-object"}}catch{return{ok:!1,reason:"payload-parse-error"}}}function tt(e,t){let r=e;for(let n of t){if(!u_(r))return"";r=r[n]}return typeof r=="string"?r:""}function u_(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ta,td,Vs,c2,tL,o_,Ks=h(()=>{"use strict";_s();Be();ut();Jt();ql();mt();td=!1;Vs=[{id:"git:status",command:["git","status"],wrapper:["git","status"]},{id:"git:log",command:["git","log"],wrapper:["git","log"]},{id:"git:diff",command:["git","diff"],wrapper:["git","diff"]},{id:"git:commit",command:["git","commit"],wrapper:["git","commit"]},{id:"git:push",command:["git","push"],wrapper:["git","push"]},{id:"git:blame",command:["git","blame"],wrapper:["git","blame"]},{id:"git:branch:av",command:["git","branch","-av"],wrapper:["git","branch","-av"]},{id:"git:show",command:["git","show"],wrapper:["git","show"]},{id:"gh:pr:list",command:["gh","pr","list"],wrapper:["gh","pr","list"]},{id:"gh:pr:view",command:["gh","pr","view"],wrapper:["gh","pr","view"]},{id:"gh:issue:list",command:["gh","issue","list"],wrapper:["gh","issue","list"]},{id:"gh:issue:view",command:["gh","issue","view"],wrapper:["gh","issue","view"]},{id:"gh:run:list",command:["gh","run","list"],wrapper:["gh","run","list"]},{id:"gh:run:view",command:["gh","run","view"],wrapper:["gh","run","view"]},{id:"gh:issues:batch",command:["gh","issues"],wrapper:["gh","issues"]},{id:"gh:prs:batch",command:["gh","prs"],wrapper:["gh","prs"]},{id:"gh:edit-labels:batch",command:["gh","edit-labels"],wrapper:["gh","edit-labels"]},{id:"gh:link-sub-issues:batch",command:["gh","link-sub-issues"],wrapper:["gh","link-sub-issues"]},{id:"vitest",command:["vitest"],wrapper:["vitest"]},{id:"vitest:run",command:["vitest","run"],wrapper:["vitest","run"]},{id:"cargo:test",command:["cargo","test"],wrapper:["cargo","test"]}],c2=zw(Vs),tL="lossless-gh-json-jq";o_=new Set(["bash","fish","htop","less","more","nano","node","python","python3","ssh","top","vi","vim","zsh"])});var h_={};K(h_,{fastTelemetryRoot:()=>cd,isFastGitStatus:()=>oa,runFastGitStatus:()=>ia});import{spawnSync as f_}from"node:child_process";import{existsSync as g_,readdirSync as LL}from"node:fs";function oa(e){return e.length===2&&e[0]==="git"&&e[1]==="status"}async function ia(){if(GL(process.cwd()))return{stdout:ad(),stderr:Buffer.alloc(0),status:0,signal:null};if(f_("git",["diff-index","--quiet","HEAD","--"],{stdio:"ignore"}).status===0)return{stdout:ad(),stderr:Buffer.alloc(0),status:0,signal:null};let t=f_("git",["status","--porcelain=v1"],{encoding:"buffer"});if((t.status??0)!==0)return{stdout:t.stdout,stderr:t.stderr,status:t.status??1,signal:t.signal};let r=t.stdout.length===0?ad():t.stdout;return{stdout:r,stderr:t.stderr,status:0,signal:t.signal,rawOutput:r}}async function cd(e){try{let{resolveResidentPaths:t}=await Promise.resolve().then(()=>(ut(),br));return t(e).rootDir}catch{return e}}function ad(){return Buffer.from(`${ne({command:"git status",category:"no-op",exit_code:0,noop:!0,scope:"git status",empty:!0,branch:"",rows:[],summary:"git status clean: 0 changes"})}
|
|
126
|
+
`)}function GL(e){try{return!g_(`${e}/.git`)||g_(`${e}/.git/index`)?!1:LL(e).every(t=>t===".git")}catch{return!1}}var ud=h(()=>{"use strict";vt()});async function Tn(e,t,r){let n=new Array(e.length),s=0,o=Math.min(Math.max(1,Math.floor(t)),e.length),i=Array.from({length:o},async()=>{for(;s<e.length;){let a=s++;n[a]=await r(e[a])}});return await Promise.all(i),n}function w_(e,t,r,n={}){QL(t);let s=e==="issue"?"i":"p",o=t.map((p,g)=>({alias:`${s}${g}`,number:p})),i=(n.labelNames??[]).map((p,g)=>({alias:`l${g}`,name:p})),c=XL(["id","number",...r]).map(p=>ZL(YL[p],6)).join(`
|
|
127
|
+
`),u=o.map(({alias:p,number:g})=>[` ${p}: ${e}(number: ${g}) {`,c," }"].join(`
|
|
128
|
+
`)),l=i.map(({alias:p,name:g})=>` ${p}: label(name: ${JSON.stringify(g)}) { id name }`),d=["query RspGitHubBatch($owner: String!, $repo: String!) {"," repository(owner: $owner, name: $repo) {",...u,...l," }","}"].join(`
|
|
129
|
+
`);return{kind:e,query:d,aliases:o,labelAliases:i}}function __(e,t){let r=Sn(t),n=Sn(r.data),s=Sn(n.repository),o=Array.isArray(r.errors)?r.errors.map(Sn):[];return e.aliases.map(({alias:i,number:a})=>{let c=s[i];if(k_(c))return{number:a,value:c};let u=o.find(l=>{let d=l.path;return Array.isArray(d)&&d.includes(i)});return{number:a,error:S_(u?.message)||"not found"}})}function E_(e,t,r){let n=[],s=[];return e.forEach((o,i)=>{if(t.length>0){let a=`add${i}`;n.push({alias:a,number:o.number}),s.push(` ${a}: addLabelsToLabelable(input: { labelableId: ${sr(o.nodeId)}, labelIds: ${b_(t)}, clientMutationId: ${sr(String(o.number))} }) { clientMutationId }`)}if(r.length>0){let a=`remove${i}`;n.push({alias:a,number:o.number}),s.push(` ${a}: removeLabelsFromLabelable(input: { labelableId: ${sr(o.nodeId)}, labelIds: ${b_(r)}, clientMutationId: ${sr(String(o.number))} }) { clientMutationId }`)}}),{aliases:n,query:["mutation RspEditLabels {",...s,"}"].join(`
|
|
130
|
+
`)}}function R_(e,t){let r=t.map((s,o)=>({alias:`link${o}`,number:s.number})),n=t.map((s,o)=>` link${o}: addSubIssue(input: { issueId: ${sr(e.nodeId)}, subIssueId: ${sr(s.nodeId)}, clientMutationId: ${sr(String(s.number))} }) { clientMutationId }`);return{aliases:r,query:["mutation RspLinkSubIssues {",...n,"}"].join(`
|
|
131
|
+
`)}}function ld(e,t){let r=Sn(t),n=Array.isArray(r.errors)?r.errors.map(Sn):[],s=new Map;for(let{alias:o}of e){let i=n.find(a=>Array.isArray(a.path)&&a.path.includes(o));i&&s.set(o,S_(i.message)||"mutation failed")}return s}function QL(e){if(e.length===0)throw new Error("at least one GitHub number is required");if(e.length>100)throw new Error("GitHub batch exceeds 100 nodes");for(let t of e)if(!Number.isSafeInteger(t)||t<=0)throw new Error(`invalid GitHub number: ${t}`)}function XL(e){return[...new Set(e)]}function ZL(e,t){let r=" ".repeat(t);return e.split(`
|
|
133
132
|
`).map(n=>`${r}${n}`).join(`
|
|
134
|
-
`)}function sr(e){return JSON.stringify(e)}function
|
|
135
|
-
`),subIssues:"subIssues(first: 100) { nodes { number } }"}});import{spawn as
|
|
136
|
-
`))}async function
|
|
137
|
-
`),stderr:Buffer.from(r),status:t,signal:null,payload:e}}function
|
|
138
|
-
${e.stdout}`)}function
|
|
139
|
-
`)[0]?.slice(0,240)??""}function or(e){try{return e.trim()?JSON.parse(e):{}}catch{return{}}}function
|
|
133
|
+
`)}function sr(e){return JSON.stringify(e)}function b_(e){return`[${e.map(sr).join(", ")}]`}function Sn(e){return k_(e)?e:{}}function k_(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function S_(e){return typeof e=="string"?e:""}var YL,T_=h(()=>{YL={id:"id",number:"number",title:"title",state:"state",labels:"labels(first: 100) { nodes { id name } }",body:"body",mergeable:"mergeable",checks:["commits(last: 1) {"," nodes { commit { statusCheckRollup {"," state"," contexts(first: 100) { nodes {"," __typename"," ... on CheckRun { name status conclusion detailsUrl }"," ... on StatusContext { context state targetUrl }"," } }"," } } }","}"].join(`
|
|
134
|
+
`),subIssues:"subIssues(first: 100) { nodes { number } }"}});import{spawn as tG,spawnSync as rG}from"node:child_process";function md(e){return e[0]==="gh"&&["issues","prs","edit-labels","link-sub-issues"].includes(e[1]??"")}async function C_(e,t={}){let r=hG(e),n=r.repo??t.repo??process.env.GH_REPO??bG();if(!n||!n.includes("/"))return hd(e,"repository is required; pass --repo owner/repo");let s=t.exec??wG,o=Math.max(1,Math.floor(t.restConcurrency??x_));return r.verb==="issues"||r.verb==="prs"?await oG(r,n,s,o,e):r.verb==="edit-labels"?await aG(r,n,s,o,e):await uG(r,n,s,o,e)}async function oG(e,t,r,n,s){let o=e.verb==="issues"?"issue":"pullRequest",i=O_(e),a=[],c=[];for(let l of gd(e.numbers,100)){let d=w_(o,l,i.query),p=await fd(r,t,d.query);if(bd(p))return await iG(e,t,r,n,s);if(p.code!==0){c.push(p.stderr),a.push(...l.map(g=>({number:g,value:{error:We(p)||`failed to read ${g}`},failed:!0})));continue}a.push(...__(d,or(p.stdout)).map(g=>({number:g.number,value:g.error?{error:g.error}:dG(e.verb,g.value??{},i.output),failed:!!g.error})))}let u=a.filter(l=>l.failed).length;return ca({command:ua(s),transport:"graphql",order:e.numbers,[e.verb]:zs(a),summary:`${a.length-u}/${a.length} read`},c.length>0?1:0,c.filter(Boolean).join(`
|
|
135
|
+
`))}async function iG(e,t,r,n,s){let o=O_(e),i=e.verb==="issues"?"issues":"pulls",a=await Tn(e.numbers,n,async u=>{let l=await r(["api",`repos/${t}/${i}/${u}`]);if(l.code!==0)return{number:u,value:{error:We(l)||"REST fallback failed"}};let d=gt(or(l.stdout));if(e.verb==="prs"&&o.output.some(A_)){let p=te(gt(d.head).sha);if(!p)return{number:u,value:{error:"REST fallback pull response omitted head SHA"}};let g=await r(["api",`repos/${t}/commits/${p}/check-runs`]);if(g.code!==0)return{number:u,value:{error:We(g)||"REST check-runs fallback failed"}};let f=await r(["api",`repos/${t}/commits/${p}/status`]);if(f.code!==0)return{number:u,value:{error:We(f)||"REST commit-status fallback failed"}};d={...d,restCheckRollup:mG(gt(or(g.stdout)),gt(or(f.stdout)))}}return{number:u,value:pG(e.verb,d,o.output)}}),c=a.filter(u=>"error"in u.value).length;return ca({command:ua(s),transport:"rest-fallback",degraded:"graphql-quota",concurrency:n,order:e.numbers,[e.verb]:zs(a),summary:`${a.length-c}/${a.length} read via REST fallback`})}async function aG(e,t,r,n,s){if(e.add.length===0&&e.remove.length===0)return hd(s,"pass --add and/or --remove");let o=[...new Set([...e.add,...e.remove])],[i,a]=await Promise.all([P_(e.numbers,t,r,n),Tn(o,n,async p=>{let g=await r(["api",`repos/${t}/labels/${encodeURIComponent(p)}`]);return{name:p,nodeId:te(gt(or(g.stdout)).node_id),error:g.code===0?"":We(g)}})]),c=new Map(a.map(p=>[p.name,p.nodeId])),u=o.filter(p=>!c.get(p));if(u.length>0)return xn(s,e.numbers,yd(e.numbers,()=>({error:`label not found: ${u.join(", ")}`})),"graphql");let l=new Map(i.filter(p=>p.error).map(p=>[p.number,{error:p.error}])),d=i.flatMap(p=>p.nodeId?[{number:p.number,nodeId:p.nodeId}]:[]);for(let p of gd(d,100)){let g=E_(p,e.add.map(E=>c.get(E)),e.remove.map(E=>c.get(E))),f=await fd(r,t,g.query);if(bd(f))return await cG(e,t,r,n,s);if(f.code!==0){for(let E of p)l.set(E.number,{error:We(f)||"label mutation failed"});continue}let k=ld(g.aliases,or(f.stdout));for(let E of p){let _=g.aliases.filter(T=>T.number===E.number).map(T=>k.get(T.alias)).find(Boolean);l.set(E.number,_?{error:_}:{ok:!0})}}return xn(s,e.numbers,I_(e.numbers,l),"graphql")}async function cG(e,t,r,n,s){let o=await Tn(e.numbers,n,async i=>{for(let a of e.remove){let c=await r(["api","-X","DELETE",`repos/${t}/issues/${i}/labels/${encodeURIComponent(a)}`]);if(c.code!==0)return{number:i,value:{error:We(c)||`failed to remove label ${a}`}}}if(e.add.length>0){let a=["api","-X","POST",`repos/${t}/issues/${i}/labels`];for(let u of e.add)a.push("-f",`labels[]=${u}`);let c=await r(a);if(c.code!==0)return{number:i,value:{error:We(c)||"failed to add labels"}}}return{number:i,value:{ok:!0}}});return xn(s,e.numbers,zs(o),"rest-fallback",n)}async function uG(e,t,r,n,s){if(e.numbers.length<2)return hd(s,"pass a parent and at least one child issue");let[o,...i]=e.numbers,a=await P_(e.numbers,t,r,n),c=a[0],u=c?.nodeId;if(!u)return xn(s,i,yd(i,()=>({error:c?.error??"parent not found"})),"graphql");let l=new Map,d=a.slice(1).flatMap(p=>p.nodeId?[{number:p.number,nodeId:p.nodeId}]:(l.set(p.number,{error:p.error??"child not found"}),[]));for(let p of gd(d,100)){let g=R_({number:o,nodeId:u},p),f=await fd(r,t,g.query);if(bd(f))return await lG(o,i,t,r,n,s);if(f.code!==0){for(let E of p)l.set(E.number,{error:We(f)||"sub-issue mutation failed"});continue}let k=ld(g.aliases,or(f.stdout));for(let E of g.aliases){let y=k.get(E.alias);l.set(E.number,y?{error:y}:{ok:!0})}}return xn(s,i,I_(i,l),"graphql")}async function lG(e,t,r,n,s,o){let i=await Tn(t,s,async a=>{let c=await n(["api",`repos/${r}/issues/${a}`,"--jq",".id"]),u=Number(c.stdout.trim());if(c.code!==0||!Number.isSafeInteger(u)||u<=0)return{number:a,value:{error:We(c)||"REST id lookup failed"}};let l=await n(["api","-X","POST",`repos/${r}/issues/${e}/sub_issues`,"-F",`sub_issue_id=${u}`]);return{number:a,value:l.code===0?{ok:!0}:{error:We(l)||"REST link failed"}}});return xn(o,t,zs(i),"rest-fallback",s)}function xn(e,t,r,n,s){let o=Object.values(r).filter(i=>Cn(i)&&"error"in i).length;return ca({command:ua(e),transport:n,...n==="rest-fallback"?{degraded:"graphql-quota",concurrency:s??x_}:{},order:[...t],issues:r,summary:`${t.length-o}/${t.length} mutated`})}function O_(e){if(e.verb==="issues"){let r=e.fields.length>0?e.fields:["title","state","labels","body"];return v_(r,nG),{output:r,query:r}}let t=e.fields.length>0?e.fields:["title","state","mergeable","checks"];return v_(t,sG),{output:t,query:t.map(r=>["checkRollup","statusCheckRollup"].includes(r)?"checks":r)}}function v_(e,t){let r=e.find(n=>!t.has(n));if(r)throw new Error(`unknown GitHub batch field: ${r}`)}function dG(e,t,r){let n={};for(let s of r)s==="labels"?n.labels=dd(t.labels).map(o=>te(o.name)).filter(Boolean):["checks","checkRollup","statusCheckRollup"].includes(s)?n[s]=gG(t.commits):s==="state"||s==="mergeable"?n[s]=te(t[s]).toLowerCase():s!=="id"&&s!=="subIssues"&&(n[s]=L_(t[s]));return"number"in n||(n.number=wd(t.number)),n}function pG(e,t,r){let n={};for(let s of r)if(s==="labels"){let o=Array.isArray(t.labels)?t.labels.filter(Cn):[];n.labels=o.map(i=>te(i.name)).filter(Boolean)}else if(A_(s))n[s]=gt(t.restCheckRollup);else if(s==="state")n.state=te(t.state).toLowerCase();else if(s==="mergeable"){let o=t.mergeable;n.mergeable=typeof o=="boolean"?o?"mergeable":"conflicting":"unknown"}else n[s]=L_(t[s]);return"number"in n||(n.number=wd(t.number)),n}function mG(e,t){let r=Array.isArray(e.check_runs)?e.check_runs.filter(Cn):[],n=Array.isArray(t.statuses)?t.statuses.filter(Cn):[],s=[...r.map(o=>({name:te(o.name),state:(te(o.conclusion)||te(o.status)).toLowerCase()})),...n.map(o=>({name:te(o.context),state:te(o.state).toLowerCase()}))];return{state:te(t.state).toLowerCase()||fG(s.map(o=>o.state)),contexts:s}}function fG(e){return e.some(t=>["failure","error","cancelled","timed_out","action_required"].includes(t))?"failure":e.some(t=>["pending","queued","in_progress","requested","waiting"].includes(t))?"pending":e.length>0&&e.every(t=>["success","neutral","skipped"].includes(t))?"success":""}function A_(e){return["checks","checkRollup","statusCheckRollup"].includes(e)}function gG(e){let t=dd(e).at(-1),r=gt(gt(t?.commit).statusCheckRollup);return{state:te(r.state).toLowerCase(),contexts:dd(r.contexts).map(n=>({name:te(n.name)||te(n.context),state:(te(n.conclusion)||te(n.status)||te(n.state)).toLowerCase()}))}}async function fd(e,t,r){let[n,s]=yG(t);return await e(["api","graphql","-f",`query=${r}`,"-F",`owner=${n}`,"-F",`repo=${s}`])}async function P_(e,t,r,n){return await Tn(e,n,async s=>{let o=await r(["api",`repos/${t}/issues/${s}`]),i=gt(or(o.stdout)),a=te(i.node_id),c=wd(i.id);return o.code!==0||!a?{number:s,error:We(o)||"REST issue lookup failed"}:{number:s,nodeId:a,databaseId:c>0?c:void 0}})}function gd(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function hG(e){if(!md(e))throw new Error("unsupported rsp gh batch command");let t=e[1],r=[],n=[],s=[],o=[],i;for(let a=2;a<e.length;a++){let c=e[a];if(c==="--repo")i=e[++a];else if(c==="--json")n.push(...vn(e[++a]??""));else if(c.startsWith("--json="))n.push(...vn(c.slice(7)));else if(c==="--add")s.push(...vn(e[++a]??""));else if(c.startsWith("--add="))s.push(...vn(c.slice(6)));else if(c==="--remove")o.push(...vn(e[++a]??""));else if(c.startsWith("--remove="))o.push(...vn(c.slice(9)));else{let u=Number(c);if(!Number.isSafeInteger(u)||u<=0)throw new Error(`invalid GitHub number: ${c}`);r.push(u)}}if(r.length===0)throw new Error("at least one GitHub number is required");return{verb:t,numbers:r,repo:i,fields:n,add:s,remove:o}}function ca(e,t=0,r=""){return{stdout:Buffer.from(`${$(e)}
|
|
136
|
+
`),stderr:Buffer.from(r),status:t,signal:null,payload:e}}function hd(e,t){return ca({command:ua(e),category:"usage",error:t,help:"rsp gh --help",exit_code:2},2)}function yd(e,t){return zs(e.map(r=>({number:r,value:t(r)})))}function zs(e){return Object.fromEntries(e.map(t=>[String(t.number),t.value]))}function I_(e,t){return yd(e,r=>t.get(r)??{error:"mutation skipped"})}function bd(e){return e.code!==0&&/rate.?limit|rate_limit|RATE_LIMITED|quota/i.test(`${e.stderr}
|
|
137
|
+
${e.stdout}`)}function We(e){return(e.stderr||e.stdout).trim().split(`
|
|
138
|
+
`)[0]?.slice(0,240)??""}function or(e){try{return e.trim()?JSON.parse(e):{}}catch{return{}}}function dd(e){let t=gt(e).nodes;return Array.isArray(t)?t.filter(Cn):[]}function L_(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||e===null?e:""}function wd(e){let t=Number(e);return Number.isFinite(t)?t:0}function vn(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function yG(e){let t=e.indexOf("/");return[e.slice(0,t),e.slice(t+1)]}function ua(e){return`rsp ${e.join(" ")}`}function bG(){let e=rG("git",["config","--get","remote.origin.url"],{encoding:"utf8"});if(e.status!==0)return;let t=e.stdout.trim().match(/(?:github\.com[/:])([^/]+)\/([^/]+?)(?:\.git)?$/);return t?`${t[1]}/${t[2]}`:void 0}async function wG(e){let t=tG("gh",e,{stdio:["ignore","pipe","pipe"]}),r=Ge();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",a=>o({code:a??1,stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(s).toString("utf8")}))})}function gt(e){return Cn(e)?e:{}}function Cn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function te(e){return typeof e=="string"?e:""}var x_,nG,sG,G_=h(()=>{"use strict";ae();J();T_();x_=4,nG=new Set(["number","title","state","labels","body"]),sG=new Set(["number","title","state","mergeable","checks","checkRollup","statusCheckRollup","body"])});var xd={};K(xd,{renderGhContract:()=>B_,runGhWrapper:()=>TG});import{spawn as _G}from"node:child_process";async function TG(e,t){if(md(e))return await C_(e);let r=j_(e),n=await xG(r);return B_(e,n,t)}async function B_(e,t,r){if((t.status??0)!==0||t.signal){let g=ze(e.join(" "),t.stdout,t.stderr);return{stdout:V(g),stderr:Buffer.from(t.stderr),status:g.exitCode??1,signal:t.signal}}let n=j_(e),s=Ys(t.stdout),o=DG(n,e,s);if(typeof o=="string")return{stdout:Buffer.from(o),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal};let i=HG(o);if(i){if(!r.store)throw new Error("truncated gh output requires an elision store");let g=await r.store.mint(Buffer.from(i.original),{command:e.join(" "),loss:{level:n.full?"brief":r.level,bytes_elided:i.bytes}});i.target.truncated.handle=g}let a=i?.target.truncated.handle||void 0,c=$(o);if(r.level!=="terse")return{stdout:Buffer.from(c),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o,mintedHandle:a,bytesElided:i?.bytes};let u=qG(o);if(!u)return{stdout:Buffer.from(c),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:o,mintedHandle:a,bytesElided:i?.bytes};let l=Buffer.byteLength(c),d=await r.store?.mint(Buffer.from(c),{command:e.join(" "),loss:{level:"terse",bytes_elided:l}});if(!d)throw new Error("terse gh output requires an elision store");let p=`\u2026 elided ${u.rowsElided} rows (+${l}) \u2014 ${et(d)}
|
|
140
139
|
`;return{stdout:Buffer.from(`${$(u.payload)}
|
|
141
|
-
${d}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:u.payload,mintedHandle:p,bytesElided:l,rowsElided:u.rowsElided,rawOutput:Buffer.from(c)}}function C_(e){let t=Hn(e);if(t.argv[0]!=="gh")throw new Error("expected rsp gh <surface> <subcommand>");let r=t.argv[1],n=t.argv[2];if(!(r==="pr"||r==="issue"||r==="run"))throw new Error(`unsupported gh surface: ${r??""}`);let s=r==="pr"&&n&&n!=="list"&&n!=="view";if(!(n==="list"||n==="view"||s))throw new Error(`unsupported gh subcommand: ${n??""}`);let o=r,i=[],a=!1,c=!1,u=new Set,l=t.argv.slice(3);for(let g=0;g<l.length;g+=1){let f=l[g]??"";f==="--full"?a=!0:f==="--wide"?c=!0:f==="--fields"?u=k_(l[++g]??""):f.startsWith("--fields=")?u=k_(f.slice(9)):i.push(f)}let d={kind:o,action:s?"combined":n==="list"?"list":"view",target:s?n:void 0,full:a,wide:c,fields:u,passthrough:i,query:t.query};return zL(d),d}function R_(e){if(e.action==="combined")throw new Error("combined gh command uses multiple machine calls");let t=`${e.kind}:${e.action}`,r=e.wide||e.fields.size>0?WL[t]:qL[t];return[e.kind,e.action,...e.passthrough,"--json",r.join(",")]}function k_(e){return new Set(e.split(",").map(t=>t.trim()).filter(Boolean))}function zL(e){if(e.fields.size===0)return;if(e.action!=="list")throw new sa(e,"--fields is supported for list outputs");let t=`${e.kind}:list`,r=VL[t];for(let n of e.fields)if(!r.includes(n))throw new sa(e,`unknown field: ${n}`,r)}async function YL(e){if(e.action==="combined")return await QL(e);let t=XL(e);if(!t)return await nD(R_(e));let r=await Oe({...t,command:["gh",...R_(e)].join(" ")});return r.status!==0?{stdout:r.stdout,stderr:r.stderr,status:r.status,signal:null}:{stdout:JSON.stringify(await ZL(e,r.stdout)),stderr:r.stderr,status:0,signal:null}}async function QL(e){let t=e.target??"",[r,n,s]=await Promise.all([Oe({path:`repos/{owner}/{repo}/pulls/${t}`,command:`gh pr view ${t}`}),Oe({path:`repos/{owner}/{repo}/pulls/${t}/commits`,command:`gh pr checks ${t}`}),Oe({path:`repos/{owner}/{repo}/issues/${t}/comments`,command:`gh pr view ${t} --comments`})]),o=[r,n,s].find(a=>(a.status??0)!==0);if(o)return{stdout:o.stdout,stderr:o.stderr,status:o.status,signal:null};let i=A_(Ys(r.stdout));return{stdout:JSON.stringify({view:i,checks:[],comments:{comments:Le(Ys(s.stdout)).map(tD)}}),stderr:[r.stderr,n.stderr,s.stderr].filter(Boolean).join(""),status:0,signal:null}}function XL(e){let t=P_(e.passthrough),r=rD(e.passthrough,"--limit")??30,n=yt(e.passthrough,"--state")??"open";switch(`${e.kind}:${e.action}`){case"pr:list":return{path:"repos/{owner}/{repo}/pulls",params:{state:n,per_page:r}};case"pr:view":return t?{path:`repos/{owner}/{repo}/pulls/${t}`}:null;case"issue:list":return{path:"repos/{owner}/{repo}/issues",params:{state:n,labels:yt(e.passthrough,"--label"),per_page:r}};case"issue:view":return t?{path:`repos/{owner}/{repo}/issues/${t}`}:null;case"run:list":return{path:"repos/{owner}/{repo}/actions/runs",params:{per_page:r}};case"run:view":return t?{path:`repos/{owner}/{repo}/actions/runs/${t}`}:null;default:return null}}async function ZL(e,t){let r=Ys(t);switch(`${e.kind}:${e.action}`){case"pr:list":return Le(r).map(O_);case"pr:view":return A_(r);case"issue:list":return Le(r).filter(n=>!Dr(n.pull_request)).map(S_);case"issue:view":return S_(r);case"run:list":return{items:Le(Y(r).workflow_runs).map(T_),total:Pe(Y(r),"total_count")};case"run:view":{let n=T_(r),s=P_(e.passthrough);if(!s)return n;let o=await Oe({path:`repos/{owner}/{repo}/actions/runs/${s}/jobs`,command:`gh run view ${s} jobs`});return{...n,jobs:o.status===0?Le(Y(Ys(o.stdout)).jobs).map(eD):[]}}default:return r}}function O_(e){let t=Y(e);return{number:Pe(t,"number"),title:L(t,"title"),state:L(t,"state").toUpperCase(),isDraft:!!t.draft,author:gd(t.user),labels:Le(t.labels).map(r=>({name:L(r,"name")})),url:L(t,"html_url"),updatedAt:L(t,"updated_at"),body:L(t,"body"),baseRefName:L(Y(t.base),"ref"),headRefName:L(Y(t.head),"ref")}}function A_(e){return O_(e)}function S_(e){let t=Y(e);return{number:Pe(t,"number"),title:L(t,"title"),state:L(t,"state").toUpperCase(),labels:Le(t.labels).map(r=>({name:L(r,"name")})),author:gd(t.user),url:L(t,"html_url"),updatedAt:L(t,"updated_at"),body:L(t,"body")}}function T_(e){let t=Y(e);return{databaseId:Pe(t,"database_id")||Pe(t,"id"),name:L(t,"name")||L(t,"display_title"),status:L(t,"status").toUpperCase(),conclusion:L(t,"conclusion").toUpperCase(),event:L(t,"event"),headBranch:L(t,"head_branch"),workflowName:L(t,"workflow_name"),createdAt:L(t,"created_at"),url:L(t,"html_url"),jobs:[]}}function eD(e){let t=Y(e);return{name:L(t,"name"),status:L(t,"status").toUpperCase(),conclusion:L(t,"conclusion").toUpperCase(),log:""}}function tD(e){let t=Y(e);return{author:gd(t.user),body:L(t,"body"),createdAt:L(t,"created_at")}}function gd(e){let t=Y(e);return{login:L(t,"login")}}function P_(e){return e.find(t=>!t.startsWith("-"))}function yt(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}function rD(e,t){let r=yt(e,t);if(!r)return;let n=Number(r);return Number.isFinite(n)&&n>0?n:void 0}async function nD(e){let t=HL("gh",e,{stdio:["ignore","pipe","pipe"]}),r=ke();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",(a,c)=>{o({stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(s).toString("utf8"),status:a,signal:c})})})}function sD(e,t,r){let n={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let s=ld(r,"prs"),o=s.rows.map(c=>I_(c,e)),i=Re(o,e.query),a=dd(i.length,o.length,s.total,e.query);return i.length===0?pd(n,e,"prs",a,["rsp gh issue list","rsp gh pr list --query <title-or-label>"]):On({...n,prs:i,aggregate:a,summary:`${md(i.length,o.length,e.query)} ${v_(i,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return On({...n,pr:L_(Y(r),e),summary:`PR #${Pe(Y(r),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return oD(e,t,Y(r));case"issue:list":{let s=ld(r,"issues"),o=s.rows.map(c=>D_(c,e)),i=Re(o,e.query),a=dd(i.length,o.length,s.total,e.query);return i.length===0?pd(n,e,"issues",a,["rsp gh issue list --state all","rsp gh issue list --query <label-or-title>"]):On({...n,issues:i,aggregate:a,summary:`${md(i.length,o.length,e.query)} ${v_(i,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return On({...n,issue:lD(Y(r),e),summary:`issue #${Pe(Y(r),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let s=ld(r,"runs"),o=s.rows.map(c=>G_(c,e)),i=Re(o,e.query),a=dd(i.length,o.length,s.total,e.query);return i.length===0?pd(n,e,"runs",a,["rsp gh run list --limit 20","rsp gh run list --query <workflow-or-status>"]):On({...n,runs:i,aggregate:a,summary:`${md(i.length,o.length,e.query)} runs`},e,["rsp gh run view <id>","rsp gh run list --query <workflow-or-status>"])}case"run:view":return On({...n,run:dD(Y(r),e),summary:`run ${Pe(Y(r),"databaseId")}`},e,["rsp gh run view <id> --full"])}throw new Error(`unsupported gh command: ${e.kind} ${e.action}`)}function oD(e,t,r){let n=L_(Y(r.view),{...e,action:"view",wide:!0}),s=Re(Le(r.checks).map(iD),e.query),o=Y(r.comments).comments,i=Re(Le(o).map(aD).slice(-3),e.query);return vt({command:t.join(" "),pr:n,checks:s,comments:i,summary:`PR #${Pe(Y(r.view),"number")}: ${s.length} checks, ${i.length} comments`},["rsp gh pr view <number> --full","rsp gh pr <number> --query <check-or-comment>","rsp gh run view <id>"])}function iD(e){return{name:L(e,"name"),state:Qs(e),bucket:L(e,"bucket"),conclusion:L(e,"conclusion"),workflow:L(e,"workflow"),link:L(e,"link")}}function aD(e){return{author:N_(e.author),body:oa(e,"body",fd,!1),created:L(e,"createdAt")}}function ld(e,t){if(Array.isArray(e))return{rows:Le(e)};let r=Y(e),n=Pe(r,"total")||Pe(r,"total_count")||void 0;return Array.isArray(r.items)?{rows:Le(r.items),total:n}:t==="runs"&&Array.isArray(r.workflow_runs)?{rows:Le(r.workflow_runs),total:n}:{rows:[]}}function dd(e,t,r,n){let s={returned:e};return typeof r=="number"&&r>0&&(s.total=r),n&&(s.unfiltered=t),s}function pd(e,t,r,n,s){return vt({...e,empty:!0,scope:cD(t),[r]:[],aggregate:n,summary:`0 ${uD(t)}`},s)}function cD(e){let t=yt(e.passthrough,"--state")??"open",r=e.query?` query=${e.query}`:"";if(e.kind==="pr")return`${t} PRs${r}`;if(e.kind==="issue"){let o=yt(e.passthrough,"--label");return`${t} issues${o?` label=${o}`:""}${r}`}let n=yt(e.passthrough,"--branch")??yt(e.passthrough,"-b"),s=yt(e.passthrough,"--workflow")??yt(e.passthrough,"-w");return`workflow runs${n?` branch=${n}`:""}${s?` workflow=${s}`:""}${r}`}function uD(e){let t=yt(e.passthrough,"--state")??"open";return e.kind==="pr"?`${t} PRs`:e.kind==="issue"?`${t} issues`:"runs"}function I_(e,t){let r={number:Pe(e,"number"),title:L(e,"title"),state:Qs(e),draft:!!e.isDraft};return hd(r,e,t,["author","labels","url","updated"]),r}function L_(e,t){let r=I_(e,t);return r.body=oa(e,"body",fd,t.full),t.wide&&(r.base=L(e,"baseRefName"),r.head=L(e,"headRefName")),r}function D_(e,t){let r={number:Pe(e,"number"),title:L(e,"title"),state:Qs(e),labels:$_(e.labels)};return hd(r,e,t,["author","url","updated"]),r}function lD(e,t){let r=D_(e,t);return r.body=oa(e,"body",fd,t.full),r}function G_(e,t){let r={id:Pe(e,"databaseId"),name:L(e,"name"),status:Qs(e),conclusion:L(e,"conclusion")};return hd(r,e,t,["event","branch","workflow","created"]),r}function dD(e,t){let r=G_(e,t),n=Le(e.jobs).map(s=>({name:L(s,"name"),status:Qs(s),conclusion:L(s,"conclusion"),log:oa(s,"log",JL,t.full)}));return r.jobs=n,r}function oa(e,t,r,n){let s=L(e,t);if(n||Buffer.byteLength(s)<=r)return s;let o=s.slice(0,r),i={preview:o,truncated:{bytes:Buffer.byteLength(s),shown_bytes:Buffer.byteLength(o),hint:"--full",handle:""}};return Object.defineProperty(i,"__rsp_original",{value:s,enumerable:!1}),i}function pD(e){let t=[e];for(;t.length>0;){let r=t.pop();if(Array.isArray(r))t.push(...r);else if(Dr(r)){if(Dr(r.truncated)&&r.truncated.handle===""&&typeof r.preview=="string"){let n=typeof r.__rsp_original=="string"?r.__rsp_original:r.preview;return{target:r,original:n,bytes:Number(r.truncated.bytes??0)}}t.push(...Object.values(r))}}return null}function mD(e){for(let t of["prs","issues","runs","jobs"]){let r=e[t];if(Array.isArray(r)&&r.length>1)return{payload:{...e,[t]:r.slice(0,1)},rowsElided:r.length-1}}return null}function v_(e,t){return e.every(r=>r.state===t)?t:"returned"}function md(e,t,r){return r?`${e}/${t}`:String(e)}function On(e,t,r){return t.query?vt(e,r):e}function Qs(e){return(L(e,"state")||L(e,"status")).toLowerCase()}function hd(e,t,r,n){if(!(!r.wide&&r.fields.size===0))for(let s of n)!r.wide&&!r.fields.has(s)||(s==="author"?e.author=N_(t.author):s==="labels"?e.labels=$_(t.labels):s==="url"?e.url=L(t,"url"):s==="updated"?e.updated=L(t,"updatedAt"):s==="event"?e.event=L(t,"event"):s==="branch"?e.branch=L(t,"headBranch"):s==="workflow"?e.workflow=L(t,"workflowName"):s==="created"&&(e.created=L(t,"createdAt")))}function $_(e){return Array.isArray(e)?e.map(t=>Dr(t)?L(t,"name"):String(t)).filter(Boolean):[]}function N_(e){return Dr(e)?L(e,"login"):""}function Ys(e){return e.trim()?JSON.parse(e):null}function Le(e){return Array.isArray(e)?e.filter(Dr):[]}function Y(e){return Dr(e)?e:{}}function L(e,t){let r=e[t];return typeof r=="string"?r:""}function Pe(e,t){let r=e[t];return typeof r=="number"?r:0}function Dr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var qL,WL,fd,JL,VL,sa,bd=h(()=>{"use strict";oe();W();hi();E_();Ar();qn();ut();qL={"pr:list":["number","title","state","isDraft"],"pr:view":["number","title","state","body"],"issue:list":["number","title","state","labels"],"issue:view":["number","title","state","body"],"run:list":["databaseId","name","status","conclusion"],"run:view":["databaseId","name","status","conclusion","jobs"]},WL={"pr:list":["number","title","state","isDraft","author","labels","url","updatedAt"],"pr:view":["number","title","state","body","author","labels","url","baseRefName","headRefName"],"issue:list":["number","title","state","labels","author","url","updatedAt"],"issue:view":["number","title","state","body","author","labels","url","updatedAt"],"run:list":["databaseId","name","status","conclusion","event","headBranch","workflowName","createdAt"],"run:view":["databaseId","name","status","conclusion","event","headBranch","workflowName","createdAt","jobs","url"]},fd=160,JL=160,VL={"pr:list":["number","title","state","draft","author","labels","url","updated"],"issue:list":["number","title","state","labels","author","url","updated"],"run:list":["id","name","status","conclusion","event","branch","workflow","created"]};sa=class extends Error{constructor(r,n,s=[]){super(n);this.command=r;this.validFields=s}render(){return J({command:`gh ${this.command.kind} ${this.command.action}`,category:"usage",error:this.message,help:`gh ${this.command.kind} ${this.command.action} --help`,validFlags:this.validFields})}}});var Ed={};K(Ed,{renderTestContract:()=>F_,runTestWrapper:()=>bD});import{spawn as fD}from"node:child_process";async function bD(e,t){let r=Hn(e),n=await kD(r.argv);return await F_(e,n,t)}async function F_(e,t,r){let n=Hn(e),o=M_(n.argv)==="vitest"?SD(t.stdout):TD(t.stdout),i=t.status;if(!o||(i??0)!==0&&o.failed===0){let f=Ve(e.join(" "),t.stdout,t.stderr);return{stdout:J(f),stderr:Buffer.from(t.stderr),status:f.exitCode??1,signal:t.signal}}let a=`${o.failed}/${o.total} failed \xB7 ${o.suites} suites \xB7 ${CD(o.durationSeconds)}`,c=Re(o.failures,n.query);if(r.level==="terse")return await wD(n.argv,t,{...o,failures:c},i,a,r,n.query);let u=[],l,p=0;for(let f of c){let k=await vD(f.excerpt,n.argv.join(" "),r.store);u.push({suite:f.suite,name:f.name,excerpt:k.text}),l??=k.handle,p+=k.bytesElided}let d={exit_code:i,summary:n.query?`${a} \xB7 ${c.length}/${o.failures.length} failures matched`:a};u.length>0&&(d.failures=u);let g=n.query?vt(d,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):d;return{stdout:Buffer.from($(g)),stderr:Buffer.from(t.stderr),status:_d(t.status),signal:t.signal,payload:g,mintedHandle:l,bytesElided:p>0?p:void 0,rowsElided:u.length>0?Math.max(0,o.total-u.length):void 0}}async function wD(e,t,r,n,s,o,i){let a=_D(r.failures),c={exit_code:n,summary:i?`${s} \xB7 ${r.failures.length} failures matched`:s};a.length>0&&(c.failures=a);let u=i?vt(c,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):c,l=$(u),p=Math.max(0,r.failures.length-a.length),d=a.some((T,v)=>T.excerpt!==r.failures[v].excerpt);if(p===0&&!d)return{stdout:Buffer.from(l),stderr:Buffer.from(t.stderr),status:_d(t.status),signal:t.signal,payload:u};let g={exit_code:n,summary:s};r.failures.length>0&&(g.failures=r.failures.map(T=>({suite:T.suite,name:T.name,excerpt:T.excerpt})));let f=$(g),k=Buffer.byteLength(f),E=await o.store?.mint(Buffer.from(f),{command:e.join(" "),loss:{level:"terse",bytes_elided:k}});if(!E)throw new Error("terse test output requires an elision store");let _=`\u2026 elided ${p>0?`${p} failures`:"full detail"} (+${k}) \u2014 ${rt(E)}`;return{stdout:Buffer.from(`${l}
|
|
142
|
-
${_}`),stderr:Buffer.from(t.stderr),status:
|
|
140
|
+
${p}`),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,payload:u.payload,mintedHandle:d,bytesElided:l,rowsElided:u.rowsElided,rawOutput:Buffer.from(c)}}function j_(e){let t=Hn(e);if(t.argv[0]!=="gh")throw new Error("expected rsp gh <surface> <subcommand>");let r=t.argv[1],n=t.argv[2];if(!(r==="pr"||r==="issue"||r==="run"))throw new Error(`unsupported gh surface: ${r??""}`);let s=r==="pr"&&n&&n!=="list"&&n!=="view";if(!(n==="list"||n==="view"||s))throw new Error(`unsupported gh subcommand: ${n??""}`);let o=r,i=[],a=!1,c=!1,u=new Set,l=t.argv.slice(3);for(let g=0;g<l.length;g+=1){let f=l[g]??"";f==="--full"?a=!0:f==="--wide"?c=!0:f==="--fields"?u=$_(l[++g]??""):f.startsWith("--fields=")?u=$_(f.slice(9)):i.push(f)}let p={kind:o,action:s?"combined":n==="list"?"list":"view",target:s?n:void 0,full:a,wide:c,fields:u,passthrough:i,query:t.query};return vG(p),p}function D_(e){if(e.action==="combined")throw new Error("combined gh command uses multiple machine calls");let t=`${e.kind}:${e.action}`,r=e.wide||e.fields.size>0?RG[t]:EG[t];return[e.kind,e.action,...e.passthrough,"--json",r.join(",")]}function $_(e){return new Set(e.split(",").map(t=>t.trim()).filter(Boolean))}function vG(e){if(e.fields.size===0)return;if(e.action!=="list")throw new la(e,"--fields is supported for list outputs");let t=`${e.kind}:list`,r=SG[t];for(let n of e.fields)if(!r.includes(n))throw new la(e,`unknown field: ${n}`,r)}async function xG(e){if(e.action==="combined")return await CG(e);let t=OG(e);if(!t)return await GG(D_(e));let r=await xe({...t,command:["gh",...D_(e)].join(" ")});return r.status!==0?{stdout:r.stdout,stderr:r.stderr,status:r.status,signal:null}:{stdout:JSON.stringify(await AG(e,r.stdout)),stderr:r.stderr,status:0,signal:null}}async function CG(e){let t=e.target??"",[r,n,s]=await Promise.all([xe({path:`repos/{owner}/{repo}/pulls/${t}`,command:`gh pr view ${t}`}),xe({path:`repos/{owner}/{repo}/pulls/${t}/commits`,command:`gh pr checks ${t}`}),xe({path:`repos/{owner}/{repo}/issues/${t}/comments`,command:`gh pr view ${t} --comments`})]),o=[r,n,s].find(a=>(a.status??0)!==0);if(o)return{stdout:o.stdout,stderr:o.stderr,status:o.status,signal:null};let i=H_(Ys(r.stdout));return{stdout:JSON.stringify({view:i,checks:[],comments:{comments:$e(Ys(s.stdout)).map(IG)}}),stderr:[r.stderr,n.stderr,s.stderr].filter(Boolean).join(""),status:0,signal:null}}function OG(e){let t=q_(e.passthrough),r=LG(e.passthrough,"--limit")??30,n=ht(e.passthrough,"--state")??"open";switch(`${e.kind}:${e.action}`){case"pr:list":return{path:"repos/{owner}/{repo}/pulls",params:{state:n,per_page:r}};case"pr:view":return t?{path:`repos/{owner}/{repo}/pulls/${t}`}:null;case"issue:list":return{path:"repos/{owner}/{repo}/issues",params:{state:n,labels:ht(e.passthrough,"--label"),per_page:r}};case"issue:view":return t?{path:`repos/{owner}/{repo}/issues/${t}`}:null;case"run:list":return{path:"repos/{owner}/{repo}/actions/runs",params:{per_page:r}};case"run:view":return t?{path:`repos/{owner}/{repo}/actions/runs/${t}`}:null;default:return null}}async function AG(e,t){let r=Ys(t);switch(`${e.kind}:${e.action}`){case"pr:list":return $e(r).map(U_);case"pr:view":return H_(r);case"issue:list":return $e(r).filter(n=>!Gr(n.pull_request)).map(N_);case"issue:view":return N_(r);case"run:list":return{items:$e(Y(r).workflow_runs).map(F_),total:Pe(Y(r),"total_count")};case"run:view":{let n=F_(r),s=q_(e.passthrough);if(!s)return n;let o=await xe({path:`repos/{owner}/{repo}/actions/runs/${s}/jobs`,command:`gh run view ${s} jobs`});return{...n,jobs:o.status===0?$e(Y(Ys(o.stdout)).jobs).map(PG):[]}}default:return r}}function U_(e){let t=Y(e);return{number:Pe(t,"number"),title:G(t,"title"),state:G(t,"state").toUpperCase(),isDraft:!!t.draft,author:Td(t.user),labels:$e(t.labels).map(r=>({name:G(r,"name")})),url:G(t,"html_url"),updatedAt:G(t,"updated_at"),body:G(t,"body"),baseRefName:G(Y(t.base),"ref"),headRefName:G(Y(t.head),"ref")}}function H_(e){return U_(e)}function N_(e){let t=Y(e);return{number:Pe(t,"number"),title:G(t,"title"),state:G(t,"state").toUpperCase(),labels:$e(t.labels).map(r=>({name:G(r,"name")})),author:Td(t.user),url:G(t,"html_url"),updatedAt:G(t,"updated_at"),body:G(t,"body")}}function F_(e){let t=Y(e);return{databaseId:Pe(t,"database_id")||Pe(t,"id"),name:G(t,"name")||G(t,"display_title"),status:G(t,"status").toUpperCase(),conclusion:G(t,"conclusion").toUpperCase(),event:G(t,"event"),headBranch:G(t,"head_branch"),workflowName:G(t,"workflow_name"),createdAt:G(t,"created_at"),url:G(t,"html_url"),jobs:[]}}function PG(e){let t=Y(e);return{name:G(t,"name"),status:G(t,"status").toUpperCase(),conclusion:G(t,"conclusion").toUpperCase(),log:""}}function IG(e){let t=Y(e);return{author:Td(t.user),body:G(t,"body"),createdAt:G(t,"created_at")}}function Td(e){let t=Y(e);return{login:G(t,"login")}}function q_(e){return e.find(t=>!t.startsWith("-"))}function ht(e,t){let r=e.indexOf(t);return r>=0?e[r+1]:void 0}function LG(e,t){let r=ht(e,t);if(!r)return;let n=Number(r);return Number.isFinite(n)&&n>0?n:void 0}async function GG(e){let t=_G("gh",e,{stdio:["ignore","pipe","pipe"]}),r=Ge();t.once("close",r),t.once("error",r);let n=[],s=[];return t.stdout.on("data",o=>n.push(o)),t.stderr.on("data",o=>s.push(o)),await new Promise((o,i)=>{t.on("error",i),t.on("close",(a,c)=>{o({stdout:Buffer.concat(n).toString("utf8"),stderr:Buffer.concat(s).toString("utf8"),status:a,signal:c})})})}function DG(e,t,r){let n={command:t.join(" ")};switch(`${e.kind}:${e.action}`){case"pr:list":{let s=_d(r,"prs"),o=s.rows.map(c=>W_(c,e)),i=Re(o,e.query),a=Ed(i.length,o.length,s.total,e.query);return i.length===0?Rd(n,e,"prs",a,["rsp gh issue list","rsp gh pr list --query <title-or-label>"]):On({...n,prs:i,aggregate:a,summary:`${kd(i.length,o.length,e.query)} ${M_(i,"open")} PRs`},e,["rsp gh pr <number>","rsp gh pr list --query <title-or-label>"])}case"pr:view":return On({...n,pr:J_(Y(r),e),summary:`PR #${Pe(Y(r),"number")}`},e,["rsp gh pr <number>","rsp gh pr view <number> --full"]);case"pr:combined":return $G(e,t,Y(r));case"issue:list":{let s=_d(r,"issues"),o=s.rows.map(c=>V_(c,e)),i=Re(o,e.query),a=Ed(i.length,o.length,s.total,e.query);return i.length===0?Rd(n,e,"issues",a,["rsp gh issue list --state all","rsp gh issue list --query <label-or-title>"]):On({...n,issues:i,aggregate:a,summary:`${kd(i.length,o.length,e.query)} ${M_(i,"open")} issues`},e,["rsp gh issue view <number>","rsp gh issue list --query <label-or-title>"])}case"issue:view":return On({...n,issue:jG(Y(r),e),summary:`issue #${Pe(Y(r),"number")}`},e,["rsp gh issue view <number> --full"]);case"run:list":{let s=_d(r,"runs"),o=s.rows.map(c=>K_(c,e)),i=Re(o,e.query),a=Ed(i.length,o.length,s.total,e.query);return i.length===0?Rd(n,e,"runs",a,["rsp gh run list --limit 20","rsp gh run list --query <workflow-or-status>"]):On({...n,runs:i,aggregate:a,summary:`${kd(i.length,o.length,e.query)} runs`},e,["rsp gh run view <id>","rsp gh run list --query <workflow-or-status>"])}case"run:view":return On({...n,run:UG(Y(r),e),summary:`run ${Pe(Y(r),"databaseId")}`},e,["rsp gh run view <id> --full"])}throw new Error(`unsupported gh command: ${e.kind} ${e.action}`)}function $G(e,t,r){let n=J_(Y(r.view),{...e,action:"view",wide:!0}),s=Re($e(r.checks).map(NG),e.query),o=Y(r.comments).comments,i=Re($e(o).map(FG).slice(-3),e.query);return xt({command:t.join(" "),pr:n,checks:s,comments:i,summary:`PR #${Pe(Y(r.view),"number")}: ${s.length} checks, ${i.length} comments`},["rsp gh pr view <number> --full","rsp gh pr <number> --query <check-or-comment>","rsp gh run view <id>"])}function NG(e){return{name:G(e,"name"),state:Qs(e),bucket:G(e,"bucket"),conclusion:G(e,"conclusion"),workflow:G(e,"workflow"),link:G(e,"link")}}function FG(e){return{author:Y_(e.author),body:da(e,"body",Sd,!1),created:G(e,"createdAt")}}function _d(e,t){if(Array.isArray(e))return{rows:$e(e)};let r=Y(e),n=Pe(r,"total")||Pe(r,"total_count")||void 0;return Array.isArray(r.items)?{rows:$e(r.items),total:n}:t==="runs"&&Array.isArray(r.workflow_runs)?{rows:$e(r.workflow_runs),total:n}:{rows:[]}}function Ed(e,t,r,n){let s={returned:e};return typeof r=="number"&&r>0&&(s.total=r),n&&(s.unfiltered=t),s}function Rd(e,t,r,n,s){return xt({...e,empty:!0,scope:MG(t),[r]:[],aggregate:n,summary:`0 ${BG(t)}`},s)}function MG(e){let t=ht(e.passthrough,"--state")??"open",r=e.query?` query=${e.query}`:"";if(e.kind==="pr")return`${t} PRs${r}`;if(e.kind==="issue"){let o=ht(e.passthrough,"--label");return`${t} issues${o?` label=${o}`:""}${r}`}let n=ht(e.passthrough,"--branch")??ht(e.passthrough,"-b"),s=ht(e.passthrough,"--workflow")??ht(e.passthrough,"-w");return`workflow runs${n?` branch=${n}`:""}${s?` workflow=${s}`:""}${r}`}function BG(e){let t=ht(e.passthrough,"--state")??"open";return e.kind==="pr"?`${t} PRs`:e.kind==="issue"?`${t} issues`:"runs"}function W_(e,t){let r={number:Pe(e,"number"),title:G(e,"title"),state:Qs(e),draft:!!e.isDraft};return vd(r,e,t,["author","labels","url","updated"]),r}function J_(e,t){let r=W_(e,t);return r.body=da(e,"body",Sd,t.full),t.wide&&(r.base=G(e,"baseRefName"),r.head=G(e,"headRefName")),r}function V_(e,t){let r={number:Pe(e,"number"),title:G(e,"title"),state:Qs(e),labels:z_(e.labels)};return vd(r,e,t,["author","url","updated"]),r}function jG(e,t){let r=V_(e,t);return r.body=da(e,"body",Sd,t.full),r}function K_(e,t){let r={id:Pe(e,"databaseId"),name:G(e,"name"),status:Qs(e),conclusion:G(e,"conclusion")};return vd(r,e,t,["event","branch","workflow","created"]),r}function UG(e,t){let r=K_(e,t),n=$e(e.jobs).map(s=>({name:G(s,"name"),status:Qs(s),conclusion:G(s,"conclusion"),log:da(s,"log",kG,t.full)}));return r.jobs=n,r}function da(e,t,r,n){let s=G(e,t);if(n||Buffer.byteLength(s)<=r)return s;let o=s.slice(0,r),i={preview:o,truncated:{bytes:Buffer.byteLength(s),shown_bytes:Buffer.byteLength(o),hint:"--full",handle:""}};return Object.defineProperty(i,"__rsp_original",{value:s,enumerable:!1}),i}function HG(e){let t=[e];for(;t.length>0;){let r=t.pop();if(Array.isArray(r))t.push(...r);else if(Gr(r)){if(Gr(r.truncated)&&r.truncated.handle===""&&typeof r.preview=="string"){let n=typeof r.__rsp_original=="string"?r.__rsp_original:r.preview;return{target:r,original:n,bytes:Number(r.truncated.bytes??0)}}t.push(...Object.values(r))}}return null}function qG(e){for(let t of["prs","issues","runs","jobs"]){let r=e[t];if(Array.isArray(r)&&r.length>1)return{payload:{...e,[t]:r.slice(0,1)},rowsElided:r.length-1}}return null}function M_(e,t){return e.every(r=>r.state===t)?t:"returned"}function kd(e,t,r){return r?`${e}/${t}`:String(e)}function On(e,t,r){return t.query?xt(e,r):e}function Qs(e){return(G(e,"state")||G(e,"status")).toLowerCase()}function vd(e,t,r,n){if(!(!r.wide&&r.fields.size===0))for(let s of n)!r.wide&&!r.fields.has(s)||(s==="author"?e.author=Y_(t.author):s==="labels"?e.labels=z_(t.labels):s==="url"?e.url=G(t,"url"):s==="updated"?e.updated=G(t,"updatedAt"):s==="event"?e.event=G(t,"event"):s==="branch"?e.branch=G(t,"headBranch"):s==="workflow"?e.workflow=G(t,"workflowName"):s==="created"&&(e.created=G(t,"createdAt")))}function z_(e){return Array.isArray(e)?e.map(t=>Gr(t)?G(t,"name"):String(t)).filter(Boolean):[]}function Y_(e){return Gr(e)?G(e,"login"):""}function Ys(e){return e.trim()?JSON.parse(e):null}function $e(e){return Array.isArray(e)?e.filter(Gr):[]}function Y(e){return Gr(e)?e:{}}function G(e,t){let r=e[t];return typeof r=="string"?r:""}function Pe(e,t){let r=e[t];return typeof r=="number"?r:0}function Gr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var EG,RG,Sd,kG,SG,la,Cd=h(()=>{"use strict";ae();J();Yo();G_();Ar();qn();at();EG={"pr:list":["number","title","state","isDraft"],"pr:view":["number","title","state","body"],"issue:list":["number","title","state","labels"],"issue:view":["number","title","state","body"],"run:list":["databaseId","name","status","conclusion"],"run:view":["databaseId","name","status","conclusion","jobs"]},RG={"pr:list":["number","title","state","isDraft","author","labels","url","updatedAt"],"pr:view":["number","title","state","body","author","labels","url","baseRefName","headRefName"],"issue:list":["number","title","state","labels","author","url","updatedAt"],"issue:view":["number","title","state","body","author","labels","url","updatedAt"],"run:list":["databaseId","name","status","conclusion","event","headBranch","workflowName","createdAt"],"run:view":["databaseId","name","status","conclusion","event","headBranch","workflowName","createdAt","jobs","url"]},Sd=160,kG=160,SG={"pr:list":["number","title","state","draft","author","labels","url","updated"],"issue:list":["number","title","state","labels","author","url","updated"],"run:list":["id","name","status","conclusion","event","branch","workflow","created"]};la=class extends Error{constructor(r,n,s=[]){super(n);this.command=r;this.validFields=s}render(){return V({command:`gh ${this.command.kind} ${this.command.action}`,category:"usage",error:this.message,help:`gh ${this.command.kind} ${this.command.action} --help`,validFlags:this.validFields})}}});var Pd={};K(Pd,{renderTestContract:()=>Q_,runTestWrapper:()=>zG});import{spawn as WG}from"node:child_process";async function zG(e,t){let r=Hn(e),n=await eD(r.argv);return await Q_(e,n,t)}async function Q_(e,t,r){let n=Hn(e),o=X_(n.argv)==="vitest"?tD(t.stdout):rD(t.stdout),i=t.status;if(!o||(i??0)!==0&&o.failed===0){let f=ze(e.join(" "),t.stdout,t.stderr);return{stdout:V(f),stderr:Buffer.from(t.stderr),status:f.exitCode??1,signal:t.signal}}let a=`${o.failed}/${o.total} failed \xB7 ${o.suites} suites \xB7 ${oD(o.durationSeconds)}`,c=Re(o.failures,n.query);if(r.level==="terse")return await YG(n.argv,t,{...o,failures:c},i,a,r,n.query);let u=[],l,d=0;for(let f of c){let k=await nD(f.excerpt,n.argv.join(" "),r.store);u.push({suite:f.suite,name:f.name,excerpt:k.text}),l??=k.handle,d+=k.bytesElided}let p={exit_code:i,summary:n.query?`${a} \xB7 ${c.length}/${o.failures.length} failures matched`:a};u.length>0&&(p.failures=u);let g=n.query?xt(p,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):p;return{stdout:Buffer.from($(g)),stderr:Buffer.from(t.stderr),status:Ad(t.status),signal:t.signal,payload:g,mintedHandle:l,bytesElided:d>0?d:void 0,rowsElided:u.length>0?Math.max(0,o.total-u.length):void 0}}async function YG(e,t,r,n,s,o,i){let a=QG(r.failures),c={exit_code:n,summary:i?`${s} \xB7 ${r.failures.length} failures matched`:s};a.length>0&&(c.failures=a);let u=i?xt(c,["rsp show <handle>","rsp vitest --query <suite-or-test>"]):c,l=$(u),d=Math.max(0,r.failures.length-a.length),p=a.some((T,C)=>T.excerpt!==r.failures[C].excerpt);if(d===0&&!p)return{stdout:Buffer.from(l),stderr:Buffer.from(t.stderr),status:Ad(t.status),signal:t.signal,payload:u};let g={exit_code:n,summary:s};r.failures.length>0&&(g.failures=r.failures.map(T=>({suite:T.suite,name:T.name,excerpt:T.excerpt})));let f=$(g),k=Buffer.byteLength(f),E=await o.store?.mint(Buffer.from(f),{command:e.join(" "),loss:{level:"terse",bytes_elided:k}});if(!E)throw new Error("terse test output requires an elision store");let _=`\u2026 elided ${d>0?`${d} failures`:"full detail"} (+${k}) \u2014 ${et(E)}`;return{stdout:Buffer.from(`${l}
|
|
141
|
+
${_}`),stderr:Buffer.from(t.stderr),status:Ad(t.status),signal:t.signal,payload:u,mintedHandle:E,bytesElided:k,rowsElided:d,rawOutput:Buffer.from(f)}}function Ad(e){return e===0||e===null?0:1}function QG(e){let t=[],r=VG;for(let n of e.slice(0,KG)){let s=XG(n.excerpt,Math.min(JG,r));r=Math.max(0,r-Buffer.byteLength(s)),t.push({suite:n.suite,name:n.name,excerpt:s})}return t}function XG(e,t){if(t<=0)return"";let r=e.split(`
|
|
143
142
|
`),n=r.length<=2?e:`${r[0]}
|
|
144
143
|
\u2026
|
|
145
|
-
${r[r.length-1]}`,s=Buffer.from(n);return s.length<=t?n:s.subarray(0,t).toString("utf8").replace(/�$/,"")}function
|
|
146
|
-
`).filter(Boolean).map(c=>
|
|
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
|
|
148
|
-
\u2026 elided ${i} bytes (+${n.length}) \u2014 ${
|
|
149
|
-
`):""}function
|
|
150
|
-
`),status:1,signal:null}}return
|
|
151
|
-
`;if(!i&&Buffer.byteLength(c)<=
|
|
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
|
|
153
|
-
`),n=r.at(-1)==="",s=n?r.slice(0,-1):r,o=t.limit??
|
|
144
|
+
${r[r.length-1]}`,s=Buffer.from(n);return s.length<=t?n:s.subarray(0,t).toString("utf8").replace(/�$/,"")}function X_(e){if(e[0]==="vitest")return"vitest";if(e[0]==="cargo"&&e[1]==="test")return"cargo";throw new Error(`unsupported test command: ${e.join(" ")}`)}function ZG(e){if(X_(e)==="vitest"){let s=e.slice(1);return{executable:"vitest",args:s.some(i=>i==="--reporter=json"||i==="--reporter"||i.startsWith("--reporter="))?s:["run","--reporter=json",...s]}}let r=e.slice(1);return{executable:"cargo",args:r.some(s=>s==="--message-format=json"||s.startsWith("--message-format="))?r:["test","--message-format=json",...r.slice(1)]}}async function eD(e){let t=ZG(e),r=WG(t.executable,t.args,{stdio:["ignore","pipe","pipe"]}),n=Ge();r.once("close",n),r.once("error",n);let s=[],o=[];return r.stdout.on("data",i=>s.push(i)),r.stderr.on("data",i=>o.push(i)),await new Promise((i,a)=>{r.on("error",a),r.on("close",(c,u)=>{i({stdout:Buffer.concat(s).toString("utf8"),stderr:Buffer.concat(o).toString("utf8"),status:c,signal:u})})})}function tD(e){let t=Z_(e);if(!ir(t))return null;let r=Array.isArray(t.testResults)?t.testResults:[],n=[],s=ar(t.numTotalTests),o=ar(t.numFailedTests),i=iD(ar(t.startTime),ar(t.endTime));for(let a of r){if(!ir(a))continue;let c=yt(a.name)||yt(a.file)||"",u=Array.isArray(a.assertionResults)?a.assertionResults:[];for(let l of u)ir(l)&&l.status==="failed"&&n.push({suite:c,name:yt(l.fullName)||yt(l.title)||yt(l.name),excerpt:sD(l.failureMessages)||yt(l.failureMessage)})}return s||=r.reduce((a,c)=>!ir(c)||!Array.isArray(c.assertionResults)?a:a+c.assertionResults.length,0),o||=n.length,i||=r.reduce((a,c)=>ir(c)?a+ar(c.perfStats&&ir(c.perfStats)?c.perfStats.runtime:c.duration)/1e3:a,0),{failed:o,total:s,suites:r.length||1,durationSeconds:i,failures:n}}function rD(e){let t=e.split(`
|
|
145
|
+
`).filter(Boolean).map(c=>Z_(c)).filter(ir);if(t.length===0)return null;let r=[],n=0,s=0,o=0,i=0,a=[];for(let c of t){if(c.type==="suite"){c.event==="started"&&(o+=1,n+=ar(c.test_count)),(c.event==="failed"||c.event==="ok")&&(s+=ar(c.failed),i+=ar(c.exec_time));continue}if(c.type==="test"&&c.event==="failed"){r.push({suite:yt(c.name).split("::").slice(0,-1).join("::"),name:yt(c.name),excerpt:yt(c.stdout)});continue}if(c.reason==="compiler-message"&&ir(c.message)){let u=yt(c.message.rendered);u&&a.push(u)}}return r.length===0&&a.length>0&&(r.push({suite:"cargo check",name:"compile-error",excerpt:a.join(`
|
|
146
|
+
`)}),o||=1,n||=1,s||=1),s||=r.length,o||=1,n||=Math.max(s,r.length),{failed:s,total:n,suites:o,durationSeconds:i,failures:r}}async function nD(e,t,r){let n=Buffer.from(e);if(n.length<=Od)return{text:e,bytesElided:0};if(!r)throw new Error("over-limit test failure excerpt requires an elision store");let s=await r.mint(n,{command:t,loss:{level:"brief",bytes_elided:n.length}}),o=n.subarray(0,Od).toString("utf8").replace(/\uFFFD$/,""),i=n.length-Buffer.byteLength(o);return{text:`${o}
|
|
147
|
+
\u2026 elided ${i} bytes (+${n.length}) \u2014 ${et(s)}`,handle:s,bytesElided:n.length}}function Z_(e){try{return JSON.parse(e)}catch{return null}}function sD(e){return Array.isArray(e)?e.map(t=>String(t)).filter(Boolean).join(`
|
|
148
|
+
`):""}function oD(e){return`${Number(e.toFixed(1))}s`}function iD(e,t){return e>0&&t>e?(t-e)/1e3:0}function ar(e){return typeof e=="number"&&Number.isFinite(e)?e:0}function yt(e){return typeof e=="string"?e:""}function ir(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Od,JG,VG,KG,Id=h(()=>{"use strict";ae();J();Ar();qn();at();Od=320,JG=160,VG=Od,KG=3});var Dd={};K(Dd,{parseCatCommand:()=>Gd,renderCatContract:()=>fD,runCatWrapper:()=>mD});import{isUtf8 as aD}from"node:buffer";import{readFile as cD}from"node:fs/promises";import{extname as uD}from"node:path";async function mD(e,t){let r=Gd(e),n;try{n=await cD(r.file)}catch(s){let o=s instanceof Error?s.message:String(s),i=ze(e.join(" "),"",o);return{stdout:V({...i,help:`ls ${r.file}`}),stderr:Buffer.from(`${o}
|
|
149
|
+
`),status:1,signal:null}}return oE(n)?{stdout:n,stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:n}:await sE(e,r,n,t)}async function fD(e,t,r){if((t.status??0)!==0||t.signal){let i=ze(e.join(" "),t.stdout,t.stderr);return{stdout:V(i),stderr:Buffer.from(t.stderr),status:i.exitCode??1,signal:t.signal}}let n=Gd(e),s=Buffer.from(t.stdout,"utf8");return oE(s)?{stdout:s,stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal,rawOutput:s}:{...await sE(e,n,s,r),stderr:Buffer.from(t.stderr),status:t.status,signal:t.signal}}function Gd(e){if(e[0]!=="cat")throw new Error("expected rsp cat <file>");let t=e.slice(1),r="full",n,s=!1,o=[];for(let i=0;i<t.length;i++){let a=t[i];if(a==="--full"){s=!0;continue}if(a==="--head"||a==="--tail"){r=a.slice(2),n=nE(t[++i],Ld);continue}if(a.startsWith("--head=")||a.startsWith("--tail=")){let[c,u]=a.split("=",2);r=c.slice(2),n=nE(u,Ld);continue}o.push(a)}if(o.length!==1)throw new Error("usage: rsp cat [--full] [--head N|--tail N] <file>");return{file:o[0],mode:r,...n?{limit:n}:{},...s?{inlineFull:s}:{}}}async function sE(e,t,r,n){let s=r.toString("utf8"),o=yD(s,t);if(t.inlineFull)return{stdout:Buffer.from(o.text),stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:r};let i=n.level!=="lossless"||r.length>rE(n.heavyByteThreshold,eE)||o.truncated;if(!tE(t.file)&&!i)return{stdout:Buffer.from(o.text),stderr:Buffer.alloc(0),status:0,signal:null,rawOutput:r};let a=tE(t.file)?gD(e,t.file,r,s,n.level,o):hD(e,t.file,r,s,o),c=`${$(a)}
|
|
150
|
+
`;if(!i&&Buffer.byteLength(c)<=rE(n.heavyByteThreshold,eE))return{stdout:Buffer.from(c),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,rawOutput:r};let u=await n.store?.mint(r,{command:e.join(" "),loss:{level:n.level==="lossless"?"terse":n.level,bytes_elided:r.length}});if(!u)throw new Error("rsp cat elision requires an elision store");let l=`\u2026 elided file bytes (+${r.length}) \u2014 ${et(u)}
|
|
151
|
+
`;return{stdout:Buffer.from(`${c}${l}`),stderr:Buffer.alloc(0),status:0,signal:null,payload:a,mintedHandle:u,bytesElided:r.length,rawOutput:r}}function gD(e,t,r,n,s,o){let i=pa(n),a=s==="terse"?dD:lD,c=pa(o.text),u=c.slice(0,a),l=c.slice(Math.max(u.length,c.length-a));return{command:e.join(" "),file:t,kind:"code",outline_source:"regex",bytes:r.length,lines:i.length,symbols:bD(i),content:{head:u,tail:l,truncated:o.truncated||u.length+l.length<i.length}}}function hD(e,t,r,n,s){return{command:e.join(" "),file:t,kind:"text",bytes:r.length,lines:pa(n).length,content:pa(s.text),truncated:s.truncated}}function yD(e,t){if(t.mode==="full")return{text:e,truncated:!1};let r=e.split(`
|
|
152
|
+
`),n=r.at(-1)==="",s=n?r.slice(0,-1):r,o=t.limit??Ld,i=t.mode==="head"?s.slice(0,o):s.slice(Math.max(0,s.length-o));return{text:`${i.join(`
|
|
154
153
|
`)}${n&&i.length>0?`
|
|
155
|
-
`:""}`,truncated:i.length<s.length}}function
|
|
156
|
-
`);return t.at(-1)===""?t.slice(0,-1):t}function
|
|
157
|
-
`),s=
|
|
154
|
+
`:""}`,truncated:i.length<s.length}}function bD(e){let t=[];for(let r=0;r<e.length;r++){let s=e[r].trim(),o=/^(?:export\s+)?(?:default\s+)?(?:abstract\s+)?(class|interface|type)\s+([A-Za-z_$][\w$]*)/.exec(s);if(o){t.push({kind:o[1],name:o[2],line:r+1,signature:s});continue}let i=/^(?:export\s+)?(?:default\s+)?(?:async\s+)?function\s+([A-Za-z_$][\w$]*)\s*\([^)]*\)\s*(?::[^{]+)?/.exec(s);if(i){t.push({kind:"function",name:i[1],line:r+1,signature:s});continue}let a=/^(?:public\s+|private\s+|protected\s+|static\s+|async\s+)*([A-Za-z_$][\w$]*)\s*\([^)]*\)\s*(?::[^{]+)?\s*\{/.exec(s);a&&!wD(a[1])&&t.push({kind:"method",name:a[1],line:r+1,signature:s})}return t}function pa(e){let t=e.split(`
|
|
155
|
+
`);return t.at(-1)===""?t.slice(0,-1):t}function oE(e){return e.includes(0)||!aD(e)}function tE(e){return pD.has(uD(e).toLowerCase())}function wD(e){return["for","if","switch","while"].includes(e)}function rE(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function nE(e,t){let r=Number(e);return Number.isInteger(r)&&r>0?r:t}var eE,Ld,lD,dD,pD,$d=h(()=>{"use strict";J();Ar();at();eE=8*1024,Ld=10,lD=8,dD=2,pD=new Set([".c",".cc",".cpp",".cs",".go",".java",".js",".jsx",".mjs",".py",".rs",".ts",".tsx"])});var mE={};K(mE,{REPO_STORE_PATH:()=>Md,mergeRspBlock:()=>lE,provisionRspRepoStore:()=>OD});import{constants as _D}from"node:fs";import{access as ED,copyFile as RD,mkdir as aE,readFile as kD,rename as SD,writeFile as cE}from"node:fs/promises";import{dirname as TD,join as Xs,resolve as vD}from"node:path";async function OD(e,t={}){let r=vD(e),n=Xs(r,".red"),s=Xs(n,"config.yaml"),o=Xs(r,Md);await aE(n,{recursive:!0}),await aE(TD(o),{recursive:!0});let i="";try{i=await kD(s,"utf8")}catch(g){if(g.code!=="ENOENT")throw g}let a=lE(i,{enabled:!0,ttlDays:t.ttlDays??Ye,ephemeralTtlHours:t.ephemeralTtlHours??Qe,byteBudget:t.byteBudget??Xe,heavyGitByteThreshold:t.heavyGitByteThreshold??Gt}),c=a!==i;c&&await cE(s,a,"utf8");let u=!await Fd(o),l=!1,d=!1;if(u){let g=Xs(r,xD),f=Xs(r,CD);if(await Fd(g))await SD(g,o),d=!0;else if(await Fd(f))await RD(f,o),l=!0;else{let{provisionElisionStore:k}=await Promise.resolve().then(()=>(Ni(),Yb)),E=process.env.REDDB_BIN;try{await k({uri:`file://${o}`,ttlDays:t.ttlDays??Ye,ephemeralTtlHours:t.ephemeralTtlHours??Qe,byteBudget:t.byteBudget??Xe})}finally{E===void 0?delete process.env.REDDB_BIN:process.env.REDDB_BIN=E}}}let p=AD(a,Md);return p!==a&&await cE(s,p,"utf8"),{configPath:s,storePath:o,configChanged:c||p!==a,storeCreated:u,memoryStoreMigrated:l,legacyStoreMigrated:d}}function lE(e,t){let r=["rsp:",` enabled: ${t.enabled?"true":"false"}`,` ttlDays: ${ma(t.ttlDays,Ye)}`,` ephemeralTtlHours: ${ma(t.ephemeralTtlHours,Qe)}`,` byteBudget: ${ma(t.byteBudget,Xe)}`,` heavyGitByteThreshold: ${ma(t.heavyGitByteThreshold,Gt)}`],n=e===""?[]:e.replace(/\n+$/,"").split(`
|
|
156
|
+
`),s=dE(n,"rsp");if(s===-1){let a=[...n];return a.length>0&&a[a.length-1].trim()!==""&&a.push(""),a.push(...r),`${a.join(`
|
|
158
157
|
`)}
|
|
159
|
-
`}let o=
|
|
158
|
+
`}let o=Bd(n,s,0);return`${[...n.slice(0,s),...r,...n.slice(o)].join(`
|
|
160
159
|
`)}
|
|
161
|
-
`}function
|
|
162
|
-
`),n=
|
|
160
|
+
`}function dE(e,t){for(let r=0;r<e.length;r++){let n=e[r];if(Ud(n)&&jd(n)===0&&pE(n)===t)return r}return-1}function Bd(e,t,r){let n=e.length;for(let s=t+1;s<e.length;s++)if(Ud(e[s])&&jd(e[s])<=r){n=s;break}for(;n-1>t&&e[n-1].trim()==="";)n--;return n}function jd(e){return(e.match(/^ */)?.[0]??"").length}function Ud(e){let t=e.trim();return t!==""&&!t.startsWith("#")}function pE(e){return e.replace(/^ */,"").replace(/:.*$/,"").trim()}function ma(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function AD(e,t){let r=e===""?[]:e.replace(/\n+$/,"").split(`
|
|
161
|
+
`),n=dE(r,"plugins");if(n===-1)return e;let s=Bd(r,n,0),o=uE(r,"memory",n+1,s,2);if(o===-1)return e;let i=Bd(r,o,2),a=[...r],c=uE(a,"storePath",o+1,i,4);return c!==-1?a[c]=` storePath: ${t}`:a.splice(i,0,` storePath: ${t}`),`${a.join(`
|
|
163
162
|
`)}
|
|
164
|
-
`}function
|
|
165
|
-
`}function
|
|
163
|
+
`}function uE(e,t,r,n,s){for(let o=r;o<n;o++){let i=e[o];if(Ud(i)&&jd(i)===s&&pE(i)===t)return o}return-1}async function Fd(e){try{return await ED(e,_D.F_OK),!0}catch{return!1}}var Md,xD,CD,fE=h(()=>{"use strict";Le();Be();Md=tu,xD=_m,CD=".red/memory/graph.rdb"});var _E={};K(_E,{runRspMcpServer:()=>ID});import{createInterface as PD}from"node:readline";async function ID(){let e=De(process.cwd(),process.env),t=PD({input:process.stdin,crlfDelay:1/0});for await(let r of t){if(!r.trim())continue;let n;try{n=JSON.parse(r);let s=await LD(n,e);yE({jsonrpc:"2.0",id:n.id??null,result:s})}catch(s){yE({jsonrpc:"2.0",id:typeof bE(r)?.id>"u"?null:bE(r)?.id,error:{code:-32e3,message:s instanceof Error?s.message:String(s)}})}}}async function LD(e,t){if(e.method==="initialize")return{protocolVersion:"2024-11-05",capabilities:{tools:{}},serverInfo:{name:"rsp",version:"0.1.0"}};if(e.method==="tools/list")return t.enabled?{tools:[{name:"rsp_status",description:"Explain whether rsp is enabled in this directory.",inputSchema:{type:"object",properties:{}}},{name:"rsp_stats",description:"Read resident rsp accounting stats.",inputSchema:{type:"object",properties:{}}},{name:"rsp_show",description:"Read an rsp elision handle through the resident server.",inputSchema:{type:"object",properties:{handle:{type:"string"}},required:["handle"]}},{name:"rsp_compress",description:"Compress arbitrary text or JSON through rsp normalization, JSON selection, TOON rendering, and reversible elision.",inputSchema:{type:"object",properties:{payload:{description:"Text, JSON value, or JSON-serializable payload to compress."},level:{type:"string",enum:["brief","terse"],description:"Compression level. Defaults to brief."}},required:["payload"]}}]}:{tools:[{name:"rsp_status",description:"Explain whether rsp is enabled in this directory.",inputSchema:{type:"object",properties:{}}}]};if(e.method==="tools/call"){let r=e.params;if(r?.name==="rsp_status")return{content:[{type:"text",text:hE(t)}]};if(!t.enabled)return{content:[{type:"text",text:hE(t)}],isError:!0};let n=jD(t);if(r?.name==="rsp_stats")return{content:[{type:"text",text:Dr({tool:"rsp_stats",...await n.accountingStats(t.telemetryByteBudget)})}]};if(r?.name==="rsp_show"){let s=String(r.arguments?.handle??""),o=await n.get(s);return o?"status"in o?{content:[{type:"text",text:Dr({tool:"rsp_show",handle:s,found:!1,category:"real-error",error:o.status,expired_at:o.expired_at,help:[o.command]})}],isError:!0}:{content:[{type:"text",text:Dr({tool:"rsp_show",handle:s,found:!0,bytes:o.original.length,text:o.original.toString("utf8")})}]}:{content:[{type:"text",text:Dr(GD(s,"not found"))}],isError:!0}}if(r?.name==="rsp_compress")return{content:[{type:"text",text:await DD(r.arguments,n)}]}}return{}}function Dr(e){return`${ne(e)}
|
|
164
|
+
`}function GD(e,t){return{tool:"rsp_show",handle:e,found:!1,category:"real-error",error:t,help:["rsp show el:<id>"]}}async function DD(e,t){let r=ND(e?.payload);try{return await $D(r,e,t)}catch(n){if(process.env.RSP_DEBUG==="1")throw n;return wE(r)}}async function $D(e,t,r){let n=FD(t?.level),s=await Yl(e,{level:n,command:"rsp mcp compress",store:r});if(s.detected)return wE(s.output);let o=Ki(e);if(n==="brief"&&Buffer.byteLength(o)<=2*1024)return Dr({tool:"rsp_compress",level:n,detected:"text",bytes:Buffer.byteLength(e),text:o});let i=Buffer.from(e),a=await r.mint(i,{command:"rsp mcp compress",loss:{level:n,bytes_elided:i.length}});return MD(o,i.length,a,n)}function ND(e){return typeof e=="string"?e:e==null?"":JSON.stringify(e)}function FD(e){return e==="terse"?"terse":"brief"}function MD(e,t,r,n){let s=n==="terse"?1024:2048,o=Buffer.from(e),i=Math.max(1,Math.floor(s/2)),a=gE(o.subarray(0,i)),c=gE(o.subarray(Math.max(0,o.length-i)));return Dr({tool:"rsp_compress",level:n,detected:"text",bytes:t,lines:BD(o),head:a,tail:c&&c!==a?c:null,handle:r,help:[`rsp show ${r}`]})}function wE(e){return e.endsWith(`
|
|
166
165
|
`)?e:`${e}
|
|
167
|
-
`}function
|
|
168
|
-
`)}function
|
|
169
|
-
`)}function
|
|
170
|
-
`)}function ca(e,t){if(t.length===0)return[];if(t.some(o=>o.command.length===1))return[`${e}() {`," if command -v rsp >/dev/null 2>&1; then",` command rsp ${e} "$@"`," return"," fi",` command ${e} "$@"`,"}"];let r=t.map(o=>o.command.slice(1)).filter(o=>o.length===1).map(o=>o[0]).filter(ua),n=t.map(o=>o.command.slice(1)).filter(o=>o.length>1&&o.every(ua)),s=[`${e}() {`," if ! command -v rsp >/dev/null 2>&1; then",` command ${e} "$@"`," return"," fi",' case "$1" in'];if(r.length>0){let o=r.map(i=>uE(i)).join("|");s.push(` ${o}) command rsp ${e} "$@" ;;`)}for(let[o,i]of fG(n)){let a=i.map(c=>c.map((u,l)=>`[ "$${l+2}" = '${hG(u)}' ]`).join(" && ")).join(" || ");s.push(` ${uE(o)}) if ${a}; then command rsp ${e} "$@"; else command ${e} "$@"; fi ;;`)}return s.push(` *) command ${e} "$@" ;;`," esac","}"),s}function fG(e){let t=new Map;for(let[r,...n]of e){if(!r)continue;let s=t.get(r)??[];s.push(n),t.set(r,s)}return t}function gG(e){let t=new Map;for(let r of e){let n=r.command[0];if(!n||!ua(n))continue;let s=t.get(n)??[];s.push(r),t.set(n,s)}return t}function ua(e){return!!(e&&/^[A-Za-z0-9_./:-]+$/.test(e))}function uE(e){return e.replace(/[\\|)&;]/g,"\\$&")}function hG(e){return e.replace(/'/g,"'\\''")}function yG(e){return e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}var dE=h(()=>{"use strict";Ks()});function Ld(e){if(typeof e!="object"||e===null)return!1;let t=e;return t.schemaVersion===1&&typeof t.id=="string"&&t.id.length>0&&typeof t.emitter=="string"&&t.emitter.length>0&&typeof t.occurredAt=="string"&&typeof t.taskClass=="string"&&bG(t.chosenOption)&&wG(t.outcome)&&_G(t.cost)}function bG(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.kind=="string"&&t.kind.length>0}function wG(e){return e==="success"||e==="failure"||e==="escalated"}function _G(e){if(typeof e!="object"||e===null)return!1;let t=e.signal;return t==="none"||t==="low"||t==="medium"||t==="high"||t==="unknown"}var pE=h(()=>{});import{createHash as EG}from"node:crypto";function SE(e,t){return new Gd(e,t)}function mE(e){let t=Number(e.red_entity_id??e.rid),r=$d(e.properties??e.PROPERTIES),n=TE(String(e.node_type??e.NODE_TYPE??r.kind??"note"));if(!Number.isFinite(t))return null;let s=String(r.id??e.label??e.LABEL??t),o=String(r.title??e.label??e.LABEL??s),i=String(r.content??""),a=Array.isArray(r.tags)?r.tags.map(String):[],c=Date.now();return{rid:t,label:String(e.label??e.LABEL??s),kind:n,properties:{...r,id:s,title:o,content:i,tags:a,created_at:Number(r.created_at??c),updated_at:Number(r.updated_at??r.created_at??c),hash:String(r.hash??"")}}}function fE(e){let t=Number(e.red_entity_id??e.rid),r=Number(e.from??e.FROM??e.from_rid??e.source),n=Number(e.to??e.TO??e.to_rid??e.target),s=vE(String(e.label??e.LABEL??"related_to"));return!Number.isFinite(t)||!Number.isFinite(r)||!Number.isFinite(n)?null:{rid:t,kind:s,from_rid:r,to_rid:n,weight:Number(e.weight??1),properties:$d(e.properties??e.PROPERTIES)}}function SG(e){let t=Number(e.red_entity_id??e.rid),r=$d(e.properties??e.PROPERTIES);return!Number.isFinite(t)||!Ld(r)?null:{rid:t,event:r}}function $d(e){return e==null?{}:typeof e=="string"?JSON.parse(e):la(e)?e:{}}function TE(e){let t=e==="contact"?"person":e;if(RG.has(t))return t;throw new Error(`invalid Brain artifact kind: ${e}`)}function vE(e){if(kG.has(e))return e;throw new Error(`invalid Brain connection kind: ${e}`)}function TG(e){return e==="hour"||e==="week"||e==="month"?e:"day"}function gE(e){if(typeof e=="number")return e;let t=String(e??"");return/^\d+$/.test(t)?Number(t):t}function Nr(e){return la(e)?e:{}}function hE(e,t){return Nr(e)[t]}function yE(e,t){let r=e[t];if(typeof r!="string")throw new Error(`brain ${t} must be a string`);return r}function bE(e,t){let r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function wE(e){let t=Nr(e);return{excludeRids:Array.isArray(t.excludeRids)?t.excludeRids.map(Number).filter(Number.isFinite):void 0}}function Ie(e){return typeof e=="string"&&e.length>0?e:void 0}function la(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Dd(e){return e!=null}function vG(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean))).sort()}function xG(e){return EG("sha256").update(JSON.stringify(e)).digest("hex")}function CG(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"artifact"}function _E(e){return`artifact-hash:${e}`}function EE(e,t,r){return`connection:${e}:${t}:${r}`}function RE(){return"model-tier-bandit:v1"}function OG(e){return e.toLowerCase().split(/[^a-z0-9_]+/).map(t=>t.trim()).filter(t=>t.length>1)}function kE(e,t){let r=0,n=e.indexOf(t);for(;n>=0;)r++,n=e.indexOf(t,n+t.length);return r}function xE(e,t){let r=e.properties.title.toLowerCase(),n=e.properties.content.toLowerCase(),s=e.properties.tags.map(i=>i.toLowerCase()),o=e.kind.toLowerCase();return{lexical:t.reduce((i,a)=>i+kE(r,a)*3+kE(n,a),0),tags:t.reduce((i,a)=>i+s.reduce((c,u)=>c+(u===a?4:u.includes(a)||a.includes(u)?2:0),0),0),kind:t.reduce((i,a)=>i+(o===a?3:o.includes(a)||a.includes(o)?1:0),0)}}function AG(e,t,r,n){let s=0;for(let o of r){let i=o.from_rid===e.rid?o.to_rid:o.to_rid===e.rid?o.from_rid:null;if(i==null)continue;let a=n.get(i);if(!a)continue;let c=CE({...xE(a,t),connections:0,vector:0}).total;c>0&&(s+=Math.min(c,12)*.35)}return $r(s)}function CE(e){return{...e,lexical:$r(e.lexical),tags:$r(e.tags),kind:$r(e.kind),connections:$r(e.connections),vector:$r(e.vector),total:$r(e.lexical+e.tags+e.kind+e.connections+e.vector)}}function $r(e){return Math.round(e*1e3)/1e3}function PG(e,t){if(e.length<=220)return e;let r=e.toLowerCase(),n=t.map(o=>r.indexOf(o)).filter(o=>o>=0).sort((o,i)=>o-i)[0]??0,s=Math.max(0,n-80);return`${s>0?"...":""}${e.slice(s,s+220)}${s+220<e.length?"...":""}`}function IG(e,t){let r=t.length===0?"none":t[0].score>=5?"high":t[0].score>=3?"medium":"low",n=t.length===0?[`No Brain artifacts matched "${e}".`]:[];return{answer:t.length===0?`Brain has no cited evidence for "${e}".`:`Brain found ${t.length} cited artifact${t.length===1?"":"s"} for "${e}".`,hits:t,citations:t.map((s,o)=>({ref:`B${o+1}`,rid:s.artifact.rid,id:s.artifact.properties.id,title:s.artifact.properties.title,kind:s.artifact.kind,score:s.score,score_breakdown:s.score_breakdown,excerpt:s.excerpt})),confidence:r,missing_evidence:n}}function LG(e){let t={};for(let r of e)t[r]=(t[r]??0)+1;return t}var wt,RG,kG,Gd,OE=h(()=>{"use strict";pE();wt={artifacts:"brain_artifacts",connections:"brain_connections",outcomeEvents:"brain_outcome_events",kv:"brain_kv"},RG=new Set(["pillar","decision","concept","question","playbook","task","event","pattern","hypothesis","fact","source","bookmark","note","reference","custom","project","idea","meeting","claim","organization","person"]),kG=new Set(["supports","contradicts","depends_on","derived_from","related_to","part_of","preceded_by","followed_by","authored","tagged"]),Gd=class{constructor(t,r){this.db=t;this.uri=r}async request(t,r){if(await this.bootstrap(),t==="status")return await this.status();if(t==="capture")return await this.capture(Nr(r));if(t==="getArtifact")return await this.getArtifact(hE(r,"ridOrId"));if(t==="listArtifacts")return await this.listArtifacts();if(t==="search"){let n=Nr(r);return await this.search(yE(n,"query"),bE(n,"limit")??10,wE(n.options))}if(t==="think"){let n=Nr(r);return await this.think(yE(n,"query"),bE(n,"limit")??8,wE(n.options))}if(t==="link")return await this.link(Nr(r));if(t==="backlinks")return await this.backlinks(hE(r,"target"));if(t==="listConnections")return await this.listConnections();if(t==="eventKpis")return await this.eventKpis(Nr(r));if(t==="appendOutcomeEvent")return await this.appendOutcomeEvent(r);if(t==="replayOutcomeEvents")return await this.replayOutcomeEvents();if(t==="loadModelTierBanditDocument")return await this.loadModelTierBanditDocument();if(t==="saveModelTierBanditDocument")return await this.saveModelTierBanditDocument(r);if(t==="refreshModelTierBanditDocument")return await this.refreshModelTierBanditDocument();throw new Error(`unsupported resident brain action: ${t}`)}async bootstrap(){await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${wt.artifacts}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${wt.connections}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${wt.outcomeEvents}`)}async status(){let t=await this.listArtifacts(),r=await this.listConnections();return{uri:this.uri,artifacts:t.length,connections:r.length,kinds:LG(t.map(n=>n.kind))}}async capture(t){let r=Ie(t.title)||"Untitled artifact",n=Ie(t.content);if(!n)throw new Error("brain capture requires content");let s=TE(Ie(t.kind)||"note"),o=vG(Array.isArray(t.tags)?t.tags.map(String):[]),i=Date.now(),a=xG([s,r,n,o,Ie(t.sourcePath),Ie(t.sourceSession)]),c=await this.kv().get(_E(a));if(c!=null){let f=await this.getArtifact(Number(c));if(f)return f}let u=`${CG(r)}-${a.slice(0,8)}`,l={id:u,title:r,content:n,tags:o,source_agent:Ie(t.sourceAgent),source_runner:Ie(t.sourceRunner),source_session:Ie(t.sourceSession),source_path:Ie(t.sourcePath),created_at:i,updated_at:i,hash:a,metadata:la(t.metadata)?t.metadata:void 0},d=(await this.db.query(`INSERT INTO ${wt.artifacts} NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *`,u,s,a,l)).rows[0];if(!d)throw new Error("INSERT artifact returned no row");let g=mE(d);if(!g)throw new Error("INSERT artifact returned invalid row");return await this.kv().put(_E(a),g.rid),await this.materializeTagConnections(g),g}async getArtifact(t){let r=await this.listArtifacts();return typeof t=="number"?r.find(n=>n.rid===t)??null:r.find(n=>n.properties.id===t||n.label===t)??null}async listArtifacts(){return(await this.db.query(`SELECT * FROM ${wt.artifacts}`)).rows.map(mE).filter(Dd)}async search(t,r,n={}){let s=OG(t),o=new Set(n.excludeRids??[]),i=await this.listArtifacts(),a=await this.listConnections(),c=new Map(i.map(u=>[u.rid,u]));return i.filter(u=>!o.has(u.rid)).map(u=>{let l=xE(u,s),p=CE({...l,connections:AG(u,s,a,c),vector:0});return{artifact:u,score:p.total,score_breakdown:p,excerpt:PG(u.properties.content,s)}}).filter(u=>u.score>0).sort((u,l)=>l.score-u.score||l.artifact.properties.updated_at-u.artifact.properties.updated_at).slice(0,Math.max(1,Math.min(100,r)))}async think(t,r,n={}){let s=(await this.search(t,Math.max(r*2,r+5),n)).slice(0,r);return IG(t,s)}async link(t){let r=await this.getArtifact(gE(t.from)),n=await this.getArtifact(gE(t.to));if(!r)throw new Error(`Brain artifact not found: ${String(t.from)}`);if(!n)throw new Error(`Brain artifact not found: ${String(t.to)}`);let s=vE(Ie(t.kind)||"related_to"),o=await this.findConnection(r.rid,n.rid,s);if(o!=null){let l=(await this.listConnections()).find(p=>p.rid===o);if(l)return l}let i={reason:Ie(t.reason),confidence:Ie(t.confidence)||"explicit",created_at:Date.now(),metadata:la(t.metadata)?t.metadata:void 0},c=(await this.db.query(`INSERT INTO ${wt.connections} EDGE (label, from, to, weight, properties) VALUES ($1, $2, $3, $4, $5) RETURNING *`,s,r.rid,n.rid,1,i)).rows[0];if(!c)throw new Error("INSERT connection returned no row");let u=fE(c);if(!u)throw new Error("INSERT connection returned invalid row");return await this.kv().put(EE(r.rid,n.rid,s),u.rid),u}async backlinks(t){let r=await this.getArtifact(t);if(!r)throw new Error(`Brain artifact not found: ${t}`);return(await this.listConnections()).filter(n=>n.to_rid===r.rid)}async listConnections(){return(await this.db.query(`SELECT * FROM ${wt.connections}`)).rows.map(fE).filter(Dd)}async eventKpis(t){let r=(await this.listArtifacts()).filter(o=>o.kind==="event"),n=TG(Ie(t.interval)||"day"),s=Ie(t.timeField)==="ingested"?"ingested":"event";return{kind:"event",interval:n,timeField:s,range:{from:null,to:null},total:r.length,series:[{group:null,total:r.length,buckets:[]}]}}async appendOutcomeEvent(t){if(!Ld(t))throw new Error("invalid Brain outcome event");if(!(await this.db.query(`INSERT INTO ${wt.outcomeEvents} NODE (label, node_type, properties) VALUES ($1, $2, $3) RETURNING *`,t.id,`outcome_event.v${t.schemaVersion}`,t)).rows[0])throw new Error("INSERT outcome event returned no row");return t}async replayOutcomeEvents(){return(await this.db.query(`SELECT * FROM ${wt.outcomeEvents}`)).rows.map(SG).filter(Dd).sort((r,n)=>r.rid-n.rid).map(({event:r})=>r)}async loadModelTierBanditDocument(){let t=await this.kv().get(RE());return typeof t=="string"?JSON.parse(t):t}async saveModelTierBanditDocument(t){return await this.kv().put(RE(),JSON.stringify(t)),t}async refreshModelTierBanditDocument(){let t=await this.loadModelTierBanditDocument();if(t!=null)return t;let r={schema_version:"brain.model-tier-bandit.v1",updated_at:new Date().toISOString(),arms:{}};return await this.saveModelTierBanditDocument(r),r}async materializeTagConnections(t){if(t.properties.metadata?.derived_kind!=="tag")for(let r of t.properties.tags){let n=await this.capture({title:r,content:`Tag: ${r}`,kind:"custom",tags:["tag"],metadata:{derived:!0,derived_kind:"tag"}});await this.link({from:t.rid,to:n.rid,kind:"tagged",confidence:"derived"})}}async findConnection(t,r,n){let s=await this.kv().get(EE(t,r,n));return s!=null?Number(s):null}kv(){return this.db.kv(wt.kv)}}});var jE={};K(jE,{runResidentServer:()=>jG});import{randomUUID as An}from"node:crypto";import{execFileSync as DG,spawn as GG}from"node:child_process";import{existsSync as $G}from"node:fs";import{mkdir as $E,rename as NG,rm as AE,writeFile as NE}from"node:fs/promises";import{createServer as FG}from"node:net";import{dirname as Bd,join as da}from"node:path";import{fileURLToPath as MG,pathToFileURL as BG}from"node:url";async function jG(e){await $E(Bd(e.socketPath),{recursive:!0});let t=e$();ZG();let r=e.telemetryDrainTimeoutMs??FE,n={kind:"opening",startedAt:process.hrtime.bigint()},s,o=!1,i=e.idleMs??Wo,a,c,u=!1,l=new Set,p=e.telemetryDrainIntervalMs??3e4,d=FG(v=>{l.add(v),v.once("close",()=>l.delete(v)),f(),a$(v,async(G,B)=>{f();let V=await c$(n,G,e.storeUri,e.residentVersion??"0.0.0-dev"),te={id:G.id,ok:!0,value:V,storeOpenCount:n.kind==="ready"?n.storeOpenCount:void 0,storeElapsedMs:n.kind==="ready"?n.storeElapsedMs:void 0};B(te),G.op==="handover"&&setImmediate(()=>g())})});function g(){o=!0,u=!0,c=XG(c),d.close();for(let v of l)v.destroy()}function f(){n.kind!=="opening"&&(a&&clearTimeout(a),a=setTimeout(()=>{g()},i),a.unref())}let E=["SIGINT","SIGTERM"].map(v=>{let G=()=>{pa(),d.close();for(let B of l)B.destroy();setTimeout(()=>process.exit(0),1e3)};return process.once(v,G),{signal:v,handler:G}});await new Promise((v,G)=>{d.once("error",G),d.listen(e.socketPath,()=>{d.off("error",G),v()})}),(async()=>{let v=process.hrtime.bigint();process.env.RSP_TEST_HANG_RESIDENT_STORE_OPEN==="1"&&await new Promise(()=>{});let G=Number(process.env.RSP_TEST_DELAY_RESIDENT_STORE_OPEN_MS??"0");Number.isFinite(G)&&G>0&&await new Promise(re=>setTimeout(re,G));let B=await xr.open({uri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,allowResidentOpen:!0}),V=Number(process.hrtime.bigint()-v)/1e6,te=new Md(B,{rootDir:e.rootDir??process.cwd(),ttlDays:e.telemetryTtlDays??Ho,byteBudget:e.telemetryByteBudget??e.byteBudget??qo});if(o){await B.close();return}if(await Nd(te,r),o){await B.close();return}n={kind:"ready",store:B,telemetry:te,storeOpenCount:1,storeElapsedMs:V},s=setInterval(()=>{let re=n.kind==="ready"?n:void 0;re&&Nd(re.telemetry,r)},p),s.unref(),f()})().catch(v=>{n={kind:"failed",error:v instanceof Error?v:new Error(String(v))},f()}),e.pidPath&&await NE(e.pidPath,`${process.pid}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
166
|
+
`}function gE(e){return e.toString("utf8").replace(/�$/g,"")}function BD(e){if(e.length===0)return 0;let t=0;for(let r of e)r===10&&t++;return e[e.length-1]===10?t:t+1}function jD(e){return Xn(process.cwd(),e)}function hE(e){let t=e.enabled?qt(process.cwd(),e.overhead):null;return Dr({tool:"rsp_status",enabled:e.enabled,status:e.enabled?"enabled":"disabled",message:e.enabled?"rsp is enabled in this directory":"rsp is not enabled in this directory",overhead_verdict:t?.verdict??"unknown",overhead_summary:t?.summary??"rsp is not enabled in this directory",overhead_disabled_families:t?.disabled_families.map(r=>r.family)??[],help:e.enabled?[]:["/red-setup"]})}function yE(e){process.stdout.write(`${JSON.stringify(e)}
|
|
167
|
+
`)}function bE(e){try{return JSON.parse(e)}catch{return null}}var EE=h(()=>{"use strict";vt();Be();ae();Bs();Jt()});var kE={};K(kE,{renderShellInit:()=>UD});function UD(e,t=Vs){if(e==="fish")return HD(t);if(e==="bash"||e==="zsh")return qD(e,t);throw new Error(`unsupported shell: ${e}`)}function HD(e){return["# rsp shell-init fish","# Opt-in only: source this output from config.fish; remove that line to restore raw commands.","if type -q rsp",...[...new Set(e.map(r=>r.command[0]).filter(ga))].map(r=>` abbr --add --position command -- ${r} '${KD(`rsp ${r}`)}'`)," function rspx --description 'Run a shell pipeline through rsp exec'"," rsp exec -- $argv"," end","else"," # rsp is not on PATH; rsp abbreviations and rspx were not installed.","end",""].join(`
|
|
168
|
+
`)}function qD(e,t){let r=JD(t);return[`# rsp shell-init ${e}`,`# Opt-in only: source this output from ${e} startup files; remove that line to restore raw commands.`,...fa("git",r.get("git")??[]),...fa("gh",r.get("gh")??[]),...fa("vitest",r.get("vitest")??[]),...fa("cargo",r.get("cargo")??[]),"rspx() {"," if command -v rsp >/dev/null 2>&1; then",' command rsp exec -- "$@"'," return"," fi"," printf '%s\\n' 'rspx requires rsp with exec support on PATH' >&2"," return 127","}",""].join(`
|
|
169
|
+
`)}function fa(e,t){if(t.length===0)return[];if(t.some(o=>o.command.length===1))return[`${e}() {`," if command -v rsp >/dev/null 2>&1; then",` command rsp ${e} "$@"`," return"," fi",` command ${e} "$@"`,"}"];let r=t.map(o=>o.command.slice(1)).filter(o=>o.length===1).map(o=>o[0]).filter(ga),n=t.map(o=>o.command.slice(1)).filter(o=>o.length>1&&o.every(ga)),s=[`${e}() {`," if ! command -v rsp >/dev/null 2>&1; then",` command ${e} "$@"`," return"," fi",' case "$1" in'];if(r.length>0){let o=r.map(i=>RE(i)).join("|");s.push(` ${o}) command rsp ${e} "$@" ;;`)}for(let[o,i]of WD(n)){let a=i.map(c=>c.map((u,l)=>`[ "$${l+2}" = '${VD(u)}' ]`).join(" && ")).join(" || ");s.push(` ${RE(o)}) if ${a}; then command rsp ${e} "$@"; else command ${e} "$@"; fi ;;`)}return s.push(` *) command ${e} "$@" ;;`," esac","}"),s}function WD(e){let t=new Map;for(let[r,...n]of e){if(!r)continue;let s=t.get(r)??[];s.push(n),t.set(r,s)}return t}function JD(e){let t=new Map;for(let r of e){let n=r.command[0];if(!n||!ga(n))continue;let s=t.get(n)??[];s.push(r),t.set(n,s)}return t}function ga(e){return!!(e&&/^[A-Za-z0-9_./:-]+$/.test(e))}function RE(e){return e.replace(/[\\|)&;]/g,"\\$&")}function VD(e){return e.replace(/'/g,"'\\''")}function KD(e){return e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}var SE=h(()=>{"use strict";Ks()});function Hd(e){if(typeof e!="object"||e===null)return!1;let t=e;return t.schemaVersion===1&&typeof t.id=="string"&&t.id.length>0&&typeof t.emitter=="string"&&t.emitter.length>0&&typeof t.occurredAt=="string"&&typeof t.taskClass=="string"&&zD(t.chosenOption)&&YD(t.outcome)&&QD(t.cost)}function zD(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.kind=="string"&&t.kind.length>0}function YD(e){return e==="success"||e==="failure"||e==="escalated"}function QD(e){if(typeof e!="object"||e===null)return!1;let t=e.signal;return t==="none"||t==="low"||t==="medium"||t==="high"||t==="unknown"}var TE=h(()=>{});import{createHash as XD}from"node:crypto";function NE(e,t){return new Wd(e,t)}function vE(e){let t=Number(e.red_entity_id??e.rid),r=Jd(e.properties??e.PROPERTIES),n=FE(String(e.node_type??e.NODE_TYPE??r.kind??"note"));if(!Number.isFinite(t))return null;let s=String(r.id??e.label??e.LABEL??t),o=String(r.title??e.label??e.LABEL??s),i=String(r.content??""),a=Array.isArray(r.tags)?r.tags.map(String):[],c=Date.now();return{rid:t,label:String(e.label??e.LABEL??s),kind:n,properties:{...r,id:s,title:o,content:i,tags:a,created_at:Number(r.created_at??c),updated_at:Number(r.updated_at??r.created_at??c),hash:String(r.hash??"")}}}function xE(e){let t=Number(e.red_entity_id??e.rid),r=Number(e.from??e.FROM??e.from_rid??e.source),n=Number(e.to??e.TO??e.to_rid??e.target),s=ME(String(e.label??e.LABEL??"related_to"));return!Number.isFinite(t)||!Number.isFinite(r)||!Number.isFinite(n)?null:{rid:t,kind:s,from_rid:r,to_rid:n,weight:Number(e.weight??1),properties:Jd(e.properties??e.PROPERTIES)}}function t$(e){let t=Number(e.red_entity_id??e.rid),r=Jd(e.properties??e.PROPERTIES);return!Number.isFinite(t)||!Hd(r)?null:{rid:t,event:r}}function Jd(e){return e==null?{}:typeof e=="string"?JSON.parse(e):ha(e)?e:{}}function FE(e){let t=e==="contact"?"person":e;if(ZD.has(t))return t;throw new Error(`invalid Brain artifact kind: ${e}`)}function ME(e){if(e$.has(e))return e;throw new Error(`invalid Brain connection kind: ${e}`)}function r$(e){return e==="hour"||e==="week"||e==="month"?e:"day"}function CE(e){if(typeof e=="number")return e;let t=String(e??"");return/^\d+$/.test(t)?Number(t):t}function Nr(e){return ha(e)?e:{}}function OE(e,t){return Nr(e)[t]}function AE(e,t){let r=e[t];if(typeof r!="string")throw new Error(`brain ${t} must be a string`);return r}function PE(e,t){let r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function IE(e){let t=Nr(e);return{excludeRids:Array.isArray(t.excludeRids)?t.excludeRids.map(Number).filter(Number.isFinite):void 0}}function Ie(e){return typeof e=="string"&&e.length>0?e:void 0}function ha(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function qd(e){return e!=null}function n$(e){return Array.from(new Set(e.map(t=>t.trim()).filter(Boolean))).sort()}function s$(e){return XD("sha256").update(JSON.stringify(e)).digest("hex")}function o$(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"artifact"}function LE(e){return`artifact-hash:${e}`}function GE(e,t,r){return`connection:${e}:${t}:${r}`}function DE(){return"model-tier-bandit:v1"}function i$(e){return e.toLowerCase().split(/[^a-z0-9_]+/).map(t=>t.trim()).filter(t=>t.length>1)}function $E(e,t){let r=0,n=e.indexOf(t);for(;n>=0;)r++,n=e.indexOf(t,n+t.length);return r}function BE(e,t){let r=e.properties.title.toLowerCase(),n=e.properties.content.toLowerCase(),s=e.properties.tags.map(i=>i.toLowerCase()),o=e.kind.toLowerCase();return{lexical:t.reduce((i,a)=>i+$E(r,a)*3+$E(n,a),0),tags:t.reduce((i,a)=>i+s.reduce((c,u)=>c+(u===a?4:u.includes(a)||a.includes(u)?2:0),0),0),kind:t.reduce((i,a)=>i+(o===a?3:o.includes(a)||a.includes(o)?1:0),0)}}function a$(e,t,r,n){let s=0;for(let o of r){let i=o.from_rid===e.rid?o.to_rid:o.to_rid===e.rid?o.from_rid:null;if(i==null)continue;let a=n.get(i);if(!a)continue;let c=jE({...BE(a,t),connections:0,vector:0}).total;c>0&&(s+=Math.min(c,12)*.35)}return $r(s)}function jE(e){return{...e,lexical:$r(e.lexical),tags:$r(e.tags),kind:$r(e.kind),connections:$r(e.connections),vector:$r(e.vector),total:$r(e.lexical+e.tags+e.kind+e.connections+e.vector)}}function $r(e){return Math.round(e*1e3)/1e3}function c$(e,t){if(e.length<=220)return e;let r=e.toLowerCase(),n=t.map(o=>r.indexOf(o)).filter(o=>o>=0).sort((o,i)=>o-i)[0]??0,s=Math.max(0,n-80);return`${s>0?"...":""}${e.slice(s,s+220)}${s+220<e.length?"...":""}`}function u$(e,t){let r=t.length===0?"none":t[0].score>=5?"high":t[0].score>=3?"medium":"low",n=t.length===0?[`No Brain artifacts matched "${e}".`]:[];return{answer:t.length===0?`Brain has no cited evidence for "${e}".`:`Brain found ${t.length} cited artifact${t.length===1?"":"s"} for "${e}".`,hits:t,citations:t.map((s,o)=>({ref:`B${o+1}`,rid:s.artifact.rid,id:s.artifact.properties.id,title:s.artifact.properties.title,kind:s.artifact.kind,score:s.score,score_breakdown:s.score_breakdown,excerpt:s.excerpt})),confidence:r,missing_evidence:n}}function l$(e){let t={};for(let r of e)t[r]=(t[r]??0)+1;return t}var bt,ZD,e$,Wd,UE=h(()=>{"use strict";TE();bt={artifacts:"brain_artifacts",connections:"brain_connections",outcomeEvents:"brain_outcome_events",kv:"brain_kv"},ZD=new Set(["pillar","decision","concept","question","playbook","task","event","pattern","hypothesis","fact","source","bookmark","note","reference","custom","project","idea","meeting","claim","organization","person"]),e$=new Set(["supports","contradicts","depends_on","derived_from","related_to","part_of","preceded_by","followed_by","authored","tagged"]),Wd=class{constructor(t,r){this.db=t;this.uri=r}async request(t,r){if(await this.bootstrap(),t==="status")return await this.status();if(t==="capture")return await this.capture(Nr(r));if(t==="getArtifact")return await this.getArtifact(OE(r,"ridOrId"));if(t==="listArtifacts")return await this.listArtifacts();if(t==="search"){let n=Nr(r);return await this.search(AE(n,"query"),PE(n,"limit")??10,IE(n.options))}if(t==="think"){let n=Nr(r);return await this.think(AE(n,"query"),PE(n,"limit")??8,IE(n.options))}if(t==="link")return await this.link(Nr(r));if(t==="backlinks")return await this.backlinks(OE(r,"target"));if(t==="listConnections")return await this.listConnections();if(t==="eventKpis")return await this.eventKpis(Nr(r));if(t==="appendOutcomeEvent")return await this.appendOutcomeEvent(r);if(t==="replayOutcomeEvents")return await this.replayOutcomeEvents();if(t==="loadModelTierBanditDocument")return await this.loadModelTierBanditDocument();if(t==="saveModelTierBanditDocument")return await this.saveModelTierBanditDocument(r);if(t==="refreshModelTierBanditDocument")return await this.refreshModelTierBanditDocument();throw new Error(`unsupported resident brain action: ${t}`)}async bootstrap(){await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${bt.artifacts}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${bt.connections}`),await this.db.execute(`CREATE GRAPH IF NOT EXISTS ${bt.outcomeEvents}`)}async status(){let t=await this.listArtifacts(),r=await this.listConnections();return{uri:this.uri,artifacts:t.length,connections:r.length,kinds:l$(t.map(n=>n.kind))}}async capture(t){let r=Ie(t.title)||"Untitled artifact",n=Ie(t.content);if(!n)throw new Error("brain capture requires content");let s=FE(Ie(t.kind)||"note"),o=n$(Array.isArray(t.tags)?t.tags.map(String):[]),i=Date.now(),a=s$([s,r,n,o,Ie(t.sourcePath),Ie(t.sourceSession)]),c=await this.kv().get(LE(a));if(c!=null){let f=await this.getArtifact(Number(c));if(f)return f}let u=`${o$(r)}-${a.slice(0,8)}`,l={id:u,title:r,content:n,tags:o,source_agent:Ie(t.sourceAgent),source_runner:Ie(t.sourceRunner),source_session:Ie(t.sourceSession),source_path:Ie(t.sourcePath),created_at:i,updated_at:i,hash:a,metadata:ha(t.metadata)?t.metadata:void 0},p=(await this.db.query(`INSERT INTO ${bt.artifacts} NODE (label, node_type, hash, properties) VALUES ($1, $2, $3, $4) RETURNING *`,u,s,a,l)).rows[0];if(!p)throw new Error("INSERT artifact returned no row");let g=vE(p);if(!g)throw new Error("INSERT artifact returned invalid row");return await this.kv().put(LE(a),g.rid),await this.materializeTagConnections(g),g}async getArtifact(t){let r=await this.listArtifacts();return typeof t=="number"?r.find(n=>n.rid===t)??null:r.find(n=>n.properties.id===t||n.label===t)??null}async listArtifacts(){return(await this.db.query(`SELECT * FROM ${bt.artifacts}`)).rows.map(vE).filter(qd)}async search(t,r,n={}){let s=i$(t),o=new Set(n.excludeRids??[]),i=await this.listArtifacts(),a=await this.listConnections(),c=new Map(i.map(u=>[u.rid,u]));return i.filter(u=>!o.has(u.rid)).map(u=>{let l=BE(u,s),d=jE({...l,connections:a$(u,s,a,c),vector:0});return{artifact:u,score:d.total,score_breakdown:d,excerpt:c$(u.properties.content,s)}}).filter(u=>u.score>0).sort((u,l)=>l.score-u.score||l.artifact.properties.updated_at-u.artifact.properties.updated_at).slice(0,Math.max(1,Math.min(100,r)))}async think(t,r,n={}){let s=(await this.search(t,Math.max(r*2,r+5),n)).slice(0,r);return u$(t,s)}async link(t){let r=await this.getArtifact(CE(t.from)),n=await this.getArtifact(CE(t.to));if(!r)throw new Error(`Brain artifact not found: ${String(t.from)}`);if(!n)throw new Error(`Brain artifact not found: ${String(t.to)}`);let s=ME(Ie(t.kind)||"related_to"),o=await this.findConnection(r.rid,n.rid,s);if(o!=null){let l=(await this.listConnections()).find(d=>d.rid===o);if(l)return l}let i={reason:Ie(t.reason),confidence:Ie(t.confidence)||"explicit",created_at:Date.now(),metadata:ha(t.metadata)?t.metadata:void 0},c=(await this.db.query(`INSERT INTO ${bt.connections} EDGE (label, from, to, weight, properties) VALUES ($1, $2, $3, $4, $5) RETURNING *`,s,r.rid,n.rid,1,i)).rows[0];if(!c)throw new Error("INSERT connection returned no row");let u=xE(c);if(!u)throw new Error("INSERT connection returned invalid row");return await this.kv().put(GE(r.rid,n.rid,s),u.rid),u}async backlinks(t){let r=await this.getArtifact(t);if(!r)throw new Error(`Brain artifact not found: ${t}`);return(await this.listConnections()).filter(n=>n.to_rid===r.rid)}async listConnections(){return(await this.db.query(`SELECT * FROM ${bt.connections}`)).rows.map(xE).filter(qd)}async eventKpis(t){let r=(await this.listArtifacts()).filter(o=>o.kind==="event"),n=r$(Ie(t.interval)||"day"),s=Ie(t.timeField)==="ingested"?"ingested":"event";return{kind:"event",interval:n,timeField:s,range:{from:null,to:null},total:r.length,series:[{group:null,total:r.length,buckets:[]}]}}async appendOutcomeEvent(t){if(!Hd(t))throw new Error("invalid Brain outcome event");if(!(await this.db.query(`INSERT INTO ${bt.outcomeEvents} NODE (label, node_type, properties) VALUES ($1, $2, $3) RETURNING *`,t.id,`outcome_event.v${t.schemaVersion}`,t)).rows[0])throw new Error("INSERT outcome event returned no row");return t}async replayOutcomeEvents(){return(await this.db.query(`SELECT * FROM ${bt.outcomeEvents}`)).rows.map(t$).filter(qd).sort((r,n)=>r.rid-n.rid).map(({event:r})=>r)}async loadModelTierBanditDocument(){let t=await this.kv().get(DE());return typeof t=="string"?JSON.parse(t):t}async saveModelTierBanditDocument(t){return await this.kv().put(DE(),JSON.stringify(t)),t}async refreshModelTierBanditDocument(){let t=await this.loadModelTierBanditDocument();if(t!=null)return t;let r={schema_version:"brain.model-tier-bandit.v1",updated_at:new Date().toISOString(),arms:{}};return await this.saveModelTierBanditDocument(r),r}async materializeTagConnections(t){if(t.properties.metadata?.derived_kind!=="tag")for(let r of t.properties.tags){let n=await this.capture({title:r,content:`Tag: ${r}`,kind:"custom",tags:["tag"],metadata:{derived:!0,derived_kind:"tag"}});await this.link({from:t.rid,to:n.rid,kind:"tagged",confidence:"derived"})}}async findConnection(t,r,n){let s=await this.kv().get(GE(t,r,n));return s!=null?Number(s):null}kv(){return this.db.kv(bt.kv)}}});import{join as d$}from"node:path";function WE(e){let t=yu({path:d$(X(e.rootDir),"github","spend.toonl")}),r=qu({token:e.token,attribution:t,...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}});return p$(r)}function p$(e){return{async read(t){let r=gu(t.args);if(r.kind!=="read")return Zs(r,"github-write-passthrough","writes are executed by the original gh command unchanged");if(t.actor.trim()==="")return Zs(r,"github-actor-missing","retry through rsp so the caller can be attributed");if(r.budget==="search")return Zs(r,"github-search-not-routable","search reads are never a fallback; narrow the read to a classified object");try{if(r.surface==="graphql"){let s=m$(r,t);if(!s)return Zs(r,"github-graphql-read-not-realized","use a classified rsp summary whose GraphQL projection is declared");let o=await e.graphql(s.query,s.variables,{operation:r,actor:t.actor});return{status:0,stdout:JSON.stringify(s.decode(o)),stderr:"",surface:r.surface,pool:r.budget,quotaFree:!1}}let n=await e.conditionalRest({cacheKey:h$(t.path,t.params),route:`GET /${t.path.replace(/^\/+/,"")}`,parameters:y$(t.params),operation:r,actor:t.actor});return{status:0,stdout:JSON.stringify(n.data),stderr:"",surface:r.surface,pool:r.budget,quotaFree:n.quotaFree}}catch(n){return Wu(n)?Zs(r,"github-budget-refused","wait for the reported GitHub rate-limit reset, then retry"):{status:b$(n),stdout:"",stderr:n instanceof Error?n.message:String(n),surface:r.surface,pool:r.budget,quotaFree:!1}}}}}function m$(e,t){let r=Vd(t.params,"owner"),n=Vd(t.params,"repo");if(!r||!n)return null;let s=f$(t.params,"per_page",30),o=[String(t.params?.state??"open").toUpperCase()];return e.key==="issue list"?{query:`query RspIssueList($owner: String!, $repo: String!, $first: Int!, $states: [IssueState!], $labels: [String!]) {
|
|
170
|
+
repository(owner: $owner, name: $repo) {
|
|
171
|
+
issues(first: $first, states: $states, labels: $labels, orderBy: {field: UPDATED_AT, direction: DESC}) {
|
|
172
|
+
nodes { number title body state url updatedAt author { login } labels(first: 100) { nodes { name } } }
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}`,variables:{owner:r,repo:n,first:s,states:o,labels:g$(t.params,"labels")},decode:i=>HE(i,"issues").map(a=>({number:a.number,title:a.title,body:a.body,state:String(a.state??"").toLowerCase(),html_url:a.url,updated_at:a.updatedAt,user:a.author,labels:qE(a.labels)}))}:e.key==="pr list"?{query:`query RspPrList($owner: String!, $repo: String!, $first: Int!, $states: [PullRequestState!]) {
|
|
176
|
+
repository(owner: $owner, name: $repo) {
|
|
177
|
+
pullRequests(first: $first, states: $states, orderBy: {field: UPDATED_AT, direction: DESC}) {
|
|
178
|
+
nodes { number title body state url updatedAt isDraft author { login } baseRefName headRefName labels(first: 100) { nodes { name } } }
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}`,variables:{owner:r,repo:n,first:s,states:o},decode:i=>HE(i,"pullRequests").map(a=>({number:a.number,title:a.title,body:a.body,state:String(a.state??"").toLowerCase(),html_url:a.url,updated_at:a.updatedAt,draft:a.isDraft===!0,user:a.author,base:{ref:a.baseRefName},head:{ref:a.headRefName},labels:qE(a.labels)}))}:null}function HE(e,t){let r=eo(e.repository),n=eo(r?.[t]);return Array.isArray(n?.nodes)?n.nodes.map(eo).filter(s=>s!==null):[]}function qE(e){let t=eo(e);return Array.isArray(t?.nodes)?t.nodes.map(eo).filter(r=>r!==null):[]}function eo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Vd(e,t){let r=e?.[t];return typeof r=="string"?r.trim():""}function f$(e,t,r){let n=Number(e?.[t]);return Number.isSafeInteger(n)&&n>0?n:r}function g$(e,t){let r=Vd(e,t);return r===""?null:r.split(",").map(n=>n.trim()).filter(Boolean)}function Zs(e,t,r){return{status:75,stdout:"",stderr:JSON.stringify({refused:!0,reason:t,operation:e.key,pool:e.budget,repair:r}),surface:e.surface,pool:e.budget,quotaFree:!1,refused:!0}}function h$(e,t){return JSON.stringify({path:e,params:Object.entries(t??{}).filter(r=>r[1]!==void 0).sort(([r],[n])=>r.localeCompare(n))})}function y$(e){return Object.fromEntries(Object.entries(e??{}).filter(t=>t[1]!==void 0))}function b$(e){if(typeof e=="object"&&e!==null&&"status"in e){let t=e.status;if(typeof t=="number"&&Number.isInteger(t)&&t>0)return t}return 1}var JE=h(()=>{"use strict";Ju();Le()});var oR={};K(oR,{runResidentServer:()=>T$});import{randomUUID as An}from"node:crypto";import{execFileSync as ZE,spawn as w$}from"node:child_process";import{existsSync as _$}from"node:fs";import{mkdir as eR,rename as E$,rm as VE,writeFile as tR}from"node:fs/promises";import{createServer as R$}from"node:net";import{dirname as Qd,join as ya}from"node:path";import{fileURLToPath as k$,pathToFileURL as S$}from"node:url";async function T$(e){await eR(Qd(e.socketPath),{recursive:!0});let t=F$();N$();let r=e.telemetryDrainTimeoutMs??rR,n={kind:"opening",startedAt:process.hrtime.bigint()},s,o=!1,i=e.github??V$(e.rootDir??process.cwd()),a=e.idleMs??Ko,c,u,l=!1,d=new Set,p=e.telemetryDrainIntervalMs??3e4,g=R$(L=>{d.add(L),L.once("close",()=>d.delete(L)),k(),W$(L,async(F,q)=>{k();let se=await J$(n,F,e.storeUri,e.residentVersion??"0.0.0-dev",i),re={id:F.id,ok:!0,value:se,storeOpenCount:n.kind==="ready"?n.storeOpenCount:void 0,storeElapsedMs:n.kind==="ready"?n.storeElapsedMs:void 0};q(re),F.op==="handover"&&setImmediate(()=>f())})});function f(){o=!0,l=!0,u=$$(u),g.close();for(let L of d)L.destroy()}function k(){n.kind!=="opening"&&(c&&clearTimeout(c),c=setTimeout(()=>{f()},a),c.unref())}let y=["SIGINT","SIGTERM"].map(L=>{let F=()=>{ba(),g.close();for(let q of d)q.destroy();setTimeout(()=>process.exit(0),1e3)};return process.once(L,F),{signal:L,handler:F}});await new Promise((L,F)=>{g.once("error",F),g.listen(e.socketPath,()=>{g.off("error",F),L()})}),(async()=>{let L=process.hrtime.bigint();process.env.RSP_TEST_HANG_RESIDENT_STORE_OPEN==="1"&&await new Promise(()=>{});let F=Number(process.env.RSP_TEST_DELAY_RESIDENT_STORE_OPEN_MS??"0");Number.isFinite(F)&&F>0&&await new Promise(de=>setTimeout(de,F));let q=await Cr.open({uri:e.storeUri,ttlDays:e.ttlDays,ephemeralTtlHours:e.ephemeralTtlHours,byteBudget:e.byteBudget,allowResidentOpen:!0}),se=Number(process.hrtime.bigint()-L)/1e6,re=new Yd(q,{rootDir:e.rootDir??process.cwd(),ttlDays:e.telemetryTtlDays??Jo,byteBudget:e.telemetryByteBudget??e.byteBudget??Vo});if(o){await q.close();return}if(await Kd(re,r),o){await q.close();return}n={kind:"ready",store:q,telemetry:re,storeOpenCount:1,storeElapsedMs:se},s=setInterval(()=>{let de=n.kind==="ready"?n:void 0;de&&Kd(de.telemetry,r)},p),s.unref(),k()})().catch(L=>{n={kind:"failed",error:L instanceof Error?L:new Error(String(L))},k()}),e.pidPath&&await tR(e.pidPath,`${process.pid}
|
|
182
|
+
`,{encoding:"utf8",mode:384});let _=e.residentVersion??"0.0.0-dev",T=e.registryPath??ya(X(e.rootDir??process.cwd()),"rsp-resident.pid.json");try{await xo(T,{socket_path:e.socketPath,store_uri:e.storeUri,resident_version:_})}catch{}await new Promise(L=>g.once("close",L)),c&&clearTimeout(c),s&&clearInterval(s),await VE(e.socketPath,{force:!0});let C=n;C.kind==="ready"&&(await Kd(C.telemetry,r,l),await C.store.close()),u&&clearTimeout(u);for(let{signal:L,handler:F}of y)process.off(L,F);t?.kill("SIGTERM"),ba(),e.pidPath&&await VE(e.pidPath,{force:!0}),await Co(T)}async function P$(e,t,r=new Date){let n=await Fi(e,1,r),s=r.toISOString().slice(0,10),o=n.savings.daily_tokens_saved.find(l=>l.date===s)?.tokens_saved??0,i=n.savings.tokens_saved>0?o/n.savings.tokens_saved*n.savings.dollars_saved_estimate_usd:0,a=ya(X(t),O$),c=`${a}.${process.pid}.${Date.now()}.tmp`,u={version:1,tokens_saved_today:o,dollars_saved_today_usd:Math.round(i*1e6)/1e6,show_total_today:n.health.show_total,updated_at:r.toISOString()};n.health.show_total>0&&(u.show_hit_rate=n.health.show_hit_rate),n.decisions.seen>0&&(u.decisions={seen:n.decisions.seen,contributed:n.decisions.contributed}),await eR(Qd(a),{recursive:!0}),await tR(c,`${ne(u)}
|
|
183
|
+
`,{encoding:"utf8",mode:384}),await E$(c,a)}async function Kd(e,t=rR,r=!1){try{r&&process.env.RSP_TEST_HANG_TELEMETRY_DRAIN==="1"&&await new Promise(()=>{}),await sR(e.drainAndSweep(),t,"telemetry drain timed out")}catch(n){process.stderr.write(`rsp resident: telemetry drain failed: ${n instanceof Error?n.message:String(n)}
|
|
184
|
+
`)}}async function I$(e){let t=[];for(let r of A$){let n=await L$(e,r);n.ok||(n.previousModel&&(n.previousModel!=="collection"&&await G$(e,r,n.previousModel),t.push({collection:r,previousModel:n.previousModel})),await e.query(`CREATE KV IF NOT EXISTS ${nR(r)}`))}return t}async function L$(e,t){try{return await e.kv(t).get("__rsp_telemetry_model_probe__"),{ok:!0}}catch(r){let n=r instanceof Error?r.message:String(r);if(/\bnot found\b/i.test(n))return{ok:!1,previousModel:null};let s=n.match(/model mismatch: expected kv, got ([A-Za-z_][A-Za-z0-9_]*)/i);if(s?.[1])return{ok:!1,previousModel:s[1].toLowerCase()};if(/does not allow 'kv' operations/i.test(n))return{ok:!1,previousModel:"collection"};let o=(await e.list()).find(i=>i.name===t);if(o&&o.model!=="kv")return{ok:!1,previousModel:o.model};throw r}}async function G$(e,t,r){let n=D$(r);if(!n)throw new Error(`cannot self-heal telemetry collection ${t}: unsupported model ${r}`);await e.query(`DROP ${n} ${nR(t)}`)}function D$(e){let t=e.toLowerCase();return t==="table"?"TABLE":t==="kv"?"KV":t==="graph"?"GRAPH":t==="queue"?"QUEUE":t==="document"||t==="documents"?"DOCUMENT":null}function nR(e){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e))throw new Error(`invalid telemetry collection name: ${e}`);return e}function $$(e){return e&&clearTimeout(e),setTimeout(()=>{ba(),process.exit(0)},C$)}function N$(){KE||(KE=!0,process.on("exit",()=>ba()))}function F$(){if(process.platform==="win32")return;let t=w$(process.execPath,["-e",`
|
|
174
185
|
const { execFileSync } = require("node:child_process");
|
|
175
186
|
const parentPid = Number(process.argv[1]);
|
|
176
187
|
const known = new Set();
|
|
@@ -211,26 +222,26 @@ const timer = setInterval(() => {
|
|
|
211
222
|
clearInterval(timer);
|
|
212
223
|
process.exit(0);
|
|
213
224
|
}, 500);
|
|
214
|
-
`,String(process.pid)],{detached:!0,stdio:"ignore"});return t.unref(),t}function pa(){for(let e of t$())try{process.kill(e,"SIGTERM")}catch{}}function t$(){if(process.platform==="win32")return[];let e="";try{e=DG("ps",["-eo","pid=,ppid=,args="],{encoding:"utf8"})}catch{return[]}let t=[];for(let r of e.split(/\n/)){let n=/^\s*(\d+)\s+(\d+)\s+([\s\S]*)$/.exec(r);if(!n)continue;let s=Number(n[1]),o=Number(n[2]),i=n[3]??"";o===process.pid&&/(^|\s)\S*red(?:\.exe)?\s+rpc\s+--stdio(\s|$)/.test(i)&&t.push(s)}return t}async function r$(e){if(e.collection!==Fe)return e;let t=await IE(e.raw_text,DE(e.raw_bytes)),r=await IE(e.emitted_text,DE(e.emitted_bytes)),{raw_text:n,emitted_text:s,...o}=e;return{...o,tokens_raw:t.tokens,tokens_emitted:r.tokens,estimated:t.estimated||r.estimated}}async function IE(e,t){if(typeof e=="string"){let r=Buffer.byteLength(e,"utf8");if(r<=UG)try{return await BE((async()=>({tokens:(await n$())("cl100k_base").encode(e).length,estimated:!1}))(),HG,"telemetry tokenization timed out")}catch{return{tokens:Math.ceil(r/4),estimated:!0}}return{tokens:Math.ceil(r/4),estimated:!0}}return t!=null?{tokens:Math.ceil(t/4),estimated:!0}:{tokens:0,estimated:!1}}async function n$(){return LE??=import(BG(s$()).href).then(e=>{let t=e.getEncoding;if(!t)throw new Error("js-tiktoken getEncoding export not found");return t}),await LE}function s$(){let e=Bd(MG(import.meta.url)),r=[da(e,"..","node_modules","js-tiktoken","dist","index.js"),da(e,"..","apps","rsp","node_modules","js-tiktoken","dist","index.js")].find(n=>$G(n));if(!r)throw new Error("js-tiktoken dependency not found");return r}function DE(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function we(e){return typeof e=="string"&&e.trim()!==""?e:void 0}function Fd(e){return e.trim().split(/\s+/).filter(Boolean)[0]??"unknown"}async function BE(e,t,r){let n;try{return await Promise.race([e,new Promise((s,o)=>{n=setTimeout(()=>o(new Error(r)),t),n.unref()})])}finally{n&&clearTimeout(n)}}function o$(e){try{return JSON.parse(e)}catch{return e}}function i$(e){return GE(e)&&e.version===1&&Array.isArray(e.records)&&e.records.every(t=>GE(t)&&(t.collection===Ce||t.collection===he||t.collection===Fe||t.collection===ft)&&typeof t.key=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&typeof t.bytes=="number")}function GE(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function a$(e,t){Nm(e,(r,n)=>t(r,n),(r,n,s)=>{s({id:n?.id??An(),ok:!1,error:r instanceof Error?r.message:String(r)})})}async function c$(e,t,r,n){if(t.op==="handover")return{handover:!0,version:n,clientVersion:t.clientVersion};if(e.kind==="opening")throw new Error("rsp resident store is not ready");if(e.kind==="failed")throw new Error(`rsp resident store failed to open: ${e.error.message}`);let s=e.store;if(t.op==="ping")return{pong:!0,version:n};if(t.op==="stats")return await s.stats();if(t.op==="recovery-handles")return await s.recoveryHandles(t.limit);if(t.op==="accounting-stats"){let o=s.redDb();if(!o)throw new Error("rsp accounting stats require the shared RedDB store");return await Uu(o,t.byteBudget)}if(t.op==="telemetry-stats"){let o=s.redDb();if(!o)throw new Error("rsp telemetry stats require the shared RedDB store");return await gi(o,t.sinceDays)}if(t.op==="telemetry-gains"){let o=s.redDb();if(!o)throw new Error("rsp telemetry gains require the shared RedDB store");return await Hu(o,t.sinceDays)}if(t.op==="mint")return{handle:await s.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return l$(await s.get(t.handle));if(t.op==="memory")return await s.memory(t.action,t.payload);if(t.op==="brain")return await u$(s,r,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}async function u$(e,t,r,n){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await SE(s,t).request(r,n)}function l$(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var UG,HG,FE,qG,WG,JG,Md,PE,LE,UE=h(()=>{"use strict";$e();xo();_o();Tt();fi();OE();et();Ze();UG=256*1024,HG=500,FE=2e3,qG=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),WG="rsp-status-summary.json",JG=[Ce,he,Fe,ft,ls],Md=class{constructor(t,r){this.store=t;this.opts=r;this.pendingHeals=[...r.bootHeals??[]]}running;pending=!1;pendingHeals;async drainAndSweep(){if(this.running){this.pending=!0,await this.running;return}this.running=(async()=>{do this.pending=!1,await this.drainAndSweepOnce();while(this.pending)})().finally(()=>{this.running=void 0}),await this.running}async drainAndSweepOnce(){let t=this.store.redDb();if(!t)return;let r=await KG(t);r.unshift(...this.pendingHeals),this.pendingHeals=[];let n=await this.readIndex(t),s=n.records.length,o=[...n.records];for(let a of r)o.push(await this.writeDrainDegradation(t,{reason:"telemetry collection model mismatch",command:"rsp resident telemetry drain",source_collection:a.collection,error:`expected kv, got ${a.previousModel}`,bytes:0}));await cu(this.opts.rootDir,async a=>{let c=dn(a);if(!c){let u=await this.writeDrainDegradation(t,{reason:"telemetry parse failed",command:"unknown",bytes:Buffer.byteLength(a,"utf8")});return o.push(u),!0}try{let u=await this.writeEvent(t,c);o.push(u);let l=await this.writeAccountingMirror(t,c);return l&&o.push(l),!0}catch(u){let l=await this.writeDrainDegradation(t,{reason:"telemetry event dropped",command:we(c.command)||"unknown",source_id:we(c.id),source_collection:we(c.collection),error:u instanceof Error?u.message:String(u),bytes:Buffer.byteLength(a,"utf8")});return o.push(l),!0}});let i=o.length>s;await this.prune(t,{version:1,records:o},i),await VG(t,this.opts.rootDir)}async writeEvent(t,r){let n=new Date,s=typeof r.created_at=="string"?r.created_at:n.toISOString(),o=new Date(Date.parse(s)+this.opts.ttlDays*24*60*60*1e3).toISOString(),i=typeof r.id=="string"&&r.id.trim()!==""?r.id:An(),a={...await r$(r),id:i,created_at:s,expires_at:o};return await t.kv(r.collection).put(i,a),{collection:r.collection,key:i,created_at:s,expires_at:o,bytes:r.collection===Ce?0:typeof r.bytes=="number"&&Number.isFinite(r.bytes)?Math.max(0,r.bytes):Buffer.byteLength(JSON.stringify(a),"utf8")}}async writeAccountingMirror(t,r){return r.collection===Ce||r.accounting_recorded===!0?null:r.collection===Fe?await this.writeEvent(t,{collection:Ce,id:`mirror:${we(r.id)||An()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:Fd(we(r.command)||"unknown"),wrapper:r.wrapper,loss:r.loss,elided:r.elided,raw_bytes:r.raw_bytes,emitted_bytes:r.emitted_bytes,tokens_raw:r.tokens_raw,tokens_emitted:r.tokens_emitted,estimated:r.estimated,wrapper_ms:r.wrapper_ms,store_open_count:r.store_open_count,store_elapsed_ms:r.store_elapsed_ms}):r.collection===ft?await this.writeEvent(t,{collection:Ce,id:`mirror:${we(r.id)||An()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:Fd(we(r.command)||"unknown"),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:we(r.reason)||"unknown",wrapper_family:we(r.wrapper_family),wrapper_exit_code:r.wrapper_exit_code,stderr_head:we(r.stderr_head)}):null}async writeDrainDegradation(t,r){let n=await this.writeEvent(t,{collection:ft,id:An(),created_at:new Date().toISOString(),reason:r.reason,command:r.command,bytes:r.bytes,source_id:r.source_id,source_collection:r.source_collection,error:r.error});return await this.writeEvent(t,{collection:Ce,id:`mirror:${An()}`,created_at:n.created_at,event_type:"invocation",command:r.command,command_class:Fd(r.command),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:r.reason,source_id:r.source_id,source_collection:r.source_collection,error:r.error}),n}async readIndex(t){let r=await t.kv(ls).get("index:v1"),n=typeof r=="string"?o$(r):r;return i$(n)?n:{version:1,records:[]}}async writeIndex(t,r){await t.kv(ls).put("index:v1",r)}async prune(t,r,n=!1){let s=Date.now(),o=[];for(let a of r.records)Date.parse(a.expires_at)<=s?await t.kv(a.collection).delete(a.key):o.push(a);let i=o.reduce((a,c)=>a+c.bytes,0);for(o.sort((a,c)=>a.created_at.localeCompare(c.created_at));i>this.opts.byteBudget&&o.length>0;){let a=o.shift();i-=a.bytes,await t.kv(a.collection).delete(a.key)}(n||o.length<r.records.length)&&await this.writeIndex(t,{version:1,records:o})}};PE=!1});Ra();ut();var zp={"store-uri":{kind:"value",coerce:e=>e},brief:{kind:"boolean"},terse:{kind:"boolean"},query:{kind:"value",coerce:e=>e}},Gk={json:{kind:"boolean"}},$k={help:{kind:"boolean",aliases:["h"]}},Nk={commands:{dashboard:{},stats:{},gains:{},show:{},git:{},gh:{},vitest:{},cargo:{},cat:{},exec:{},proxy:{},wait:{},doctor:{},status:{},sweep:{},setup:{},mcp:{},"shell-init":{},server:{},"warm-resident":{},"gh-api-json":{},hook:{}},default:"dashboard",keepArgvOnDefault:!0,errorOnUnknownCommand:!0};function Yp(e){let{command:t,args:r}=Ea(e,Fk);return t==="--version"?{kind:"version",json:Gn(r,Gk).values.json===!0}:Mk(e)?{kind:"help"}:{kind:"command"}}var Fk={commands:{"--version":{aliases:["-v"]},run:{}},default:"run",keepArgvOnDefault:!0};function Mk(e){return dr(e,$k).values.help===!0}function Qp(e){let{values:t,rest:r}=jk(e),n=r[0];if(n!==void 0&&n!=="--"&&n.startsWith("--"))throw co.unknownFlag(n);let s=Ea(r,Nk).command,o=[...r],i=t.query;return i!==void 0&&s!=="show"&&o.push("--query",i),{command:s,handle:r[1],storeUri:t["store-uri"],query:i,level:t.terse===!0?"terse":t.brief===!0?"brief":"lossless",positional:o}}var co=class e extends Error{static unknownFlag(t){return new e(`unknown flag: ${t}`)}render(){return J({command:"rsp",category:"usage",error:this.message,help:"rsp --help",validFlags:Bk})}},Bk=Object.keys(zp).map(e=>`--${e}`);function jk(e){try{return dr(e,zp)}catch(t){throw new co(t instanceof Error?t.message:String(t))}}function Xp(e){return J({command:`rsp ${e.token}`,category:"usage",error:`unknown command: ${e.token}`,help:"rsp --help",validFlags:e.known})}function Zp(e){return e instanceof Dn}function Vr(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}var Uk={socket:{kind:"value",coerce:e=>e},"pid-file":{kind:"value",coerce:e=>e},"wake-lock":{kind:"value",coerce:e=>e},registry:{kind:"value",coerce:e=>e},"resident-version":{kind:"value",coerce:e=>e},"ttl-days":{kind:"value",coerce:qt},"ephemeral-ttl-hours":{kind:"value",coerce:qt},"byte-budget":{kind:"value",coerce:qt},"telemetry-ttl-days":{kind:"value",coerce:qt},"telemetry-byte-budget":{kind:"value",coerce:qt},"telemetry-drain-interval-ms":{kind:"value",coerce:qt},"telemetry-drain-timeout-ms":{kind:"value",coerce:qt},"idle-ms":{kind:"value",coerce:qt}};function Wa(e){return Gn(e,Uk).values}var em={since:{kind:"value",coerce:qk},full:{kind:"boolean"}};function uo(e,t){return Gn(e,em).values.since??t}function tm(e){return Gn(e,em).values.full===!0}var Hk={field:{kind:"value",type:"array",aliases:["f","F"],coerce:e=>e}};function rm(e){let{values:t,rest:r}=dr(e,Hk),n=r[1];if(!n)return null;let s={};for(let o of t.field??[]){let i=o.indexOf("=");i<=0||(s[o.slice(0,i)]=o.slice(i+1))}return{path:n,params:s}}function qt(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function qk(e){let t=/^(\d+)(d)?$/.exec(e);if(!t)return;let r=Number(t[1]);return Number.isFinite(r)&&r>0?r:void 0}Ja();ut();import{existsSync as d$}from"node:fs";import{fileURLToPath as p$}from"node:url";Tt();qn();oe();dt();import{existsSync as kA}from"node:fs";import{fileURLToPath as SA}from"node:url";Tt();kc();oe();import{existsSync as wT}from"node:fs";import{fileURLToPath as _T}from"node:url";async function Qr(e,t){let r={stats:ET(e.telemetryByteBudget),telemetry:Cc(t)};if(!e.storeUri.startsWith("file://"))return r;let n=_T(e.storeUri);if(!wT(n))return r;let{residentElisionStore:s}=await Promise.resolve().then(()=>(wr(),es)),o=s(process.cwd(),e);try{return n.endsWith("red-skills.rdb")?{stats:await o.accountingStats(e.telemetryByteBudget),telemetry:await o.telemetryStats(t)}:{stats:await o.stats(),telemetry:Cc(t)}}catch{return r}finally{await o.close()}}function Oc(e,t=Cc(30),r=!1,n=ff()){return`${se(Ac(e,t,r,n))}
|
|
215
|
-
`}function
|
|
216
|
-
`}function
|
|
217
|
-
`}function
|
|
218
|
-
`)}function
|
|
219
|
-
`}async function
|
|
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
|
|
221
|
-
`);let s=await
|
|
222
|
-
`),await
|
|
223
|
-
`),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function
|
|
224
|
-
`),2}let r=
|
|
225
|
-
`),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function
|
|
226
|
-
`}async function
|
|
225
|
+
`,String(process.pid)],{detached:!0,stdio:"ignore"});return t.unref(),t}function ba(){for(let e of M$())try{process.kill(e,"SIGTERM")}catch{}}function M$(){if(process.platform==="win32")return[];let e="";try{e=ZE("ps",["-eo","pid=,ppid=,args="],{encoding:"utf8"})}catch{return[]}let t=[];for(let r of e.split(/\n/)){let n=/^\s*(\d+)\s+(\d+)\s+([\s\S]*)$/.exec(r);if(!n)continue;let s=Number(n[1]),o=Number(n[2]),i=n[3]??"";o===process.pid&&/(^|\s)\S*red(?:\.exe)?\s+rpc\s+--stdio(\s|$)/.test(i)&&t.push(s)}return t}async function B$(e){if(e.collection!==je)return e;let t=await zE(e.raw_text,QE(e.raw_bytes)),r=await zE(e.emitted_text,QE(e.emitted_bytes)),{raw_text:n,emitted_text:s,...o}=e;return{...o,tokens_raw:t.tokens,tokens_emitted:r.tokens,estimated:t.estimated||r.estimated}}async function zE(e,t){if(typeof e=="string"){let r=Buffer.byteLength(e,"utf8");if(r<=v$)try{return await sR((async()=>({tokens:(await j$())("cl100k_base").encode(e).length,estimated:!1}))(),x$,"telemetry tokenization timed out")}catch{return{tokens:Math.ceil(r/4),estimated:!0}}return{tokens:Math.ceil(r/4),estimated:!0}}return t!=null?{tokens:Math.ceil(t/4),estimated:!0}:{tokens:0,estimated:!1}}async function j$(){return YE??=import(S$(U$()).href).then(e=>{let t=e.getEncoding;if(!t)throw new Error("js-tiktoken getEncoding export not found");return t}),await YE}function U$(){let e=Qd(k$(import.meta.url)),r=[ya(e,"..","node_modules","js-tiktoken","dist","index.js"),ya(e,"..","apps","rsp","node_modules","js-tiktoken","dist","index.js")].find(n=>_$(n));if(!r)throw new Error("js-tiktoken dependency not found");return r}function QE(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function we(e){return typeof e=="string"&&e.trim()!==""?e:void 0}function zd(e){return e.trim().split(/\s+/).filter(Boolean)[0]??"unknown"}async function sR(e,t,r){let n;try{return await Promise.race([e,new Promise((s,o)=>{n=setTimeout(()=>o(new Error(r)),t),n.unref()})])}finally{n&&clearTimeout(n)}}function H$(e){try{return JSON.parse(e)}catch{return e}}function q$(e){return XE(e)&&e.version===1&&Array.isArray(e.records)&&e.records.every(t=>XE(t)&&(t.collection===Oe||t.collection===Ae||t.collection===je||t.collection===pt)&&typeof t.key=="string"&&typeof t.created_at=="string"&&typeof t.expires_at=="string"&&typeof t.bytes=="number")}function XE(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function W$(e,t){Km(e,(r,n)=>t(r,n),(r,n,s)=>{s({id:n?.id??An(),ok:!1,error:r instanceof Error?r.message:String(r)})})}async function J$(e,t,r,n,s){if(t.op==="handover")return{handover:!0,version:n,clientVersion:t.clientVersion};if(e.kind==="opening")throw new Error("rsp resident store is not ready");if(e.kind==="failed")throw new Error(`rsp resident store failed to open: ${e.error.message}`);let o=e.store;if(t.op==="ping")return{pong:!0,version:n};if(t.op==="stats")return await o.stats();if(t.op==="recovery-handles")return await o.recoveryHandles(t.limit);if(t.op==="accounting-stats"){let i=o.redDb();if(!i)throw new Error("rsp accounting stats require the shared RedDB store");return await Ul(i,t.byteBudget)}if(t.op==="telemetry-stats"){let i=o.redDb();if(!i)throw new Error("rsp telemetry stats require the shared RedDB store");return await Fi(i,t.sinceDays)}if(t.op==="telemetry-gains"){let i=o.redDb();if(!i)throw new Error("rsp telemetry gains require the shared RedDB store");return await Hl(i,t.sinceDays)}if(t.op==="mint")return{handle:await o.mint(Buffer.from(t.original,"base64"),t.meta)};if(t.op==="get")return z$(await o.get(t.handle));if(t.op==="github-read")return await s.read({args:t.args,path:t.path,actor:t.actor,...t.params?{params:t.params}:{}});if(t.op==="memory")return await o.memory(t.action,t.payload);if(t.op==="brain")return await K$(o,r,t.action,t.payload);throw new Error(`unsupported resident op: ${t.op??"unknown"}`)}function V$(e){let t;return{async read(r){if(!t){let n=String(ZE("gh",["auth","token"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})).trim();if(n==="")throw new Error("rsp resident could not obtain a GitHub credential from gh");t=WE({rootDir:e,token:n})}return await t.read(r)}}}async function K$(e,t,r,n){let s=e.redDb();if(!s)throw new Error("resident brain operations require the shared RedDB store");return await NE(s,t).request(r,n)}function z$(e){return e?"status"in e?e:{...e,original:e.original.toString("base64"),original_encoding:"base64"}:null}var v$,x$,rR,C$,O$,A$,Yd,KE,YE,iR=h(()=>{"use strict";Le();Oo();Ro();vt();Ni();UE();JE();mt();Be();v$=256*1024,x$=500,rR=2e3,C$=Math.max(1,Number(process.env.RSP_TEST_IDLE_SHUTDOWN_WATCHDOG_MS??"10000")),O$="rsp-status-summary.json",A$=[Oe,Ae,je,pt,hs],Yd=class{constructor(t,r){this.store=t;this.opts=r;this.pendingHeals=[...r.bootHeals??[]]}running;pending=!1;pendingHeals;async drainAndSweep(){if(this.running){this.pending=!0,await this.running;return}this.running=(async()=>{do this.pending=!1,await this.drainAndSweepOnce();while(this.pending)})().finally(()=>{this.running=void 0}),await this.running}async drainAndSweepOnce(){let t=this.store.redDb();if(!t)return;let r=await I$(t);r.unshift(...this.pendingHeals),this.pendingHeals=[];let n=await this.readIndex(t),s=n.records.length,o=[...n.records];for(let a of r)o.push(await this.writeDrainDegradation(t,{reason:"telemetry collection model mismatch",command:"rsp resident telemetry drain",source_collection:a.collection,error:`expected kv, got ${a.previousModel}`,bytes:0}));await cl(this.opts.rootDir,async a=>{let c=fn(a);if(!c){let u=await this.writeDrainDegradation(t,{reason:"telemetry parse failed",command:"unknown",bytes:Buffer.byteLength(a,"utf8")});return o.push(u),!0}try{let u=await this.writeEvent(t,c);o.push(u);let l=await this.writeAccountingMirror(t,c);return l&&o.push(l),!0}catch(u){let l=await this.writeDrainDegradation(t,{reason:"telemetry event dropped",command:we(c.command)||"unknown",source_id:we(c.id),source_collection:we(c.collection),error:u instanceof Error?u.message:String(u),bytes:Buffer.byteLength(a,"utf8")});return o.push(l),!0}});let i=o.length>s;await this.prune(t,{version:1,records:o},i),await P$(t,this.opts.rootDir)}async writeEvent(t,r){let n=new Date,s=typeof r.created_at=="string"?r.created_at:n.toISOString(),o=new Date(Date.parse(s)+this.opts.ttlDays*24*60*60*1e3).toISOString(),i=typeof r.id=="string"&&r.id.trim()!==""?r.id:An(),a={...await B$(r),id:i,created_at:s,expires_at:o};return await t.kv(r.collection).put(i,a),{collection:r.collection,key:i,created_at:s,expires_at:o,bytes:r.collection===Oe?0:typeof r.bytes=="number"&&Number.isFinite(r.bytes)?Math.max(0,r.bytes):Buffer.byteLength(JSON.stringify(a),"utf8")}}async writeAccountingMirror(t,r){return r.collection===Oe||r.accounting_recorded===!0?null:r.collection===je?await this.writeEvent(t,{collection:Oe,id:`mirror:${we(r.id)||An()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:zd(we(r.command)||"unknown"),wrapper:r.wrapper,loss:r.loss,elided:r.elided,raw_bytes:r.raw_bytes,emitted_bytes:r.emitted_bytes,tokens_raw:r.tokens_raw,tokens_emitted:r.tokens_emitted,estimated:r.estimated,wrapper_ms:r.wrapper_ms,store_open_count:r.store_open_count,store_elapsed_ms:r.store_elapsed_ms}):r.collection===pt?await this.writeEvent(t,{collection:Oe,id:`mirror:${we(r.id)||An()}`,created_at:we(r.created_at)||we(r.ts)||new Date().toISOString(),event_type:"invocation",command:we(r.command)||"unknown",command_class:zd(we(r.command)||"unknown"),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:we(r.reason)||"unknown",wrapper_family:we(r.wrapper_family),wrapper_exit_code:r.wrapper_exit_code,stderr_head:we(r.stderr_head)}):null}async writeDrainDegradation(t,r){let n=await this.writeEvent(t,{collection:pt,id:An(),created_at:new Date().toISOString(),reason:r.reason,command:r.command,bytes:r.bytes,source_id:r.source_id,source_collection:r.source_collection,error:r.error});return await this.writeEvent(t,{collection:Oe,id:`mirror:${An()}`,created_at:n.created_at,event_type:"invocation",command:r.command,command_class:zd(r.command),loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:r.reason,source_id:r.source_id,source_collection:r.source_collection,error:r.error}),n}async readIndex(t){let r=await t.kv(hs).get("index:v1"),n=typeof r=="string"?H$(r):r;return q$(n)?n:{version:1,records:[]}}async writeIndex(t,r){await t.kv(hs).put("index:v1",r)}async prune(t,r,n=!1){let s=Date.now(),o=[];for(let a of r.records)Date.parse(a.expires_at)<=s?await t.kv(a.collection).delete(a.key):o.push(a);let i=o.reduce((a,c)=>a+c.bytes,0);for(o.sort((a,c)=>a.created_at.localeCompare(c.created_at));i>this.opts.byteBudget&&o.length>0;){let a=o.shift();i-=a.bytes,await t.kv(a.collection).delete(a.key)}(n||o.length<r.records.length)&&await this.writeIndex(t,{version:1,records:o})}};KE=!1});Ca();at();var im={"store-uri":{kind:"value",coerce:e=>e},brief:{kind:"boolean"},terse:{kind:"boolean"},query:{kind:"value",coerce:e=>e}},Zk={json:{kind:"boolean"}},eS={help:{kind:"boolean",aliases:["h"]}},tS={commands:{dashboard:{},stats:{},gains:{},show:{},git:{},gh:{},vitest:{},cargo:{},cat:{},exec:{},proxy:{},wait:{},doctor:{},status:{},sweep:{},setup:{},mcp:{},"shell-init":{},server:{},"warm-resident":{},"gh-api-json":{},hook:{}},default:"dashboard",keepArgvOnDefault:!0,errorOnUnknownCommand:!0};function am(e){let{command:t,args:r}=xa(e,rS);return t==="--version"?{kind:"version",json:Dn(r,Zk).values.json===!0}:nS(e)?{kind:"help"}:{kind:"command"}}var rS={commands:{"--version":{aliases:["-v"]},run:{}},default:"run",keepArgvOnDefault:!0};function nS(e){return dr(e,eS).values.help===!0}function cm(e){let{values:t,rest:r}=oS(e),n=r[0];if(n!==void 0&&n!=="--"&&n.startsWith("--"))throw lo.unknownFlag(n);let s=xa(r,tS).command,o=[...r],i=t.query;return i!==void 0&&s!=="show"&&o.push("--query",i),{command:s,handle:r[1],storeUri:t["store-uri"],query:i,level:t.terse===!0?"terse":t.brief===!0?"brief":"lossless",positional:o}}var lo=class e extends Error{static unknownFlag(t){return new e(`unknown flag: ${t}`)}render(){return V({command:"rsp",category:"usage",error:this.message,help:"rsp --help",validFlags:sS})}},sS=Object.keys(im).map(e=>`--${e}`);function oS(e){try{return dr(e,im)}catch(t){throw new lo(t instanceof Error?t.message:String(t))}}function um(e){return V({command:`rsp ${e.token}`,category:"usage",error:`unknown command: ${e.token}`,help:"rsp --help",validFlags:e.known})}function lm(e){return e instanceof Gn}function Vr(e){return typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}var iS={socket:{kind:"value",coerce:e=>e},"pid-file":{kind:"value",coerce:e=>e},"wake-lock":{kind:"value",coerce:e=>e},registry:{kind:"value",coerce:e=>e},"resident-version":{kind:"value",coerce:e=>e},"ttl-days":{kind:"value",coerce:Ht},"ephemeral-ttl-hours":{kind:"value",coerce:Ht},"byte-budget":{kind:"value",coerce:Ht},"telemetry-ttl-days":{kind:"value",coerce:Ht},"telemetry-byte-budget":{kind:"value",coerce:Ht},"telemetry-drain-interval-ms":{kind:"value",coerce:Ht},"telemetry-drain-timeout-ms":{kind:"value",coerce:Ht},"idle-ms":{kind:"value",coerce:Ht}};function Qa(e){return Dn(e,iS).values}var dm={since:{kind:"value",coerce:cS},full:{kind:"boolean"}};function po(e,t){return Dn(e,dm).values.since??t}function pm(e){return Dn(e,dm).values.full===!0}var aS={field:{kind:"value",type:"array",aliases:["f","F"],coerce:e=>e}};function mm(e){let{values:t,rest:r}=dr(e,aS),n=r[1];if(!n)return null;let s={};for(let o of t.field??[]){let i=o.indexOf("=");i<=0||(s[o.slice(0,i)]=o.slice(i+1))}return{path:n,params:s}}function Ht(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function cS(e){let t=/^(\d+)(d)?$/.exec(e);if(!t)return;let r=Number(t[1]);return Number.isFinite(r)&&r>0?r:void 0}Xa();at();import{existsSync as Y$}from"node:fs";import{fileURLToPath as Q$}from"node:url";vt();qn();ae();ut();import{existsSync as KO}from"node:fs";import{fileURLToPath as zO}from"node:url";vt();Ac();ae();import{existsSync as FT}from"node:fs";import{fileURLToPath as MT}from"node:url";async function Qr(e,t){let r={stats:BT(e.telemetryByteBudget),telemetry:Gc(t)};if(!e.storeUri.startsWith("file://"))return r;let n=MT(e.storeUri);if(!FT(n))return r;let{residentElisionStore:s}=await Promise.resolve().then(()=>(Jt(),Zn)),o=s(process.cwd(),e);try{return n.endsWith("red-skills.rdb")?{stats:await o.accountingStats(e.telemetryByteBudget),telemetry:await o.telemetryStats(t)}:{stats:await o.stats(),telemetry:Gc(t)}}catch{return r}finally{await o.close()}}function Dc(e,t=Gc(30),r=!1,n=Tf()){return`${ne($c(e,t,r,n))}
|
|
226
|
+
`}function Sf(e,t){return`${ne({...e,overhead:vf(t)})}
|
|
227
|
+
`}function Tf(){return{schema_version:"red.rsp.overhead.v1",verdict:"green",summary:"every wrapper family is inside its overhead ceiling",ceiling:Ct,breaching_families:[],disabled_families:[],families:[]}}function vf(e){return{schema_version:e.schema_version,verdict:e.verdict,summary:e.summary,ceiling:e.ceiling,breaching_families:e.breaching_families,disabled_families:e.disabled_families,families:e.families}}function $c(e,t,r,n=Tf()){let s=t.savings.top_commands.slice(0,r?10:3),o=r?t.savings.daily_tokens_saved:t.savings.daily_tokens_saved.slice(-7),i=e.storage_classes??Ao(),a=t.health.recent_failures.slice(0,r?20:5),c=t.decisions.top_pass_reasons.slice(0,r?10:3);return{records:e.records,bytes:e.bytes,oldest:e.oldest,budget:e.budget,storage_classes:i,savings:{window_days:t.window_days,empty:t.empty,...t.savings,tokens_saved_display:jT(t.savings),dollars_saved_estimate_usd_display:UT(t.savings),daily_tokens_saved:o,daily_tokens_saved_elided:r?0:Math.max(0,t.savings.daily_tokens_saved.length-o.length),top_commands:s,top_commands_elided:r?0:Math.max(0,t.savings.top_commands.length-s.length)},overhead:vf(n),health:{overhead_verdict:n.verdict,overhead_summary:n.summary,...t.health,degradation_rate_display:Lc(t.health.degradation_rate),show_hit_rate_display:Lc(t.health.show_hit_rate),by_reason:t.health.by_reason,by_family:t.health.by_family,recent_failures:a,recent_failures_elided:r?0:Math.max(0,t.health.recent_failures.length-a.length),most_recent_degradation_at:t.health.most_recent?.timestamp??null,most_recent_degradation_reason:t.health.most_recent?.reason??null},decisions:{...t.decisions,contribution_rate_display:Lc(t.decisions.contribution_rate),top_pass_reasons:c,top_pass_reasons_elided:r?0:Math.max(0,t.decisions.top_pass_reasons.length-c.length),by_command_family:r?t.decisions.by_command_family:t.decisions.by_command_family.slice(0,5),by_command_family_elided:r?0:Math.max(0,t.decisions.by_command_family.length-5)},latency:{...t.latency,wrapper_ms_p50_display:Ic(t.latency.wrapper_ms_p50),wrapper_ms_p95_display:Ic(t.latency.wrapper_ms_p95),store_elapsed_ms_avg_display:Ic(t.latency.store_elapsed_ms_avg)}}}function xf(e){return`${ne(e)}
|
|
228
|
+
`}function Gc(e){return{window_days:e,empty:!0,savings:{invocations:0,elided:0,raw_bytes:0,emitted_bytes:0,bytes_saved:0,tokens_saved:0,tokens_saved_estimated:!1,token_estimate_range_pct:null,tokens_saved_low:null,tokens_saved_high:null,dollars_saved_estimate_usd:0,dollars_saved_low_usd:null,dollars_saved_high_usd:null,pricing_model_family:"gpt-5",pricing_input_usd_per_million_tokens:1.25,pricing_note:"estimate derived from byte-based token estimate when token counts are estimated",daily_tokens_saved:[],top_commands:[]},health:{degradations:0,degradation_rate:0,show_total:0,show_hits:0,show_misses:0,show_hit_rate:0,by_reason:[],by_family:[],recent_failures:[],most_recent:null},latency:{wrapper_ms_p50:null,wrapper_ms_p95:null,store_open_count_sum:0,store_elapsed_ms_sum:0,store_elapsed_ms_avg:null},decisions:{seen:0,contributed:0,passed:0,failed_open:0,quota_free_saved_units:0,contribution_rate:0,top_pass_reasons:[],by_command_family:[]}}}function BT(e){return{records:0,bytes:0,oldest:null,budget:e,storage_classes:Ao()}}function Ao(){return{derivable:{records:0,bytes:0,raw_bytes:0},"re-executable":{records:0,bytes:0,raw_bytes:0},ephemeral:{records:0,bytes:0,raw_bytes:0}}}function Nc(e){let t=e.legacyStoreMigrated?"migrated":e.storeCreated?"created":"existing";return[`config: ${e.configChanged?"updated":"unchanged"}`,`store: ${t}`,""].join(`
|
|
229
|
+
`)}function jT(e){return e.tokens_saved_estimated?`${e.tokens_saved_low}-${e.tokens_saved_high} (estimate_midpoint: ${e.tokens_saved}, range_pct: ${e.token_estimate_range_pct})`:String(e.tokens_saved)}function UT(e){return e.dollars_saved_low_usd==null||e.dollars_saved_high_usd==null?Qn(e.dollars_saved_estimate_usd):`${Qn(e.dollars_saved_low_usd)}-${Qn(e.dollars_saved_high_usd)} (estimate_midpoint: ${Qn(e.dollars_saved_estimate_usd)})`}function Ic(e){return e==null?"none":String(e)}function Lc(e){return e.toFixed(4).replace(/0+$/,"").replace(/\.$/,".0")}async function Vy(e){let{stats:t,telemetry:r}=await Qr(e,30),[n,s]=await Promise.all([YO(e),Promise.resolve().then(()=>(Xu(),Qu)).then(o=>o.listWaits(process.cwd()),()=>[])]);return{stats:t,telemetry:r,recoveryHandles:n,waits:s,overhead:qt(ct(process.cwd()).rootDir,e.overhead)}}function Ky(e){let t=$c(e.stats,e.telemetry,!1,e.overhead),r=rc({executable:{name:"rsp",command:"rsp"},recovery:{pending:e.recoveryHandles.length,handles:e.recoveryHandles},waits:{active:e.waits.length,entries:e.waits},store:{records:e.stats.records,bytes:e.stats.bytes,oldest:e.stats.oldest,budget:e.stats.budget,storage_classes:e.stats.storage_classes??Ao()},savings:t.savings,overhead:t.overhead,health:t.health,decisions:t.decisions,latency:t.latency},QO(e));return`${ne(r)}
|
|
230
|
+
`}async function YO(e){if(!e.storeUri.startsWith("file://"))return[];let t=zO(e.storeUri);if(!KO(t))return[];let{residentElisionStore:r}=await Promise.resolve().then(()=>(Jt(),Zn)),n=r(process.cwd(),e);try{return await n.recoveryHandles(5)}catch{return[]}finally{await n.close()}}function QO(e){return[e.recoveryHandles.length>0?"rsp show <handle>":"rsp <wrapped-command> --terse",e.waits.length>0?"rsp wait ls":'rsp wait cmd -- "<command>"',"rsp stats --since <days>d"]}vt();ae();at();import{existsSync as TL}from"node:fs";import{fileURLToPath as vL}from"node:url";mt();import{spawn as zi}from"node:child_process";async function Uw(e,t,r){let n=process.hrtime.bigint(),s=await Hw(e.positional),o=Number(process.hrtime.bigint()-n)/1e6;return jI(t,e,s,o,r),s.signal?(process.kill(process.pid,s.signal),128):s.status??0}async function Hw(e){let t=e[0];if(!t)return{stdoutBytes:0,stderrBytes:0,status:2,signal:null};let r;if(t==="exec"||t==="proxy"){let o=t==="proxy"?await Promise.resolve().then(()=>(Bi(),Mi)).then(i=>i.parseProxyCommandLine(e)):await Promise.resolve().then(()=>(qs(),Hs)).then(i=>i.parseExecCommandLine(e));r=zi(o,{shell:!0,stdio:["inherit","pipe","pipe"]})}else r=zi(t,e.slice(1),{stdio:["inherit","pipe","pipe"]});let n=0,s=0;return r.stdout?.on("data",o=>{n+=o.length,process.stdout.write(o)}),r.stderr?.on("data",o=>{s+=o.length,process.stderr.write(o)}),await new Promise(o=>{r.on("error",i=>{let a=`${i instanceof Error?i.message:String(i)}
|
|
231
|
+
`;s+=Buffer.byteLength(a),process.stderr.write(a),o({stdoutBytes:n,stderrBytes:s,status:127,signal:null})}),r.on("close",(i,a)=>o({stdoutBytes:n,stderrBytes:s,status:i,signal:a}))})}function qw(e){return e>0&&Math.random()<e}async function Js(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw r instanceof Error?r:new Error(e);process.stderr.write(`rsp: ${e}, passing through
|
|
232
|
+
`);let s=await Kw(t);if(n){let o=UI(e,t,r),{appendTelemetryEvent:i,RSP_ACCOUNTING_EVENTS_COLLECTION:a,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:c}=await Promise.resolve().then(()=>(mt(),$s));Qi(i(n,{collection:a,event_type:"invocation",ts:new Date().toISOString(),command:Yi(t),command_class:t[0]??"unknown",loss:"lossless",raw_bytes:0,emitted_bytes:0,degradation_reason:o.reason,wrapper_family:o.family,wrapper_exit_code:o.exitCode,stderr_head:o.stderrHead})),Qi(i(n,{collection:c,ts:new Date().toISOString(),command:Yi(t),reason:o.reason,wrapper_family:o.family,wrapper_exit_code:o.exitCode,stderr_head:o.stderrHead,accounting_recorded:!0}))}return s}async function Ww(e,t,r){let n=await Hw(e),{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o,RSP_TELEMETRY_DEGRADATIONS_COLLECTION:i}=await Promise.resolve().then(()=>(mt(),$s)),a={ts:new Date().toISOString(),command:Yi(e),reason:"overhead-ceiling-self-disabled",wrapper_family:r.family,wrapper_exit_code:n.status??0,stderr_head:r.disabled_reason??r.reasons.join(",")};return Qi(s(t,{collection:o,event_type:"invocation",command_class:e[0]??"unknown",loss:"lossless",raw_bytes:n.stdoutBytes+n.stderrBytes,emitted_bytes:n.stdoutBytes+n.stderrBytes,degradation_reason:a.reason,...a})),Qi(s(t,{collection:i,accounting_recorded:!0,...a})),n.signal?(process.kill(process.pid,n.signal),128):n.status??0}async function Jw(e){return process.env.RSP_DEBUG==="1"&&process.stderr.write(`rsp: ${Xi()}, passing through
|
|
233
|
+
`),await Kw(e)}function Xi(){return"rsp is not enabled in this directory; run /red-setup"}function Vw(e){return e==="git"||e==="gh"||e==="vitest"||e==="cargo"||e==="cat"||e==="exec"||e==="proxy"||e==="gh-api-json"}function ft(e){return Yi(e.positional)}function Yi(e){if(e[0]!=="exec")return e.join(" ");try{let t=e.indexOf("--"),r=t>=0?e.slice(t+1):e.slice(1);return r.length===1?r[0]:r.join(" ")}catch{return e.join(" ")}}function Ws(e){return e.split(/\r?\n/,1)[0]?.trim()??""}function jI(e,t,r,n,s){let o=r.stdoutBytes+r.stderrBytes,i={event_type:"control_holdout",control_holdout:!0,holdout_share:s,ts:new Date().toISOString(),command:ft(t),command_class:t.command??"unknown",wrapper:t.command,loss:"lossless",elided:!1,raw_bytes:o,emitted_bytes:o,wrapper_ms:n};Yt(e,{collection:"rsp_accounting_events_v1",...i}),Yt(e,{collection:"rsp_telemetry_invocations_v1",...i,accounting_recorded:!0})}function UI(e,t,r){let n=t[0]??"unknown",s=HI(r)||e;return{reason:jw(r)==="ENOENT"||jw(r)==="MODULE_NOT_FOUND"||/(?:command not found|cannot find package|cannot find module|module not found|not provisioned)/i.test(s)?"wrapper-unavailable":"wrapper-crash",family:n,exitCode:WI(r)??1,stderrHead:qI(s,240)}}function HI(e){return e instanceof Error?Ws(e.message):Ws(String(e??""))}function qI(e,t){let r=Ws(e).replace(/\s+/g," ").trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}\u2026`}function jw(e){if(typeof e!="object"||e===null||!("code"in e))return"";let t=e.code;return typeof t=="string"?t:""}function WI(e){if(typeof e!="object"||e===null)return null;for(let t of["status","exitCode","exit_code"]){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r}return null}function Qi(e){e.catch(()=>{})}async function Kw(e){if(e[0]==="exec"||e[0]==="proxy")return await JI(e);let t=e[0];if(!t)return 2;let r=zi(t,e.slice(1),{stdio:"inherit"});return await new Promise(n=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
|
|
234
|
+
`),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function JI(e){let t;try{if(e[0]==="proxy"){let{parseProxyCommandLine:n}=await Promise.resolve().then(()=>(Bi(),Mi));t=n(e)}else{let{parseExecCommandLine:n}=await Promise.resolve().then(()=>(qs(),Hs));t=n(e)}}catch(n){return process.stderr.write(`${n instanceof Error?n.message:String(n)}
|
|
235
|
+
`),2}let r=zi(t,{shell:!0,stdio:"inherit"});return await new Promise(n=>{r.on("error",s=>{process.stderr.write(`${s instanceof Error?s.message:String(s)}
|
|
236
|
+
`),n(127)}),r.on("close",(s,o)=>{if(o){process.kill(process.pid,o),n(128);return}n(s??0)})})}async function d_(e,t,r){let n=[],s=!e.enabled;if(n.push(s?le("config_gate_resolution","rsp disabled in this directory; run /red-setup to opt in"):le("config_gate_resolution","rsp.enabled resolved true for this directory")),s)return n.push(le("hook_wiring","skipped because rsp is disabled"),le("proxy_mode","skipped because rsp is disabled"),le("resident_liveness","skipped because rsp is disabled"),le("store_provisioning","skipped because rsp is disabled"),le("recent_degradation_rate","skipped because rsp is disabled"),le("overhead_budget","skipped because rsp is disabled")),l_("disabled",n,r);n.push(await xL(e)),n.push(e.proxyEnabled?le("proxy_mode","proxy routing enabled for pre-exec rewrites"):Ir("proxy_mode","proxy routing is explicitly disabled; hook falls back to fixed wrapper capabilities","rsp setup"));let{residentRegistryStatus:o}=await Promise.resolve().then(()=>(ut(),br));if(n.push(CL(await o(t))),n.push(OL(e)),m_(e)){let{telemetry:i}=await Qr(e,r);n.push(AL(i,r))}else n.push(le("recent_degradation_rate","no telemetry store available yet; no recent degradation spike detected"));return n.push(PL(qt(process.cwd(),e.overhead))),l_(n.some(i=>!i.pass)?"fail":"pass",n,r)}function p_(e){let{exitCode:t,...r}=e;return`${ne({...r,exit_code:e.exitCode,probes:e.probes,errors:e.errors})}
|
|
237
|
+
`}async function xL(e){try{if(e.proxyEnabled)return le("hook_wiring","pre-exec hook would rewrite git status through rsp proxy");let{rewriteCommand:t}=await Promise.resolve().then(()=>(Ks(),sa)),r=t("git status");return r.kind==="rewrite"?le("hook_wiring",`pre-exec hook would rewrite git status through ${r.capabilityId}`):Ir("hook_wiring",`pre-exec hook passed git status through: ${r.reason??"unsupported-command"}`,"rsp setup")}catch(t){return Ir("hook_wiring",`pre-exec hook probe failed: ${t instanceof Error?Ws(t.message):"unknown error"}`,"rsp setup")}}function CL(e){return e.state==="registered-alive-socket-healthy"?le("resident_liveness","resident registry points at a healthy socket"):Ir("resident_liveness",`resident registry state is ${e.state}`,"rsp warm-resident")}function OL(e){return e.storeUri.startsWith("file://")?m_(e)?le("store_provisioning","rsp store exists for this directory"):Ir("store_provisioning","rsp store is not provisioned","rsp setup"):le("store_provisioning","non-file store URI configured; provisioning is delegated to that backend")}function AL(e,t){let r=e.health.by_reason[0];if(e.health.degradations===0)return le("recent_degradation_rate",`0 degradations in the recent ${t}d window`);let n=e.health.degradations,s=r?.reason??e.health.most_recent?.reason??"unknown",o=r?.count??n;return Ir("recent_degradation_rate",`${n} degradation(s) in the recent ${t}d window; dominant reason ${s} (${o})`,IL(s,t))}function PL(e){return e.verdict==="green"?le("overhead_budget",e.summary):Ir("overhead_budget",e.summary,"rsp status")}function IL(e,t){return/unavailable|not provisioned|missing/i.test(e)?"rsp setup":/resident|socket|registry/i.test(e)?"rsp warm-resident":`rsp stats --since ${t}d --full`}function m_(e){if(!e.storeUri.startsWith("file://"))return!0;try{return TL(vL(e.storeUri))}catch{return!1}}function le(e,t){return{name:e,pass:!0,finding:t}}function Ir(e,t,r){return{name:e,pass:!1,finding:t,fix_command:r,error:Ya({command:`rsp doctor:${e}`,category:"real-error",error:t,help:r})}}function l_(e,t,r){return{schema_version:"red.rsp.doctor.v1",status:e,exitCode:e==="fail"?1:0,window_days:r,probes:t,errors:t.map(n=>n.error).filter(n=>!!n)}}ud();function y_(e){let t=e[0]==="--help"||e[0]==="-h"?void 0:e[0];return`${DL(t).join(`
|
|
227
238
|
`)}
|
|
228
|
-
`}function sL(e){switch(e){case"stats":return z("rsp stats [--since <days>d] [--full]",["Defaults: --since 30d, --full false","--since <days>d telemetry window, default 30d","--full include wider daily/top-command/failure lists, default false","--store-uri <uri> read a non-default store"],["rsp stats","rsp stats --since 7d --full"]);case"gains":return z("rsp gains [--since <days>d]",["--since <days>d gains window, default 28d","--store-uri <uri> read a non-default shared RedDB store"],["rsp gains","rsp gains --since 14d"]);case"show":return z("rsp show <handle>",["<handle> elision handle such as el:<id>","--store-uri <uri> read a non-default store"],["rsp show el:<id>","rsp show <handle>"]);case"git":return z("rsp git <status|log|diff|show|blame|branch|commit|push> [options]",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail"],["rsp git status --brief","rsp git log --terse","rsp git diff --query <path>"]);case"gh":return z("rsp gh <pr|issue|run> <list|view> [options] | <issues|prs|edit-labels|link-sub-issues> ...",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail","--json <fields> select fields for batched issues/prs","--repo <slug> owner/repo override for batched operations"],["rsp gh issues 42 43 --json state,title,labels,body","rsp gh prs 12 13 --json state,mergeable,statusCheckRollup","rsp gh edit-labels --add ready-for-agent --remove blocked:crashed 42 43","rsp gh link-sub-issues 100 101 102"]);case"vitest":return z("rsp vitest [run] [vitest-options]",["--brief compact output, default lossless","--terse summarize long failures and mint recovery handles","--query <text> filter failure rows"],["rsp vitest run","rsp vitest run --query <suite-or-test>"]);case"cargo":return z("rsp cargo test [cargo-test-options]",["--brief compact output, default lossless","--terse summarize long failures and mint recovery handles","--query <text> filter failure rows"],["rsp cargo test","rsp cargo test --query <test-name>"]);case"cat":return z("rsp cat [--head <n>|--tail <n>|--full] <file>",["--head <n> show first n lines, default slice 10","--tail <n> show last n lines, default slice 10","--full emit full text even when it is large","--brief/--terse reduce large text context"],["rsp cat <file>","rsp cat --head 20 <file>","rsp cat --tail 20 <file>"]);case"exec":return z('rsp exec -- "<command line>"',["--brief compact recognized stdout, default lossless","--terse summarize large stdout and mint recovery handles","--query <text> filter supported structured summaries"],['rsp exec -- "pnpm -C apps/rsp build"','rsp exec -- "git status --short"']);case"proxy":return z("rsp proxy -- <command line>",["--brief compact recognized stdout, default lossless","--terse summarize recognized large stdout"],["rsp proxy -- git status","rsp proxy -- pnpm test"]);case"wait":return["usage: rsp wait <subcommand> [options]","","Flags and defaults:"," --timeout <duration> default 30m for cmd, 60m for pr/run, 2h for release"," --reason <text> default empty"," --signal-pid <pid> optional completion signal target"," --signal <signal> default USR1"," --notify-cmd <cmd> optional completion command","","Examples:",' rsp wait pr 123 --reason "before merge"'," rsp wait run --branch feature/wait --latest",' rsp wait release --tag "v2.*"',' rsp wait cmd -- "pnpm -C apps/rsp build"'," rsp wait ls","","Exit codes: 0 = success verdict, 1 = failure verdict, 2 = timeout/indeterminate."];case"doctor":return z("rsp doctor [--since <days>d]",["--since <days>d recent degradation window, default 1d"],["rsp doctor","rsp doctor --since 7d"]);case"status":return z("rsp status",["No flags. Prints resident registry status as TOON."],["rsp status"]);case"sweep":return z("rsp sweep",["No flags. Removes stale resident registry entries, reclaims orphan state temps,","re-bounds the gh ETag cache, and prints TOON status."],["rsp sweep"]);case"setup":return z("rsp setup",["No flags. Provisions repo rsp configuration and store state."],["rsp setup"]);case"mcp":return z("rsp mcp",["No flags. Starts the rsp MCP server over stdio."],["rsp mcp"]);case"shell-init":return z("rsp shell-init <fish|bash|zsh>",["<fish|bash|zsh> target shell, no default"],["rsp shell-init bash","rsp shell-init fish"]);case"server":return z("rsp server [options]",["--socket <path> default resident socket","--pid-file <path> default resident pid file","--store-uri <uri> default repo store","--ttl-days <days> default from config","--ephemeral-ttl-hours <hours> default from config","--byte-budget <bytes> default from config","--idle-ms <ms> default from config"],["rsp server","rsp server --socket <path> --store-uri <uri>"]);case"warm-resident":return z("rsp warm-resident [options]",["--socket <path> default resident socket","--wake-lock <path> default resident wake lock","--store-uri <uri> default repo store","--idle-ms <ms> default from config"],["rsp warm-resident","rsp warm-resident --store-uri <uri>"]);case"gh-api-json":return z("rsp gh-api-json <path> [-f name=value ...]",["-f name=value string GitHub API field","-F name=value typed GitHub API field"],["rsp gh-api-json repos/{owner}/{repo}","rsp gh-api-json repos/{owner}/{repo}/pulls -f state=open"]);case"dashboard":return z("rsp dashboard",["No flags. The explicit spelling of the bare `rsp` invocation."],["rsp","rsp dashboard"]);case"hook":return z("rsp hook <claude-pre-exec|codex-pre-exec|claude-post-exec|codex-post-exec>",["Reads hook payload from stdin. Defaults come from the calling host."],["rsp hook codex-pre-exec","rsp hook claude-pre-exec"]);case void 0:return["usage: rsp <subcommand> [options]","","Bare invocation:"," rsp"," renders a live TOON dashboard with recovery handles, active waits, savings, and health.","","Subcommands:"," dashboard, stats, gains, show, git, gh, vitest, cargo, cat, exec, proxy, wait"," doctor, status, sweep, setup, mcp, shell-init, server, warm-resident, gh-api-json, hook","","Global flags:"," --store-uri <uri> default repo store"," --brief compact summaries"," --terse aggressive summaries with recovery handles"," --query <text> filter supported rendered output"," --help, -h scoped help"," --version, -v build version; add --json for structured build info","","Examples:"," rsp"," rsp stats --since 7d"," rsp git log --terse"," rsp show el:<id>"];default:return z(`rsp ${e} [options]`,["Unknown rsp subcommand. Use root help to list supported subcommands."],["rsp --help"])}}function z(e,t,r){return[`usage: ${e}`,"","Flags and defaults:",...t.map(n=>` ${n}`),"","Examples:",...r.map(n=>` ${n}`)]}$e();oe();et();import{spawn as oL}from"node:child_process";import{createHash as iL}from"node:crypto";import{existsSync as aL,readFileSync as cL,statSync as uL}from"node:fs";import{tmpdir as lL}from"node:os";import{dirname as dL,join as nr}from"node:path";async function Te(e,t,r,n,s=process.cwd(),o,i=o?.overhead??Ke){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let a=Number(process.hrtime.bigint()-r)/1e6;n&&o&&mL(s,o);let c=pL(e,t,a);return Jn(s,c,i),n?Lr(yL(s,e,t,c,i,n.lastResponseMetrics())):bL(s,e,t,c,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}function pL(e,t,r){let n=Kn(),s=t.stdout.length+t.stderr.length,o=(t.rawOutput?.length??t.stdout.length)+t.stderr.length;return{family:e.command??"unknown",wrapperMs:r,childMs:n.childMs,selfStateBytesRead:n.selfStateBytesRead,bytesSaved:Math.max(0,o-s)}}function Lr(e){e.catch(()=>{})}async function ta(e,t,r,n){let{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o}=await Promise.resolve().then(()=>(et(),As));await s(e,{collection:o,event_type:"show",ts:new Date().toISOString(),command:"rsp show",command_class:"show",handle:t,hit:r,loss:"lossless",raw_bytes:r?n:0,emitted_bytes:n})}function mL(e,t){try{let r=Lt(e),n=uL(r),s=t.telemetryDrainIntervalMs*2;if(n.size<t.telemetryByteBudget&&!hL(r,Date.now()-s))return;let o=fL(e),i=gL(o),a=nr(i,"rsp.sock"),c=nr(i,"rsp.pid"),u=nr(ne(o),"rsp-resident.pid.json"),l=nr(o,".red","tmp","rsp","wake.lock");oL(process.execPath,[...process.execArgv,process.argv[1]??"","warm-resident","--socket",a,"--pid-file",c,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours),"--byte-budget",String(t.byteBudget),"--telemetry-ttl-days",String(t.telemetryTtlDays),"--telemetry-byte-budget",String(t.telemetryByteBudget),"--telemetry-drain-interval-ms",String(t.telemetryDrainIntervalMs),"--telemetry-drain-timeout-ms",String(t.telemetryDrainTimeoutMs),"--idle-ms",String(t.idleMs),"--registry",u,"--wake-lock",l],{cwd:o,detached:!0,stdio:"ignore",env:{...process.env,RSP_RESIDENT_WARMER:"1"}}).unref()}catch{}}function fL(e){let t=e;for(;;){if(aL(nr(t,".git")))return t;let r=dL(t);if(r===t)return e;t=r}}function gL(e){let t=iL("sha256").update(e).digest("hex").slice(0,20),r=process.env.XDG_RUNTIME_DIR;if(r){let s=nr(r,"red-skills",t);if(nr(s,"rsp.sock").length<108)return s}let n=typeof process.getuid=="function"?process.getuid():"nouid";return nr(lL(),`red-skills-${n}`,t)}function hL(e,t){try{let r=cL(e,"utf8");Vn(Buffer.byteLength(r));for(let n of r.split(/\r?\n/))if(n.trim())try{let s=JSON.parse(n),o=typeof s.created_at=="string"?s.created_at:s.ts;if(typeof o=="string"){let i=Date.parse(o);if(Number.isFinite(i)&&i<=t)return!0}}catch{}}catch{}return!1}async function yL(e,t,r,n,s,o){let i=Buffer.concat([r.stdout,r.stderr]),a=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),c=yo(n,s),{appendTelemetryEvent:u,RSP_ACCOUNTING_EVENTS_COLLECTION:l,RSP_TELEMETRY_INVOCATIONS_COLLECTION:p}=await Promise.resolve().then(()=>(et(),As));await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:gt(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs}),await u(e,{collection:p,ts:new Date().toISOString(),command:gt(t),wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,raw_text:a.toString("utf8"),emitted_text:i.toString("utf8"),...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs,accounting_recorded:!0}),r.degradation&&(await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:gt(t),command_class:t.command??"unknown",loss:t.level,raw_bytes:a.length,emitted_bytes:i.length,degradation_reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead}),await u(e,{collection:"rsp_telemetry_degradations_v1",ts:new Date().toISOString(),command:gt(t),reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead,accounting_recorded:!0}))}function bL(e,t,r,n,s){try{let o=Buffer.concat([r.stdout,r.stderr]),i=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),a=yo(n,s);Kt(e,{collection:"rsp_accounting_events_v1",event_type:"invocation",ts:new Date().toISOString(),command:gt(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a}),Kt(e,{collection:"rsp_telemetry_invocations_v1",ts:new Date().toISOString(),command:gt(t),wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a,accounting_recorded:!0})}catch{}}var cr=class{constructor(t){this.openStore=t}store;metrics;async mint(...t){try{let r=await this.open(),n=await r.mint(...t);return this.metrics=r.lastResponseMetrics?.(),n}catch{return`recovery unavailable (resident cold) \u2014 re-run: ${t[1].command}`}}async close(){if(!this.store)return;let t;try{t=await this.store}catch{return}await t.close()}open(){return this.store??=this.openStore(),this.store}lastResponseMetrics(){return this.metrics}},xd=class{async mint(t,r){return`recovery unavailable (cold store) \u2014 re-run: ${r.command}`}lastResponseMetrics(){}async close(){}};async function V_(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw n instanceof Error?n:new Error("cold store");let s=new xd,o=process.hrtime.bigint();try{if(e.command==="git"){let{isFastGitStatus:i,runFastGitStatus:a}=await Promise.resolve().then(()=>(Zl(),n_));if(i(e.positional))return await Te(e,await a(),o,s,r,t);let{runGitWrapper:c}=await Promise.resolve().then(()=>(Ar(),Fl)),u=await c(e.positional,{level:e.level,store:s,heavyGitByteThreshold:t.heavyGitByteThreshold});return await Te(e,u,o,s,r,t)}if(e.command==="gh"){let{runGhWrapper:i}=await Promise.resolve().then(()=>(bd(),yd)),a=await i(e.positional,{level:e.level,store:s});return await Te(e,a,o,s,r,t)}if(e.command==="vitest"||e.command==="cargo"){let{runTestWrapper:i}=await Promise.resolve().then(()=>(Rd(),Ed)),a=await i(e.positional,{level:e.level,store:s});return await Te(e,a,o,s,r,t)}if(e.command==="cat"){let{runCatWrapper:i}=await Promise.resolve().then(()=>(vd(),Td)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Te(e,a,o,s,r,t)}if(e.command==="exec"){let{runExecWrapper:i}=await Promise.resolve().then(()=>(qs(),Hs)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Te(e,a,o,s)}}catch(i){return Vr(i)?(process.stdout.write(i.render()),2):await Js("wrapper failed",e.positional,i,r)}finally{await s.close()}return await Js("wrapper failed",e.positional,n,r)}async function HE(e=process.argv.slice(2)){let t=lo("rsp"),r=Yp(e);if(r.kind==="version")return process.stdout.write(r.json?`${JSON.stringify(t)}
|
|
229
|
-
`:`${
|
|
230
|
-
`),0;if(r.kind==="help")return process.stdout.write(
|
|
231
|
-
`),0);if(n.command==="git"&&
|
|
232
|
-
`),0)}if(n.command==="warm-resident"){let y=a(process.cwd()),_=
|
|
233
|
-
`),T.status}if(n.command==="dashboard"){let y=await
|
|
239
|
+
`}function DL(e){switch(e){case"stats":return z("rsp stats [--since <days>d] [--full]",["Defaults: --since 30d, --full false","--since <days>d telemetry window, default 30d","--full include wider daily/top-command/failure lists, default false","--store-uri <uri> read a non-default store"],["rsp stats","rsp stats --since 7d --full"]);case"gains":return z("rsp gains [--since <days>d]",["--since <days>d gains window, default 28d","--store-uri <uri> read a non-default shared RedDB store"],["rsp gains","rsp gains --since 14d"]);case"show":return z("rsp show <handle>",["<handle> elision handle such as el:<id>","--store-uri <uri> read a non-default store"],["rsp show el:<id>","rsp show <handle>"]);case"git":return z("rsp git <status|log|diff|show|blame|branch|commit|push> [options]",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail"],["rsp git status --brief","rsp git log --terse","rsp git diff --query <path>"]);case"gh":return z("rsp gh <pr|issue|run> <list|view> [options] | <issues|prs|edit-labels|link-sub-issues> ...",["--brief compact output, default lossless","--terse aggressively summarize and mint recovery handles","--query <text> filter rendered rows","--full keep full supported wrapper detail","--json <fields> select fields for batched issues/prs","--repo <slug> owner/repo override for batched operations"],["rsp gh issues 42 43 --json state,title,labels,body","rsp gh prs 12 13 --json state,mergeable,statusCheckRollup","rsp gh edit-labels --add ready-for-agent --remove blocked:crashed 42 43","rsp gh link-sub-issues 100 101 102"]);case"vitest":return z("rsp vitest [run] [vitest-options]",["--brief compact output, default lossless","--terse summarize long failures and mint recovery handles","--query <text> filter failure rows"],["rsp vitest run","rsp vitest run --query <suite-or-test>"]);case"cargo":return z("rsp cargo test [cargo-test-options]",["--brief compact output, default lossless","--terse summarize long failures and mint recovery handles","--query <text> filter failure rows"],["rsp cargo test","rsp cargo test --query <test-name>"]);case"cat":return z("rsp cat [--head <n>|--tail <n>|--full] <file>",["--head <n> show first n lines, default slice 10","--tail <n> show last n lines, default slice 10","--full emit full text even when it is large","--brief/--terse reduce large text context"],["rsp cat <file>","rsp cat --head 20 <file>","rsp cat --tail 20 <file>"]);case"exec":return z('rsp exec -- "<command line>"',["--brief compact recognized stdout, default lossless","--terse summarize large stdout and mint recovery handles","--query <text> filter supported structured summaries"],['rsp exec -- "pnpm -C apps/rsp build"','rsp exec -- "git status --short"']);case"proxy":return z("rsp proxy -- <command line>",["--brief compact recognized stdout, default lossless","--terse summarize recognized large stdout"],["rsp proxy -- git status","rsp proxy -- pnpm test"]);case"wait":return["usage: rsp wait <subcommand> [options]","","Flags and defaults:"," --timeout <duration> default 30m for cmd, 60m for pr/run, 2h for release"," --reason <text> default empty"," --signal-pid <pid> optional completion signal target"," --signal <signal> default USR1"," --notify-cmd <cmd> optional completion command","","Examples:",' rsp wait pr 123 --reason "before merge"'," rsp wait run --branch feature/wait --latest",' rsp wait release --tag "v2.*"',' rsp wait cmd -- "pnpm -C apps/rsp build"'," rsp wait ls","","Exit codes: 0 = success verdict, 1 = failure verdict, 2 = timeout/indeterminate."];case"doctor":return z("rsp doctor [--since <days>d]",["--since <days>d recent degradation window, default 1d"],["rsp doctor","rsp doctor --since 7d"]);case"status":return z("rsp status",["No flags. Prints resident registry status as TOON."],["rsp status"]);case"sweep":return z("rsp sweep",["No flags. Removes stale resident registry entries, reclaims orphan state temps,","re-bounds the gh ETag cache, and prints TOON status."],["rsp sweep"]);case"setup":return z("rsp setup",["No flags. Provisions repo rsp configuration and store state."],["rsp setup"]);case"mcp":return z("rsp mcp",["No flags. Starts the rsp MCP server over stdio."],["rsp mcp"]);case"shell-init":return z("rsp shell-init <fish|bash|zsh>",["<fish|bash|zsh> target shell, no default"],["rsp shell-init bash","rsp shell-init fish"]);case"server":return z("rsp server [options]",["--socket <path> default resident socket","--pid-file <path> default resident pid file","--store-uri <uri> default repo store","--ttl-days <days> default from config","--ephemeral-ttl-hours <hours> default from config","--byte-budget <bytes> default from config","--idle-ms <ms> default from config"],["rsp server","rsp server --socket <path> --store-uri <uri>"]);case"warm-resident":return z("rsp warm-resident [options]",["--socket <path> default resident socket","--wake-lock <path> default resident wake lock","--store-uri <uri> default repo store","--idle-ms <ms> default from config"],["rsp warm-resident","rsp warm-resident --store-uri <uri>"]);case"gh-api-json":return z("rsp gh-api-json <path> [-f name=value ...]",["-f name=value string GitHub API field","-F name=value typed GitHub API field"],["rsp gh-api-json repos/{owner}/{repo}","rsp gh-api-json repos/{owner}/{repo}/pulls -f state=open"]);case"dashboard":return z("rsp dashboard",["No flags. The explicit spelling of the bare `rsp` invocation."],["rsp","rsp dashboard"]);case"hook":return z("rsp hook <claude-pre-exec|codex-pre-exec|claude-post-exec|codex-post-exec>",["Reads hook payload from stdin. Defaults come from the calling host."],["rsp hook codex-pre-exec","rsp hook claude-pre-exec"]);case void 0:return["usage: rsp <subcommand> [options]","","Bare invocation:"," rsp"," renders a live TOON dashboard with recovery handles, active waits, savings, and health.","","Subcommands:"," dashboard, stats, gains, show, git, gh, vitest, cargo, cat, exec, proxy, wait"," doctor, status, sweep, setup, mcp, shell-init, server, warm-resident, gh-api-json, hook","","Global flags:"," --store-uri <uri> default repo store"," --brief compact summaries"," --terse aggressive summaries with recovery handles"," --query <text> filter supported rendered output"," --help, -h scoped help"," --version, -v build version; add --json for structured build info","","Examples:"," rsp"," rsp stats --since 7d"," rsp git log --terse"," rsp show el:<id>"];default:return z(`rsp ${e} [options]`,["Unknown rsp subcommand. Use root help to list supported subcommands."],["rsp --help"])}}function z(e,t,r){return[`usage: ${e}`,"","Flags and defaults:",...t.map(n=>` ${n}`),"","Examples:",...r.map(n=>` ${n}`)]}Le();ae();mt();import{spawn as $L}from"node:child_process";import{createHash as NL}from"node:crypto";import{existsSync as FL,readFileSync as ML,statSync as BL}from"node:fs";import{tmpdir as jL}from"node:os";import{dirname as UL,join as nr}from"node:path";async function Se(e,t,r,n,s=process.cwd(),o,i=o?.overhead??Ct){process.stdout.write(t.stdout),process.stderr.write(t.stderr);let a=Number(process.hrtime.bigint()-r)/1e6;n&&o&&qL(s,o);let c=HL(e,t,a);return ac(s,c,i),n?Lr(KL(s,e,t,c,i,n.lastResponseMetrics())):zL(s,e,t,c,i),t.signal?(process.kill(process.pid,t.signal),128):t.status??0}function HL(e,t,r){let n=lc(),s=t.stdout.length+t.stderr.length,o=(t.rawOutput?.length??t.stdout.length)+t.stderr.length;return{family:e.command??"unknown",wrapperMs:r,childMs:n.childMs,selfStateBytesRead:n.selfStateBytesRead,bytesSaved:Math.max(0,o-s)}}function Lr(e){e.catch(()=>{})}async function aa(e,t,r,n){let{appendTelemetryEvent:s,RSP_ACCOUNTING_EVENTS_COLLECTION:o}=await Promise.resolve().then(()=>(mt(),$s));await s(e,{collection:o,event_type:"show",ts:new Date().toISOString(),command:"rsp show",command_class:"show",handle:t,hit:r,loss:"lossless",raw_bytes:r?n:0,emitted_bytes:n})}function qL(e,t){try{let r=$t(e),n=BL(r),s=t.telemetryDrainIntervalMs*2;if(n.size<t.telemetryByteBudget&&!VL(r,Date.now()-s))return;let o=WL(e),i=JL(o),a=nr(i,"rsp.sock"),c=nr(i,"rsp.pid"),u=nr(X(o),"rsp-resident.pid.json"),l=nr(o,".red","tmp","rsp","wake.lock");$L(process.execPath,[...process.execArgv,process.argv[1]??"","warm-resident","--socket",a,"--pid-file",c,"--store-uri",t.storeUri,"--ttl-days",String(t.ttlDays),"--ephemeral-ttl-hours",String(t.ephemeralTtlHours),"--byte-budget",String(t.byteBudget),"--telemetry-ttl-days",String(t.telemetryTtlDays),"--telemetry-byte-budget",String(t.telemetryByteBudget),"--telemetry-drain-interval-ms",String(t.telemetryDrainIntervalMs),"--telemetry-drain-timeout-ms",String(t.telemetryDrainTimeoutMs),"--idle-ms",String(t.idleMs),"--registry",u,"--wake-lock",l],{cwd:o,detached:!0,stdio:"ignore",env:{...process.env,RSP_RESIDENT_WARMER:"1"}}).unref()}catch{}}function WL(e){let t=e;for(;;){if(FL(nr(t,".git")))return t;let r=UL(t);if(r===t)return e;t=r}}function JL(e){let t=NL("sha256").update(e).digest("hex").slice(0,20),r=process.env.XDG_RUNTIME_DIR;if(r){let s=nr(r,"red-skills",t);if(nr(s,"rsp.sock").length<108)return s}let n=typeof process.getuid=="function"?process.getuid():"nouid";return nr(jL(),`red-skills-${n}`,t)}function VL(e,t){try{let r=ML(e,"utf8");Jn(Buffer.byteLength(r));for(let n of r.split(/\r?\n/))if(n.trim())try{let s=JSON.parse(n),o=typeof s.created_at=="string"?s.created_at:s.ts;if(typeof o=="string"){let i=Date.parse(o);if(Number.isFinite(i)&&i<=t)return!0}}catch{}}catch{}return!1}async function KL(e,t,r,n,s,o){let i=Buffer.concat([r.stdout,r.stderr]),a=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),c=wo(n,s),{appendTelemetryEvent:u,RSP_ACCOUNTING_EVENTS_COLLECTION:l,RSP_TELEMETRY_INVOCATIONS_COLLECTION:d}=await Promise.resolve().then(()=>(mt(),$s));await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:ft(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs}),await u(e,{collection:d,ts:new Date().toISOString(),command:ft(t),wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:a.length,emitted_bytes:i.length,raw_text:a.toString("utf8"),emitted_text:i.toString("utf8"),...c,store_open_count:o?.storeOpenCount,store_elapsed_ms:o?.storeElapsedMs,accounting_recorded:!0}),r.degradation&&(await u(e,{collection:l,event_type:"invocation",ts:new Date().toISOString(),command:ft(t),command_class:t.command??"unknown",loss:t.level,raw_bytes:a.length,emitted_bytes:i.length,degradation_reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead}),await u(e,{collection:"rsp_telemetry_degradations_v1",ts:new Date().toISOString(),command:ft(t),reason:r.degradation.reason,wrapper_family:r.degradation.family,wrapper_exit_code:0,stderr_head:r.degradation.stderrHead,accounting_recorded:!0}))}function zL(e,t,r,n,s){try{let o=Buffer.concat([r.stdout,r.stderr]),i=Buffer.concat([r.rawOutput??r.stdout,r.stderr]),a=wo(n,s);Yt(e,{collection:"rsp_accounting_events_v1",event_type:"invocation",ts:new Date().toISOString(),command:ft(t),command_class:t.command??"unknown",wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a}),Yt(e,{collection:"rsp_telemetry_invocations_v1",ts:new Date().toISOString(),command:ft(t),wrapper:t.command,loss:t.level,elided:!!(r.mintedHandle||r.bytesElided),raw_bytes:i.length,emitted_bytes:o.length,...a,accounting_recorded:!0})}catch{}}var cr=class{constructor(t){this.openStore=t}store;metrics;async mint(...t){try{let r=await this.open(),n=await r.mint(...t);return this.metrics=r.lastResponseMetrics?.(),n}catch{return`recovery unavailable (resident cold) \u2014 re-run: ${t[1].command}`}}async close(){if(!this.store)return;let t;try{t=await this.store}catch{return}await t.close()}open(){return this.store??=this.openStore(),this.store}lastResponseMetrics(){return this.metrics}},Nd=class{async mint(t,r){return`recovery unavailable (cold store) \u2014 re-run: ${r.command}`}lastResponseMetrics(){}async close(){}};async function iE(e,t,r,n){if(process.env.RSP_DEBUG==="1")throw n instanceof Error?n:new Error("cold store");let s=new Nd,o=process.hrtime.bigint();try{if(e.command==="git"){let{isFastGitStatus:i,runFastGitStatus:a}=await Promise.resolve().then(()=>(ud(),h_));if(i(e.positional))return await Se(e,await a(),o,s,r,t);let{runGitWrapper:c}=await Promise.resolve().then(()=>(Ar(),Kl)),u=await c(e.positional,{level:e.level,store:s,heavyGitByteThreshold:t.heavyGitByteThreshold});return await Se(e,u,o,s,r,t)}if(e.command==="gh"){let{runGhWrapper:i}=await Promise.resolve().then(()=>(Cd(),xd)),a=await i(e.positional,{level:e.level,store:s});return await Se(e,a,o,s,r,t)}if(e.command==="vitest"||e.command==="cargo"){let{runTestWrapper:i}=await Promise.resolve().then(()=>(Id(),Pd)),a=await i(e.positional,{level:e.level,store:s});return await Se(e,a,o,s,r,t)}if(e.command==="cat"){let{runCatWrapper:i}=await Promise.resolve().then(()=>($d(),Dd)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Se(e,a,o,s,r,t)}if(e.command==="exec"){let{runExecWrapper:i}=await Promise.resolve().then(()=>(qs(),Hs)),a=await i(e.positional,{level:e.level,store:s,heavyByteThreshold:t.heavyGitByteThreshold});return await Se(e,a,o,s)}}catch(i){return Vr(i)?(process.stdout.write(i.render()),2):await Js("wrapper failed",e.positional,i,r)}finally{await s.close()}return await Js("wrapper failed",e.positional,n,r)}async function aR(e=process.argv.slice(2)){let t=mo("rsp"),r=am(e);if(r.kind==="version")return process.stdout.write(r.json?`${JSON.stringify(t)}
|
|
240
|
+
`:`${fm(t)}
|
|
241
|
+
`),0;if(r.kind==="help")return process.stdout.write(y_(e)),0;let n;try{n=cm(e)}catch(y){if(lm(y))return process.stdout.write(um(y)),2;throw y}if(n.command==="hook"&&n.positional[1]==="claude-pre-exec"){let{runClaudePreExecHook:y}=await Promise.resolve().then(()=>(Ks(),sa));return await y()}if(n.command==="hook"&&n.positional[1]==="codex-pre-exec"){let{runCodexPreExecHook:y}=await Promise.resolve().then(()=>(Ks(),sa));return await y()}if(n.command==="hook"&&n.positional[1]==="claude-post-exec"){let{runClaudePostExecHook:y}=await Promise.resolve().then(()=>(Bs(),Xl));return await y()}if(n.command==="hook"&&n.positional[1]==="codex-post-exec"){let{runCodexPostExecHook:y}=await Promise.resolve().then(()=>(Bs(),Xl));return await y()}if(n.command==="setup"){let{provisionRspRepoStore:y}=await Promise.resolve().then(()=>(fE(),mE)),_=await y(process.cwd());return process.stdout.write(Nc(_)),0}if(n.command==="mcp"){let{runRspMcpServer:y}=await Promise.resolve().then(()=>(EE(),_E));return await y(),0}if(n.command==="wait"){let{runWait:y}=await Promise.resolve().then(()=>(Xu(),Qu));return await y(n.positional)}if(n.command==="shell-init"){let y=n.positional[1];if(y!=="fish"&&y!=="bash"&&y!=="zsh")return process.stdout.write(V({command:n.positional.join(" ")||"shell-init",category:"usage",error:"usage rsp shell-init fish|bash|zsh",help:"rsp shell-init bash"})),2;let{renderShellInit:_}=await Promise.resolve().then(()=>(SE(),kE));return process.stdout.write(_(y)),0}let{resolveRspConfig:s}=await Promise.resolve().then(()=>(Be(),bg)),o=s(process.cwd(),process.env,n.storeUri);if(n.command==="doctor"){let{resolveResidentPaths:y}=await Promise.resolve().then(()=>(ut(),br)),_=y(process.cwd()),T=await d_(o,_,po(n.positional,1));return process.stdout.write(p_(T)),T.exitCode}let i=Vw(n.command);if(!o.enabled)return i?await Jw(n.positional):(process.stdout.write(`${Xi()}
|
|
242
|
+
`),0);if(n.command==="git"&&oa(n.positional)){let y=process.hrtime.bigint();return await Se(n,await ia(),y,void 0,await cd(process.cwd()),o)}let{resolveResidentPaths:a,ensureResidentServer:c}=await Promise.resolve().then(()=>(ut(),br)),u=a(process.cwd());if(i&&n.command){let{overheadFamilyDisabled:y}=await Promise.resolve().then(()=>(ae(),Eo)),_=y(u.rootDir,n.command);if(_)return await Ww(n.positional,u.rootDir,_)}if(i&&qw(o.measurementHoldoutShare))return await Uw(n,u.rootDir,o.measurementHoldoutShare);if(n.command==="server"){let{runResidentServer:y}=await Promise.resolve().then(()=>(iR(),oR)),_=a(process.cwd()),T=Qa(n.positional),C=s(process.cwd(),process.env,n.storeUri);return C.enabled?(await y({socketPath:T.socket??_.socketPath,pidPath:T["pid-file"]??_.pidPath,rootDir:_.rootDir,storeUri:C.storeUri,ttlDays:T["ttl-days"]??C.ttlDays,ephemeralTtlHours:T["ephemeral-ttl-hours"]??C.ephemeralTtlHours,byteBudget:T["byte-budget"]??C.byteBudget,telemetryTtlDays:T["telemetry-ttl-days"]??C.telemetryTtlDays,telemetryByteBudget:T["telemetry-byte-budget"]??C.telemetryByteBudget,telemetryDrainIntervalMs:T["telemetry-drain-interval-ms"]??C.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:T["telemetry-drain-timeout-ms"]??C.telemetryDrainTimeoutMs,idleMs:T["idle-ms"]??C.idleMs,residentVersion:T["resident-version"]??t.version,registryPath:T.registry??_.registryPath}),0):(process.stdout.write(`${Xi()}
|
|
243
|
+
`),0)}if(n.command==="warm-resident"){let y=a(process.cwd()),_=Qa(n.positional),T=s(process.cwd(),process.env,n.storeUri);if(!T.enabled)return 0;let{warmResidentServer:C}=await Promise.resolve().then(()=>(ut(),br));return await C({...y,socketPath:_.socket??y.socketPath,wakeLockPath:_["wake-lock"]??y.wakeLockPath},{storeUri:T.storeUri,ttlDays:_["ttl-days"]??T.ttlDays,ephemeralTtlHours:_["ephemeral-ttl-hours"]??T.ephemeralTtlHours,byteBudget:_["byte-budget"]??T.byteBudget,telemetryTtlDays:_["telemetry-ttl-days"]??T.telemetryTtlDays,telemetryByteBudget:_["telemetry-byte-budget"]??T.telemetryByteBudget,telemetryDrainIntervalMs:_["telemetry-drain-interval-ms"]??T.telemetryDrainIntervalMs,telemetryDrainTimeoutMs:_["telemetry-drain-timeout-ms"]??T.telemetryDrainTimeoutMs,idleMs:_["idle-ms"]??T.idleMs,clientVersion:t.version}),0}if(n.command==="proxy"){let{runProxy:y}=await Promise.resolve().then(()=>(Bi(),Mi));return await y(n.positional,{telemetryRoot:u.rootDir,level:n.level})}if(n.command==="status"||n.command==="sweep"){let{residentRegistryStatus:y,sweepResidentRegistry:_}=await Promise.resolve().then(()=>(ut(),br)),T=n.command==="sweep"?await _(u):await y(u);if(n.command==="sweep"){let{sweepGhEtagCache:F}=await Promise.resolve().then(()=>(Wo(),pg));await F(u.rootDir,{maxBytes:o.ghEtagCacheMaxBytes})}let{overheadHealth:C}=await Promise.resolve().then(()=>(ae(),Eo)),L=C(u.rootDir,o.overhead);return process.stdout.write(Sf(T,L)),0}if(n.command==="gh-api-json"){let{readGhConditionalJson:y}=await Promise.resolve().then(()=>(Yo(),Tg)),_=mm(n.positional);if(!_)return process.stdout.write(V({command:n.positional.join(" "),category:"usage",error:"usage rsp gh-api-json <path> [-f name=value ...]",help:"rsp gh-api-json repos/{owner}/{repo}",validFlags:["-f","-F"]})),2;let T=await y({path:_.path,params:_.params,cwd:process.cwd(),telemetryRoot:u.rootDir,command:`rsp ${n.positional.join(" ")}`,overheadCeiling:o.overhead});return process.stdout.write(T.stdout),T.stderr&&process.stderr.write(`${T.stderr}
|
|
244
|
+
`),T.status}if(n.command==="dashboard"){let y=await Vy(o);return process.stdout.write(Ky(y)),0}if(!n.storeUri&&o.storeUri.startsWith("file://")&&!Y$(Q$(o.storeUri)))return i?await iE(n,o,u.rootDir):(process.stdout.write(V({command:ft(n)||"rsp",category:"real-error",error:"rsp repo store is not provisioned",help:"/red-setup"})),1);let{residentConfigFor:l,residentElisionStore:d,reportResidentEntryDiagnostic:p}=await Promise.resolve().then(()=>(Jt(),Zn)),g=(y=!0)=>Promise.resolve(d(process.cwd(),o,{ensureResident:y,paths:u})),f=()=>c(u,l(o,t.version)).catch(y=>void p(y)),k=()=>g(),E;try{if(n.command==="stats"){let{stats:y,telemetry:_}=await Qr(o,po(n.positional,30)),{overheadHealth:T}=await Promise.resolve().then(()=>(ae(),Eo));return process.stdout.write(Dc(y,_,pm(n.positional),T(u.rootDir,o.overhead))),0}if(n.command==="gains"){let y=await k();E=()=>y.close();let _;try{_=await y.telemetryGains(po(n.positional,28))}catch(T){return process.stdout.write(V({command:`rsp ${n.positional.join(" ")}`.trim(),category:"real-error",error:T instanceof Error?T.message:"rsp gains unavailable",help:"rsp gains requires the shared RedDB store"})),1}return process.stdout.write(xf(_)),0}if(n.command==="git"){if(Lr(f()),oa(n.positional)){let L=process.hrtime.bigint();return await Se(n,await ia(),L,void 0,u.rootDir,o)}let{runGitWrapper:y}=await Promise.resolve().then(()=>(Ar(),Kl)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),C=await y(n.positional,{level:n.level,store:_,heavyGitByteThreshold:o.heavyGitByteThreshold});return await Se(n,C,T,_,u.rootDir,o)}if(n.command==="gh"){Lr(f());let{runGhWrapper:y}=await Promise.resolve().then(()=>(Cd(),xd)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),C=await y(n.positional,{level:n.level,store:_});return await Se(n,C,T,_,u.rootDir,o)}if(n.command==="vitest"||n.command==="cargo"){Lr(f());let{runTestWrapper:y}=await Promise.resolve().then(()=>(Id(),Pd)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),C=await y(n.positional,{level:n.level,store:_});return await Se(n,C,T,_,u.rootDir,o)}if(n.command==="cat"){Lr(f());let{runCatWrapper:y}=await Promise.resolve().then(()=>($d(),Dd)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),C=await y(n.positional,{level:n.level,store:_,heavyByteThreshold:o.heavyGitByteThreshold});return await Se(n,C,T,_,u.rootDir,o)}if(n.command==="exec"){Lr(f());let{runExecWrapper:y}=await Promise.resolve().then(()=>(qs(),Hs)),_=new cr(()=>g(!1));E=()=>_.close();let T=process.hrtime.bigint(),C=await y(n.positional,{level:n.level,store:_,heavyByteThreshold:o.heavyGitByteThreshold});return await Se(n,C,T,_,u.rootDir,o)}if(n.command==="show"&&n.handle){let y=await k();E=()=>y.close();let _=await y.get(n.handle);if(_&&"original"in _&&_.original)return process.stdout.write(_.original),await aa(u.rootDir,n.handle,!0,_.original.length),0;if(_?.status==="expired"){let C=V({command:`rsp show ${n.handle}`,category:"real-error",error:`expired ${_.expired_at}`,help:_.command});return process.stdout.write(C),await aa(u.rootDir,n.handle,!1,C.length),1}let T=V({command:`rsp show ${n.handle}`,category:"real-error",error:"expired unknown",help:n.handle});return process.stdout.write(T),await aa(u.rootDir,n.handle,!1,T.length),1}return process.stdout.write(V({command:n.positional.join(" ")||"rsp",category:"usage",error:"usage rsp show el:<id>",help:"rsp show el:<id>"})),2}catch(y){if(Vr(y))return process.stdout.write(y.render()),2;if(i)return await Js("wrapper failed",n.positional,y,u.rootDir);throw y}finally{await E?.()}}at();import.meta.url===`file://${process.argv[1]}`&&aR().then(e=>process.exit(e),e=>{Vr(e)&&(process.stdout.write(e.render()),process.exit(2)),process.stdout.write(V({command:"rsp",category:"real-error",error:e instanceof Error?e.message:String(e),help:"rsp --help"})),process.exit(1)});export{aR as main,Nc as renderSetupResult,Dc as renderStats};
|
|
234
245
|
/*! Bundled license information:
|
|
235
246
|
|
|
236
247
|
@octokit/request-error/dist-src/index.js:
|